protobuf 2.8.0.beta9 → 2.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (204) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +0 -1
  3. data/{UPGRADING.md → CHANGES.md} +20 -12
  4. data/LICENSE.txt +14 -0
  5. data/README.md +60 -74
  6. data/bin/protoc-gen-ruby +26 -0
  7. data/bin/rprotoc +4 -58
  8. data/lib/protobuf.rb +15 -13
  9. data/lib/protobuf/code_generator.rb +41 -0
  10. data/lib/protobuf/descriptors/google/protobuf/compiler/plugin.pb.rb +51 -0
  11. data/lib/protobuf/descriptors/google/protobuf/descriptor.pb.rb +248 -0
  12. data/lib/protobuf/field/base_field.rb +0 -1
  13. data/lib/protobuf/field/bytes_field.rb +1 -1
  14. data/lib/protobuf/field/message_field.rb +2 -4
  15. data/lib/protobuf/field/varint_field.rb +4 -7
  16. data/lib/protobuf/generators/base.rb +71 -0
  17. data/lib/protobuf/generators/enum_generator.rb +31 -0
  18. data/lib/protobuf/generators/extension_generator.rb +28 -0
  19. data/lib/protobuf/generators/field_generator.rb +132 -0
  20. data/lib/protobuf/generators/file_generator.rb +140 -0
  21. data/lib/protobuf/generators/group_generator.rb +113 -0
  22. data/lib/protobuf/generators/message_generator.rb +99 -0
  23. data/lib/protobuf/generators/printable.rb +161 -0
  24. data/lib/protobuf/generators/service_generator.rb +27 -0
  25. data/lib/protobuf/lifecycle.rb +7 -3
  26. data/lib/protobuf/message.rb +51 -34
  27. data/lib/protobuf/rpc/connectors/common.rb +4 -6
  28. data/lib/protobuf/rpc/server.rb +1 -1
  29. data/lib/protobuf/rpc/servers/zmq/server.rb +2 -2
  30. data/lib/protobuf/rpc/servers/zmq/worker.rb +2 -2
  31. data/lib/protobuf/rpc/service.rb +3 -3
  32. data/lib/protobuf/rpc/service_directory.rb +24 -12
  33. data/lib/protobuf/version.rb +1 -1
  34. data/proto/google/protobuf/compiler/plugin.proto +147 -0
  35. data/proto/google/protobuf/descriptor.proto +620 -0
  36. data/protobuf.gemspec +12 -21
  37. data/spec/bin/protoc-gen-ruby_spec.rb +18 -0
  38. data/spec/data/data.bin +3 -0
  39. data/{test/data/unk.png → spec/data/types.bin} +0 -0
  40. data/spec/encoding/all_types_spec.rb +91 -0
  41. data/spec/encoding/extreme_values_spec.rb +0 -0
  42. data/spec/lib/protobuf/code_generator_spec.rb +60 -0
  43. data/spec/lib/protobuf/generators/base_spec.rb +87 -0
  44. data/spec/lib/protobuf/generators/enum_generator_spec.rb +45 -0
  45. data/spec/lib/protobuf/generators/extension_generator_spec.rb +43 -0
  46. data/spec/lib/protobuf/generators/field_generator_spec.rb +99 -0
  47. data/spec/lib/protobuf/generators/file_generator_spec.rb +29 -0
  48. data/spec/lib/protobuf/generators/message_generator_spec.rb +0 -0
  49. data/spec/lib/protobuf/generators/service_generator_spec.rb +43 -0
  50. data/spec/lib/protobuf/lifecycle_spec.rb +31 -1
  51. data/spec/lib/protobuf/logger_spec.rb +5 -0
  52. data/spec/lib/protobuf/message_spec.rb +22 -8
  53. data/spec/lib/protobuf/rpc/connectors/common_spec.rb +1 -1
  54. data/spec/lib/protobuf/rpc/service_directory_spec.rb +45 -7
  55. data/spec/lib/protobuf/rpc/service_spec.rb +3 -3
  56. data/spec/spec_helper.rb +15 -16
  57. data/spec/support/test/all_types.data.bin +0 -0
  58. data/spec/support/test/all_types.data.txt +119 -0
  59. data/spec/support/test/defaults.pb.rb +25 -0
  60. data/spec/support/test/defaults.proto +9 -0
  61. data/spec/support/test/enum.pb.rb +10 -8
  62. data/spec/support/test/extended.pb.rb +5 -3
  63. data/spec/support/test/extreme_values.data.bin +0 -0
  64. data/spec/support/test/google_unittest.pb.rb +543 -0
  65. data/spec/support/test/google_unittest.proto +713 -0
  66. data/spec/support/test/google_unittest_import.pb.rb +37 -0
  67. data/{ext/protobuf-2.4.1/src/google/protobuf/io/package_info.h → spec/support/test/google_unittest_import.proto} +27 -17
  68. data/spec/support/test/google_unittest_import_public.pb.rb +8 -0
  69. data/{ext/protobuf-2.4.1/src/google/protobuf/io/coded_stream_inl.h → spec/support/test/google_unittest_import_public.proto} +5 -31
  70. data/spec/support/test/multi_field_extensions.pb.rb +29 -7
  71. data/spec/support/test/multi_field_extensions.proto +12 -2
  72. data/spec/support/test/resource.pb.rb +20 -16
  73. metadata +149 -236
  74. data/examples/addressbook.pb.rb +0 -55
  75. data/examples/addressbook.proto +0 -24
  76. data/examples/reading_a_message.rb +0 -32
  77. data/examples/writing_a_message.rb +0 -46
  78. data/ext/protobuf-2.4.1/src/google/protobuf/compiler/code_generator.h +0 -142
  79. data/ext/protobuf-2.4.1/src/google/protobuf/compiler/command_line_interface.h +0 -318
  80. data/ext/protobuf-2.4.1/src/google/protobuf/compiler/cpp/cpp_enum.h +0 -99
  81. data/ext/protobuf-2.4.1/src/google/protobuf/compiler/cpp/cpp_enum_field.h +0 -103
  82. data/ext/protobuf-2.4.1/src/google/protobuf/compiler/cpp/cpp_extension.h +0 -85
  83. data/ext/protobuf-2.4.1/src/google/protobuf/compiler/cpp/cpp_field.h +0 -167
  84. data/ext/protobuf-2.4.1/src/google/protobuf/compiler/cpp/cpp_file.h +0 -98
  85. data/ext/protobuf-2.4.1/src/google/protobuf/compiler/cpp/cpp_generator.h +0 -72
  86. data/ext/protobuf-2.4.1/src/google/protobuf/compiler/cpp/cpp_helpers.h +0 -159
  87. data/ext/protobuf-2.4.1/src/google/protobuf/compiler/cpp/cpp_message.h +0 -170
  88. data/ext/protobuf-2.4.1/src/google/protobuf/compiler/cpp/cpp_message_field.h +0 -102
  89. data/ext/protobuf-2.4.1/src/google/protobuf/compiler/cpp/cpp_primitive_field.h +0 -103
  90. data/ext/protobuf-2.4.1/src/google/protobuf/compiler/cpp/cpp_service.h +0 -118
  91. data/ext/protobuf-2.4.1/src/google/protobuf/compiler/cpp/cpp_string_field.h +0 -104
  92. data/ext/protobuf-2.4.1/src/google/protobuf/compiler/cpp/cpp_test_bad_identifiers.pb.h +0 -2721
  93. data/ext/protobuf-2.4.1/src/google/protobuf/compiler/importer.h +0 -303
  94. data/ext/protobuf-2.4.1/src/google/protobuf/compiler/java/java_enum.h +0 -84
  95. data/ext/protobuf-2.4.1/src/google/protobuf/compiler/java/java_enum_field.h +0 -121
  96. data/ext/protobuf-2.4.1/src/google/protobuf/compiler/java/java_extension.h +0 -77
  97. data/ext/protobuf-2.4.1/src/google/protobuf/compiler/java/java_field.h +0 -108
  98. data/ext/protobuf-2.4.1/src/google/protobuf/compiler/java/java_file.h +0 -101
  99. data/ext/protobuf-2.4.1/src/google/protobuf/compiler/java/java_generator.h +0 -72
  100. data/ext/protobuf-2.4.1/src/google/protobuf/compiler/java/java_helpers.h +0 -213
  101. data/ext/protobuf-2.4.1/src/google/protobuf/compiler/java/java_message.h +0 -109
  102. data/ext/protobuf-2.4.1/src/google/protobuf/compiler/java/java_message_field.h +0 -134
  103. data/ext/protobuf-2.4.1/src/google/protobuf/compiler/java/java_primitive_field.h +0 -121
  104. data/ext/protobuf-2.4.1/src/google/protobuf/compiler/java/java_service.h +0 -113
  105. data/ext/protobuf-2.4.1/src/google/protobuf/compiler/java/java_string_field.h +0 -120
  106. data/ext/protobuf-2.4.1/src/google/protobuf/compiler/mock_code_generator.h +0 -113
  107. data/ext/protobuf-2.4.1/src/google/protobuf/compiler/package_info.h +0 -64
  108. data/ext/protobuf-2.4.1/src/google/protobuf/compiler/parser.h +0 -434
  109. data/ext/protobuf-2.4.1/src/google/protobuf/compiler/plugin.h +0 -73
  110. data/ext/protobuf-2.4.1/src/google/protobuf/compiler/plugin.pb.h +0 -790
  111. data/ext/protobuf-2.4.1/src/google/protobuf/compiler/python/python_generator.h +0 -156
  112. data/ext/protobuf-2.4.1/src/google/protobuf/compiler/subprocess.h +0 -108
  113. data/ext/protobuf-2.4.1/src/google/protobuf/compiler/zip_writer.h +0 -93
  114. data/ext/protobuf-2.4.1/src/google/protobuf/descriptor.h +0 -1367
  115. data/ext/protobuf-2.4.1/src/google/protobuf/descriptor.pb.h +0 -5223
  116. data/ext/protobuf-2.4.1/src/google/protobuf/descriptor_database.h +0 -366
  117. data/ext/protobuf-2.4.1/src/google/protobuf/dynamic_message.h +0 -136
  118. data/ext/protobuf-2.4.1/src/google/protobuf/extension_set.h +0 -904
  119. data/ext/protobuf-2.4.1/src/google/protobuf/generated_message_reflection.h +0 -424
  120. data/ext/protobuf-2.4.1/src/google/protobuf/generated_message_util.h +0 -82
  121. data/ext/protobuf-2.4.1/src/google/protobuf/io/coded_stream.h +0 -1102
  122. data/ext/protobuf-2.4.1/src/google/protobuf/io/gzip_stream.h +0 -207
  123. data/ext/protobuf-2.4.1/src/google/protobuf/io/printer.h +0 -136
  124. data/ext/protobuf-2.4.1/src/google/protobuf/io/tokenizer.h +0 -313
  125. data/ext/protobuf-2.4.1/src/google/protobuf/io/zero_copy_stream.h +0 -238
  126. data/ext/protobuf-2.4.1/src/google/protobuf/io/zero_copy_stream_impl.h +0 -357
  127. data/ext/protobuf-2.4.1/src/google/protobuf/io/zero_copy_stream_impl_lite.h +0 -340
  128. data/ext/protobuf-2.4.1/src/google/protobuf/message.h +0 -692
  129. data/ext/protobuf-2.4.1/src/google/protobuf/message_lite.h +0 -239
  130. data/ext/protobuf-2.4.1/src/google/protobuf/package_info.h +0 -64
  131. data/ext/protobuf-2.4.1/src/google/protobuf/reflection_ops.h +0 -80
  132. data/ext/protobuf-2.4.1/src/google/protobuf/repeated_field.h +0 -1295
  133. data/ext/protobuf-2.4.1/src/google/protobuf/service.h +0 -291
  134. data/ext/protobuf-2.4.1/src/google/protobuf/stubs/common.h +0 -1211
  135. data/ext/protobuf-2.4.1/src/google/protobuf/stubs/hash.h +0 -220
  136. data/ext/protobuf-2.4.1/src/google/protobuf/stubs/map-util.h +0 -119
  137. data/ext/protobuf-2.4.1/src/google/protobuf/stubs/once.h +0 -123
  138. data/ext/protobuf-2.4.1/src/google/protobuf/stubs/stl_util-inl.h +0 -121
  139. data/ext/protobuf-2.4.1/src/google/protobuf/stubs/strutil.h +0 -457
  140. data/ext/protobuf-2.4.1/src/google/protobuf/stubs/substitute.h +0 -170
  141. data/ext/protobuf-2.4.1/src/google/protobuf/test_util.h +0 -174
  142. data/ext/protobuf-2.4.1/src/google/protobuf/test_util_lite.h +0 -101
  143. data/ext/protobuf-2.4.1/src/google/protobuf/testing/file.h +0 -83
  144. data/ext/protobuf-2.4.1/src/google/protobuf/testing/googletest.h +0 -98
  145. data/ext/protobuf-2.4.1/src/google/protobuf/text_format.h +0 -285
  146. data/ext/protobuf-2.4.1/src/google/protobuf/unittest.pb.h +0 -11915
  147. data/ext/protobuf-2.4.1/src/google/protobuf/unittest_custom_options.pb.h +0 -2895
  148. data/ext/protobuf-2.4.1/src/google/protobuf/unittest_embed_optimize_for.pb.h +0 -211
  149. data/ext/protobuf-2.4.1/src/google/protobuf/unittest_empty.pb.h +0 -56
  150. data/ext/protobuf-2.4.1/src/google/protobuf/unittest_import.pb.h +0 -188
  151. data/ext/protobuf-2.4.1/src/google/protobuf/unittest_import_lite.pb.h +0 -151
  152. data/ext/protobuf-2.4.1/src/google/protobuf/unittest_lite.pb.h +0 -4752
  153. data/ext/protobuf-2.4.1/src/google/protobuf/unittest_lite_imports_nonlite.pb.h +0 -150
  154. data/ext/protobuf-2.4.1/src/google/protobuf/unittest_mset.pb.h +0 -816
  155. data/ext/protobuf-2.4.1/src/google/protobuf/unittest_no_generic_services.pb.h +0 -197
  156. data/ext/protobuf-2.4.1/src/google/protobuf/unittest_optimize_for.pb.h +0 -403
  157. data/ext/protobuf-2.4.1/src/google/protobuf/unknown_field_set.h +0 -268
  158. data/ext/protobuf-2.4.1/src/google/protobuf/wire_format.h +0 -304
  159. data/ext/protobuf-2.4.1/src/google/protobuf/wire_format_lite.h +0 -620
  160. data/ext/protobuf-2.4.1/src/google/protobuf/wire_format_lite_inl.h +0 -774
  161. data/ext/ruby_generator/Makefile +0 -10
  162. data/ext/ruby_generator/RubyGenerator.cpp +0 -544
  163. data/ext/ruby_generator/RubyGenerator.h +0 -206
  164. data/ext/ruby_generator/extconf.rb +0 -35
  165. data/test/data/data_source.py +0 -14
  166. data/test/data/types_source.py +0 -22
  167. data/test/proto/addressbook.pb.rb +0 -66
  168. data/test/proto/addressbook.proto +0 -33
  169. data/test/proto/addressbook_base.pb.rb +0 -58
  170. data/test/proto/addressbook_base.proto +0 -26
  171. data/test/proto/addressbook_ext.pb.rb +0 -20
  172. data/test/proto/addressbook_ext.proto +0 -6
  173. data/test/proto/collision.pb.rb +0 -17
  174. data/test/proto/collision.proto +0 -5
  175. data/test/proto/ext_collision.pb.rb +0 -24
  176. data/test/proto/ext_collision.proto +0 -8
  177. data/test/proto/ext_range.pb.rb +0 -22
  178. data/test/proto/ext_range.proto +0 -7
  179. data/test/proto/float_default.proto +0 -10
  180. data/test/proto/lowercase.pb.rb +0 -30
  181. data/test/proto/lowercase.proto +0 -9
  182. data/test/proto/merge.pb.rb +0 -39
  183. data/test/proto/merge.proto +0 -15
  184. data/test/proto/nested.pb.rb +0 -30
  185. data/test/proto/nested.proto +0 -9
  186. data/test/proto/optional_field.pb.rb +0 -35
  187. data/test/proto/optional_field.proto +0 -12
  188. data/test/proto/packed.pb.rb +0 -22
  189. data/test/proto/packed.proto +0 -6
  190. data/test/proto/rpc.proto +0 -6
  191. data/test/proto/types.pb.rb +0 -84
  192. data/test/proto/types.proto +0 -37
  193. data/test/test_addressbook.rb +0 -56
  194. data/test/test_enum_value.rb +0 -41
  195. data/test/test_extension.rb +0 -36
  196. data/test/test_lowercase.rb +0 -11
  197. data/test/test_message.rb +0 -128
  198. data/test/test_optional_field.rb +0 -103
  199. data/test/test_packed_field.rb +0 -40
  200. data/test/test_parse.rb +0 -15
  201. data/test/test_repeated_types.rb +0 -132
  202. data/test/test_serialize.rb +0 -61
  203. data/test/test_standard_message.rb +0 -96
  204. data/test/test_types.rb +0 -226
