Home | History | Annotate | Download | only in internal
      1 // Protocol Buffers - Google's data interchange format
      2 // Copyright 2008 Google Inc.  All rights reserved.
      3 // https://developers.google.com/protocol-buffers/
      4 //
      5 // Redistribution and use in source and binary forms, with or without
      6 // modification, are permitted provided that the following conditions are
      7 // met:
      8 //
      9 //     * Redistributions of source code must retain the above copyright
     10 // notice, this list of conditions and the following disclaimer.
     11 //     * Redistributions in binary form must reproduce the above
     12 // copyright notice, this list of conditions and the following disclaimer
     13 // in the documentation and/or other materials provided with the
     14 // distribution.
     15 //     * Neither the name of Google Inc. nor the names of its
     16 // contributors may be used to endorse or promote products derived from
     17 // this software without specific prior written permission.
     18 //
     19 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
     20 // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
     21 // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
     22 // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
     23 // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
     24 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
     25 // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
     26 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
     27 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     28 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     29 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     30 
     31 // Author: matthewtoia (a] google.com (Matt Toia)
     32 
     33 syntax = "proto2";
     34 
     35 package google.protobuf.python.internal;
     36 
     37 import "google/protobuf/internal/factory_test1.proto";
     38 
     39 
     40 enum Factory2Enum {
     41   FACTORY_2_VALUE_0 = 0;
     42   FACTORY_2_VALUE_1 = 1;
     43 }
     44 
     45 message Factory2Message {
     46   required int32 mandatory = 1;
     47   optional Factory2Enum factory_2_enum = 2;
     48   enum NestedFactory2Enum {
     49     NESTED_FACTORY_2_VALUE_0 = 0;
     50     NESTED_FACTORY_2_VALUE_1 = 1;
     51   }
     52   optional NestedFactory2Enum nested_factory_2_enum = 3;
     53   message NestedFactory2Message {
     54     optional string value = 1;
     55   }
     56   optional NestedFactory2Message nested_factory_2_message = 4;
     57   optional Factory1Message factory_1_message = 5;
     58   optional Factory1Enum factory_1_enum = 6;
     59   optional Factory1Message.NestedFactory1Enum nested_factory_1_enum = 7;
     60   optional Factory1Message.NestedFactory1Message nested_factory_1_message = 8;
     61   optional Factory2Message circular_message = 9;
     62   optional string scalar_value = 10;
     63   repeated string list_value = 11;
     64   repeated group Grouped = 12 {
     65     optional string part_1 = 13;
     66     optional string part_2 = 14;
     67   }
     68   optional LoopMessage loop = 15;
     69   optional int32 int_with_default = 16 [default = 1776];
     70   optional double double_with_default = 17 [default = 9.99];
     71   optional string string_with_default = 18 [default = "hello world"];
     72   optional bool bool_with_default = 19 [default = false];
     73   optional Factory2Enum enum_with_default = 20 [default = FACTORY_2_VALUE_1];
     74   optional bytes bytes_with_default = 21 [default = "a\373\000c"];
     75 
     76 
     77   extend Factory1Message {
     78     optional string one_more_field = 1001;
     79   }
     80 
     81   oneof oneof_field {
     82     int32 oneof_int = 22;
     83     string oneof_string = 23;
     84   }
     85 }
     86 
     87 message LoopMessage {
     88   optional Factory2Message loop = 1;
     89 }
     90 
     91 message MessageWithNestedEnumOnly {
     92   enum NestedEnum {
     93     NESTED_MESSAGE_ENUM_0 = 0;
     94   }
     95 }
     96 
     97 extend Factory1Message {
     98   optional string another_field = 1002;
     99 }
    100