• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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// Proto to test proto3 maps.
32syntax = "proto3";
33
34package google.protobuf.testing.maps;
35option java_package = "com.google.protobuf.testing.maps";
36
37message MapIn {
38  string other = 1;
39  repeated string things = 2;
40  map<string, string> map_input = 3;
41}
42
43message MapOut {
44  map<string, MapM> map1 = 1;
45  map<string, MapOut> map2 = 2;
46  map<int32, string> map3 = 3;
47  map<bool, string> map4 = 5;
48  string bar = 4;
49}
50
51// A message with exactly the same wire representation as MapOut, but using
52// repeated message fields instead of map fields. We use this message to test
53// the wire-format compatibility of the JSON transcoder (e.g., whether it
54// handles missing keys correctly).
55message MapOutWireFormat {
56  message Map1Entry {
57    string key = 1;
58    MapM value = 2;
59  }
60  repeated Map1Entry map1 = 1;
61  message Map2Entry {
62    string key = 1;
63    MapOut value = 2;
64  }
65  repeated Map2Entry map2 = 2;
66  message Map3Entry {
67    int32 key = 1;
68    string value = 2;
69  }
70  repeated Map3Entry map3 = 3;
71  message Map4Entry {
72    bool key = 1;
73    string value = 2;
74  }
75  repeated Map4Entry map4 = 5;
76  string bar = 4;
77}
78
79message MapM {
80  string foo = 1;
81}
82
83service TestService {
84  rpc Call1(MapIn) returns (MapOut);
85  rpc Call2(MapIn) returns (MapOut);
86}
87