@@ -1,109 +0,0 @@
1
- // Protocol Buffers - Google's data interchange format
2
- // Copyright 2008 Google Inc. All rights reserved.
3
- // http://code.google.com/p/protobuf/
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: kenton@google.com (Kenton Varda)
32
- // Based on original Protocol Buffers design by
33
- // Sanjay Ghemawat, Jeff Dean, and others.
34
-
35
- #ifndef GOOGLE_PROTOBUF_COMPILER_JAVA_MESSAGE_H__
36
- #define GOOGLE_PROTOBUF_COMPILER_JAVA_MESSAGE_H__
37
-
38
- #include <string>
39
- #include <google/protobuf/stubs/common.h>
40
- #include <google/protobuf/compiler/java/java_field.h>
41
-
42
- namespace google {
43
- namespace protobuf {
44
- namespace io {
45
- class Printer; // printer.h
46
- }
47
- }
48
-
49
- namespace protobuf {
50
- namespace compiler {
51
- namespace java {
52
-
53
- class MessageGenerator {
54
- public:
55
- explicit MessageGenerator(const Descriptor* descriptor);
56
- ~MessageGenerator();
57
-
58
- // All static variables have to be declared at the top-level of the file
59
- // so that we can control initialization order, which is important for
60
- // DescriptorProto bootstrapping to work.
61
- void GenerateStaticVariables(io::Printer* printer);
62
-
63
- // Output code which initializes the static variables generated by
64
- // GenerateStaticVariables().
65
- void GenerateStaticVariableInitializers(io::Printer* printer);
66
-
67
- // Generate the class itself.
68
- void Generate(io::Printer* printer);
69
-
70
- // Generates the base interface that both the class and its builder implement
71
- void GenerateInterface(io::Printer* printer);
72
-
73
- // Generate code to register all contained extensions with an
74
- // ExtensionRegistry.
75
- void GenerateExtensionRegistrationCode(io::Printer* printer);
76
-
77
- private:
78
- enum UseMemoization {
79
- MEMOIZE,
80
- DONT_MEMOIZE
81
- };
82
-
83
- void GenerateMessageSerializationMethods(io::Printer* printer);
84
- void GenerateParseFromMethods(io::Printer* printer);
85
- void GenerateSerializeOneField(io::Printer* printer,
86
- const FieldDescriptor* field);
87
- void GenerateSerializeOneExtensionRange(
88
- io::Printer* printer, const Descriptor::ExtensionRange* range);
89
-
90
- void GenerateBuilder(io::Printer* printer);
91
- void GenerateCommonBuilderMethods(io::Printer* printer);
92
- void GenerateDescriptorMethods(io::Printer* printer);
93
- void GenerateBuilderParsingMethods(io::Printer* printer);
94
- void GenerateIsInitialized(io::Printer* printer,
95
- UseMemoization useMemoization);
96
- void GenerateEqualsAndHashCode(io::Printer* printer);
97
-
98
- const Descriptor* descriptor_;
99
- FieldGeneratorMap field_generators_;
100
-
101
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(MessageGenerator);
102
- };
103
-
104
- } // namespace java
105
- } // namespace compiler
106
- } // namespace protobuf
107
-
108
- } // namespace google
109
- #endif // GOOGLE_PROTOBUF_COMPILER_JAVA_MESSAGE_H__
@@ -1,134 +0,0 @@
1
- // Protocol Buffers - Google's data interchange format
2
- // Copyright 2008 Google Inc. All rights reserved.
3
- // http://code.google.com/p/protobuf/
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: kenton@google.com (Kenton Varda)
32
- // Based on original Protocol Buffers design by
33
- // Sanjay Ghemawat, Jeff Dean, and others.
34
-
35
- #ifndef GOOGLE_PROTOBUF_COMPILER_JAVA_MESSAGE_FIELD_H__
36
- #define GOOGLE_PROTOBUF_COMPILER_JAVA_MESSAGE_FIELD_H__
37
-
38
- #include <map>
39
- #include <string>
40
- #include <google/protobuf/compiler/java/java_field.h>
41
-
42
- namespace google {
43
- namespace protobuf {
44
- namespace compiler {
45
- namespace java {
46
-
47
- class MessageFieldGenerator : public FieldGenerator {
48
- public:
49
- explicit MessageFieldGenerator(const FieldDescriptor* descriptor,
50
- int messageBitIndex, int builderBitIndex);
51
- ~MessageFieldGenerator();
52
-
53
- // implements FieldGenerator ---------------------------------------
54
- int GetNumBitsForMessage() const;
55
- int GetNumBitsForBuilder() const;
56
- void GenerateInterfaceMembers(io::Printer* printer) const;
57
- void GenerateMembers(io::Printer* printer) const;
58
- void GenerateBuilderMembers(io::Printer* printer) const;
59
- void GenerateInitializationCode(io::Printer* printer) const;
60
- void GenerateBuilderClearCode(io::Printer* printer) const;
61
- void GenerateMergingCode(io::Printer* printer) const;
62
- void GenerateBuildingCode(io::Printer* printer) const;
63
- void GenerateParsingCode(io::Printer* printer) const;
64
- void GenerateSerializationCode(io::Printer* printer) const;
65
- void GenerateSerializedSizeCode(io::Printer* printer) const;
66
- void GenerateFieldBuilderInitializationCode(io::Printer* printer) const;
67
- void GenerateEqualsCode(io::Printer* printer) const;
68
- void GenerateHashCode(io::Printer* printer) const;
69
-
70
- string GetBoxedType() const;
71
-
72
- private:
73
- const FieldDescriptor* descriptor_;
74
- map<string, string> variables_;
75
- const int messageBitIndex_;
76
- const int builderBitIndex_;
77
-
78
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(MessageFieldGenerator);
79
-
80
- void PrintNestedBuilderCondition(io::Printer* printer,
81
- const char* regular_case, const char* nested_builder_case) const;
82
- void PrintNestedBuilderFunction(io::Printer* printer,
83
- const char* method_prototype, const char* regular_case,
84
- const char* nested_builder_case,
85
- const char* trailing_code) const;
86
- };
87
-
88
- class RepeatedMessageFieldGenerator : public FieldGenerator {
89
- public:
90
- explicit RepeatedMessageFieldGenerator(const FieldDescriptor* descriptor,
91
- int messageBitIndex, int builderBitIndex);
92
- ~RepeatedMessageFieldGenerator();
93
-
94
- // implements FieldGenerator ---------------------------------------
95
- int GetNumBitsForMessage() const;
96
- int GetNumBitsForBuilder() const;
97
- void GenerateInterfaceMembers(io::Printer* printer) const;
98
- void GenerateMembers(io::Printer* printer) const;
99
- void GenerateBuilderMembers(io::Printer* printer) const;
100
- void GenerateInitializationCode(io::Printer* printer) const;
101
- void GenerateBuilderClearCode(io::Printer* printer) const;
102
- void GenerateMergingCode(io::Printer* printer) const;
103
- void GenerateBuildingCode(io::Printer* printer) const;
104
- void GenerateParsingCode(io::Printer* printer) const;
105
- void GenerateSerializationCode(io::Printer* printer) const;
106
- void GenerateSerializedSizeCode(io::Printer* printer) const;
107
- void GenerateFieldBuilderInitializationCode(io::Printer* printer) const;
108
- void GenerateEqualsCode(io::Printer* printer) const;
109
- void GenerateHashCode(io::Printer* printer) const;
110
-
111
- string GetBoxedType() const;
112
-
113
- private:
114
- const FieldDescriptor* descriptor_;
115
- map<string, string> variables_;
116
- const int messageBitIndex_;
117
- const int builderBitIndex_;
118
-
119
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(RepeatedMessageFieldGenerator);
120
-
121
- void PrintNestedBuilderCondition(io::Printer* printer,
122
- const char* regular_case, const char* nested_builder_case) const;
123
- void PrintNestedBuilderFunction(io::Printer* printer,
124
- const char* method_prototype, const char* regular_case,
125
- const char* nested_builder_case,
126
- const char* trailing_code) const;
127
- };
128
-
129
- } // namespace java
130
- } // namespace compiler
131
- } // namespace protobuf
132
-
133
- } // namespace google
134
- #endif // GOOGLE_PROTOBUF_COMPILER_JAVA_MESSAGE_FIELD_H__
@@ -1,121 +0,0 @@
1
- // Protocol Buffers - Google's data interchange format
2
- // Copyright 2008 Google Inc. All rights reserved.
3
- // http://code.google.com/p/protobuf/
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: kenton@google.com (Kenton Varda)
32
- // Based on original Protocol Buffers design by
33
- // Sanjay Ghemawat, Jeff Dean, and others.
34
-
35
- #ifndef GOOGLE_PROTOBUF_COMPILER_JAVA_PRIMITIVE_FIELD_H__
36
- #define GOOGLE_PROTOBUF_COMPILER_JAVA_PRIMITIVE_FIELD_H__
37
-
38
- #include <map>
39
- #include <string>
40
- #include <google/protobuf/compiler/java/java_field.h>
41
-
42
- namespace google {
43
- namespace protobuf {
44
- namespace compiler {
45
- namespace java {
46
-
47
- class PrimitiveFieldGenerator : public FieldGenerator {
48
- public:
49
- explicit PrimitiveFieldGenerator(const FieldDescriptor* descriptor,
50
- int messageBitIndex, int builderBitIndex);
51
- ~PrimitiveFieldGenerator();
52
-
53
- // implements FieldGenerator ---------------------------------------
54
- int GetNumBitsForMessage() const;
55
- int GetNumBitsForBuilder() const;
56
- void GenerateInterfaceMembers(io::Printer* printer) const;
57
- void GenerateMembers(io::Printer* printer) const;
58
- void GenerateBuilderMembers(io::Printer* printer) const;
59
- void GenerateInitializationCode(io::Printer* printer) const;
60
- void GenerateBuilderClearCode(io::Printer* printer) const;
61
- void GenerateMergingCode(io::Printer* printer) const;
62
- void GenerateBuildingCode(io::Printer* printer) const;
63
- void GenerateParsingCode(io::Printer* printer) const;
64
- void GenerateSerializationCode(io::Printer* printer) const;
65
- void GenerateSerializedSizeCode(io::Printer* printer) const;
66
- void GenerateFieldBuilderInitializationCode(io::Printer* printer) const;
67
- void GenerateEqualsCode(io::Printer* printer) const;
68
- void GenerateHashCode(io::Printer* printer) const;
69
-
70
- string GetBoxedType() const;
71
-
72
- private:
73
- const FieldDescriptor* descriptor_;
74
- map<string, string> variables_;
75
- const int messageBitIndex_;
76
- const int builderBitIndex_;
77
-
78
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(PrimitiveFieldGenerator);
79
- };
80
-
81
- class RepeatedPrimitiveFieldGenerator : public FieldGenerator {
82
- public:
83
- explicit RepeatedPrimitiveFieldGenerator(const FieldDescriptor* descriptor,
84
- int messageBitIndex, int builderBitIndex);
85
- ~RepeatedPrimitiveFieldGenerator();
86
-
87
- // implements FieldGenerator ---------------------------------------
88
- int GetNumBitsForMessage() const;
89
- int GetNumBitsForBuilder() const;
90
- void GenerateInterfaceMembers(io::Printer* printer) const;
91
- void GenerateMembers(io::Printer* printer) const;
92
- void GenerateBuilderMembers(io::Printer* printer) const;
93
- void GenerateInitializationCode(io::Printer* printer) const;
94
- void GenerateBuilderClearCode(io::Printer* printer) const;
95
- void GenerateMergingCode(io::Printer* printer) const;
96
- void GenerateBuildingCode(io::Printer* printer) const;
97
- void GenerateParsingCode(io::Printer* printer) const;
98
- void GenerateParsingCodeFromPacked(io::Printer* printer) const;
99
- void GenerateSerializationCode(io::Printer* printer) const;
100
- void GenerateSerializedSizeCode(io::Printer* printer) const;
101
- void GenerateFieldBuilderInitializationCode(io::Printer* printer) const;
102
- void GenerateEqualsCode(io::Printer* printer) const;
103
- void GenerateHashCode(io::Printer* printer) const;
104
-
105
- string GetBoxedType() const;
106
-
107
- private:
108
- const FieldDescriptor* descriptor_;
109
- map<string, string> variables_;
110
- const int messageBitIndex_;
111
- const int builderBitIndex_;
112
-
113
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(RepeatedPrimitiveFieldGenerator);
114
- };
115
-
116
- } // namespace java
117
- } // namespace compiler
118
- } // namespace protobuf
119
-
120
- } // namespace google
121
- #endif // GOOGLE_PROTOBUF_COMPILER_JAVA_PRIMITIVE_FIELD_H__
@@ -1,113 +0,0 @@
1
- // Protocol Buffers - Google's data interchange format
2
- // Copyright 2008 Google Inc. All rights reserved.
3
- // http://code.google.com/p/protobuf/
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: kenton@google.com (Kenton Varda)
32
- // Based on original Protocol Buffers design by
33
- // Sanjay Ghemawat, Jeff Dean, and others.
34
-
35
- #ifndef GOOGLE_PROTOBUF_COMPILER_JAVA_SERVICE_H__
36
- #define GOOGLE_PROTOBUF_COMPILER_JAVA_SERVICE_H__
37
-
38
- #include <map>
39
- #include <google/protobuf/descriptor.h>
40
-
41
- namespace google {
42
- namespace protobuf {
43
- namespace io {
44
- class Printer; // printer.h
45
- }
46
- }
47
-
48
- namespace protobuf {
49
- namespace compiler {
50
- namespace java {
51
-
52
- class ServiceGenerator {
53
- public:
54
- explicit ServiceGenerator(const ServiceDescriptor* descriptor);
55
- ~ServiceGenerator();
56
-
57
- void Generate(io::Printer* printer);
58
-
59
- private:
60
-
61
- // Generate the getDescriptorForType() method.
62
- void GenerateGetDescriptorForType(io::Printer* printer);
63
-
64
- // Generate a Java interface for the service.
65
- void GenerateInterface(io::Printer* printer);
66
-
67
- // Generate newReflectiveService() method.
68
- void GenerateNewReflectiveServiceMethod(io::Printer* printer);
69
-
70
- // Generate newReflectiveBlockingService() method.
71
- void GenerateNewReflectiveBlockingServiceMethod(io::Printer* printer);
72
-
73
- // Generate abstract method declarations for all methods.
74
- void GenerateAbstractMethods(io::Printer* printer);
75
-
76
- // Generate the implementation of Service.callMethod().
77
- void GenerateCallMethod(io::Printer* printer);
78
-
79
- // Generate the implementation of BlockingService.callBlockingMethod().
80
- void GenerateCallBlockingMethod(io::Printer* printer);
81
-
82
- // Generate the implementations of Service.get{Request,Response}Prototype().
83
- enum RequestOrResponse { REQUEST, RESPONSE };
84
- void GenerateGetPrototype(RequestOrResponse which, io::Printer* printer);
85
-
86
- // Generate a stub implementation of the service.
87
- void GenerateStub(io::Printer* printer);
88
-
89
- // Generate a method signature, possibly abstract, without body or trailing
90
- // semicolon.
91
- enum IsAbstract { IS_ABSTRACT, IS_CONCRETE };
92
- void GenerateMethodSignature(io::Printer* printer,
93
- const MethodDescriptor* method,
94
- IsAbstract is_abstract);
95
-
96
- // Generate a blocking stub interface and implementation of the service.
97
- void GenerateBlockingStub(io::Printer* printer);
98
-
99
- // Generate the method signature for one method of a blocking stub.
100
- void GenerateBlockingMethodSignature(io::Printer* printer,
101
- const MethodDescriptor* method);
102
-
103
- const ServiceDescriptor* descriptor_;
104
-
105
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(ServiceGenerator);
106
- };
107
-
108
- } // namespace java
109
- } // namespace compiler
110
- } // namespace protobuf
111
-
112
- #endif // NET_PROTO2_COMPILER_JAVA_SERVICE_H__
113
- } // namespace google