summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefan Radomski <radomski@tk.informatik.tu-darmstadt.de>2013-05-14 14:29:19 (GMT)
committerStefan Radomski <radomski@tk.informatik.tu-darmstadt.de>2013-05-14 14:29:19 (GMT)
commita154682fc1b25581742d38dd5fe9aa06ede167b7 (patch)
tree7574933b0cc8767a963ca1198425ba9e071374c6
parenta49c068652d82ab40386bb702d0bd01e46015e7c (diff)
downloaduscxml-a154682fc1b25581742d38dd5fe9aa06ede167b7.zip
uscxml-a154682fc1b25581742d38dd5fe9aa06ede167b7.tar.gz
uscxml-a154682fc1b25581742d38dd5fe9aa06ede167b7.tar.bz2
Fixed bugs and worked on MMI bridge
-rw-r--r--CMakeLists.txt125
-rw-r--r--contrib/cmake/FindSWI.cmake4
-rw-r--r--contrib/prebuilt/include/google/protobuf/compiler/code_generator.h142
-rw-r--r--contrib/prebuilt/include/google/protobuf/compiler/command_line_interface.h318
-rw-r--r--contrib/prebuilt/include/google/protobuf/compiler/cpp/cpp_enum.h99
-rw-r--r--contrib/prebuilt/include/google/protobuf/compiler/cpp/cpp_enum_field.h103
-rw-r--r--contrib/prebuilt/include/google/protobuf/compiler/cpp/cpp_extension.h85
-rw-r--r--contrib/prebuilt/include/google/protobuf/compiler/cpp/cpp_field.h167
-rw-r--r--contrib/prebuilt/include/google/protobuf/compiler/cpp/cpp_file.h98
-rw-r--r--contrib/prebuilt/include/google/protobuf/compiler/cpp/cpp_generator.h72
-rw-r--r--contrib/prebuilt/include/google/protobuf/compiler/cpp/cpp_helpers.h159
-rw-r--r--contrib/prebuilt/include/google/protobuf/compiler/cpp/cpp_message.h170
-rw-r--r--contrib/prebuilt/include/google/protobuf/compiler/cpp/cpp_message_field.h102
-rw-r--r--contrib/prebuilt/include/google/protobuf/compiler/cpp/cpp_primitive_field.h103
-rw-r--r--contrib/prebuilt/include/google/protobuf/compiler/cpp/cpp_service.h118
-rw-r--r--contrib/prebuilt/include/google/protobuf/compiler/cpp/cpp_string_field.h104
-rw-r--r--contrib/prebuilt/include/google/protobuf/compiler/importer.h303
-rw-r--r--contrib/prebuilt/include/google/protobuf/compiler/java/java_enum.h84
-rw-r--r--contrib/prebuilt/include/google/protobuf/compiler/java/java_enum_field.h121
-rw-r--r--contrib/prebuilt/include/google/protobuf/compiler/java/java_extension.h77
-rw-r--r--contrib/prebuilt/include/google/protobuf/compiler/java/java_field.h108
-rw-r--r--contrib/prebuilt/include/google/protobuf/compiler/java/java_file.h101
-rw-r--r--contrib/prebuilt/include/google/protobuf/compiler/java/java_generator.h72
-rw-r--r--contrib/prebuilt/include/google/protobuf/compiler/java/java_helpers.h213
-rw-r--r--contrib/prebuilt/include/google/protobuf/compiler/java/java_message.h109
-rw-r--r--contrib/prebuilt/include/google/protobuf/compiler/java/java_message_field.h134
-rw-r--r--contrib/prebuilt/include/google/protobuf/compiler/java/java_primitive_field.h121
-rw-r--r--contrib/prebuilt/include/google/protobuf/compiler/java/java_service.h113
-rw-r--r--contrib/prebuilt/include/google/protobuf/compiler/java/java_string_field.h120
-rw-r--r--contrib/prebuilt/include/google/protobuf/compiler/parser.h434
-rw-r--r--contrib/prebuilt/include/google/protobuf/compiler/plugin.h73
-rw-r--r--contrib/prebuilt/include/google/protobuf/compiler/plugin.pb.h790
-rw-r--r--contrib/prebuilt/include/google/protobuf/compiler/plugin.proto145
-rw-r--r--contrib/prebuilt/include/google/protobuf/compiler/python/python_generator.h156
-rw-r--r--contrib/prebuilt/include/google/protobuf/descriptor.h1367
-rw-r--r--contrib/prebuilt/include/google/protobuf/descriptor.pb.h5223
-rw-r--r--contrib/prebuilt/include/google/protobuf/descriptor.proto533
-rw-r--r--contrib/prebuilt/include/google/protobuf/descriptor_database.h366
-rw-r--r--contrib/prebuilt/include/google/protobuf/dynamic_message.h136
-rw-r--r--contrib/prebuilt/include/google/protobuf/extension_set.h904
-rw-r--r--contrib/prebuilt/include/google/protobuf/generated_message_reflection.h424
-rw-r--r--contrib/prebuilt/include/google/protobuf/generated_message_util.h82
-rw-r--r--contrib/prebuilt/include/google/protobuf/io/coded_stream.h1102
-rw-r--r--contrib/prebuilt/include/google/protobuf/io/gzip_stream.h207
-rw-r--r--contrib/prebuilt/include/google/protobuf/io/printer.h136
-rw-r--r--contrib/prebuilt/include/google/protobuf/io/tokenizer.h313
-rw-r--r--contrib/prebuilt/include/google/protobuf/io/zero_copy_stream.h238
-rw-r--r--contrib/prebuilt/include/google/protobuf/io/zero_copy_stream_impl.h357
-rw-r--r--contrib/prebuilt/include/google/protobuf/io/zero_copy_stream_impl_lite.h340
-rw-r--r--contrib/prebuilt/include/google/protobuf/message.h692
-rw-r--r--contrib/prebuilt/include/google/protobuf/message_lite.h239
-rw-r--r--contrib/prebuilt/include/google/protobuf/reflection_ops.h80
-rw-r--r--contrib/prebuilt/include/google/protobuf/repeated_field.h1295
-rw-r--r--contrib/prebuilt/include/google/protobuf/service.h291
-rw-r--r--contrib/prebuilt/include/google/protobuf/stubs/common.h1211
-rw-r--r--contrib/prebuilt/include/google/protobuf/stubs/once.h123
-rw-r--r--contrib/prebuilt/include/google/protobuf/text_format.h285
-rw-r--r--contrib/prebuilt/include/google/protobuf/unknown_field_set.h268
-rw-r--r--contrib/prebuilt/include/google/protobuf/wire_format.h304
-rw-r--r--contrib/prebuilt/include/google/protobuf/wire_format_lite.h620
-rw-r--r--contrib/prebuilt/include/google/protobuf/wire_format_lite_inl.h774
-rw-r--r--src/bindings/swig/php/uscxmlNativePHP.php8
-rw-r--r--src/uscxml/CMakeLists.txt41
-rw-r--r--src/uscxml/Factory.cpp5
-rw-r--r--src/uscxml/Message.cpp5
-rw-r--r--src/uscxml/plugins/datamodel/CMakeLists.txt54
-rw-r--r--src/uscxml/plugins/datamodel/xpath/XPathDataModel.cpp13
-rw-r--r--src/uscxml/plugins/element/CMakeLists.txt14
-rw-r--r--src/uscxml/plugins/invoker/CMakeLists.txt102
-rw-r--r--src/uscxml/plugins/invoker/vxml/VoiceXMLInvoker.cpp67
-rw-r--r--src/uscxml/plugins/invoker/vxml/VoiceXMLInvoker.h51
-rw-r--r--src/uscxml/plugins/ioprocessor/CMakeLists.txt57
-rw-r--r--src/uscxml/plugins/ioprocessor/modality/MMIComponent.cpp22
-rw-r--r--src/uscxml/plugins/ioprocessor/modality/MMIComponent.h43
-rw-r--r--src/uscxml/plugins/ioprocessor/modality/MMIInvokerImpl.h12
-rw-r--r--src/uscxml/plugins/ioprocessor/modality/MMIProtoBridge.cpp113
-rw-r--r--src/uscxml/plugins/ioprocessor/modality/MMIProtoBridge.h34
-rw-r--r--test/CMakeLists.txt10
-rw-r--r--test/samples/uscxml/test-jvoicexml.scxml57
-rw-r--r--test/src/test-mmi.cpp4
-rw-r--r--test/src/test-url.cpp358
81 files changed, 820 insertions, 23403 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 8e83d39..a07668c 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -277,8 +277,11 @@ else()
endif()
# prefer static libraries for linking
+set(CMAKE_FIND_LIBRARY_SUFFIXES_SHARED ${CMAKE_FIND_LIBRARY_SUFFIXES})
+set(CMAKE_FIND_LIBRARY_SUFFIXES_STATIC .lib .a ${CMAKE_FIND_LIBRARY_SUFFIXES})
+
if(BUILD_PREFER_STATIC_LIBRARIES)
- SET(CMAKE_FIND_LIBRARY_SUFFIXES .lib .a ${CMAKE_FIND_LIBRARY_SUFFIXES})
+ SET(CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES_STATIC})
endif()
# where should libraries end up?
@@ -322,6 +325,7 @@ include_directories(src)
if (NOT WIN32)
# libxml2
+ set(CMAKE_FIND_FRAMEWORK "LAST")
find_package(LibXml2 REQUIRED)
include_directories(${LIBXML2_INCLUDE_DIR})
list (APPEND USCXML_CORE_LIBS ${LIBXML2_LIBRARIES})
@@ -344,10 +348,6 @@ if (WIN32)
add_definitions("-DCURL_STATICLIB")
endif()
-# prefer rest as static libraries
-set(CMAKE_FIND_LIBRARY_SUFFIXES_ORIG ${CMAKE_FIND_LIBRARY_SUFFIXES})
-set(CMAKE_FIND_LIBRARY_SUFFIXES .lib .a ${CMAKE_FIND_LIBRARY_SUFFIXES})
-
# GLOG
# set(ENV{GLOG_SRC} ${CMAKE_SOURCE_DIR}/../glog)
find_package(GLOG REQUIRED)
@@ -375,12 +375,90 @@ include_directories(${EVENT_INCLUDE_DIR})
list (APPEND USCXML_CORE_LIBS ${EVENT_LIBRARY})
#################################################
+# Optional libraries
+
+find_package(V8)
+if (V8_FOUND)
+ include_directories(${V8_INCLUDE_DIR})
+ list (APPEND USCXML_OPT_LIBS ${V8_LIBRARY})
+endif()
+
+set(CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES_SHARED})
+find_package(GMP)
+find_package(SWI)
+find_package(CURSES)
+if (SWI_FOUND AND GMP_FOUND AND CURSES_FOUND)
+ include_directories(${SWI_INCLUDE_DIR})
+ include_directories(${GMP_INCLUDE_DIR})
+ include_directories(${CURSES_INCLUDE_DIR})
+ list (APPEND USCXML_OPT_LIBS ${SWI_LIBRARY} ${GMP_LIBRARY} ${CURSES_LIBRARIES})
+else()
+ set(SWI_FOUND OFF)
+endif()
+set(CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES_STATIC})
+
+find_package(Sqlite3)
+if (SQLITE3_FOUND)
+endif()
+
+find_package(FFMPEG)
+if (FFMPEG_FOUND)
+ include_directories (${FFMPEG_INCLUDE_DIR})
+endif()
+
+if (WIN32)
+ find_package(UMUNDO COMPONENTS convenience)
+else()
+ find_package(UMUNDO COMPONENTS rpc serial core)
+endif()
+if (UMUNDO_FOUND)
+ include_directories (${UMUNDO_INCLUDE_DIR})
+ list (APPEND USCXML_OPT_LIBS ${UMUNDO_LIBRARIES})
+# add_definitions("-DUMUNDO_STATIC")
+endif()
+
+if (UNIX)
+ set(CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES_SHARED}) # link dynamically!
+elseif(WIN32)
+ if (ENV{OSG_ROOT} STREQUAL "")
+ set(ENV{OSG_ROOT} "C:/Program Files/OpenSceneGraph-3.0.1")
+ endif()
+endif()
+find_package(OpenSceneGraph COMPONENTS osgViewer osgGA osgText osgFX osgManipulator osgDB osgUtil OpenThreads)
+find_package(OpenGL)
+if (OPENSCENEGRAPH_FOUND AND OPENGL_FOUND)
+ include_directories (${OPENSCENEGRAPH_INCLUDE_DIRS})
+ include_directories (${OPENGL_INCLUDE_DIR})
+ list (APPEND USCXML_OPT_LIBS ${OPENSCENEGRAPH_LIBRARIES} ${OPENGL_LIBRARIES})
+endif()
+if (UNIX)
+ set(CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES_STATIC})
+endif()
+
+find_package(MILES)
+if (MILES_FOUND AND OFF)
+ include_directories (${MILES_INCLUDE_DIR})
+ list (APPEND USCXML_OPT_LIBS ${MILES_LIBRARIES})
+ list (APPEND USCXML_OPT_LIBS ${OPENAL_LIBRARY})
+endif()
+
+set(CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES_SHARED})
+find_package(Protobuf)
+if (PROTOBUF_FOUND)
+ include_directories(${PROTOBUF_INCLUDE_DIRS})
+ LIST(APPEND USCXML_OPT_LIBS optimized ${PROTOBUF_LIBRARY})
+ LIST(APPEND USCXML_OPT_LIBS debug ${PROTOBUF_LIBRARY_DEBUG})
+endif()
+set(CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES_STATIC})
+
+#################################################
# Gather source files
+#################################################
# we use include instead of add_subdirectory because
# source groups do not work otherwise.
-include(src/uscxml/CMakeLists.txt)
+add_subdirectory(src/uscxml)
include_directories(${USCXML_INCLUDE_DIRS})
if (UNIX AND NOT APPLE)
@@ -391,13 +469,46 @@ endif()
# Binaries and tests
############################################################
+# we cannot use source groups in sub directories!
+foreach( FILE ${USCXML_FILES} )
+ get_filename_component(PATH ${FILE} PATH)
+
+ if (${PATH} MATCHES ".*datamodel\\/ecmascript.*")
+ STRING(REGEX MATCH "[^\\/]*$" COMP_NAME ${PATH})
+ source_group("Datamodel\\EcmaScript\\${COMP_NAME}" FILES ${FILE})
+ elseif (${PATH} MATCHES ".*datamodel\\/prolog.*")
+ STRING(REGEX MATCH "[^\\/]*$" COMP_NAME ${PATH})
+ source_group("Datamodel\\Prolog\\${COMP_NAME}" FILES ${FILE})
+ elseif (${PATH} MATCHES ".*datamodel\\/xpath.*")
+ source_group("Datamodel\\XPath" FILES ${FILE})
+ elseif (${PATH} MATCHES ".*datamodel\\/null.*")
+ source_group("Datamodel\\NULL" FILES ${FILE})
+
+ elseif (${PATH} MATCHES ".*\\/invoker\\/.*")
+ STRING(REGEX MATCH "[^\\/]*$" COMP_NAME ${PATH})
+ source_group("Invoker\\${COMP_NAME}" FILES ${FILE})
+
+ elseif (${PATH} MATCHES ".*\\/element\\/.*")
+ STRING(REGEX MATCH "[^\\/]*$" COMP_NAME ${PATH})
+ source_group("Element\\${COMP_NAME}" FILES ${FILE})
+
+ elseif (${PATH} MATCHES ".*\\/ioprocessor\\/.*")
+ STRING(REGEX MATCH "[^\\/]*$" COMP_NAME ${PATH})
+ source_group("IOProcessor\\${COMP_NAME}" FILES ${FILE})
+
+ else ()
+ source_group(Interpreter FILES ${FILE})
+ endif()
+endforeach()
+
# build library
if (BUILD_AS_PLUGINS)
add_library(uscxml ${USCXML_FILES})
+ target_link_libraries(uscxml ${USCXML_CORE_LIBS})
else()
add_library(uscxml ${USCXML_FILES})
+ target_link_libraries(uscxml ${USCXML_OPT_LIBS} ${USCXML_CORE_LIBS})
endif()
-target_link_libraries(uscxml ${USCXML_OPT_LIBS} ${USCXML_CORE_LIBS})
add_executable(mmi-browser apps/mmi-browser.cpp ${PROJECT_SOURCE_DIR}/contrib/src/getopt/XGetopt.cpp)
target_link_libraries(mmi-browser uscxml)
diff --git a/contrib/cmake/FindSWI.cmake b/contrib/cmake/FindSWI.cmake
index 3a10269..976a19a 100644
--- a/contrib/cmake/FindSWI.cmake
+++ b/contrib/cmake/FindSWI.cmake
@@ -22,7 +22,7 @@ endif()
set (SWI_SEARCH_PATHS)
list (APPEND SWI_SEARCH_PATHS
- $ENV{SWI_DIR}
+ $ENV{SWI_HOME}
${CMAKE_FIND_ROOT_PATH}
"/usr/lib/swi-prolog/"
"/opt/local/"
@@ -52,7 +52,7 @@ endforeach()
# -- find prolog headers
FIND_PATH(SWI_INCLUDE_DIR SWI-Prolog.h
PATH_SUFFIXES
- include
+ include
lib/swipl-${SWI_VERSION}/include
PATHS ${SWI_SEARCH_PATHS}
)
diff --git a/contrib/prebuilt/include/google/protobuf/compiler/code_generator.h b/contrib/prebuilt/include/google/protobuf/compiler/code_generator.h
deleted file mode 100644
index 252f68d..0000000
--- a/contrib/prebuilt/include/google/protobuf/compiler/code_generator.h
+++ /dev/null
@@ -1,142 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// http://code.google.com/p/protobuf/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Author: kenton@google.com (Kenton Varda)
-// Based on original Protocol Buffers design by
-// Sanjay Ghemawat, Jeff Dean, and others.
-//
-// Defines the abstract interface implemented by each of the language-specific
-// code generators.
-
-#ifndef GOOGLE_PROTOBUF_COMPILER_CODE_GENERATOR_H__
-#define GOOGLE_PROTOBUF_COMPILER_CODE_GENERATOR_H__
-
-#include <google/protobuf/stubs/common.h>
-#include <string>
-#include <vector>
-#include <utility>
-
-namespace google {
-namespace protobuf {
-
-namespace io { class ZeroCopyOutputStream; }
-class FileDescriptor;
-
-namespace compiler {
-
-// Defined in this file.
-class CodeGenerator;
-class GeneratorContext;
-
-// The abstract interface to a class which generates code implementing a
-// particular proto file in a particular language. A number of these may
-// be registered with CommandLineInterface to support various languages.
-class LIBPROTOC_EXPORT CodeGenerator {
- public:
- inline CodeGenerator() {}
- virtual ~CodeGenerator();
-
- // Generates code for the given proto file, generating one or more files in
- // the given output directory.
- //
- // A parameter to be passed to the generator can be specified on the
- // command line. This is intended to be used by Java and similar languages
- // to specify which specific class from the proto file is to be generated,
- // though it could have other uses as well. It is empty if no parameter was
- // given.
- //
- // Returns true if successful. Otherwise, sets *error to a description of
- // the problem (e.g. "invalid parameter") and returns false.
- virtual bool Generate(const FileDescriptor* file,
- const string& parameter,
- GeneratorContext* generator_context,
- string* error) const = 0;
-
- private:
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(CodeGenerator);
-};
-
-// CodeGenerators generate one or more files in a given directory. This
-// abstract interface represents the directory to which the CodeGenerator is
-// to write and other information about the context in which the Generator
-// runs.
-class LIBPROTOC_EXPORT GeneratorContext {
- public:
- inline GeneratorContext() {}
- virtual ~GeneratorContext();
-
- // Opens the given file, truncating it if it exists, and returns a
- // ZeroCopyOutputStream that writes to the file. The caller takes ownership
- // of the returned object. This method never fails (a dummy stream will be
- // returned instead).
- //
- // The filename given should be relative to the root of the source tree.
- // E.g. the C++ generator, when generating code for "foo/bar.proto", will
- // generate the files "foo/bar.pb.h" and "foo/bar.pb.cc"; note that
- // "foo/" is included in these filenames. The filename is not allowed to
- // contain "." or ".." components.
- virtual io::ZeroCopyOutputStream* Open(const string& filename) = 0;
-
- // Creates a ZeroCopyOutputStream which will insert code into the given file
- // at the given insertion point. See plugin.proto (plugin.pb.h) for more
- // information on insertion points. The default implementation
- // assert-fails -- it exists only for backwards-compatibility.
- //
- // WARNING: This feature is currently EXPERIMENTAL and is subject to change.
- virtual io::ZeroCopyOutputStream* OpenForInsert(
- const string& filename, const string& insertion_point);
-
- // Returns a vector of FileDescriptors for all the files being compiled
- // in this run. Useful for languages, such as Go, that treat files
- // differently when compiled as a set rather than individually.
- virtual void ListParsedFiles(vector<const FileDescriptor*>* output);
-
- private:
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(GeneratorContext);
-};
-
-// The type GeneratorContext was once called OutputDirectory. This typedef
-// provides backward compatibility.
-typedef GeneratorContext OutputDirectory;
-
-// Several code generators treat the parameter argument as holding a
-// list of options separated by commas. This helper function parses
-// a set of comma-delimited name/value pairs: e.g.,
-// "foo=bar,baz,qux=corge"
-// parses to the pairs:
-// ("foo", "bar"), ("baz", ""), ("qux", "corge")
-extern void ParseGeneratorParameter(const string&,
- vector<pair<string, string> >*);
-
-} // namespace compiler
-} // namespace protobuf
-
-} // namespace google
-#endif // GOOGLE_PROTOBUF_COMPILER_CODE_GENERATOR_H__
diff --git a/contrib/prebuilt/include/google/protobuf/compiler/command_line_interface.h b/contrib/prebuilt/include/google/protobuf/compiler/command_line_interface.h
deleted file mode 100644
index 0b507d8..0000000
--- a/contrib/prebuilt/include/google/protobuf/compiler/command_line_interface.h
+++ /dev/null
@@ -1,318 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// http://code.google.com/p/protobuf/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Author: kenton@google.com (Kenton Varda)
-// Based on original Protocol Buffers design by
-// Sanjay Ghemawat, Jeff Dean, and others.
-//
-// Implements the Protocol Compiler front-end such that it may be reused by
-// custom compilers written to support other languages.
-
-#ifndef GOOGLE_PROTOBUF_COMPILER_COMMAND_LINE_INTERFACE_H__
-#define GOOGLE_PROTOBUF_COMPILER_COMMAND_LINE_INTERFACE_H__
-
-#include <google/protobuf/stubs/common.h>
-#include <string>
-#include <vector>
-#include <map>
-#include <set>
-#include <utility>
-
-namespace google {
-namespace protobuf {
-
-class FileDescriptor; // descriptor.h
-class DescriptorPool; // descriptor.h
-class FileDescriptorProto; // descriptor.pb.h
-template<typename T> class RepeatedPtrField; // repeated_field.h
-
-namespace compiler {
-
-class CodeGenerator; // code_generator.h
-class GeneratorContext; // code_generator.h
-class DiskSourceTree; // importer.h
-
-// This class implements the command-line interface to the protocol compiler.
-// It is designed to make it very easy to create a custom protocol compiler
-// supporting the languages of your choice. For example, if you wanted to
-// create a custom protocol compiler binary which includes both the regular
-// C++ support plus support for your own custom output "Foo", you would
-// write a class "FooGenerator" which implements the CodeGenerator interface,
-// then write a main() procedure like this:
-//
-// int main(int argc, char* argv[]) {
-// google::protobuf::compiler::CommandLineInterface cli;
-//
-// // Support generation of C++ source and headers.
-// google::protobuf::compiler::cpp::CppGenerator cpp_generator;
-// cli.RegisterGenerator("--cpp_out", &cpp_generator,
-// "Generate C++ source and header.");
-//
-// // Support generation of Foo code.
-// FooGenerator foo_generator;
-// cli.RegisterGenerator("--foo_out", &foo_generator,
-// "Generate Foo file.");
-//
-// return cli.Run(argc, argv);
-// }
-//
-// The compiler is invoked with syntax like:
-// protoc --cpp_out=outdir --foo_out=outdir --proto_path=src src/foo.proto
-//
-// For a full description of the command-line syntax, invoke it with --help.
-class LIBPROTOC_EXPORT CommandLineInterface {
- public:
- CommandLineInterface();
- ~CommandLineInterface();
-
- // Register a code generator for a language.
- //
- // Parameters:
- // * flag_name: The command-line flag used to specify an output file of
- // this type. The name must start with a '-'. If the name is longer
- // than one letter, it must start with two '-'s.
- // * generator: The CodeGenerator which will be called to generate files
- // of this type.
- // * help_text: Text describing this flag in the --help output.
- //
- // Some generators accept extra parameters. You can specify this parameter
- // on the command-line by placing it before the output directory, separated
- // by a colon:
- // protoc --foo_out=enable_bar:outdir
- // The text before the colon is passed to CodeGenerator::Generate() as the
- // "parameter".
- void RegisterGenerator(const string& flag_name,
- CodeGenerator* generator,
- const string& help_text);
-
- // Enables "plugins". In this mode, if a command-line flag ends with "_out"
- // but does not match any registered generator, the compiler will attempt to
- // find a "plugin" to implement the generator. Plugins are just executables.
- // They should live somewhere in the PATH.
- //
- // The compiler determines the executable name to search for by concatenating
- // exe_name_prefix with the unrecognized flag name, removing "_out". So, for
- // example, if exe_name_prefix is "protoc-" and you pass the flag --foo_out,
- // the compiler will try to run the program "protoc-foo".
- //
- // The plugin program should implement the following usage:
- // plugin [--out=OUTDIR] [--parameter=PARAMETER] PROTO_FILES < DESCRIPTORS
- // --out indicates the output directory (as passed to the --foo_out
- // parameter); if omitted, the current directory should be used. --parameter
- // gives the generator parameter, if any was provided. The PROTO_FILES list
- // the .proto files which were given on the compiler command-line; these are
- // the files for which the plugin is expected to generate output code.
- // Finally, DESCRIPTORS is an encoded FileDescriptorSet (as defined in
- // descriptor.proto). This is piped to the plugin's stdin. The set will
- // include descriptors for all the files listed in PROTO_FILES as well as
- // all files that they import. The plugin MUST NOT attempt to read the
- // PROTO_FILES directly -- it must use the FileDescriptorSet.
- //
- // The plugin should generate whatever files are necessary, as code generators
- // normally do. It should write the names of all files it generates to
- // stdout. The names should be relative to the output directory, NOT absolute
- // names or relative to the current directory. If any errors occur, error
- // messages should be written to stderr. If an error is fatal, the plugin
- // should exit with a non-zero exit code.
- void AllowPlugins(const string& exe_name_prefix);
-
- // Run the Protocol Compiler with the given command-line parameters.
- // Returns the error code which should be returned by main().
- //
- // It may not be safe to call Run() in a multi-threaded environment because
- // it calls strerror(). I'm not sure why you'd want to do this anyway.
- int Run(int argc, const char* const argv[]);
-
- // Call SetInputsAreCwdRelative(true) if the input files given on the command
- // line should be interpreted relative to the proto import path specified
- // using --proto_path or -I flags. Otherwise, input file names will be
- // interpreted relative to the current working directory (or as absolute
- // paths if they start with '/'), though they must still reside inside
- // a directory given by --proto_path or the compiler will fail. The latter
- // mode is generally more intuitive and easier to use, especially e.g. when
- // defining implicit rules in Makefiles.
- void SetInputsAreProtoPathRelative(bool enable) {
- inputs_are_proto_path_relative_ = enable;
- }
-
- // Provides some text which will be printed when the --version flag is
- // used. The version of libprotoc will also be printed on the next line
- // after this text.
- void SetVersionInfo(const string& text) {
- version_info_ = text;
- }
-
-
- private:
- // -----------------------------------------------------------------
-
- class ErrorPrinter;
- class GeneratorContextImpl;
- class MemoryOutputStream;
-
- // Clear state from previous Run().
- void Clear();
-
- // Remaps each file in input_files_ so that it is relative to one of the
- // directories in proto_path_. Returns false if an error occurred. This
- // is only used if inputs_are_proto_path_relative_ is false.
- bool MakeInputsBeProtoPathRelative(
- DiskSourceTree* source_tree);
-
- // Parse all command-line arguments.
- bool ParseArguments(int argc, const char* const argv[]);
-
- // Parses a command-line argument into a name/value pair. Returns
- // true if the next argument in the argv should be used as the value,
- // false otherwise.
- //
- // Exmaples:
- // "-Isrc/protos" ->
- // name = "-I", value = "src/protos"
- // "--cpp_out=src/foo.pb2.cc" ->
- // name = "--cpp_out", value = "src/foo.pb2.cc"
- // "foo.proto" ->
- // name = "", value = "foo.proto"
- bool ParseArgument(const char* arg, string* name, string* value);
-
- // Interprets arguments parsed with ParseArgument.
- bool InterpretArgument(const string& name, const string& value);
-
- // Print the --help text to stderr.
- void PrintHelpText();
-
- // Generate the given output file from the given input.
- struct OutputDirective; // see below
- bool GenerateOutput(const vector<const FileDescriptor*>& parsed_files,
- const OutputDirective& output_directive,
- GeneratorContext* generator_context);
- bool GeneratePluginOutput(const vector<const FileDescriptor*>& parsed_files,
- const string& plugin_name,
- const string& parameter,
- GeneratorContext* generator_context,
- string* error);
-
- // Implements --encode and --decode.
- bool EncodeOrDecode(const DescriptorPool* pool);
-
- // Implements the --descriptor_set_out option.
- bool WriteDescriptorSet(const vector<const FileDescriptor*> parsed_files);
-
- // Get all transitive dependencies of the given file (including the file
- // itself), adding them to the given list of FileDescriptorProtos. The
- // protos will be ordered such that every file is listed before any file that
- // depends on it, so that you can call DescriptorPool::BuildFile() on them
- // in order. Any files in *already_seen will not be added, and each file
- // added will be inserted into *already_seen.
- static void GetTransitiveDependencies(
- const FileDescriptor* file,
- set<const FileDescriptor*>* already_seen,
- RepeatedPtrField<FileDescriptorProto>* output);
-
- // -----------------------------------------------------------------
-
- // The name of the executable as invoked (i.e. argv[0]).
- string executable_name_;
-
- // Version info set with SetVersionInfo().
- string version_info_;
-
- // Map from flag names to registered generators.
- struct GeneratorInfo {
- CodeGenerator* generator;
- string help_text;
- };
- typedef map<string, GeneratorInfo> GeneratorMap;
- GeneratorMap generators_;
-
- // See AllowPlugins(). If this is empty, plugins aren't allowed.
- string plugin_prefix_;
-
- // Maps specific plugin names to files. When executing a plugin, this map
- // is searched first to find the plugin executable. If not found here, the
- // PATH (or other OS-specific search strategy) is searched.
- map<string, string> plugins_;
-
- // Stuff parsed from command line.
- enum Mode {
- MODE_COMPILE, // Normal mode: parse .proto files and compile them.
- MODE_ENCODE, // --encode: read text from stdin, write binary to stdout.
- MODE_DECODE // --decode: read binary from stdin, write text to stdout.
- };
-
- Mode mode_;
-
- enum ErrorFormat {
- ERROR_FORMAT_GCC, // GCC error output format (default).
- ERROR_FORMAT_MSVS // Visual Studio output (--error_format=msvs).
- };
-
- ErrorFormat error_format_;
-
- vector<pair<string, string> > proto_path_; // Search path for proto files.
- vector<string> input_files_; // Names of the input proto files.
-
- // output_directives_ lists all the files we are supposed to output and what
- // generator to use for each.
- struct OutputDirective {
- string name; // E.g. "--foo_out"
- CodeGenerator* generator; // NULL for plugins
- string parameter;
- string output_location;
- };
- vector<OutputDirective> output_directives_;
-
- // When using --encode or --decode, this names the type we are encoding or
- // decoding. (Empty string indicates --decode_raw.)
- string codec_type_;
-
- // If --descriptor_set_out was given, this is the filename to which the
- // FileDescriptorSet should be written. Otherwise, empty.
- string descriptor_set_name_;
-
- // True if --include_imports was given, meaning that we should
- // write all transitive dependencies to the DescriptorSet. Otherwise, only
- // the .proto files listed on the command-line are added.
- bool imports_in_descriptor_set_;
-
- // Was the --disallow_services flag used?
- bool disallow_services_;
-
- // See SetInputsAreProtoPathRelative().
- bool inputs_are_proto_path_relative_;
-
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(CommandLineInterface);
-};
-
-} // namespace compiler
-} // namespace protobuf
-
-} // namespace google
-#endif // GOOGLE_PROTOBUF_COMPILER_COMMAND_LINE_INTERFACE_H__
diff --git a/contrib/prebuilt/include/google/protobuf/compiler/cpp/cpp_enum.h b/contrib/prebuilt/include/google/protobuf/compiler/cpp/cpp_enum.h
deleted file mode 100644
index 58f7721..0000000
--- a/contrib/prebuilt/include/google/protobuf/compiler/cpp/cpp_enum.h
+++ /dev/null
@@ -1,99 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// http://code.google.com/p/protobuf/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Author: kenton@google.com (Kenton Varda)
-// Based on original Protocol Buffers design by
-// Sanjay Ghemawat, Jeff Dean, and others.
-
-#ifndef GOOGLE_PROTOBUF_COMPILER_CPP_ENUM_H__
-#define GOOGLE_PROTOBUF_COMPILER_CPP_ENUM_H__
-
-#include <string>
-#include <google/protobuf/descriptor.h>
-
-namespace google {
-namespace protobuf {
- namespace io {
- class Printer; // printer.h
- }
-}
-
-namespace protobuf {
-namespace compiler {
-namespace cpp {
-
-class EnumGenerator {
- public:
- // See generator.cc for the meaning of dllexport_decl.
- explicit EnumGenerator(const EnumDescriptor* descriptor,
- const string& dllexport_decl);
- ~EnumGenerator();
-
- // Header stuff.
-
- // Generate header code defining the enum. This code should be placed
- // within the enum's package namespace, but NOT within any class, even for
- // nested enums.
- void GenerateDefinition(io::Printer* printer);
-
- // Generate specialization of GetEnumDescriptor<MyEnum>().
- // Precondition: in ::google::protobuf namespace.
- void GenerateGetEnumDescriptorSpecializations(io::Printer* printer);
-
- // For enums nested within a message, generate code to import all the enum's
- // symbols (e.g. the enum type name, all its values, etc.) into the class's
- // namespace. This should be placed inside the class definition in the
- // header.
- void GenerateSymbolImports(io::Printer* printer);
-
- // Source file stuff.
-
- // Generate code that initializes the global variable storing the enum's
- // descriptor.
- void GenerateDescriptorInitializer(io::Printer* printer, int index);
-
- // Generate non-inline methods related to the enum, such as IsValidValue().
- // Goes in the .cc file.
- void GenerateMethods(io::Printer* printer);
-
- private:
- const EnumDescriptor* descriptor_;
- string classname_;
- string dllexport_decl_;
-
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(EnumGenerator);
-};
-
-} // namespace cpp
-} // namespace compiler
-} // namespace protobuf
-
-} // namespace google
-#endif // GOOGLE_PROTOBUF_COMPILER_CPP_ENUM_H__
diff --git a/contrib/prebuilt/include/google/protobuf/compiler/cpp/cpp_enum_field.h b/contrib/prebuilt/include/google/protobuf/compiler/cpp/cpp_enum_field.h
deleted file mode 100644
index 0793430..0000000
--- a/contrib/prebuilt/include/google/protobuf/compiler/cpp/cpp_enum_field.h
+++ /dev/null
@@ -1,103 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// http://code.google.com/p/protobuf/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Author: kenton@google.com (Kenton Varda)
-// Based on original Protocol Buffers design by
-// Sanjay Ghemawat, Jeff Dean, and others.
-
-#ifndef GOOGLE_PROTOBUF_COMPILER_CPP_ENUM_FIELD_H__
-#define GOOGLE_PROTOBUF_COMPILER_CPP_ENUM_FIELD_H__
-
-#include <map>
-#include <string>
-#include <google/protobuf/compiler/cpp/cpp_field.h>
-
-namespace google {
-namespace protobuf {
-namespace compiler {
-namespace cpp {
-
-class EnumFieldGenerator : public FieldGenerator {
- public:
- explicit EnumFieldGenerator(const FieldDescriptor* descriptor);
- ~EnumFieldGenerator();
-
- // implements FieldGenerator ---------------------------------------
- void GeneratePrivateMembers(io::Printer* printer) const;
- void GenerateAccessorDeclarations(io::Printer* printer) const;
- void GenerateInlineAccessorDefinitions(io::Printer* printer) const;
- void GenerateClearingCode(io::Printer* printer) const;
- void GenerateMergingCode(io::Printer* printer) const;
- void GenerateSwappingCode(io::Printer* printer) const;
- void GenerateConstructorCode(io::Printer* printer) const;
- void GenerateMergeFromCodedStream(io::Printer* printer) const;
- void GenerateSerializeWithCachedSizes(io::Printer* printer) const;
- void GenerateSerializeWithCachedSizesToArray(io::Printer* printer) const;
- void GenerateByteSize(io::Printer* printer) const;
-
- private:
- const FieldDescriptor* descriptor_;
- map<string, string> variables_;
-
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(EnumFieldGenerator);
-};
-
-class RepeatedEnumFieldGenerator : public FieldGenerator {
- public:
- explicit RepeatedEnumFieldGenerator(const FieldDescriptor* descriptor);
- ~RepeatedEnumFieldGenerator();
-
- // implements FieldGenerator ---------------------------------------
- void GeneratePrivateMembers(io::Printer* printer) const;
- void GenerateAccessorDeclarations(io::Printer* printer) const;
- void GenerateInlineAccessorDefinitions(io::Printer* printer) const;
- void GenerateClearingCode(io::Printer* printer) const;
- void GenerateMergingCode(io::Printer* printer) const;
- void GenerateSwappingCode(io::Printer* printer) const;
- void GenerateConstructorCode(io::Printer* printer) const;
- void GenerateMergeFromCodedStream(io::Printer* printer) const;
- void GenerateMergeFromCodedStreamWithPacking(io::Printer* printer) const;
- void GenerateSerializeWithCachedSizes(io::Printer* printer) const;
- void GenerateSerializeWithCachedSizesToArray(io::Printer* printer) const;
- void GenerateByteSize(io::Printer* printer) const;
-
- private:
- const FieldDescriptor* descriptor_;
- map<string, string> variables_;
-
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(RepeatedEnumFieldGenerator);
-};
-
-} // namespace cpp
-} // namespace compiler
-} // namespace protobuf
-
-} // namespace google
-#endif // GOOGLE_PROTOBUF_COMPILER_CPP_ENUM_FIELD_H__
diff --git a/contrib/prebuilt/include/google/protobuf/compiler/cpp/cpp_extension.h b/contrib/prebuilt/include/google/protobuf/compiler/cpp/cpp_extension.h
deleted file mode 100644
index 3068b09..0000000
--- a/contrib/prebuilt/include/google/protobuf/compiler/cpp/cpp_extension.h
+++ /dev/null
@@ -1,85 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// http://code.google.com/p/protobuf/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Author: kenton@google.com (Kenton Varda)
-// Based on original Protocol Buffers design by
-// Sanjay Ghemawat, Jeff Dean, and others.
-
-#ifndef GOOGLE_PROTOBUF_COMPILER_CPP_EXTENSION_H__
-#define GOOGLE_PROTOBUF_COMPILER_CPP_EXTENSION_H__
-
-#include <string>
-#include <google/protobuf/stubs/common.h>
-
-namespace google {
-namespace protobuf {
- class FieldDescriptor; // descriptor.h
- namespace io {
- class Printer; // printer.h
- }
-}
-
-namespace protobuf {
-namespace compiler {
-namespace cpp {
-
-// Generates code for an extension, which may be within the scope of some
-// message or may be at file scope. This is much simpler than FieldGenerator
-// since extensions are just simple identifiers with interesting types.
-class ExtensionGenerator {
- public:
- // See generator.cc for the meaning of dllexport_decl.
- explicit ExtensionGenerator(const FieldDescriptor* descriptor,
- const string& dllexport_decl);
- ~ExtensionGenerator();
-
- // Header stuff.
- void GenerateDeclaration(io::Printer* printer);
-
- // Source file stuff.
- void GenerateDefinition(io::Printer* printer);
-
- // Generate code to register the extension.
- void GenerateRegistration(io::Printer* printer);
-
- private:
- const FieldDescriptor* descriptor_;
- string type_traits_;
- string dllexport_decl_;
-
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(ExtensionGenerator);
-};
-
-} // namespace cpp
-} // namespace compiler
-} // namespace protobuf
-
-} // namespace google
-#endif // GOOGLE_PROTOBUF_COMPILER_CPP_MESSAGE_H__
diff --git a/contrib/prebuilt/include/google/protobuf/compiler/cpp/cpp_field.h b/contrib/prebuilt/include/google/protobuf/compiler/cpp/cpp_field.h
deleted file mode 100644
index c303a33..0000000
--- a/contrib/prebuilt/include/google/protobuf/compiler/cpp/cpp_field.h
+++ /dev/null
@@ -1,167 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// http://code.google.com/p/protobuf/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Author: kenton@google.com (Kenton Varda)
-// Based on original Protocol Buffers design by
-// Sanjay Ghemawat, Jeff Dean, and others.
-
-#ifndef GOOGLE_PROTOBUF_COMPILER_CPP_FIELD_H__
-#define GOOGLE_PROTOBUF_COMPILER_CPP_FIELD_H__
-
-#include <map>
-#include <string>
-
-#include <google/protobuf/stubs/common.h>
-#include <google/protobuf/descriptor.h>
-
-namespace google {
-namespace protobuf {
- namespace io {
- class Printer; // printer.h
- }
-}
-
-namespace protobuf {
-namespace compiler {
-namespace cpp {
-
-// Helper function: set variables in the map that are the same for all
-// field code generators.
-// ['name', 'index', 'number', 'classname', 'declared_type', 'tag_size',
-// 'deprecation'].
-void SetCommonFieldVariables(const FieldDescriptor* descriptor,
- map<string, string>* variables);
-
-class FieldGenerator {
- public:
- FieldGenerator() {}
- virtual ~FieldGenerator();
-
- // Generate lines of code declaring members fields of the message class
- // needed to represent this field. These are placed inside the message
- // class.
- virtual void GeneratePrivateMembers(io::Printer* printer) const = 0;
-
- // Generate prototypes for all of the accessor functions related to this
- // field. These are placed inside the class definition.
- virtual void GenerateAccessorDeclarations(io::Printer* printer) const = 0;
-
- // Generate inline definitions of accessor functions for this field.
- // These are placed inside the header after all class definitions.
- virtual void GenerateInlineAccessorDefinitions(
- io::Printer* printer) const = 0;
-
- // Generate definitions of accessors that aren't inlined. These are
- // placed somewhere in the .cc file.
- // Most field types don't need this, so the default implementation is empty.
- virtual void GenerateNonInlineAccessorDefinitions(
- io::Printer* printer) const {}
-
- // Generate lines of code (statements, not declarations) which clear the
- // field. This is used to define the clear_$name$() method as well as
- // the Clear() method for the whole message.
- virtual void GenerateClearingCode(io::Printer* printer) const = 0;
-
- // Generate lines of code (statements, not declarations) which merges the
- // contents of the field from the current message to the target message,
- // which is stored in the generated code variable "from".
- // This is used to fill in the MergeFrom method for the whole message.
- // Details of this usage can be found in message.cc under the
- // GenerateMergeFrom method.
- virtual void GenerateMergingCode(io::Printer* printer) const = 0;
-
- // Generate lines of code (statements, not declarations) which swaps
- // this field and the corresponding field of another message, which
- // is stored in the generated code variable "other". This is used to
- // define the Swap method. Details of usage can be found in
- // message.cc under the GenerateSwap method.
- virtual void GenerateSwappingCode(io::Printer* printer) const = 0;
-
- // Generate initialization code for private members declared by
- // GeneratePrivateMembers(). These go into the message class's SharedCtor()
- // method, invoked by each of the generated constructors.
- virtual void GenerateConstructorCode(io::Printer* printer) const = 0;
-
- // Generate any code that needs to go in the class's SharedDtor() method,
- // invoked by the destructor.
- // Most field types don't need this, so the default implementation is empty.
- virtual void GenerateDestructorCode(io::Printer* printer) const {}
-
- // Generate lines to decode this field, which will be placed inside the
- // message's MergeFromCodedStream() method.
- virtual void GenerateMergeFromCodedStream(io::Printer* printer) const = 0;
-
- // Generate lines to decode this field from a packed value, which will be
- // placed inside the message's MergeFromCodedStream() method.
- virtual void GenerateMergeFromCodedStreamWithPacking(io::Printer* printer)
- const;
-
- // Generate lines to serialize this field, which are placed within the
- // message's SerializeWithCachedSizes() method.
- virtual void GenerateSerializeWithCachedSizes(io::Printer* printer) const = 0;
-
- // Generate lines to serialize this field directly to the array "target",
- // which are placed within the message's SerializeWithCachedSizesToArray()
- // method. This must also advance "target" past the written bytes.
- virtual void GenerateSerializeWithCachedSizesToArray(
- io::Printer* printer) const = 0;
-
- // Generate lines to compute the serialized size of this field, which
- // are placed in the message's ByteSize() method.
- virtual void GenerateByteSize(io::Printer* printer) const = 0;
-
- private:
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(FieldGenerator);
-};
-
-// Convenience class which constructs FieldGenerators for a Descriptor.
-class FieldGeneratorMap {
- public:
- explicit FieldGeneratorMap(const Descriptor* descriptor);
- ~FieldGeneratorMap();
-
- const FieldGenerator& get(const FieldDescriptor* field) const;
-
- private:
- const Descriptor* descriptor_;
- scoped_array<scoped_ptr<FieldGenerator> > field_generators_;
-
- static FieldGenerator* MakeGenerator(const FieldDescriptor* field);
-
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(FieldGeneratorMap);
-};
-
-
-} // namespace cpp
-} // namespace compiler
-} // namespace protobuf
-
-} // namespace google
-#endif // GOOGLE_PROTOBUF_COMPILER_CPP_FIELD_H__
diff --git a/contrib/prebuilt/include/google/protobuf/compiler/cpp/cpp_file.h b/contrib/prebuilt/include/google/protobuf/compiler/cpp/cpp_file.h
deleted file mode 100644
index b4e0128..0000000
--- a/contrib/prebuilt/include/google/protobuf/compiler/cpp/cpp_file.h
+++ /dev/null
@@ -1,98 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// http://code.google.com/p/protobuf/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Author: kenton@google.com (Kenton Varda)
-// Based on original Protocol Buffers design by
-// Sanjay Ghemawat, Jeff Dean, and others.
-
-#ifndef GOOGLE_PROTOBUF_COMPILER_CPP_FILE_H__
-#define GOOGLE_PROTOBUF_COMPILER_CPP_FILE_H__
-
-#include <string>
-#include <vector>
-#include <google/protobuf/stubs/common.h>
-#include <google/protobuf/compiler/cpp/cpp_field.h>
-
-namespace google {
-namespace protobuf {
- class FileDescriptor; // descriptor.h
- namespace io {
- class Printer; // printer.h
- }
-}
-
-namespace protobuf {
-namespace compiler {
-namespace cpp {
-
-class EnumGenerator; // enum.h
-class MessageGenerator; // message.h
-class ServiceGenerator; // service.h
-class ExtensionGenerator; // extension.h
-
-class FileGenerator {
- public:
- // See generator.cc for the meaning of dllexport_decl.
- explicit FileGenerator(const FileDescriptor* file,
- const string& dllexport_decl);
- ~FileGenerator();
-
- void GenerateHeader(io::Printer* printer);
- void GenerateSource(io::Printer* printer);
-
- private:
- // Generate the BuildDescriptors() procedure, which builds all descriptors
- // for types defined in the file.
- void GenerateBuildDescriptors(io::Printer* printer);
-
- void GenerateNamespaceOpeners(io::Printer* printer);
- void GenerateNamespaceClosers(io::Printer* printer);
-
- const FileDescriptor* file_;
-
- scoped_array<scoped_ptr<MessageGenerator> > message_generators_;
- scoped_array<scoped_ptr<EnumGenerator> > enum_generators_;
- scoped_array<scoped_ptr<ServiceGenerator> > service_generators_;
- scoped_array<scoped_ptr<ExtensionGenerator> > extension_generators_;
-
- // E.g. if the package is foo.bar, package_parts_ is {"foo", "bar"}.
- vector<string> package_parts_;
-
- string dllexport_decl_;
-
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(FileGenerator);
-};
-
-} // namespace cpp
-} // namespace compiler
-} // namespace protobuf
-
-} // namespace google
-#endif // GOOGLE_PROTOBUF_COMPILER_CPP_FILE_H__
diff --git a/contrib/prebuilt/include/google/protobuf/compiler/cpp/cpp_generator.h b/contrib/prebuilt/include/google/protobuf/compiler/cpp/cpp_generator.h
deleted file mode 100644
index a90e84d..0000000
--- a/contrib/prebuilt/include/google/protobuf/compiler/cpp/cpp_generator.h
+++ /dev/null
@@ -1,72 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// http://code.google.com/p/protobuf/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Author: kenton@google.com (Kenton Varda)
-// Based on original Protocol Buffers design by
-// Sanjay Ghemawat, Jeff Dean, and others.
-//
-// Generates C++ code for a given .proto file.
-
-#ifndef GOOGLE_PROTOBUF_COMPILER_CPP_GENERATOR_H__
-#define GOOGLE_PROTOBUF_COMPILER_CPP_GENERATOR_H__
-
-#include <string>
-#include <google/protobuf/compiler/code_generator.h>
-
-namespace google {
-namespace protobuf {
-namespace compiler {
-namespace cpp {
-
-// CodeGenerator implementation which generates a C++ source file and
-// header. If you create your own protocol compiler binary and you want
-// it to support C++ output, you can do so by registering an instance of this
-// CodeGenerator with the CommandLineInterface in your main() function.
-class LIBPROTOC_EXPORT CppGenerator : public CodeGenerator {
- public:
- CppGenerator();
- ~CppGenerator();
-
- // implements CodeGenerator ----------------------------------------
- bool Generate(const FileDescriptor* file,
- const string& parameter,
- GeneratorContext* generator_context,
- string* error) const;
-
- private:
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(CppGenerator);
-};
-
-} // namespace cpp
-} // namespace compiler
-} // namespace protobuf
-
-} // namespace google
-#endif // GOOGLE_PROTOBUF_COMPILER_CPP_GENERATOR_H__
diff --git a/contrib/prebuilt/include/google/protobuf/compiler/cpp/cpp_helpers.h b/contrib/prebuilt/include/google/protobuf/compiler/cpp/cpp_helpers.h
deleted file mode 100644
index b13d53b..0000000
--- a/contrib/prebuilt/include/google/protobuf/compiler/cpp/cpp_helpers.h
+++ /dev/null
@@ -1,159 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// http://code.google.com/p/protobuf/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Author: kenton@google.com (Kenton Varda)
-// Based on original Protocol Buffers design by
-// Sanjay Ghemawat, Jeff Dean, and others.
-
-#ifndef GOOGLE_PROTOBUF_COMPILER_CPP_HELPERS_H__
-#define GOOGLE_PROTOBUF_COMPILER_CPP_HELPERS_H__
-
-#include <string>
-#include <google/protobuf/descriptor.h>
-#include <google/protobuf/descriptor.pb.h>
-
-namespace google {
-namespace protobuf {
-namespace compiler {
-namespace cpp {
-
-// Commonly-used separator comments. Thick is a line of '=', thin is a line
-// of '-'.
-extern const char kThickSeparator[];
-extern const char kThinSeparator[];
-
-// Returns the non-nested type name for the given type. If "qualified" is
-// true, prefix the type with the full namespace. For example, if you had:
-// package foo.bar;
-// message Baz { message Qux {} }
-// Then the qualified ClassName for Qux would be:
-// ::foo::bar::Baz_Qux
-// While the non-qualified version would be:
-// Baz_Qux
-string ClassName(const Descriptor* descriptor, bool qualified);
-string ClassName(const EnumDescriptor* enum_descriptor, bool qualified);
-
-string SuperClassName(const Descriptor* descriptor);
-
-// Get the (unqualified) name that should be used for this field in C++ code.
-// The name is coerced to lower-case to emulate proto1 behavior. People
-// should be using lowercase-with-underscores style for proto field names
-// anyway, so normally this just returns field->name().
-string FieldName(const FieldDescriptor* field);
-
-// Get the unqualified name that should be used for a field's field
-// number constant.
-string FieldConstantName(const FieldDescriptor *field);
-
-// Returns the scope where the field was defined (for extensions, this is
-// different from the message type to which the field applies).
-inline const Descriptor* FieldScope(const FieldDescriptor* field) {
- return field->is_extension() ?
- field->extension_scope() : field->containing_type();
-}
-
-// Returns the fully-qualified type name field->message_type(). Usually this
-// is just ClassName(field->message_type(), true);
-string FieldMessageTypeName(const FieldDescriptor* field);
-
-// Strips ".proto" or ".protodevel" from the end of a filename.
-string StripProto(const string& filename);
-
-// Get the C++ type name for a primitive type (e.g. "double", "::google::protobuf::int32", etc.).
-// Note: non-built-in type names will be qualified, meaning they will start
-// with a ::. If you are using the type as a template parameter, you will
-// need to insure there is a space between the < and the ::, because the
-// ridiculous C++ standard defines "<:" to be a synonym for "[".
-const char* PrimitiveTypeName(FieldDescriptor::CppType type);
-
-// Get the declared type name in CamelCase format, as is used e.g. for the
-// methods of WireFormat. For example, TYPE_INT32 becomes "Int32".
-const char* DeclaredTypeMethodName(FieldDescriptor::Type type);
-
-// Get code that evaluates to the field's default value.
-string DefaultValue(const FieldDescriptor* field);
-
-// Convert a file name into a valid identifier.
-string FilenameIdentifier(const string& filename);
-
-// Return the name of the AddDescriptors() function for a given file.
-string GlobalAddDescriptorsName(const string& filename);
-
-// Return the name of the AssignDescriptors() function for a given file.
-string GlobalAssignDescriptorsName(const string& filename);
-
-// Return the name of the ShutdownFile() function for a given file.
-string GlobalShutdownFileName(const string& filename);
-
-// Escape C++ trigraphs by escaping question marks to \?
-string EscapeTrigraphs(const string& to_escape);
-
-// Do message classes in this file keep track of unknown fields?
-inline bool HasUnknownFields(const FileDescriptor *file) {
- return file->options().optimize_for() != FileOptions::LITE_RUNTIME;
-}
-
-// Does this file have generated parsing, serialization, and other
-// standard methods for which reflection-based fallback implementations exist?
-inline bool HasGeneratedMethods(const FileDescriptor *file) {
- return file->options().optimize_for() != FileOptions::CODE_SIZE;
-}
-
-// Do message classes in this file have descriptor and refelction methods?
-inline bool HasDescriptorMethods(const FileDescriptor *file) {
- return file->options().optimize_for() != FileOptions::LITE_RUNTIME;
-}
-
-// Should we generate generic services for this file?
-inline bool HasGenericServices(const FileDescriptor *file) {
- return file->service_count() > 0 &&
- file->options().optimize_for() != FileOptions::LITE_RUNTIME &&
- file->options().cc_generic_services();
-}
-
-// Should string fields in this file verify that their contents are UTF-8?
-inline bool HasUtf8Verification(const FileDescriptor* file) {
- return file->options().optimize_for() != FileOptions::LITE_RUNTIME;
-}
-
-// Should we generate a separate, super-optimized code path for serializing to
-// flat arrays? We don't do this in Lite mode because we'd rather reduce code
-// size.
-inline bool HasFastArraySerialization(const FileDescriptor* file) {
- return file->options().optimize_for() == FileOptions::SPEED;
-}
-
-
-} // namespace cpp
-} // namespace compiler
-} // namespace protobuf
-
-} // namespace google
-#endif // GOOGLE_PROTOBUF_COMPILER_CPP_HELPERS_H__
diff --git a/contrib/prebuilt/include/google/protobuf/compiler/cpp/cpp_message.h b/contrib/prebuilt/include/google/protobuf/compiler/cpp/cpp_message.h
deleted file mode 100644
index 04778f6..0000000
--- a/contrib/prebuilt/include/google/protobuf/compiler/cpp/cpp_message.h
+++ /dev/null
@@ -1,170 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// http://code.google.com/p/protobuf/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Author: kenton@google.com (Kenton Varda)
-// Based on original Protocol Buffers design by
-// Sanjay Ghemawat, Jeff Dean, and others.
-
-#ifndef GOOGLE_PROTOBUF_COMPILER_CPP_MESSAGE_H__
-#define GOOGLE_PROTOBUF_COMPILER_CPP_MESSAGE_H__
-
-#include <string>
-#include <google/protobuf/stubs/common.h>
-#include <google/protobuf/compiler/cpp/cpp_field.h>
-
-namespace google {
-namespace protobuf {
- namespace io {
- class Printer; // printer.h
- }
-}
-
-namespace protobuf {
-namespace compiler {
-namespace cpp {
-
-class EnumGenerator; // enum.h
-class ExtensionGenerator; // extension.h
-
-class MessageGenerator {
- public:
- // See generator.cc for the meaning of dllexport_decl.
- explicit MessageGenerator(const Descriptor* descriptor,
- const string& dllexport_decl);
- ~MessageGenerator();
-
- // Header stuff.
-
- // Generate foward declarations for this class and all its nested types.
- void GenerateForwardDeclaration(io::Printer* printer);
-
- // Generate definitions of all nested enums (must come before class
- // definitions because those classes use the enums definitions).
- void GenerateEnumDefinitions(io::Printer* printer);
-
- // Generate specializations of GetEnumDescriptor<MyEnum>().
- // Precondition: in ::google::protobuf namespace.
- void GenerateGetEnumDescriptorSpecializations(io::Printer* printer);
-
- // Generate definitions for this class and all its nested types.
- void GenerateClassDefinition(io::Printer* printer);
-
- // Generate definitions of inline methods (placed at the end of the header
- // file).
- void GenerateInlineMethods(io::Printer* printer);
-
- // Source file stuff.
-
- // Generate code which declares all the global descriptor pointers which
- // will be initialized by the methods below.
- void GenerateDescriptorDeclarations(io::Printer* printer);
-
- // Generate code that initializes the global variable storing the message's
- // descriptor.
- void GenerateDescriptorInitializer(io::Printer* printer, int index);
-
- // Generate code that calls MessageFactory::InternalRegisterGeneratedMessage()
- // for all types.
- void GenerateTypeRegistrations(io::Printer* printer);
-
- // Generates code that allocates the message's default instance.
- void GenerateDefaultInstanceAllocator(io::Printer* printer);
-
- // Generates code that initializes the message's default instance. This
- // is separate from allocating because all default instances must be
- // allocated before any can be initialized.
- void GenerateDefaultInstanceInitializer(io::Printer* printer);
-
- // Generates code that should be run when ShutdownProtobufLibrary() is called,
- // to delete all dynamically-allocated objects.
- void GenerateShutdownCode(io::Printer* printer);
-
- // Generate all non-inline methods for this class.
- void GenerateClassMethods(io::Printer* printer);
-
- private:
- // Generate declarations and definitions of accessors for fields.
- void GenerateFieldAccessorDeclarations(io::Printer* printer);
- void GenerateFieldAccessorDefinitions(io::Printer* printer);
-
- // Generate the field offsets array.
- void GenerateOffsets(io::Printer* printer);
-
- // Generate constructors and destructor.
- void GenerateStructors(io::Printer* printer);
-
- // The compiler typically generates multiple copies of each constructor and
- // destructor: http://gcc.gnu.org/bugs.html#nonbugs_cxx
- // Placing common code in a separate method reduces the generated code size.
- //
- // Generate the shared constructor code.
- void GenerateSharedConstructorCode(io::Printer* printer);
- // Generate the shared destructor code.
- void GenerateSharedDestructorCode(io::Printer* printer);
-
- // Generate standard Message methods.
- void GenerateClear(io::Printer* printer);
- void GenerateMergeFromCodedStream(io::Printer* printer);
- void GenerateSerializeWithCachedSizes(io::Printer* printer);
- void GenerateSerializeWithCachedSizesToArray(io::Printer* printer);
- void GenerateSerializeWithCachedSizesBody(io::Printer* printer,
- bool to_array);
- void GenerateByteSize(io::Printer* printer);
- void GenerateMergeFrom(io::Printer* printer);
- void GenerateCopyFrom(io::Printer* printer);
- void GenerateSwap(io::Printer* printer);
- void GenerateIsInitialized(io::Printer* printer);
-
- // Helpers for GenerateSerializeWithCachedSizes().
- void GenerateSerializeOneField(io::Printer* printer,
- const FieldDescriptor* field,
- bool unbounded);
- void GenerateSerializeOneExtensionRange(
- io::Printer* printer, const Descriptor::ExtensionRange* range,
- bool unbounded);
-
-
- const Descriptor* descriptor_;
- string classname_;
- string dllexport_decl_;
- FieldGeneratorMap field_generators_;
- scoped_array<scoped_ptr<MessageGenerator> > nested_generators_;
- scoped_array<scoped_ptr<EnumGenerator> > enum_generators_;
- scoped_array<scoped_ptr<ExtensionGenerator> > extension_generators_;
-
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(MessageGenerator);
-};
-
-} // namespace cpp
-} // namespace compiler
-} // namespace protobuf
-
-} // namespace google
-#endif // GOOGLE_PROTOBUF_COMPILER_CPP_MESSAGE_H__
diff --git a/contrib/prebuilt/include/google/protobuf/compiler/cpp/cpp_message_field.h b/contrib/prebuilt/include/google/protobuf/compiler/cpp/cpp_message_field.h
deleted file mode 100644
index f514727..0000000
--- a/contrib/prebuilt/include/google/protobuf/compiler/cpp/cpp_message_field.h
+++ /dev/null
@@ -1,102 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// http://code.google.com/p/protobuf/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Author: kenton@google.com (Kenton Varda)
-// Based on original Protocol Buffers design by
-// Sanjay Ghemawat, Jeff Dean, and others.
-
-#ifndef GOOGLE_PROTOBUF_COMPILER_CPP_MESSAGE_FIELD_H__
-#define GOOGLE_PROTOBUF_COMPILER_CPP_MESSAGE_FIELD_H__
-
-#include <map>
-#include <string>
-#include <google/protobuf/compiler/cpp/cpp_field.h>
-
-namespace google {
-namespace protobuf {
-namespace compiler {
-namespace cpp {
-
-class MessageFieldGenerator : public FieldGenerator {
- public:
- explicit MessageFieldGenerator(const FieldDescriptor* descriptor);
- ~MessageFieldGenerator();
-
- // implements FieldGenerator ---------------------------------------
- void GeneratePrivateMembers(io::Printer* printer) const;
- void GenerateAccessorDeclarations(io::Printer* printer) const;
- void GenerateInlineAccessorDefinitions(io::Printer* printer) const;
- void GenerateClearingCode(io::Printer* printer) const;
- void GenerateMergingCode(io::Printer* printer) const;
- void GenerateSwappingCode(io::Printer* printer) const;
- void GenerateConstructorCode(io::Printer* printer) const;
- void GenerateMergeFromCodedStream(io::Printer* printer) const;
- void GenerateSerializeWithCachedSizes(io::Printer* printer) const;
- void GenerateSerializeWithCachedSizesToArray(io::Printer* printer) const;
- void GenerateByteSize(io::Printer* printer) const;
-
- private:
- const FieldDescriptor* descriptor_;
- map<string, string> variables_;
-
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(MessageFieldGenerator);
-};
-
-class RepeatedMessageFieldGenerator : public FieldGenerator {
- public:
- explicit RepeatedMessageFieldGenerator(const FieldDescriptor* descriptor);
- ~RepeatedMessageFieldGenerator();
-
- // implements FieldGenerator ---------------------------------------
- void GeneratePrivateMembers(io::Printer* printer) const;
- void GenerateAccessorDeclarations(io::Printer* printer) const;
- void GenerateInlineAccessorDefinitions(io::Printer* printer) const;
- void GenerateClearingCode(io::Printer* printer) const;
- void GenerateMergingCode(io::Printer* printer) const;
- void GenerateSwappingCode(io::Printer* printer) const;
- void GenerateConstructorCode(io::Printer* printer) const;
- void GenerateMergeFromCodedStream(io::Printer* printer) const;
- void GenerateSerializeWithCachedSizes(io::Printer* printer) const;
- void GenerateSerializeWithCachedSizesToArray(io::Printer* printer) const;
- void GenerateByteSize(io::Printer* printer) const;
-
- private:
- const FieldDescriptor* descriptor_;
- map<string, string> variables_;
-
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(RepeatedMessageFieldGenerator);
-};
-
-} // namespace cpp
-} // namespace compiler
-} // namespace protobuf
-
-} // namespace google
-#endif // GOOGLE_PROTOBUF_COMPILER_CPP_MESSAGE_FIELD_H__
diff --git a/contrib/prebuilt/include/google/protobuf/compiler/cpp/cpp_primitive_field.h b/contrib/prebuilt/include/google/protobuf/compiler/cpp/cpp_primitive_field.h
deleted file mode 100644
index 8fcd74a..0000000
--- a/contrib/prebuilt/include/google/protobuf/compiler/cpp/cpp_primitive_field.h
+++ /dev/null
@@ -1,103 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// http://code.google.com/p/protobuf/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Author: kenton@google.com (Kenton Varda)
-// Based on original Protocol Buffers design by
-// Sanjay Ghemawat, Jeff Dean, and others.
-
-#ifndef GOOGLE_PROTOBUF_COMPILER_CPP_PRIMITIVE_FIELD_H__
-#define GOOGLE_PROTOBUF_COMPILER_CPP_PRIMITIVE_FIELD_H__
-
-#include <map>
-#include <string>
-#include <google/protobuf/compiler/cpp/cpp_field.h>
-
-namespace google {
-namespace protobuf {
-namespace compiler {
-namespace cpp {
-
-class PrimitiveFieldGenerator : public FieldGenerator {
- public:
- explicit PrimitiveFieldGenerator(const FieldDescriptor* descriptor);
- ~PrimitiveFieldGenerator();
-
- // implements FieldGenerator ---------------------------------------
- void GeneratePrivateMembers(io::Printer* printer) const;
- void GenerateAccessorDeclarations(io::Printer* printer) const;
- void GenerateInlineAccessorDefinitions(io::Printer* printer) const;
- void GenerateClearingCode(io::Printer* printer) const;
- void GenerateMergingCode(io::Printer* printer) const;
- void GenerateSwappingCode(io::Printer* printer) const;
- void GenerateConstructorCode(io::Printer* printer) const;
- void GenerateMergeFromCodedStream(io::Printer* printer) const;
- void GenerateSerializeWithCachedSizes(io::Printer* printer) const;
- void GenerateSerializeWithCachedSizesToArray(io::Printer* printer) const;
- void GenerateByteSize(io::Printer* printer) const;
-
- private:
- const FieldDescriptor* descriptor_;
- map<string, string> variables_;
-
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(PrimitiveFieldGenerator);
-};
-
-class RepeatedPrimitiveFieldGenerator : public FieldGenerator {
- public:
- explicit RepeatedPrimitiveFieldGenerator(const FieldDescriptor* descriptor);
- ~RepeatedPrimitiveFieldGenerator();
-
- // implements FieldGenerator ---------------------------------------
- void GeneratePrivateMembers(io::Printer* printer) const;
- void GenerateAccessorDeclarations(io::Printer* printer) const;
- void GenerateInlineAccessorDefinitions(io::Printer* printer) const;
- void GenerateClearingCode(io::Printer* printer) const;
- void GenerateMergingCode(io::Printer* printer) const;
- void GenerateSwappingCode(io::Printer* printer) const;
- void GenerateConstructorCode(io::Printer* printer) const;
- void GenerateMergeFromCodedStream(io::Printer* printer) const;
- void GenerateMergeFromCodedStreamWithPacking(io::Printer* printer) const;
- void GenerateSerializeWithCachedSizes(io::Printer* printer) const;
- void GenerateSerializeWithCachedSizesToArray(io::Printer* printer) const;
- void GenerateByteSize(io::Printer* printer) const;
-
- private:
- const FieldDescriptor* descriptor_;
- map<string, string> variables_;
-
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(RepeatedPrimitiveFieldGenerator);
-};
-
-} // namespace cpp
-} // namespace compiler
-} // namespace protobuf
-
-} // namespace google
-#endif // GOOGLE_PROTOBUF_COMPILER_CPP_PRIMITIVE_FIELD_H__
diff --git a/contrib/prebuilt/include/google/protobuf/compiler/cpp/cpp_service.h b/contrib/prebuilt/include/google/protobuf/compiler/cpp/cpp_service.h
deleted file mode 100644
index 10e9dd3..0000000
--- a/contrib/prebuilt/include/google/protobuf/compiler/cpp/cpp_service.h
+++ /dev/null
@@ -1,118 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// http://code.google.com/p/protobuf/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Author: kenton@google.com (Kenton Varda)
-// Based on original Protocol Buffers design by
-// Sanjay Ghemawat, Jeff Dean, and others.
-
-#ifndef GOOGLE_PROTOBUF_COMPILER_CPP_SERVICE_H__
-#define GOOGLE_PROTOBUF_COMPILER_CPP_SERVICE_H__
-
-#include <map>
-#include <string>
-#include <google/protobuf/stubs/common.h>
-#include <google/protobuf/descriptor.h>
-
-namespace google {
-namespace protobuf {
- namespace io {
- class Printer; // printer.h
- }
-}
-
-namespace protobuf {
-namespace compiler {
-namespace cpp {
-
-class ServiceGenerator {
- public:
- // See generator.cc for the meaning of dllexport_decl.
- explicit ServiceGenerator(const ServiceDescriptor* descriptor,
- const string& dllexport_decl);
- ~ServiceGenerator();
-
- // Header stuff.
-
- // Generate the class definitions for the service's interface and the
- // stub implementation.
- void GenerateDeclarations(io::Printer* printer);
-
- // Source file stuff.
-
- // Generate code that initializes the global variable storing the service's
- // descriptor.
- void GenerateDescriptorInitializer(io::Printer* printer, int index);
-
- // Generate implementations of everything declared by GenerateDeclarations().
- void GenerateImplementation(io::Printer* printer);
-
- private:
- enum RequestOrResponse { REQUEST, RESPONSE };
- enum VirtualOrNon { VIRTUAL, NON_VIRTUAL };
-
- // Header stuff.
-
- // Generate the service abstract interface.
- void GenerateInterface(io::Printer* printer);
-
- // Generate the stub class definition.
- void GenerateStubDefinition(io::Printer* printer);
-
- // Prints signatures for all methods in the
- void GenerateMethodSignatures(VirtualOrNon virtual_or_non,
- io::Printer* printer);
-
- // Source file stuff.
-
- // Generate the default implementations of the service methods, which
- // produce a "not implemented" error.
- void GenerateNotImplementedMethods(io::Printer* printer);
-
- // Generate the CallMethod() method of the service.
- void GenerateCallMethod(io::Printer* printer);
-
- // Generate the Get{Request,Response}Prototype() methods.
- void GenerateGetPrototype(RequestOrResponse which, io::Printer* printer);
-
- // Generate the stub's implementations of the service methods.
- void GenerateStubMethods(io::Printer* printer);
-
- const ServiceDescriptor* descriptor_;
- map<string, string> vars_;
-
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(ServiceGenerator);
-};
-
-} // namespace cpp
-} // namespace compiler
-} // namespace protobuf
-
-} // namespace google
-#endif // GOOGLE_PROTOBUF_COMPILER_CPP_SERVICE_H__
diff --git a/contrib/prebuilt/include/google/protobuf/compiler/cpp/cpp_string_field.h b/contrib/prebuilt/include/google/protobuf/compiler/cpp/cpp_string_field.h
deleted file mode 100644
index 7f45107..0000000
--- a/contrib/prebuilt/include/google/protobuf/compiler/cpp/cpp_string_field.h
+++ /dev/null
@@ -1,104 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// http://code.google.com/p/protobuf/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Author: kenton@google.com (Kenton Varda)
-// Based on original Protocol Buffers design by
-// Sanjay Ghemawat, Jeff Dean, and others.
-
-#ifndef GOOGLE_PROTOBUF_COMPILER_CPP_STRING_FIELD_H__
-#define GOOGLE_PROTOBUF_COMPILER_CPP_STRING_FIELD_H__
-
-#include <map>
-#include <string>
-#include <google/protobuf/compiler/cpp/cpp_field.h>
-
-namespace google {
-namespace protobuf {
-namespace compiler {
-namespace cpp {
-
-class StringFieldGenerator : public FieldGenerator {
- public:
- explicit StringFieldGenerator(const FieldDescriptor* descriptor);
- ~StringFieldGenerator();
-
- // implements FieldGenerator ---------------------------------------
- void GeneratePrivateMembers(io::Printer* printer) const;
- void GenerateAccessorDeclarations(io::Printer* printer) const;
- void GenerateInlineAccessorDefinitions(io::Printer* printer) const;
- void GenerateNonInlineAccessorDefinitions(io::Printer* printer) const;
- void GenerateClearingCode(io::Printer* printer) const;
- void GenerateMergingCode(io::Printer* printer) const;
- void GenerateSwappingCode(io::Printer* printer) const;
- void GenerateConstructorCode(io::Printer* printer) const;
- void GenerateDestructorCode(io::Printer* printer) const;
- void GenerateMergeFromCodedStream(io::Printer* printer) const;
- void GenerateSerializeWithCachedSizes(io::Printer* printer) const;
- void GenerateSerializeWithCachedSizesToArray(io::Printer* printer) const;
- void GenerateByteSize(io::Printer* printer) const;
-
- private:
- const FieldDescriptor* descriptor_;
- map<string, string> variables_;
-
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(StringFieldGenerator);
-};
-
-class RepeatedStringFieldGenerator : public FieldGenerator {
- public:
- explicit RepeatedStringFieldGenerator(const FieldDescriptor* descriptor);
- ~RepeatedStringFieldGenerator();
-
- // implements FieldGenerator ---------------------------------------
- void GeneratePrivateMembers(io::Printer* printer) const;
- void GenerateAccessorDeclarations(io::Printer* printer) const;
- void GenerateInlineAccessorDefinitions(io::Printer* printer) const;
- void GenerateClearingCode(io::Printer* printer) const;
- void GenerateMergingCode(io::Printer* printer) const;
- void GenerateSwappingCode(io::Printer* printer) const;
- void GenerateConstructorCode(io::Printer* printer) const;
- void GenerateMergeFromCodedStream(io::Printer* printer) const;
- void GenerateSerializeWithCachedSizes(io::Printer* printer) const;
- void GenerateSerializeWithCachedSizesToArray(io::Printer* printer) const;
- void GenerateByteSize(io::Printer* printer) const;
-
- private:
- const FieldDescriptor* descriptor_;
- map<string, string> variables_;
-
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(RepeatedStringFieldGenerator);
-};
-
-} // namespace cpp
-} // namespace compiler
-} // namespace protobuf
-
-} // namespace google
-#endif // GOOGLE_PROTOBUF_COMPILER_CPP_STRING_FIELD_H__
diff --git a/contrib/prebuilt/include/google/protobuf/compiler/importer.h b/contrib/prebuilt/include/google/protobuf/compiler/importer.h
deleted file mode 100644
index 7a2efc2..0000000
--- a/contrib/prebuilt/include/google/protobuf/compiler/importer.h
+++ /dev/null
@@ -1,303 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// http://code.google.com/p/protobuf/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Author: kenton@google.com (Kenton Varda)
-// Based on original Protocol Buffers design by
-// Sanjay Ghemawat, Jeff Dean, and others.
-//
-// This file is the public interface to the .proto file parser.
-
-#ifndef GOOGLE_PROTOBUF_COMPILER_IMPORTER_H__
-#define GOOGLE_PROTOBUF_COMPILER_IMPORTER_H__
-
-#include <string>
-#include <vector>
-#include <set>
-#include <utility>
-#include <google/protobuf/descriptor.h>
-#include <google/protobuf/descriptor_database.h>
-#include <google/protobuf/compiler/parser.h>
-
-namespace google {
-namespace protobuf {
-
-namespace io { class ZeroCopyInputStream; }
-
-namespace compiler {
-
-// Defined in this file.
-class Importer;
-class MultiFileErrorCollector;
-class SourceTree;
-class DiskSourceTree;
-
-// TODO(kenton): Move all SourceTree stuff to a separate file?
-
-// An implementation of DescriptorDatabase which loads files from a SourceTree
-// and parses them.
-//
-// Note: This class is not thread-safe since it maintains a table of source
-// code locations for error reporting. However, when a DescriptorPool wraps
-// a DescriptorDatabase, it uses mutex locking to make sure only one method
-// of the database is called at a time, even if the DescriptorPool is used
-// from multiple threads. Therefore, there is only a problem if you create
-// multiple DescriptorPools wrapping the same SourceTreeDescriptorDatabase
-// and use them from multiple threads.
-//
-// Note: This class does not implement FindFileContainingSymbol() or
-// FindFileContainingExtension(); these will always return false.
-class LIBPROTOBUF_EXPORT SourceTreeDescriptorDatabase : public DescriptorDatabase {
- public:
- SourceTreeDescriptorDatabase(SourceTree* source_tree);
- ~SourceTreeDescriptorDatabase();
-
- // Instructs the SourceTreeDescriptorDatabase to report any parse errors
- // to the given MultiFileErrorCollector. This should be called before
- // parsing. error_collector must remain valid until either this method
- // is called again or the SourceTreeDescriptorDatabase is destroyed.
- void RecordErrorsTo(MultiFileErrorCollector* error_collector) {
- error_collector_ = error_collector;
- }
-
- // Gets a DescriptorPool::ErrorCollector which records errors to the
- // MultiFileErrorCollector specified with RecordErrorsTo(). This collector
- // has the ability to determine exact line and column numbers of errors
- // from the information given to it by the DescriptorPool.
- DescriptorPool::ErrorCollector* GetValidationErrorCollector() {
- using_validation_error_collector_ = true;
- return &validation_error_collector_;
- }
-
- // implements DescriptorDatabase -----------------------------------
- bool FindFileByName(const string& filename, FileDescriptorProto* output);
- bool FindFileContainingSymbol(const string& symbol_name,
- FileDescriptorProto* output);
- bool FindFileContainingExtension(const string& containing_type,
- int field_number,
- FileDescriptorProto* output);
-
- private:
- class SingleFileErrorCollector;
-
- SourceTree* source_tree_;
- MultiFileErrorCollector* error_collector_;
-
- class LIBPROTOBUF_EXPORT ValidationErrorCollector : public DescriptorPool::ErrorCollector {
- public:
- ValidationErrorCollector(SourceTreeDescriptorDatabase* owner);
- ~ValidationErrorCollector();
-
- // implements ErrorCollector ---------------------------------------
- void AddError(const string& filename,
- const string& element_name,
- const Message* descriptor,
- ErrorLocation location,
- const string& message);
-
- private:
- SourceTreeDescriptorDatabase* owner_;
- };
- friend class ValidationErrorCollector;
-
- bool using_validation_error_collector_;
- SourceLocationTable source_locations_;
- ValidationErrorCollector validation_error_collector_;
-};
-
-// Simple interface for parsing .proto files. This wraps the process
-// of opening the file, parsing it with a Parser, recursively parsing all its
-// imports, and then cross-linking the results to produce a FileDescriptor.
-//
-// This is really just a thin wrapper around SourceTreeDescriptorDatabase.
-// You may find that SourceTreeDescriptorDatabase is more flexible.
-//
-// TODO(kenton): I feel like this class is not well-named.
-class LIBPROTOBUF_EXPORT Importer {
- public:
- Importer(SourceTree* source_tree,
- MultiFileErrorCollector* error_collector);
- ~Importer();
-
- // Import the given file and build a FileDescriptor representing it. If
- // the file is already in the DescriptorPool, the existing FileDescriptor
- // will be returned. The FileDescriptor is property of the DescriptorPool,
- // and will remain valid until it is destroyed. If any errors occur, they
- // will be reported using the error collector and Import() will return NULL.
- //
- // A particular Importer object will only report errors for a particular
- // file once. All future attempts to import the same file will return NULL
- // without reporting any errors. The idea is that you might want to import
- // a lot of files without seeing the same errors over and over again. If
- // you want to see errors for the same files repeatedly, you can use a
- // separate Importer object to import each one (but use the same
- // DescriptorPool so that they can be cross-linked).
- const FileDescriptor* Import(const string& filename);
-
- // The DescriptorPool in which all imported FileDescriptors and their
- // contents are stored.
- inline const DescriptorPool* pool() const {
- return &pool_;
- }
-
- private:
- SourceTreeDescriptorDatabase database_;
- DescriptorPool pool_;
-
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(Importer);
-};
-
-// If the importer encounters problems while trying to import the proto files,
-// it reports them to a MultiFileErrorCollector.
-class LIBPROTOBUF_EXPORT MultiFileErrorCollector {
- public:
- inline MultiFileErrorCollector() {}
- virtual ~MultiFileErrorCollector();
-
- // Line and column numbers are zero-based. A line number of -1 indicates
- // an error with the entire file (e.g. "not found").
- virtual void AddError(const string& filename, int line, int column,
- const string& message) = 0;
-
- private:
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(MultiFileErrorCollector);
-};
-
-// Abstract interface which represents a directory tree containing proto files.
-// Used by the default implementation of Importer to resolve import statements
-// Most users will probably want to use the DiskSourceTree implementation,
-// below.
-class LIBPROTOBUF_EXPORT SourceTree {
- public:
- inline SourceTree() {}
- virtual ~SourceTree();
-
- // Open the given file and return a stream that reads it, or NULL if not
- // found. The caller takes ownership of the returned object. The filename
- // must be a path relative to the root of the source tree and must not
- // contain "." or ".." components.
- virtual io::ZeroCopyInputStream* Open(const string& filename) = 0;
-
- private:
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(SourceTree);
-};
-
-// An implementation of SourceTree which loads files from locations on disk.
-// Multiple mappings can be set up to map locations in the DiskSourceTree to
-// locations in the physical filesystem.
-class LIBPROTOBUF_EXPORT DiskSourceTree : public SourceTree {
- public:
- DiskSourceTree();
- ~DiskSourceTree();
-
- // Map a path on disk to a location in the SourceTree. The path may be
- // either a file or a directory. If it is a directory, the entire tree
- // under it will be mapped to the given virtual location. To map a directory
- // to the root of the source tree, pass an empty string for virtual_path.
- //
- // If multiple mapped paths apply when opening a file, they will be searched
- // in order. For example, if you do:
- // MapPath("bar", "foo/bar");
- // MapPath("", "baz");
- // and then you do:
- // Open("bar/qux");
- // the DiskSourceTree will first try to open foo/bar/qux, then baz/bar/qux,
- // returning the first one that opens successfuly.
- //
- // disk_path may be an absolute path or relative to the current directory,
- // just like a path you'd pass to open().
- void MapPath(const string& virtual_path, const string& disk_path);
-
- // Return type for DiskFileToVirtualFile().
- enum DiskFileToVirtualFileResult {
- SUCCESS,
- SHADOWED,
- CANNOT_OPEN,
- NO_MAPPING
- };
-
- // Given a path to a file on disk, find a virtual path mapping to that
- // file. The first mapping created with MapPath() whose disk_path contains
- // the filename is used. However, that virtual path may not actually be
- // usable to open the given file. Possible return values are:
- // * SUCCESS: The mapping was found. *virtual_file is filled in so that
- // calling Open(*virtual_file) will open the file named by disk_file.
- // * SHADOWED: A mapping was found, but using Open() to open this virtual
- // path will end up returning some different file. This is because some
- // other mapping with a higher precedence also matches this virtual path
- // and maps it to a different file that exists on disk. *virtual_file
- // is filled in as it would be in the SUCCESS case. *shadowing_disk_file
- // is filled in with the disk path of the file which would be opened if
- // you were to call Open(*virtual_file).
- // * CANNOT_OPEN: The mapping was found and was not shadowed, but the
- // file specified cannot be opened. When this value is returned,
- // errno will indicate the reason the file cannot be opened. *virtual_file
- // will be set to the virtual path as in the SUCCESS case, even though
- // it is not useful.
- // * NO_MAPPING: Indicates that no mapping was found which contains this
- // file.
- DiskFileToVirtualFileResult
- DiskFileToVirtualFile(const string& disk_file,
- string* virtual_file,
- string* shadowing_disk_file);
-
- // Given a virtual path, find the path to the file on disk.
- // Return true and update disk_file with the on-disk path if the file exists.
- // Return false and leave disk_file untouched if the file doesn't exist.
- bool VirtualFileToDiskFile(const string& virtual_file, string* disk_file);
-
- // implements SourceTree -------------------------------------------
- io::ZeroCopyInputStream* Open(const string& filename);
-
- private:
- struct Mapping {
- string virtual_path;
- string disk_path;
-
- inline Mapping(const string& virtual_path, const string& disk_path)
- : virtual_path(virtual_path), disk_path(disk_path) {}
- };
- vector<Mapping> mappings_;
-
- // Like Open(), but returns the on-disk path in disk_file if disk_file is
- // non-NULL and the file could be successfully opened.
- io::ZeroCopyInputStream* OpenVirtualFile(const string& virtual_file,
- string* disk_file);
-
- // Like Open() but given the actual on-disk path.
- io::ZeroCopyInputStream* OpenDiskFile(const string& filename);
-
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(DiskSourceTree);
-};
-
-} // namespace compiler
-} // namespace protobuf
-
-} // namespace google
-#endif // GOOGLE_PROTOBUF_COMPILER_IMPORTER_H__
diff --git a/contrib/prebuilt/include/google/protobuf/compiler/java/java_enum.h b/contrib/prebuilt/include/google/protobuf/compiler/java/java_enum.h
deleted file mode 100644
index 05ece1f..0000000
--- a/contrib/prebuilt/include/google/protobuf/compiler/java/java_enum.h
+++ /dev/null
@@ -1,84 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// http://code.google.com/p/protobuf/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Author: kenton@google.com (Kenton Varda)
-// Based on original Protocol Buffers design by
-// Sanjay Ghemawat, Jeff Dean, and others.
-
-#ifndef GOOGLE_PROTOBUF_COMPILER_JAVA_ENUM_H__
-#define GOOGLE_PROTOBUF_COMPILER_JAVA_ENUM_H__
-
-#include <string>
-#include <vector>
-#include <google/protobuf/descriptor.h>
-
-namespace google {
-namespace protobuf {
- namespace io {
- class Printer; // printer.h
- }
-}
-
-namespace protobuf {
-namespace compiler {
-namespace java {
-
-class EnumGenerator {
- public:
- explicit EnumGenerator(const EnumDescriptor* descriptor);
- ~EnumGenerator();
-
- void Generate(io::Printer* printer);
-
- private:
- const EnumDescriptor* descriptor_;
-
- // The proto language allows multiple enum constants to have the same numeric
- // value. Java, however, does not allow multiple enum constants to be
- // considered equivalent. We treat the first defined constant for any
- // given numeric value as "canonical" and the rest as aliases of that
- // canonical value.
- vector<const EnumValueDescriptor*> canonical_values_;
-
- struct Alias {
- const EnumValueDescriptor* value;
- const EnumValueDescriptor* canonical_value;
- };
- vector<Alias> aliases_;
-
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(EnumGenerator);
-};
-
-} // namespace java
-} // namespace compiler
-} // namespace protobuf
-
-} // namespace google
-#endif // GOOGLE_PROTOBUF_COMPILER_JAVA_ENUM_H__
diff --git a/contrib/prebuilt/include/google/protobuf/compiler/java/java_enum_field.h b/contrib/prebuilt/include/google/protobuf/compiler/java/java_enum_field.h
deleted file mode 100644
index 0cad6be..0000000
--- a/contrib/prebuilt/include/google/protobuf/compiler/java/java_enum_field.h
+++ /dev/null
@@ -1,121 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// http://code.google.com/p/protobuf/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Author: kenton@google.com (Kenton Varda)
-// Based on original Protocol Buffers design by
-// Sanjay Ghemawat, Jeff Dean, and others.
-
-#ifndef GOOGLE_PROTOBUF_COMPILER_JAVA_ENUM_FIELD_H__
-#define GOOGLE_PROTOBUF_COMPILER_JAVA_ENUM_FIELD_H__
-
-#include <map>
-#include <string>
-#include <google/protobuf/compiler/java/java_field.h>
-
-namespace google {
-namespace protobuf {
-namespace compiler {
-namespace java {
-
-class EnumFieldGenerator : public FieldGenerator {
- public:
- explicit EnumFieldGenerator(const FieldDescriptor* descriptor,
- int messageBitIndex, int builderBitIndex);
- ~EnumFieldGenerator();
-
- // implements FieldGenerator ---------------------------------------
- int GetNumBitsForMessage() const;
- int GetNumBitsForBuilder() const;
- void GenerateInterfaceMembers(io::Printer* printer) const;
- void GenerateMembers(io::Printer* printer) const;
- void GenerateBuilderMembers(io::Printer* printer) const;
- void GenerateInitializationCode(io::Printer* printer) const;
- void GenerateBuilderClearCode(io::Printer* printer) const;
- void GenerateMergingCode(io::Printer* printer) const;
- void GenerateBuildingCode(io::Printer* printer) const;
- void GenerateParsingCode(io::Printer* printer) const;
- void GenerateSerializationCode(io::Printer* printer) const;
- void GenerateSerializedSizeCode(io::Printer* printer) const;
- void GenerateFieldBuilderInitializationCode(io::Printer* printer) const;
- void GenerateEqualsCode(io::Printer* printer) const;
- void GenerateHashCode(io::Printer* printer) const;
-
- string GetBoxedType() const;
-
- private:
- const FieldDescriptor* descriptor_;
- map<string, string> variables_;
- const int messageBitIndex_;
- const int builderBitIndex_;
-
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(EnumFieldGenerator);
-};
-
-class RepeatedEnumFieldGenerator : public FieldGenerator {
- public:
- explicit RepeatedEnumFieldGenerator(const FieldDescriptor* descriptor,
- int messageBitIndex, int builderBitIndex);
- ~RepeatedEnumFieldGenerator();
-
- // implements FieldGenerator ---------------------------------------
- int GetNumBitsForMessage() const;
- int GetNumBitsForBuilder() const;
- void GenerateInterfaceMembers(io::Printer* printer) const;
- void GenerateMembers(io::Printer* printer) const;
- void GenerateBuilderMembers(io::Printer* printer) const;
- void GenerateInitializationCode(io::Printer* printer) const;
- void GenerateBuilderClearCode(io::Printer* printer) const;
- void GenerateMergingCode(io::Printer* printer) const;
- void GenerateBuildingCode(io::Printer* printer) const;
- void GenerateParsingCode(io::Printer* printer) const;
- void GenerateParsingCodeFromPacked(io::Printer* printer) const;
- void GenerateSerializationCode(io::Printer* printer) const;
- void GenerateSerializedSizeCode(io::Printer* printer) const;
- void GenerateFieldBuilderInitializationCode(io::Printer* printer) const;
- void GenerateEqualsCode(io::Printer* printer) const;
- void GenerateHashCode(io::Printer* printer) const;
-
- string GetBoxedType() const;
-
- private:
- const FieldDescriptor* descriptor_;
- map<string, string> variables_;
- const int messageBitIndex_;
- const int builderBitIndex_;
-
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(RepeatedEnumFieldGenerator);
-};
-
-} // namespace java
-} // namespace compiler
-} // namespace protobuf
-
-} // namespace google
-#endif // GOOGLE_PROTOBUF_COMPILER_JAVA_ENUM_FIELD_H__
diff --git a/contrib/prebuilt/include/google/protobuf/compiler/java/java_extension.h b/contrib/prebuilt/include/google/protobuf/compiler/java/java_extension.h
deleted file mode 100644
index 009ed9f..0000000
--- a/contrib/prebuilt/include/google/protobuf/compiler/java/java_extension.h
+++ /dev/null
@@ -1,77 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// http://code.google.com/p/protobuf/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Author: kenton@google.com (Kenton Varda)
-// Based on original Protocol Buffers design by
-// Sanjay Ghemawat, Jeff Dean, and others.
-
-#ifndef GOOGLE_PROTOBUF_COMPILER_JAVA_EXTENSION_H__
-#define GOOGLE_PROTOBUF_COMPILER_JAVA_EXTENSION_H__
-
-#include <string>
-
-#include <google/protobuf/stubs/common.h>
-
-namespace google {
-namespace protobuf {
- class FieldDescriptor; // descriptor.h
- namespace io {
- class Printer; // printer.h
- }
-}
-
-namespace protobuf {
-namespace compiler {
-namespace java {
-
-// Generates code for an extension, which may be within the scope of some
-// message or may be at file scope. This is much simpler than FieldGenerator
-// since extensions are just simple identifiers with interesting types.
-class ExtensionGenerator {
- public:
- explicit ExtensionGenerator(const FieldDescriptor* descriptor);
- ~ExtensionGenerator();
-
- void Generate(io::Printer* printer);
- void GenerateNonNestedInitializationCode(io::Printer* printer);
- void GenerateRegistrationCode(io::Printer* printer);
-
- private:
- const FieldDescriptor* descriptor_;
- string scope_;
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(ExtensionGenerator);
-};
-
-} // namespace java
-} // namespace compiler
-} // namespace protobuf
-
-} // namespace google
-#endif // GOOGLE_PROTOBUF_COMPILER_JAVA_MESSAGE_H__
diff --git a/contrib/prebuilt/include/google/protobuf/compiler/java/java_field.h b/contrib/prebuilt/include/google/protobuf/compiler/java/java_field.h
deleted file mode 100644
index 6097f35..0000000
--- a/contrib/prebuilt/include/google/protobuf/compiler/java/java_field.h
+++ /dev/null
@@ -1,108 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// http://code.google.com/p/protobuf/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Author: kenton@google.com (Kenton Varda)
-// Based on original Protocol Buffers design by
-// Sanjay Ghemawat, Jeff Dean, and others.
-
-#ifndef GOOGLE_PROTOBUF_COMPILER_JAVA_FIELD_H__
-#define GOOGLE_PROTOBUF_COMPILER_JAVA_FIELD_H__
-
-#include <string>
-#include <google/protobuf/stubs/common.h>
-#include <google/protobuf/descriptor.h>
-
-namespace google {
-namespace protobuf {
- namespace io {
- class Printer; // printer.h
- }
-}
-
-namespace protobuf {
-namespace compiler {
-namespace java {
-
-class FieldGenerator {
- public:
- FieldGenerator() {}
- virtual ~FieldGenerator();
-
- virtual int GetNumBitsForMessage() const = 0;
- virtual int GetNumBitsForBuilder() const = 0;
- virtual void GenerateInterfaceMembers(io::Printer* printer) const = 0;
- virtual void GenerateMembers(io::Printer* printer) const = 0;
- virtual void GenerateBuilderMembers(io::Printer* printer) const = 0;
- virtual void GenerateInitializationCode(io::Printer* printer) const = 0;
- virtual void GenerateBuilderClearCode(io::Printer* printer) const = 0;
- virtual void GenerateMergingCode(io::Printer* printer) const = 0;
- virtual void GenerateBuildingCode(io::Printer* printer) const = 0;
- virtual void GenerateParsingCode(io::Printer* printer) const = 0;
- virtual void GenerateParsingCodeFromPacked(io::Printer* printer) const;
- virtual void GenerateSerializationCode(io::Printer* printer) const = 0;
- virtual void GenerateSerializedSizeCode(io::Printer* printer) const = 0;
- virtual void GenerateFieldBuilderInitializationCode(io::Printer* printer)
- const = 0;
-
- virtual void GenerateEqualsCode(io::Printer* printer) const = 0;
- virtual void GenerateHashCode(io::Printer* printer) const = 0;
-
- virtual string GetBoxedType() const = 0;
-
- private:
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(FieldGenerator);
-};
-
-// Convenience class which constructs FieldGenerators for a Descriptor.
-class FieldGeneratorMap {
- public:
- explicit FieldGeneratorMap(const Descriptor* descriptor);
- ~FieldGeneratorMap();
-
- const FieldGenerator& get(const FieldDescriptor* field) const;
- const FieldGenerator& get_extension(int index) const;
-
- private:
- const Descriptor* descriptor_;
- scoped_array<scoped_ptr<FieldGenerator> > field_generators_;
- scoped_array<scoped_ptr<FieldGenerator> > extension_generators_;
-
- static FieldGenerator* MakeGenerator(const FieldDescriptor* field,
- int messageBitIndex, int builderBitIndex);
-
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(FieldGeneratorMap);
-};
-
-} // namespace java
-} // namespace compiler
-} // namespace protobuf
-
-} // namespace google
-#endif // GOOGLE_PROTOBUF_COMPILER_JAVA_FIELD_H__
diff --git a/contrib/prebuilt/include/google/protobuf/compiler/java/java_file.h b/contrib/prebuilt/include/google/protobuf/compiler/java/java_file.h
deleted file mode 100644
index 5991146..0000000
--- a/contrib/prebuilt/include/google/protobuf/compiler/java/java_file.h
+++ /dev/null
@@ -1,101 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// http://code.google.com/p/protobuf/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Author: kenton@google.com (Kenton Varda)
-// Based on original Protocol Buffers design by
-// Sanjay Ghemawat, Jeff Dean, and others.
-
-#ifndef GOOGLE_PROTOBUF_COMPILER_JAVA_FILE_H__
-#define GOOGLE_PROTOBUF_COMPILER_JAVA_FILE_H__
-
-#include <string>
-#include <vector>
-#include <google/protobuf/stubs/common.h>
-
-namespace google {
-namespace protobuf {
- class FileDescriptor; // descriptor.h
- namespace io {
- class Printer; // printer.h
- }
- namespace compiler {
- class GeneratorContext; // code_generator.h
- }
-}
-
-namespace protobuf {
-namespace compiler {
-namespace java {
-
-class FileGenerator {
- public:
- explicit FileGenerator(const FileDescriptor* file);
- ~FileGenerator();
-
- // Checks for problems that would otherwise lead to cryptic compile errors.
- // Returns true if there are no problems, or writes an error description to
- // the given string and returns false otherwise.
- bool Validate(string* error);
-
- void Generate(io::Printer* printer);
-
- // If we aren't putting everything into one file, this will write all the
- // files other than the outer file (i.e. one for each message, enum, and
- // service type).
- void GenerateSiblings(const string& package_dir,
- GeneratorContext* generator_context,
- vector<string>* file_list);
-
- const string& java_package() { return java_package_; }
- const string& classname() { return classname_; }
-
-
- private:
- // Returns whether the dependency should be included in the output file.
- // Always returns true for opensource, but used internally at Google to help
- // improve compatibility with version 1 of protocol buffers.
- bool ShouldIncludeDependency(const FileDescriptor* descriptor);
-
- const FileDescriptor* file_;
- string java_package_;
- string classname_;
-
-
- void GenerateEmbeddedDescriptor(io::Printer* printer);
-
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(FileGenerator);
-};
-
-} // namespace java
-} // namespace compiler
-} // namespace protobuf
-
-} // namespace google
-#endif // GOOGLE_PROTOBUF_COMPILER_JAVA_FILE_H__
diff --git a/contrib/prebuilt/include/google/protobuf/compiler/java/java_generator.h b/contrib/prebuilt/include/google/protobuf/compiler/java/java_generator.h
deleted file mode 100644
index 888b8d8..0000000
--- a/contrib/prebuilt/include/google/protobuf/compiler/java/java_generator.h
+++ /dev/null
@@ -1,72 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// http://code.google.com/p/protobuf/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Author: kenton@google.com (Kenton Varda)
-// Based on original Protocol Buffers design by
-// Sanjay Ghemawat, Jeff Dean, and others.
-//
-// Generates Java code for a given .proto file.
-
-#ifndef GOOGLE_PROTOBUF_COMPILER_JAVA_GENERATOR_H__
-#define GOOGLE_PROTOBUF_COMPILER_JAVA_GENERATOR_H__
-
-#include <string>
-#include <google/protobuf/compiler/code_generator.h>
-
-namespace google {
-namespace protobuf {
-namespace compiler {
-namespace java {
-
-// CodeGenerator implementation which generates Java code. If you create your
-// own protocol compiler binary and you want it to support Java output, you
-// can do so by registering an instance of this CodeGenerator with the
-// CommandLineInterface in your main() function.
-class LIBPROTOC_EXPORT JavaGenerator : public CodeGenerator {
- public:
- JavaGenerator();
- ~JavaGenerator();
-
- // implements CodeGenerator ----------------------------------------
- bool Generate(const FileDescriptor* file,
- const string& parameter,
- GeneratorContext* context,
- string* error) const;
-
- private:
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(JavaGenerator);
-};
-
-} // namespace java
-} // namespace compiler
-} // namespace protobuf
-
-} // namespace google
-#endif // GOOGLE_PROTOBUF_COMPILER_JAVA_GENERATOR_H__
diff --git a/contrib/prebuilt/include/google/protobuf/compiler/java/java_helpers.h b/contrib/prebuilt/include/google/protobuf/compiler/java/java_helpers.h
deleted file mode 100644
index 4ae07f1..0000000
--- a/contrib/prebuilt/include/google/protobuf/compiler/java/java_helpers.h
+++ /dev/null
@@ -1,213 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// http://code.google.com/p/protobuf/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Author: kenton@google.com (Kenton Varda)
-// Based on original Protocol Buffers design by
-// Sanjay Ghemawat, Jeff Dean, and others.
-
-#ifndef GOOGLE_PROTOBUF_COMPILER_JAVA_HELPERS_H__
-#define GOOGLE_PROTOBUF_COMPILER_JAVA_HELPERS_H__
-
-#include <string>
-#include <google/protobuf/descriptor.pb.h>
-#include <google/protobuf/descriptor.h>
-
-namespace google {
-namespace protobuf {
-namespace compiler {
-namespace java {
-
-// Commonly-used separator comments. Thick is a line of '=', thin is a line
-// of '-'.
-extern const char kThickSeparator[];
-extern const char kThinSeparator[];
-
-// Converts the field's name to camel-case, e.g. "foo_bar_baz" becomes
-// "fooBarBaz" or "FooBarBaz", respectively.
-string UnderscoresToCamelCase(const FieldDescriptor* field);
-string UnderscoresToCapitalizedCamelCase(const FieldDescriptor* field);
-
-// Similar, but for method names. (Typically, this merely has the effect
-// of lower-casing the first letter of the name.)
-string UnderscoresToCamelCase(const MethodDescriptor* method);
-
-// Strips ".proto" or ".protodevel" from the end of a filename.
-string StripProto(const string& filename);
-
-// Gets the unqualified class name for the file. Each .proto file becomes a
-// single Java class, with all its contents nested in that class.
-string FileClassName(const FileDescriptor* file);
-
-// Returns the file's Java package name.
-string FileJavaPackage(const FileDescriptor* file);
-
-// Returns output directory for the given package name.
-string JavaPackageToDir(string package_name);
-
-// Converts the given fully-qualified name in the proto namespace to its
-// fully-qualified name in the Java namespace, given that it is in the given
-// file.
-string ToJavaName(const string& full_name, const FileDescriptor* file);
-
-// These return the fully-qualified class name corresponding to the given
-// descriptor.
-inline string ClassName(const Descriptor* descriptor) {
- return ToJavaName(descriptor->full_name(), descriptor->file());
-}
-inline string ClassName(const EnumDescriptor* descriptor) {
- return ToJavaName(descriptor->full_name(), descriptor->file());
-}
-inline string ClassName(const ServiceDescriptor* descriptor) {
- return ToJavaName(descriptor->full_name(), descriptor->file());
-}
-inline string ExtensionIdentifierName(const FieldDescriptor* descriptor) {
- return ToJavaName(descriptor->full_name(), descriptor->file());
-}
-string ClassName(const FileDescriptor* descriptor);
-
-// Get the unqualified name that should be used for a field's field
-// number constant.
-string FieldConstantName(const FieldDescriptor *field);
-
-// Returns the type of the FieldDescriptor.
-// This does nothing interesting for the open source release, but is used for
-// hacks that improve compatability with version 1 protocol buffers at Google.
-FieldDescriptor::Type GetType(const FieldDescriptor* field);
-
-enum JavaType {
- JAVATYPE_INT,
- JAVATYPE_LONG,
- JAVATYPE_FLOAT,
- JAVATYPE_DOUBLE,
- JAVATYPE_BOOLEAN,
- JAVATYPE_STRING,
- JAVATYPE_BYTES,
- JAVATYPE_ENUM,
- JAVATYPE_MESSAGE
-};
-
-JavaType GetJavaType(const FieldDescriptor* field);
-
-// Get the fully-qualified class name for a boxed primitive type, e.g.
-// "java.lang.Integer" for JAVATYPE_INT. Returns NULL for enum and message
-// types.
-const char* BoxedPrimitiveTypeName(JavaType type);
-
-string DefaultValue(const FieldDescriptor* field);
-bool IsDefaultValueJavaDefault(const FieldDescriptor* field);
-
-// Does this message class keep track of unknown fields?
-inline bool HasUnknownFields(const Descriptor* descriptor) {
- return descriptor->file()->options().optimize_for() !=
- FileOptions::LITE_RUNTIME;
-}
-
-// Does this message class have generated parsing, serialization, and other
-// standard methods for which reflection-based fallback implementations exist?
-inline bool HasGeneratedMethods(const Descriptor* descriptor) {
- return descriptor->file()->options().optimize_for() !=
- FileOptions::CODE_SIZE;
-}
-
-// Does this message have specialized equals() and hashCode() methods?
-inline bool HasEqualsAndHashCode(const Descriptor* descriptor) {
- return descriptor->file()->options().java_generate_equals_and_hash();
-}
-
-// Does this message class have descriptor and reflection methods?
-inline bool HasDescriptorMethods(const Descriptor* descriptor) {
- return descriptor->file()->options().optimize_for() !=
- FileOptions::LITE_RUNTIME;
-}
-inline bool HasDescriptorMethods(const EnumDescriptor* descriptor) {
- return descriptor->file()->options().optimize_for() !=
- FileOptions::LITE_RUNTIME;
-}
-inline bool HasDescriptorMethods(const FileDescriptor* descriptor) {
- return descriptor->options().optimize_for() !=
- FileOptions::LITE_RUNTIME;
-}
-
-inline bool HasNestedBuilders(const Descriptor* descriptor) {
- // The proto-lite version doesn't support nested builders.
- return descriptor->file()->options().optimize_for() !=
- FileOptions::LITE_RUNTIME;
-}
-
-// Should we generate generic services for this file?
-inline bool HasGenericServices(const FileDescriptor *file) {
- return file->service_count() > 0 &&
- file->options().optimize_for() != FileOptions::LITE_RUNTIME &&
- file->options().java_generic_services();
-}
-
-
-// Methods for shared bitfields.
-
-// Gets the name of the shared bitfield for the given index.
-string GetBitFieldName(int index);
-
-// Gets the name of the shared bitfield for the given bit index.
-// Effectively, GetBitFieldName(bitIndex / 32)
-string GetBitFieldNameForBit(int bitIndex);
-
-// Generates the java code for the expression that returns the boolean value
-// of the bit of the shared bitfields for the given bit index.
-// Example: "((bitField1_ & 0x04) == 0x04)"
-string GenerateGetBit(int bitIndex);
-
-// Generates the java code for the expression that sets the bit of the shared
-// bitfields for the given bit index.
-// Example: "bitField1_ = (bitField1_ | 0x04)"
-string GenerateSetBit(int bitIndex);
-
-// Generates the java code for the expression that clears the bit of the shared
-// bitfields for the given bit index.
-// Example: "bitField1_ = (bitField1_ & ~0x04)"
-string GenerateClearBit(int bitIndex);
-
-// Does the same as GenerateGetBit but operates on the bit field on a local
-// variable. This is used by the builder to copy the value in the builder to
-// the message.
-// Example: "((from_bitField1_ & 0x04) == 0x04)"
-string GenerateGetBitFromLocal(int bitIndex);
-
-// Does the same as GenerateSetBit but operates on the bit field on a local
-// variable. This is used by the builder to copy the value in the builder to
-// the message.
-// Example: "to_bitField1_ = (to_bitField1_ | 0x04)"
-string GenerateSetBitToLocal(int bitIndex);
-
-} // namespace java
-} // namespace compiler
-} // namespace protobuf
-
-} // namespace google
-#endif // GOOGLE_PROTOBUF_COMPILER_JAVA_HELPERS_H__
diff --git a/contrib/prebuilt/include/google/protobuf/compiler/java/java_message.h b/contrib/prebuilt/include/google/protobuf/compiler/java/java_message.h
deleted file mode 100644
index 4c6fbbe..0000000
--- a/contrib/prebuilt/include/google/protobuf/compiler/java/java_message.h
+++ /dev/null
@@ -1,109 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// http://code.google.com/p/protobuf/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Author: kenton@google.com (Kenton Varda)
-// Based on original Protocol Buffers design by
-// Sanjay Ghemawat, Jeff Dean, and others.
-
-#ifndef GOOGLE_PROTOBUF_COMPILER_JAVA_MESSAGE_H__
-#define GOOGLE_PROTOBUF_COMPILER_JAVA_MESSAGE_H__
-
-#include <string>
-#include <google/protobuf/stubs/common.h>
-#include <google/protobuf/compiler/java/java_field.h>
-
-namespace google {
-namespace protobuf {
- namespace io {
- class Printer; // printer.h
- }
-}
-
-namespace protobuf {
-namespace compiler {
-namespace java {
-
-class MessageGenerator {
- public:
- explicit MessageGenerator(const Descriptor* descriptor);
- ~MessageGenerator();
-
- // All static variables have to be declared at the top-level of the file
- // so that we can control initialization order, which is important for
- // DescriptorProto bootstrapping to work.
- void GenerateStaticVariables(io::Printer* printer);
-
- // Output code which initializes the static variables generated by
- // GenerateStaticVariables().
- void GenerateStaticVariableInitializers(io::Printer* printer);
-
- // Generate the class itself.
- void Generate(io::Printer* printer);
-
- // Generates the base interface that both the class and its builder implement
- void GenerateInterface(io::Printer* printer);
-
- // Generate code to register all contained extensions with an
- // ExtensionRegistry.
- void GenerateExtensionRegistrationCode(io::Printer* printer);
-
- private:
- enum UseMemoization {
- MEMOIZE,
- DONT_MEMOIZE
- };
-
- void GenerateMessageSerializationMethods(io::Printer* printer);
- void GenerateParseFromMethods(io::Printer* printer);
- void GenerateSerializeOneField(io::Printer* printer,
- const FieldDescriptor* field);
- void GenerateSerializeOneExtensionRange(
- io::Printer* printer, const Descriptor::ExtensionRange* range);
-
- void GenerateBuilder(io::Printer* printer);
- void GenerateCommonBuilderMethods(io::Printer* printer);
- void GenerateDescriptorMethods(io::Printer* printer);
- void GenerateBuilderParsingMethods(io::Printer* printer);
- void GenerateIsInitialized(io::Printer* printer,
- UseMemoization useMemoization);
- void GenerateEqualsAndHashCode(io::Printer* printer);
-
- const Descriptor* descriptor_;
- FieldGeneratorMap field_generators_;
-
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(MessageGenerator);
-};
-
-} // namespace java
-} // namespace compiler
-} // namespace protobuf
-
-} // namespace google
-#endif // GOOGLE_PROTOBUF_COMPILER_JAVA_MESSAGE_H__
diff --git a/contrib/prebuilt/include/google/protobuf/compiler/java/java_message_field.h b/contrib/prebuilt/include/google/protobuf/compiler/java/java_message_field.h
deleted file mode 100644
index 2efbcd9..0000000
--- a/contrib/prebuilt/include/google/protobuf/compiler/java/java_message_field.h
+++ /dev/null
@@ -1,134 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// http://code.google.com/p/protobuf/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Author: kenton@google.com (Kenton Varda)
-// Based on original Protocol Buffers design by
-// Sanjay Ghemawat, Jeff Dean, and others.
-
-#ifndef GOOGLE_PROTOBUF_COMPILER_JAVA_MESSAGE_FIELD_H__
-#define GOOGLE_PROTOBUF_COMPILER_JAVA_MESSAGE_FIELD_H__
-
-#include <map>
-#include <string>
-#include <google/protobuf/compiler/java/java_field.h>
-
-namespace google {
-namespace protobuf {
-namespace compiler {
-namespace java {
-
-class MessageFieldGenerator : public FieldGenerator {
- public:
- explicit MessageFieldGenerator(const FieldDescriptor* descriptor,
- int messageBitIndex, int builderBitIndex);
- ~MessageFieldGenerator();
-
- // implements FieldGenerator ---------------------------------------
- int GetNumBitsForMessage() const;
- int GetNumBitsForBuilder() const;
- void GenerateInterfaceMembers(io::Printer* printer) const;
- void GenerateMembers(io::Printer* printer) const;
- void GenerateBuilderMembers(io::Printer* printer) const;
- void GenerateInitializationCode(io::Printer* printer) const;
- void GenerateBuilderClearCode(io::Printer* printer) const;
- void GenerateMergingCode(io::Printer* printer) const;
- void GenerateBuildingCode(io::Printer* printer) const;
- void GenerateParsingCode(io::Printer* printer) const;
- void GenerateSerializationCode(io::Printer* printer) const;
- void GenerateSerializedSizeCode(io::Printer* printer) const;
- void GenerateFieldBuilderInitializationCode(io::Printer* printer) const;
- void GenerateEqualsCode(io::Printer* printer) const;
- void GenerateHashCode(io::Printer* printer) const;
-
- string GetBoxedType() const;
-
- private:
- const FieldDescriptor* descriptor_;
- map<string, string> variables_;
- const int messageBitIndex_;
- const int builderBitIndex_;
-
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(MessageFieldGenerator);
-
- void PrintNestedBuilderCondition(io::Printer* printer,
- const char* regular_case, const char* nested_builder_case) const;
- void PrintNestedBuilderFunction(io::Printer* printer,
- const char* method_prototype, const char* regular_case,
- const char* nested_builder_case,
- const char* trailing_code) const;
-};
-
-class RepeatedMessageFieldGenerator : public FieldGenerator {
- public:
- explicit RepeatedMessageFieldGenerator(const FieldDescriptor* descriptor,
- int messageBitIndex, int builderBitIndex);
- ~RepeatedMessageFieldGenerator();
-
- // implements FieldGenerator ---------------------------------------
- int GetNumBitsForMessage() const;
- int GetNumBitsForBuilder() const;
- void GenerateInterfaceMembers(io::Printer* printer) const;
- void GenerateMembers(io::Printer* printer) const;
- void GenerateBuilderMembers(io::Printer* printer) const;
- void GenerateInitializationCode(io::Printer* printer) const;
- void GenerateBuilderClearCode(io::Printer* printer) const;
- void GenerateMergingCode(io::Printer* printer) const;
- void GenerateBuildingCode(io::Printer* printer) const;
- void GenerateParsingCode(io::Printer* printer) const;
- void GenerateSerializationCode(io::Printer* printer) const;
- void GenerateSerializedSizeCode(io::Printer* printer) const;
- void GenerateFieldBuilderInitializationCode(io::Printer* printer) const;
- void GenerateEqualsCode(io::Printer* printer) const;
- void GenerateHashCode(io::Printer* printer) const;
-
- string GetBoxedType() const;
-
- private:
- const FieldDescriptor* descriptor_;
- map<string, string> variables_;
- const int messageBitIndex_;
- const int builderBitIndex_;
-
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(RepeatedMessageFieldGenerator);
-
- void PrintNestedBuilderCondition(io::Printer* printer,
- const char* regular_case, const char* nested_builder_case) const;
- void PrintNestedBuilderFunction(io::Printer* printer,
- const char* method_prototype, const char* regular_case,
- const char* nested_builder_case,
- const char* trailing_code) const;
-};
-
-} // namespace java
-} // namespace compiler
-} // namespace protobuf
-
-} // namespace google
-#endif // GOOGLE_PROTOBUF_COMPILER_JAVA_MESSAGE_FIELD_H__
diff --git a/contrib/prebuilt/include/google/protobuf/compiler/java/java_primitive_field.h b/contrib/prebuilt/include/google/protobuf/compiler/java/java_primitive_field.h
deleted file mode 100644
index 7900fac..0000000
--- a/contrib/prebuilt/include/google/protobuf/compiler/java/java_primitive_field.h
+++ /dev/null
@@ -1,121 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// http://code.google.com/p/protobuf/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Author: kenton@google.com (Kenton Varda)
-// Based on original Protocol Buffers design by
-// Sanjay Ghemawat, Jeff Dean, and others.
-
-#ifndef GOOGLE_PROTOBUF_COMPILER_JAVA_PRIMITIVE_FIELD_H__
-#define GOOGLE_PROTOBUF_COMPILER_JAVA_PRIMITIVE_FIELD_H__
-
-#include <map>
-#include <string>
-#include <google/protobuf/compiler/java/java_field.h>
-
-namespace google {
-namespace protobuf {
-namespace compiler {
-namespace java {
-
-class PrimitiveFieldGenerator : public FieldGenerator {
- public:
- explicit PrimitiveFieldGenerator(const FieldDescriptor* descriptor,
- int messageBitIndex, int builderBitIndex);
- ~PrimitiveFieldGenerator();
-
- // implements FieldGenerator ---------------------------------------
- int GetNumBitsForMessage() const;
- int GetNumBitsForBuilder() const;
- void GenerateInterfaceMembers(io::Printer* printer) const;
- void GenerateMembers(io::Printer* printer) const;
- void GenerateBuilderMembers(io::Printer* printer) const;
- void GenerateInitializationCode(io::Printer* printer) const;
- void GenerateBuilderClearCode(io::Printer* printer) const;
- void GenerateMergingCode(io::Printer* printer) const;
- void GenerateBuildingCode(io::Printer* printer) const;
- void GenerateParsingCode(io::Printer* printer) const;
- void GenerateSerializationCode(io::Printer* printer) const;
- void GenerateSerializedSizeCode(io::Printer* printer) const;
- void GenerateFieldBuilderInitializationCode(io::Printer* printer) const;
- void GenerateEqualsCode(io::Printer* printer) const;
- void GenerateHashCode(io::Printer* printer) const;
-
- string GetBoxedType() const;
-
- private:
- const FieldDescriptor* descriptor_;
- map<string, string> variables_;
- const int messageBitIndex_;
- const int builderBitIndex_;
-
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(PrimitiveFieldGenerator);
-};
-
-class RepeatedPrimitiveFieldGenerator : public FieldGenerator {
- public:
- explicit RepeatedPrimitiveFieldGenerator(const FieldDescriptor* descriptor,
- int messageBitIndex, int builderBitIndex);
- ~RepeatedPrimitiveFieldGenerator();
-
- // implements FieldGenerator ---------------------------------------
- int GetNumBitsForMessage() const;
- int GetNumBitsForBuilder() const;
- void GenerateInterfaceMembers(io::Printer* printer) const;
- void GenerateMembers(io::Printer* printer) const;
- void GenerateBuilderMembers(io::Printer* printer) const;
- void GenerateInitializationCode(io::Printer* printer) const;
- void GenerateBuilderClearCode(io::Printer* printer) const;
- void GenerateMergingCode(io::Printer* printer) const;
- void GenerateBuildingCode(io::Printer* printer) const;
- void GenerateParsingCode(io::Printer* printer) const;
- void GenerateParsingCodeFromPacked(io::Printer* printer) const;
- void GenerateSerializationCode(io::Printer* printer) const;
- void GenerateSerializedSizeCode(io::Printer* printer) const;
- void GenerateFieldBuilderInitializationCode(io::Printer* printer) const;
- void GenerateEqualsCode(io::Printer* printer) const;
- void GenerateHashCode(io::Printer* printer) const;
-
- string GetBoxedType() const;
-
- private:
- const FieldDescriptor* descriptor_;
- map<string, string> variables_;
- const int messageBitIndex_;
- const int builderBitIndex_;
-
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(RepeatedPrimitiveFieldGenerator);
-};
-
-} // namespace java
-} // namespace compiler
-} // namespace protobuf
-
-} // namespace google
-#endif // GOOGLE_PROTOBUF_COMPILER_JAVA_PRIMITIVE_FIELD_H__
diff --git a/contrib/prebuilt/include/google/protobuf/compiler/java/java_service.h b/contrib/prebuilt/include/google/protobuf/compiler/java/java_service.h
deleted file mode 100644
index e07eebf..0000000
--- a/contrib/prebuilt/include/google/protobuf/compiler/java/java_service.h
+++ /dev/null
@@ -1,113 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// http://code.google.com/p/protobuf/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Author: kenton@google.com (Kenton Varda)
-// Based on original Protocol Buffers design by
-// Sanjay Ghemawat, Jeff Dean, and others.
-
-#ifndef GOOGLE_PROTOBUF_COMPILER_JAVA_SERVICE_H__
-#define GOOGLE_PROTOBUF_COMPILER_JAVA_SERVICE_H__
-
-#include <map>
-#include <google/protobuf/descriptor.h>
-
-namespace google {
-namespace protobuf {
- namespace io {
- class Printer; // printer.h
- }
-}
-
-namespace protobuf {
-namespace compiler {
-namespace java {
-
-class ServiceGenerator {
- public:
- explicit ServiceGenerator(const ServiceDescriptor* descriptor);
- ~ServiceGenerator();
-
- void Generate(io::Printer* printer);
-
- private:
-
- // Generate the getDescriptorForType() method.
- void GenerateGetDescriptorForType(io::Printer* printer);
-
- // Generate a Java interface for the service.
- void GenerateInterface(io::Printer* printer);
-
- // Generate newReflectiveService() method.
- void GenerateNewReflectiveServiceMethod(io::Printer* printer);
-
- // Generate newReflectiveBlockingService() method.
- void GenerateNewReflectiveBlockingServiceMethod(io::Printer* printer);
-
- // Generate abstract method declarations for all methods.
- void GenerateAbstractMethods(io::Printer* printer);
-
- // Generate the implementation of Service.callMethod().
- void GenerateCallMethod(io::Printer* printer);
-
- // Generate the implementation of BlockingService.callBlockingMethod().
- void GenerateCallBlockingMethod(io::Printer* printer);
-
- // Generate the implementations of Service.get{Request,Response}Prototype().
- enum RequestOrResponse { REQUEST, RESPONSE };
- void GenerateGetPrototype(RequestOrResponse which, io::Printer* printer);
-
- // Generate a stub implementation of the service.
- void GenerateStub(io::Printer* printer);
-
- // Generate a method signature, possibly abstract, without body or trailing
- // semicolon.
- enum IsAbstract { IS_ABSTRACT, IS_CONCRETE };
- void GenerateMethodSignature(io::Printer* printer,
- const MethodDescriptor* method,
- IsAbstract is_abstract);
-
- // Generate a blocking stub interface and implementation of the service.
- void GenerateBlockingStub(io::Printer* printer);
-
- // Generate the method signature for one method of a blocking stub.
- void GenerateBlockingMethodSignature(io::Printer* printer,
- const MethodDescriptor* method);
-
- const ServiceDescriptor* descriptor_;
-
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(ServiceGenerator);
-};
-
-} // namespace java
-} // namespace compiler
-} // namespace protobuf
-
-#endif // NET_PROTO2_COMPILER_JAVA_SERVICE_H__
-} // namespace google
diff --git a/contrib/prebuilt/include/google/protobuf/compiler/java/java_string_field.h b/contrib/prebuilt/include/google/protobuf/compiler/java/java_string_field.h
deleted file mode 100644
index 8cb4146..0000000
--- a/contrib/prebuilt/include/google/protobuf/compiler/java/java_string_field.h
+++ /dev/null
@@ -1,120 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// http://code.google.com/p/protobuf/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Author: kenton@google.com (Kenton Varda)
-// Author: jonp@google.com (Jon Perlow)
-// Based on original Protocol Buffers design by
-// Sanjay Ghemawat, Jeff Dean, and others.
-
-#ifndef GOOGLE_PROTOBUF_COMPILER_JAVA_STRING_FIELD_H__
-#define GOOGLE_PROTOBUF_COMPILER_JAVA_STRING_FIELD_H__
-
-#include <map>
-#include <string>
-#include <google/protobuf/compiler/java/java_field.h>
-
-namespace google {
-namespace protobuf {
-namespace compiler {
-namespace java {
-
-class StringFieldGenerator : public FieldGenerator {
- public:
- explicit StringFieldGenerator(const FieldDescriptor* descriptor,
- int messageBitIndex, int builderBitIndex);
- ~StringFieldGenerator();
-
- // implements FieldGenerator ---------------------------------------
- int GetNumBitsForMessage() const;
- int GetNumBitsForBuilder() const;
- void GenerateInterfaceMembers(io::Printer* printer) const;
- void GenerateMembers(io::Printer* printer) const;
- void GenerateBuilderMembers(io::Printer* printer) const;
- void GenerateInitializationCode(io::Printer* printer) const;
- void GenerateBuilderClearCode(io::Printer* printer) const;
- void GenerateMergingCode(io::Printer* printer) const;
- void GenerateBuildingCode(io::Printer* printer) const;
- void GenerateParsingCode(io::Printer* printer) const;
- void GenerateSerializationCode(io::Printer* printer) const;
- void GenerateSerializedSizeCode(io::Printer* printer) const;
- void GenerateFieldBuilderInitializationCode(io::Printer* printer) const;
- void GenerateEqualsCode(io::Printer* printer) const;
- void GenerateHashCode(io::Printer* printer) const;
- string GetBoxedType() const;
-
- private:
- const FieldDescriptor* descriptor_;
- map<string, string> variables_;
- const int messageBitIndex_;
- const int builderBitIndex_;
-
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(StringFieldGenerator);
-};
-
-class RepeatedStringFieldGenerator : public FieldGenerator {
- public:
- explicit RepeatedStringFieldGenerator(const FieldDescriptor* descriptor,
- int messageBitIndex, int builderBitIndex);
- ~RepeatedStringFieldGenerator();
-
- // implements FieldGenerator ---------------------------------------
- int GetNumBitsForMessage() const;
- int GetNumBitsForBuilder() const;
- void GenerateInterfaceMembers(io::Printer* printer) const;
- void GenerateMembers(io::Printer* printer) const;
- void GenerateBuilderMembers(io::Printer* printer) const;
- void GenerateInitializationCode(io::Printer* printer) const;
- void GenerateBuilderClearCode(io::Printer* printer) const;
- void GenerateMergingCode(io::Printer* printer) const;
- void GenerateBuildingCode(io::Printer* printer) const;
- void GenerateParsingCode(io::Printer* printer) const;
- void GenerateParsingCodeFromPacked(io::Printer* printer) const;
- void GenerateSerializationCode(io::Printer* printer) const;
- void GenerateSerializedSizeCode(io::Printer* printer) const;
- void GenerateFieldBuilderInitializationCode(io::Printer* printer) const;
- void GenerateEqualsCode(io::Printer* printer) const;
- void GenerateHashCode(io::Printer* printer) const;
- string GetBoxedType() const;
-
- private:
- const FieldDescriptor* descriptor_;
- map<string, string> variables_;
- const int messageBitIndex_;
- const int builderBitIndex_;
-
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(RepeatedStringFieldGenerator);
-};
-
-} // namespace java
-} // namespace compiler
-} // namespace protobuf
-
-} // namespace google
-#endif // GOOGLE_PROTOBUF_COMPILER_JAVA_STRING_FIELD_H__
diff --git a/contrib/prebuilt/include/google/protobuf/compiler/parser.h b/contrib/prebuilt/include/google/protobuf/compiler/parser.h
deleted file mode 100644
index 4cc90a2..0000000
--- a/contrib/prebuilt/include/google/protobuf/compiler/parser.h
+++ /dev/null
@@ -1,434 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// http://code.google.com/p/protobuf/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Author: kenton@google.com (Kenton Varda)
-// Based on original Protocol Buffers design by
-// Sanjay Ghemawat, Jeff Dean, and others.
-//
-// Implements parsing of .proto files to FileDescriptorProtos.
-
-#ifndef GOOGLE_PROTOBUF_COMPILER_PARSER_H__
-#define GOOGLE_PROTOBUF_COMPILER_PARSER_H__
-
-#include <map>
-#include <string>
-#include <utility>
-#include <google/protobuf/stubs/common.h>
-#include <google/protobuf/descriptor.h>
-#include <google/protobuf/descriptor.pb.h>
-#include <google/protobuf/repeated_field.h>
-#include <google/protobuf/io/tokenizer.h>
-
-namespace google {
-namespace protobuf { class Message; }
-
-namespace protobuf {
-namespace compiler {
-
-// Defined in this file.
-class Parser;
-class SourceLocationTable;
-
-// Implements parsing of protocol definitions (such as .proto files).
-//
-// Note that most users will be more interested in the Importer class.
-// Parser is a lower-level class which simply converts a single .proto file
-// to a FileDescriptorProto. It does not resolve import directives or perform
-// many other kinds of validation needed to construct a complete
-// FileDescriptor.
-class LIBPROTOBUF_EXPORT Parser {
- public:
- Parser();
- ~Parser();
-
- // Parse the entire input and construct a FileDescriptorProto representing
- // it. Returns true if no errors occurred, false otherwise.
- bool Parse(io::Tokenizer* input, FileDescriptorProto* file);
-
- // Optional fetaures:
-
- // DEPRECATED: New code should use the SourceCodeInfo embedded in the
- // FileDescriptorProto.
- //
- // Requests that locations of certain definitions be recorded to the given
- // SourceLocationTable while parsing. This can be used to look up exact line
- // and column numbers for errors reported by DescriptorPool during validation.
- // Set to NULL (the default) to discard source location information.
- void RecordSourceLocationsTo(SourceLocationTable* location_table) {
- source_location_table_ = location_table;
- }
-
- // Requests that errors be recorded to the given ErrorCollector while
- // parsing. Set to NULL (the default) to discard error messages.
- void RecordErrorsTo(io::ErrorCollector* error_collector) {
- error_collector_ = error_collector;
- }
-
- // Returns the identifier used in the "syntax = " declaration, if one was
- // seen during the last call to Parse(), or the empty string otherwise.
- const string& GetSyntaxIdentifier() { return syntax_identifier_; }
-
- // If set true, input files will be required to begin with a syntax
- // identifier. Otherwise, files may omit this. If a syntax identifier
- // is provided, it must be 'syntax = "proto2";' and must appear at the
- // top of this file regardless of whether or not it was required.
- void SetRequireSyntaxIdentifier(bool value) {
- require_syntax_identifier_ = value;
- }
-
- // Call SetStopAfterSyntaxIdentifier(true) to tell the parser to stop
- // parsing as soon as it has seen the syntax identifier, or lack thereof.
- // This is useful for quickly identifying the syntax of the file without
- // parsing the whole thing. If this is enabled, no error will be recorded
- // if the syntax identifier is something other than "proto2" (since
- // presumably the caller intends to deal with that), but other kinds of
- // errors (e.g. parse errors) will still be reported. When this is enabled,
- // you may pass a NULL FileDescriptorProto to Parse().
- void SetStopAfterSyntaxIdentifier(bool value) {
- stop_after_syntax_identifier_ = value;
- }
-
- private:
- // =================================================================
- // Error recovery helpers
-
- // Consume the rest of the current statement. This consumes tokens
- // until it sees one of:
- // ';' Consumes the token and returns.
- // '{' Consumes the brace then calls SkipRestOfBlock().
- // '}' Returns without consuming.
- // EOF Returns (can't consume).
- // The Parser often calls SkipStatement() after encountering a syntax
- // error. This allows it to go on parsing the following lines, allowing
- // it to report more than just one error in the file.
- void SkipStatement();
-
- // Consume the rest of the current block, including nested blocks,
- // ending after the closing '}' is encountered and consumed, or at EOF.
- void SkipRestOfBlock();
-
- // -----------------------------------------------------------------
- // Single-token consuming helpers
- //
- // These make parsing code more readable.
-
- // True if the current token is TYPE_END.
- inline bool AtEnd();
-
- // True if the next token matches the given text.
- inline bool LookingAt(const char* text);
- // True if the next token is of the given type.
- inline bool LookingAtType(io::Tokenizer::TokenType token_type);
-
- // If the next token exactly matches the text given, consume it and return
- // true. Otherwise, return false without logging an error.
- bool TryConsume(const char* text);
-
- // These attempt to read some kind of token from the input. If successful,
- // they return true. Otherwise they return false and add the given error
- // to the error list.
-
- // Consume a token with the exact text given.
- bool Consume(const char* text, const char* error);
- // Same as above, but automatically generates the error "Expected \"text\".",
- // where "text" is the expected token text.
- bool Consume(const char* text);
- // Consume a token of type IDENTIFIER and store its text in "output".
- bool ConsumeIdentifier(string* output, const char* error);
- // Consume an integer and store its value in "output".
- bool ConsumeInteger(int* output, const char* error);
- // Consume a 64-bit integer and store its value in "output". If the value
- // is greater than max_value, an error will be reported.
- bool ConsumeInteger64(uint64 max_value, uint64* output, const char* error);
- // Consume a number and store its value in "output". This will accept
- // tokens of either INTEGER or FLOAT type.
- bool ConsumeNumber(double* output, const char* error);
- // Consume a string literal and store its (unescaped) value in "output".
- bool ConsumeString(string* output, const char* error);
-
- // -----------------------------------------------------------------
- // Error logging helpers
-
- // Invokes error_collector_->AddError(), if error_collector_ is not NULL.
- void AddError(int line, int column, const string& error);
-
- // Invokes error_collector_->AddError() with the line and column number
- // of the current token.
- void AddError(const string& error);
-
- // Records a location in the SourceCodeInfo.location table (see
- // descriptor.proto). We use RAII to ensure that the start and end locations
- // are recorded -- the constructor records the start location and the
- // destructor records the end location. Since the parser is
- // recursive-descent, this works out beautifully.
- class LIBPROTOBUF_EXPORT LocationRecorder {
- public:
- // Construct the file's "root" location.
- LocationRecorder(Parser* parser);
-
- // Construct a location that represents a declaration nested within the
- // given parent. E.g. a field's location is nested within the location
- // for a message type. The parent's path will be copied, so you should
- // call AddPath() only to add the path components leading from the parent
- // to the child (as opposed to leading from the root to the child).
- LocationRecorder(const LocationRecorder& parent);
-
- // Convenience constructors that call AddPath() one or two times.
- LocationRecorder(const LocationRecorder& parent, int path1);
- LocationRecorder(const LocationRecorder& parent, int path1, int path2);
-
- ~LocationRecorder();
-
- // Add a path component. See SourceCodeInfo.Location.path in
- // descriptor.proto.
- void AddPath(int path_component);
-
- // By default the location is considered to start at the current token at
- // the time the LocationRecorder is created. StartAt() sets the start
- // location to the given token instead.
- void StartAt(const io::Tokenizer::Token& token);
-
- // By default the location is considered to end at the previous token at
- // the time the LocationRecorder is destroyed. EndAt() sets the end
- // location to the given token instead.
- void EndAt(const io::Tokenizer::Token& token);
-
- // Records the start point of this location to the SourceLocationTable that
- // was passed to RecordSourceLocationsTo(), if any. SourceLocationTable
- // is an older way of keeping track of source locations which is still
- // used in some places.
- void RecordLegacyLocation(const Message* descriptor,
- DescriptorPool::ErrorCollector::ErrorLocation location);
-
- private:
- Parser* parser_;
- SourceCodeInfo::Location* location_;
-
- void Init(const LocationRecorder& parent);
- };
-
- // =================================================================
- // Parsers for various language constructs
-
- // Parses the "syntax = \"proto2\";" line at the top of the file. Returns
- // false if it failed to parse or if the syntax identifier was not
- // recognized.
- bool ParseSyntaxIdentifier();
-
- // These methods parse various individual bits of code. They return
- // false if they completely fail to parse the construct. In this case,
- // it is probably necessary to skip the rest of the statement to recover.
- // However, if these methods return true, it does NOT mean that there
- // were no errors; only that there were no *syntax* errors. For instance,
- // if a service method is defined using proper syntax but uses a primitive
- // type as its input or output, ParseMethodField() still returns true
- // and only reports the error by calling AddError(). In practice, this
- // makes logic much simpler for the caller.
-
- // Parse a top-level message, enum, service, etc.
- bool ParseTopLevelStatement(FileDescriptorProto* file,
- const LocationRecorder& root_location);
-
- // Parse various language high-level language construrcts.
- bool ParseMessageDefinition(DescriptorProto* message,
- const LocationRecorder& message_location);
- bool ParseEnumDefinition(EnumDescriptorProto* enum_type,
- const LocationRecorder& enum_location);
- bool ParseServiceDefinition(ServiceDescriptorProto* service,
- const LocationRecorder& service_location);
- bool ParsePackage(FileDescriptorProto* file,
- const LocationRecorder& root_location);
- bool ParseImport(string* import_filename,
- const LocationRecorder& root_location,
- int index);
- bool ParseOption(Message* options,
- const LocationRecorder& options_location);
-
- // These methods parse the contents of a message, enum, or service type and
- // add them to the given object. They consume the entire block including
- // the beginning and ending brace.
- bool ParseMessageBlock(DescriptorProto* message,
- const LocationRecorder& message_location);
- bool ParseEnumBlock(EnumDescriptorProto* enum_type,
- const LocationRecorder& enum_location);
- bool ParseServiceBlock(ServiceDescriptorProto* service,
- const LocationRecorder& service_location);
-
- // Parse one statement within a message, enum, or service block, inclunding
- // final semicolon.
- bool ParseMessageStatement(DescriptorProto* message,
- const LocationRecorder& message_location);
- bool ParseEnumStatement(EnumDescriptorProto* message,
- const LocationRecorder& enum_location);
- bool ParseServiceStatement(ServiceDescriptorProto* message,
- const LocationRecorder& service_location);
-
- // Parse a field of a message. If the field is a group, its type will be
- // added to "messages".
- //
- // parent_location and location_field_number_for_nested_type are needed when
- // parsing groups -- we need to generate a nested message type within the
- // parent and record its location accordingly. Since the parent could be
- // either a FileDescriptorProto or a DescriptorProto, we must pass in the
- // correct field number to use.
- bool ParseMessageField(FieldDescriptorProto* field,
- RepeatedPtrField<DescriptorProto>* messages,
- const LocationRecorder& parent_location,
- int location_field_number_for_nested_type,
- const LocationRecorder& field_location);
-
- // Parse an "extensions" declaration.
- bool ParseExtensions(DescriptorProto* message,
- const LocationRecorder& extensions_location);
-
- // Parse an "extend" declaration. (See also comments for
- // ParseMessageField().)
- bool ParseExtend(RepeatedPtrField<FieldDescriptorProto>* extensions,
- RepeatedPtrField<DescriptorProto>* messages,
- const LocationRecorder& parent_location,
- int location_field_number_for_nested_type,
- const LocationRecorder& extend_location);
-
- // Parse a single enum value within an enum block.
- bool ParseEnumConstant(EnumValueDescriptorProto* enum_value,
- const LocationRecorder& enum_value_location);
-
- // Parse enum constant options, i.e. the list in square brackets at the end
- // of the enum constant value definition.
- bool ParseEnumConstantOptions(EnumValueDescriptorProto* value,
- const LocationRecorder& enum_value_location);
-
- // Parse a single method within a service definition.
- bool ParseServiceMethod(MethodDescriptorProto* method,
- const LocationRecorder& method_location);
-
- // Parse "required", "optional", or "repeated" and fill in "label"
- // with the value.
- bool ParseLabel(FieldDescriptorProto::Label* label);
-
- // Parse a type name and fill in "type" (if it is a primitive) or
- // "type_name" (if it is not) with the type parsed.
- bool ParseType(FieldDescriptorProto::Type* type,
- string* type_name);
- // Parse a user-defined type and fill in "type_name" with the name.
- // If a primitive type is named, it is treated as an error.
- bool ParseUserDefinedType(string* type_name);
-
- // Parses field options, i.e. the stuff in square brackets at the end
- // of a field definition. Also parses default value.
- bool ParseFieldOptions(FieldDescriptorProto* field,
- const LocationRecorder& field_location);
-
- // Parse the "default" option. This needs special handling because its
- // type is the field's type.
- bool ParseDefaultAssignment(FieldDescriptorProto* field,
- const LocationRecorder& field_location);
-
- // Parse a single option name/value pair, e.g. "ctype = CORD". The name
- // identifies a field of the given Message, and the value of that field
- // is set to the parsed value.
- bool ParseOptionAssignment(Message* options,
- const LocationRecorder& options_location);
-
- // Parses a single part of a multipart option name. A multipart name consists
- // of names separated by dots. Each name is either an identifier or a series
- // of identifiers separated by dots and enclosed in parentheses. E.g.,
- // "foo.(bar.baz).qux".
- bool ParseOptionNamePart(UninterpretedOption* uninterpreted_option,
- const LocationRecorder& part_location);
-
- // Parses a string surrounded by balanced braces. Strips off the outer
- // braces and stores the enclosed string in *value.
- // E.g.,
- // { foo } *value gets 'foo'
- // { foo { bar: box } } *value gets 'foo { bar: box }'
- // {} *value gets ''
- //
- // REQUIRES: LookingAt("{")
- // When finished successfully, we are looking at the first token past
- // the ending brace.
- bool ParseUninterpretedBlock(string* value);
-
- // =================================================================
-
- io::Tokenizer* input_;
- io::ErrorCollector* error_collector_;
- SourceCodeInfo* source_code_info_;
- SourceLocationTable* source_location_table_; // legacy
- bool had_errors_;
- bool require_syntax_identifier_;
- bool stop_after_syntax_identifier_;
- string syntax_identifier_;
-
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(Parser);
-};
-
-// A table mapping (descriptor, ErrorLocation) pairs -- as reported by
-// DescriptorPool when validating descriptors -- to line and column numbers
-// within the original source code.
-//
-// This is semi-obsolete: FileDescriptorProto.source_code_info now contains
-// far more complete information about source locations. However, as of this
-// writing you still need to use SourceLocationTable when integrating with
-// DescriptorPool.
-class LIBPROTOBUF_EXPORT SourceLocationTable {
- public:
- SourceLocationTable();
- ~SourceLocationTable();
-
- // Finds the precise location of the given error and fills in *line and
- // *column with the line and column numbers. If not found, sets *line to
- // -1 and *column to 0 (since line = -1 is used to mean "error has no exact
- // location" in the ErrorCollector interface). Returns true if found, false
- // otherwise.
- bool Find(const Message* descriptor,
- DescriptorPool::ErrorCollector::ErrorLocation location,
- int* line, int* column) const;
-
- // Adds a location to the table.
- void Add(const Message* descriptor,
- DescriptorPool::ErrorCollector::ErrorLocation location,
- int line, int column);
-
- // Clears the contents of the table.
- void Clear();
-
- private:
- typedef map<
- pair<const Message*, DescriptorPool::ErrorCollector::ErrorLocation>,
- pair<int, int> > LocationMap;
- LocationMap location_map_;
-};
-
-} // namespace compiler
-} // namespace protobuf
-
-} // namespace google
-#endif // GOOGLE_PROTOBUF_COMPILER_PARSER_H__
diff --git a/contrib/prebuilt/include/google/protobuf/compiler/plugin.h b/contrib/prebuilt/include/google/protobuf/compiler/plugin.h
deleted file mode 100644
index 64dfb1d..0000000
--- a/contrib/prebuilt/include/google/protobuf/compiler/plugin.h
+++ /dev/null
@@ -1,73 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// http://code.google.com/p/protobuf/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Author: kenton@google.com (Kenton Varda)
-//
-// Front-end for protoc code generator plugins written in C++.
-//
-// To implement a protoc plugin in C++, simply write an implementation of
-// CodeGenerator, then create a main() function like:
-// int main(int argc, char* argv[]) {
-// MyCodeGenerator generator;
-// return google::protobuf::compiler::PluginMain(argc, argv, &generator);
-// }
-// You must link your plugin against libprotobuf and libprotoc.
-//
-// To get protoc to use the plugin, do one of the following:
-// * Place the plugin binary somewhere in the PATH and give it the name
-// "protoc-gen-NAME" (replacing "NAME" with the name of your plugin). If you
-// then invoke protoc with the parameter --NAME_out=OUT_DIR (again, replace
-// "NAME" with your plugin's name), protoc will invoke your plugin to generate
-// the output, which will be placed in OUT_DIR.
-// * Place the plugin binary anywhere, with any name, and pass the --plugin
-// parameter to protoc to direct it to your plugin like so:
-// protoc --plugin=protoc-gen-NAME=path/to/mybinary --NAME_out=OUT_DIR
-// On Windows, make sure to include the .exe suffix:
-// protoc --plugin=protoc-gen-NAME=path/to/mybinary.exe --NAME_out=OUT_DIR
-
-#ifndef GOOGLE_PROTOBUF_COMPILER_PLUGIN_H__
-#define GOOGLE_PROTOBUF_COMPILER_PLUGIN_H__
-
-#include <google/protobuf/stubs/common.h>
-
-namespace google {
-namespace protobuf {
-namespace compiler {
-
-class CodeGenerator; // code_generator.h
-
-// Implements main() for a protoc plugin exposing the given code generator.
-int PluginMain(int argc, char* argv[], const CodeGenerator* generator);
-
-} // namespace compiler
-} // namespace protobuf
-
-} // namespace google
-#endif // GOOGLE_PROTOBUF_COMPILER_PLUGIN_H__
diff --git a/contrib/prebuilt/include/google/protobuf/compiler/plugin.pb.h b/contrib/prebuilt/include/google/protobuf/compiler/plugin.pb.h
deleted file mode 100644
index 14216c2..0000000
--- a/contrib/prebuilt/include/google/protobuf/compiler/plugin.pb.h
+++ /dev/null
@@ -1,790 +0,0 @@
-// Generated by the protocol buffer compiler. DO NOT EDIT!
-// source: google/protobuf/compiler/plugin.proto
-
-#ifndef PROTOBUF_google_2fprotobuf_2fcompiler_2fplugin_2eproto__INCLUDED
-#define PROTOBUF_google_2fprotobuf_2fcompiler_2fplugin_2eproto__INCLUDED
-
-#include <string>
-
-#include <google/protobuf/stubs/common.h>
-
-#if GOOGLE_PROTOBUF_VERSION < 2004000
-#error This file was generated by a newer version of protoc which is
-#error incompatible with your Protocol Buffer headers. Please update
-#error your headers.
-#endif
-#if 2004001 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
-#error This file was generated by an older version of protoc which is
-#error incompatible with your Protocol Buffer headers. Please
-#error regenerate this file with a newer version of protoc.
-#endif
-
-#include <google/protobuf/generated_message_util.h>
-#include <google/protobuf/repeated_field.h>
-#include <google/protobuf/extension_set.h>
-#include <google/protobuf/generated_message_reflection.h>
-#include "google/protobuf/descriptor.pb.h"
-// @@protoc_insertion_point(includes)
-
-namespace google {
-namespace protobuf {
-namespace compiler {
-
-// Internal implementation detail -- do not call these.
-void LIBPROTOC_EXPORT protobuf_AddDesc_google_2fprotobuf_2fcompiler_2fplugin_2eproto();
-void protobuf_AssignDesc_google_2fprotobuf_2fcompiler_2fplugin_2eproto();
-void protobuf_ShutdownFile_google_2fprotobuf_2fcompiler_2fplugin_2eproto();
-
-class CodeGeneratorRequest;
-class CodeGeneratorResponse;
-class CodeGeneratorResponse_File;
-
-// ===================================================================
-
-class LIBPROTOC_EXPORT CodeGeneratorRequest : public ::google::protobuf::Message {
- public:
- CodeGeneratorRequest();
- virtual ~CodeGeneratorRequest();
-
- CodeGeneratorRequest(const CodeGeneratorRequest& from);
-
- inline CodeGeneratorRequest& operator=(const CodeGeneratorRequest& from) {
- CopyFrom(from);
- return *this;
- }
-
- inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
- return _unknown_fields_;
- }
-
- inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
- return &_unknown_fields_;
- }
-
- static const ::google::protobuf::Descriptor* descriptor();
- static const CodeGeneratorRequest& default_instance();
-
- void Swap(CodeGeneratorRequest* other);
-
- // implements Message ----------------------------------------------
-
- CodeGeneratorRequest* New() const;
- void CopyFrom(const ::google::protobuf::Message& from);
- void MergeFrom(const ::google::protobuf::Message& from);
- void CopyFrom(const CodeGeneratorRequest& from);
- void MergeFrom(const CodeGeneratorRequest& from);
- void Clear();
- bool IsInitialized() const;
-
- int ByteSize() const;
- bool MergePartialFromCodedStream(
- ::google::protobuf::io::CodedInputStream* input);
- void SerializeWithCachedSizes(
- ::google::protobuf::io::CodedOutputStream* output) const;
- ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
- int GetCachedSize() const { return _cached_size_; }
- private:
- void SharedCtor();
- void SharedDtor();
- void SetCachedSize(int size) const;
- public:
-
- ::google::protobuf::Metadata GetMetadata() const;
-
- // nested types ----------------------------------------------------
-
- // accessors -------------------------------------------------------
-
- // repeated string file_to_generate = 1;
- inline int file_to_generate_size() const;
- inline void clear_file_to_generate();
- static const int kFileToGenerateFieldNumber = 1;
- inline const ::std::string& file_to_generate(int index) const;
- inline ::std::string* mutable_file_to_generate(int index);
- inline void set_file_to_generate(int index, const ::std::string& value);
- inline void set_file_to_generate(int index, const char* value);
- inline void set_file_to_generate(int index, const char* value, size_t size);
- inline ::std::string* add_file_to_generate();
- inline void add_file_to_generate(const ::std::string& value);
- inline void add_file_to_generate(const char* value);
- inline void add_file_to_generate(const char* value, size_t size);
- inline const ::google::protobuf::RepeatedPtrField< ::std::string>& file_to_generate() const;
- inline ::google::protobuf::RepeatedPtrField< ::std::string>* mutable_file_to_generate();
-
- // optional string parameter = 2;
- inline bool has_parameter() const;
- inline void clear_parameter();
- static const int kParameterFieldNumber = 2;
- inline const ::std::string& parameter() const;
- inline void set_parameter(const ::std::string& value);
- inline void set_parameter(const char* value);
- inline void set_parameter(const char* value, size_t size);
- inline ::std::string* mutable_parameter();
- inline ::std::string* release_parameter();
-
- // repeated .google.protobuf.FileDescriptorProto proto_file = 15;
- inline int proto_file_size() const;
- inline void clear_proto_file();
- static const int kProtoFileFieldNumber = 15;
- inline const ::google::protobuf::FileDescriptorProto& proto_file(int index) const;
- inline ::google::protobuf::FileDescriptorProto* mutable_proto_file(int index);
- inline ::google::protobuf::FileDescriptorProto* add_proto_file();
- inline const ::google::protobuf::RepeatedPtrField< ::google::protobuf::FileDescriptorProto >&
- proto_file() const;
- inline ::google::protobuf::RepeatedPtrField< ::google::protobuf::FileDescriptorProto >*
- mutable_proto_file();
-
- // @@protoc_insertion_point(class_scope:google.protobuf.compiler.CodeGeneratorRequest)
- private:
- inline void set_has_parameter();
- inline void clear_has_parameter();
-
- ::google::protobuf::UnknownFieldSet _unknown_fields_;
-
- ::google::protobuf::RepeatedPtrField< ::std::string> file_to_generate_;
- ::std::string* parameter_;
- ::google::protobuf::RepeatedPtrField< ::google::protobuf::FileDescriptorProto > proto_file_;
-
- mutable int _cached_size_;
- ::google::protobuf::uint32 _has_bits_[(3 + 31) / 32];
-
- friend void LIBPROTOC_EXPORT protobuf_AddDesc_google_2fprotobuf_2fcompiler_2fplugin_2eproto();
- friend void protobuf_AssignDesc_google_2fprotobuf_2fcompiler_2fplugin_2eproto();
- friend void protobuf_ShutdownFile_google_2fprotobuf_2fcompiler_2fplugin_2eproto();
-
- void InitAsDefaultInstance();
- static CodeGeneratorRequest* default_instance_;
-};
-// -------------------------------------------------------------------
-
-class LIBPROTOC_EXPORT CodeGeneratorResponse_File : public ::google::protobuf::Message {
- public:
- CodeGeneratorResponse_File();
- virtual ~CodeGeneratorResponse_File();
-
- CodeGeneratorResponse_File(const CodeGeneratorResponse_File& from);
-
- inline CodeGeneratorResponse_File& operator=(const CodeGeneratorResponse_File& from) {
- CopyFrom(from);
- return *this;
- }
-
- inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
- return _unknown_fields_;
- }
-
- inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
- return &_unknown_fields_;
- }
-
- static const ::google::protobuf::Descriptor* descriptor();
- static const CodeGeneratorResponse_File& default_instance();
-
- void Swap(CodeGeneratorResponse_File* other);
-
- // implements Message ----------------------------------------------
-
- CodeGeneratorResponse_File* New() const;
- void CopyFrom(const ::google::protobuf::Message& from);
- void MergeFrom(const ::google::protobuf::Message& from);
- void CopyFrom(const CodeGeneratorResponse_File& from);
- void MergeFrom(const CodeGeneratorResponse_File& from);
- void Clear();
- bool IsInitialized() const;
-
- int ByteSize() const;
- bool MergePartialFromCodedStream(
- ::google::protobuf::io::CodedInputStream* input);
- void SerializeWithCachedSizes(
- ::google::protobuf::io::CodedOutputStream* output) const;
- ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
- int GetCachedSize() const { return _cached_size_; }
- private:
- void SharedCtor();
- void SharedDtor();
- void SetCachedSize(int size) const;
- public:
-
- ::google::protobuf::Metadata GetMetadata() const;
-
- // nested types ----------------------------------------------------
-
- // accessors -------------------------------------------------------
-
- // optional string name = 1;
- inline bool has_name() const;
- inline void clear_name();
- static const int kNameFieldNumber = 1;
- inline const ::std::string& name() const;
- inline void set_name(const ::std::string& value);
- inline void set_name(const char* value);
- inline void set_name(const char* value, size_t size);
- inline ::std::string* mutable_name();
- inline ::std::string* release_name();
-
- // optional string insertion_point = 2;
- inline bool has_insertion_point() const;
- inline void clear_insertion_point();
- static const int kInsertionPointFieldNumber = 2;
- inline const ::std::string& insertion_point() const;
- inline void set_insertion_point(const ::std::string& value);
- inline void set_insertion_point(const char* value);
- inline void set_insertion_point(const char* value, size_t size);
- inline ::std::string* mutable_insertion_point();
- inline ::std::string* release_insertion_point();
-
- // optional string content = 15;
- inline bool has_content() const;
- inline void clear_content();
- static const int kContentFieldNumber = 15;
- inline const ::std::string& content() const;
- inline void set_content(const ::std::string& value);
- inline void set_content(const char* value);
- inline void set_content(const char* value, size_t size);
- inline ::std::string* mutable_content();
- inline ::std::string* release_content();
-
- // @@protoc_insertion_point(class_scope:google.protobuf.compiler.CodeGeneratorResponse.File)
- private:
- inline void set_has_name();
- inline void clear_has_name();
- inline void set_has_insertion_point();
- inline void clear_has_insertion_point();
- inline void set_has_content();
- inline void clear_has_content();
-
- ::google::protobuf::UnknownFieldSet _unknown_fields_;
-
- ::std::string* name_;
- ::std::string* insertion_point_;
- ::std::string* content_;
-
- mutable int _cached_size_;
- ::google::protobuf::uint32 _has_bits_[(3 + 31) / 32];
-
- friend void LIBPROTOC_EXPORT protobuf_AddDesc_google_2fprotobuf_2fcompiler_2fplugin_2eproto();
- friend void protobuf_AssignDesc_google_2fprotobuf_2fcompiler_2fplugin_2eproto();
- friend void protobuf_ShutdownFile_google_2fprotobuf_2fcompiler_2fplugin_2eproto();
-
- void InitAsDefaultInstance();
- static CodeGeneratorResponse_File* default_instance_;
-};
-// -------------------------------------------------------------------
-
-class LIBPROTOC_EXPORT CodeGeneratorResponse : public ::google::protobuf::Message {
- public:
- CodeGeneratorResponse();
- virtual ~CodeGeneratorResponse();
-
- CodeGeneratorResponse(const CodeGeneratorResponse& from);
-
- inline CodeGeneratorResponse& operator=(const CodeGeneratorResponse& from) {
- CopyFrom(from);
- return *this;
- }
-
- inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
- return _unknown_fields_;
- }
-
- inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
- return &_unknown_fields_;
- }
-
- static const ::google::protobuf::Descriptor* descriptor();
- static const CodeGeneratorResponse& default_instance();
-
- void Swap(CodeGeneratorResponse* other);
-
- // implements Message ----------------------------------------------
-
- CodeGeneratorResponse* New() const;
- void CopyFrom(const ::google::protobuf::Message& from);
- void MergeFrom(const ::google::protobuf::Message& from);
- void CopyFrom(const CodeGeneratorResponse& from);
- void MergeFrom(const CodeGeneratorResponse& from);
- void Clear();
- bool IsInitialized() const;
-
- int ByteSize() const;
- bool MergePartialFromCodedStream(
- ::google::protobuf::io::CodedInputStream* input);
- void SerializeWithCachedSizes(
- ::google::protobuf::io::CodedOutputStream* output) const;
- ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
- int GetCachedSize() const { return _cached_size_; }
- private:
- void SharedCtor();
- void SharedDtor();
- void SetCachedSize(int size) const;
- public:
-
- ::google::protobuf::Metadata GetMetadata() const;
-
- // nested types ----------------------------------------------------
-
- typedef CodeGeneratorResponse_File File;
-
- // accessors -------------------------------------------------------
-
- // optional string error = 1;
- inline bool has_error() const;
- inline void clear_error();
- static const int kErrorFieldNumber = 1;
- inline const ::std::string& error() const;
- inline void set_error(const ::std::string& value);
- inline void set_error(const char* value);
- inline void set_error(const char* value, size_t size);
- inline ::std::string* mutable_error();
- inline ::std::string* release_error();
-
- // repeated .google.protobuf.compiler.CodeGeneratorResponse.File file = 15;
- inline int file_size() const;
- inline void clear_file();
- static const int kFileFieldNumber = 15;
- inline const ::google::protobuf::compiler::CodeGeneratorResponse_File& file(int index) const;
- inline ::google::protobuf::compiler::CodeGeneratorResponse_File* mutable_file(int index);
- inline ::google::protobuf::compiler::CodeGeneratorResponse_File* add_file();
- inline const ::google::protobuf::RepeatedPtrField< ::google::protobuf::compiler::CodeGeneratorResponse_File >&
- file() const;
- inline ::google::protobuf::RepeatedPtrField< ::google::protobuf::compiler::CodeGeneratorResponse_File >*
- mutable_file();
-
- // @@protoc_insertion_point(class_scope:google.protobuf.compiler.CodeGeneratorResponse)
- private:
- inline void set_has_error();
- inline void clear_has_error();
-
- ::google::protobuf::UnknownFieldSet _unknown_fields_;
-
- ::std::string* error_;
- ::google::protobuf::RepeatedPtrField< ::google::protobuf::compiler::CodeGeneratorResponse_File > file_;
-
- mutable int _cached_size_;
- ::google::protobuf::uint32 _has_bits_[(2 + 31) / 32];
-
- friend void LIBPROTOC_EXPORT protobuf_AddDesc_google_2fprotobuf_2fcompiler_2fplugin_2eproto();
- friend void protobuf_AssignDesc_google_2fprotobuf_2fcompiler_2fplugin_2eproto();
- friend void protobuf_ShutdownFile_google_2fprotobuf_2fcompiler_2fplugin_2eproto();
-
- void InitAsDefaultInstance();
- static CodeGeneratorResponse* default_instance_;
-};
-// ===================================================================
-
-
-// ===================================================================
-
-// CodeGeneratorRequest
-
-// repeated string file_to_generate = 1;
-inline int CodeGeneratorRequest::file_to_generate_size() const {
- return file_to_generate_.size();
-}
-inline void CodeGeneratorRequest::clear_file_to_generate() {
- file_to_generate_.Clear();
-}
-inline const ::std::string& CodeGeneratorRequest::file_to_generate(int index) const {
- return file_to_generate_.Get(index);
-}
-inline ::std::string* CodeGeneratorRequest::mutable_file_to_generate(int index) {
- return file_to_generate_.Mutable(index);
-}
-inline void CodeGeneratorRequest::set_file_to_generate(int index, const ::std::string& value) {
- file_to_generate_.Mutable(index)->assign(value);
-}
-inline void CodeGeneratorRequest::set_file_to_generate(int index, const char* value) {
- file_to_generate_.Mutable(index)->assign(value);
-}
-inline void CodeGeneratorRequest::set_file_to_generate(int index, const char* value, size_t size) {
- file_to_generate_.Mutable(index)->assign(
- reinterpret_cast<const char*>(value), size);
-}
-inline ::std::string* CodeGeneratorRequest::add_file_to_generate() {
- return file_to_generate_.Add();
-}
-inline void CodeGeneratorRequest::add_file_to_generate(const ::std::string& value) {
- file_to_generate_.Add()->assign(value);
-}
-inline void CodeGeneratorRequest::add_file_to_generate(const char* value) {
- file_to_generate_.Add()->assign(value);
-}
-inline void CodeGeneratorRequest::add_file_to_generate(const char* value, size_t size) {
- file_to_generate_.Add()->assign(reinterpret_cast<const char*>(value), size);
-}
-inline const ::google::protobuf::RepeatedPtrField< ::std::string>&
-CodeGeneratorRequest::file_to_generate() const {
- return file_to_generate_;
-}
-inline ::google::protobuf::RepeatedPtrField< ::std::string>*
-CodeGeneratorRequest::mutable_file_to_generate() {
- return &file_to_generate_;
-}
-
-// optional string parameter = 2;
-inline bool CodeGeneratorRequest::has_parameter() const {
- return (_has_bits_[0] & 0x00000002u) != 0;
-}
-inline void CodeGeneratorRequest::set_has_parameter() {
- _has_bits_[0] |= 0x00000002u;
-}
-inline void CodeGeneratorRequest::clear_has_parameter() {
- _has_bits_[0] &= ~0x00000002u;
-}
-inline void CodeGeneratorRequest::clear_parameter() {
- if (parameter_ != &::google::protobuf::internal::kEmptyString) {
- parameter_->clear();
- }
- clear_has_parameter();
-}
-inline const ::std::string& CodeGeneratorRequest::parameter() const {
- return *parameter_;
-}
-inline void CodeGeneratorRequest::set_parameter(const ::std::string& value) {
- set_has_parameter();
- if (parameter_ == &::google::protobuf::internal::kEmptyString) {
- parameter_ = new ::std::string;
- }
- parameter_->assign(value);
-}
-inline void CodeGeneratorRequest::set_parameter(const char* value) {
- set_has_parameter();
- if (parameter_ == &::google::protobuf::internal::kEmptyString) {
- parameter_ = new ::std::string;
- }
- parameter_->assign(value);
-}
-inline void CodeGeneratorRequest::set_parameter(const char* value, size_t size) {
- set_has_parameter();
- if (parameter_ == &::google::protobuf::internal::kEmptyString) {
- parameter_ = new ::std::string;
- }
- parameter_->assign(reinterpret_cast<const char*>(value), size);
-}
-inline ::std::string* CodeGeneratorRequest::mutable_parameter() {
- set_has_parameter();
- if (parameter_ == &::google::protobuf::internal::kEmptyString) {
- parameter_ = new ::std::string;
- }
- return parameter_;
-}
-inline ::std::string* CodeGeneratorRequest::release_parameter() {
- clear_has_parameter();
- if (parameter_ == &::google::protobuf::internal::kEmptyString) {
- return NULL;
- } else {
- ::std::string* temp = parameter_;
- parameter_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
- return temp;
- }
-}
-
-// repeated .google.protobuf.FileDescriptorProto proto_file = 15;
-inline int CodeGeneratorRequest::proto_file_size() const {
- return proto_file_.size();
-}
-inline void CodeGeneratorRequest::clear_proto_file() {
- proto_file_.Clear();
-}
-inline const ::google::protobuf::FileDescriptorProto& CodeGeneratorRequest::proto_file(int index) const {
- return proto_file_.Get(index);
-}
-inline ::google::protobuf::FileDescriptorProto* CodeGeneratorRequest::mutable_proto_file(int index) {
- return proto_file_.Mutable(index);
-}
-inline ::google::protobuf::FileDescriptorProto* CodeGeneratorRequest::add_proto_file() {
- return proto_file_.Add();
-}
-inline const ::google::protobuf::RepeatedPtrField< ::google::protobuf::FileDescriptorProto >&
-CodeGeneratorRequest::proto_file() const {
- return proto_file_;
-}
-inline ::google::protobuf::RepeatedPtrField< ::google::protobuf::FileDescriptorProto >*
-CodeGeneratorRequest::mutable_proto_file() {
- return &proto_file_;
-}
-
-// -------------------------------------------------------------------
-
-// CodeGeneratorResponse_File
-
-// optional string name = 1;
-inline bool CodeGeneratorResponse_File::has_name() const {
- return (_has_bits_[0] & 0x00000001u) != 0;
-}
-inline void CodeGeneratorResponse_File::set_has_name() {
- _has_bits_[0] |= 0x00000001u;
-}
-inline void CodeGeneratorResponse_File::clear_has_name() {
- _has_bits_[0] &= ~0x00000001u;
-}
-inline void CodeGeneratorResponse_File::clear_name() {
- if (name_ != &::google::protobuf::internal::kEmptyString) {
- name_->clear();
- }
- clear_has_name();
-}
-inline const ::std::string& CodeGeneratorResponse_File::name() const {
- return *name_;
-}
-inline void CodeGeneratorResponse_File::set_name(const ::std::string& value) {
- set_has_name();
- if (name_ == &::google::protobuf::internal::kEmptyString) {
- name_ = new ::std::string;
- }
- name_->assign(value);
-}
-inline void CodeGeneratorResponse_File::set_name(const char* value) {
- set_has_name();
- if (name_ == &::google::protobuf::internal::kEmptyString) {
- name_ = new ::std::string;
- }
- name_->assign(value);
-}
-inline void CodeGeneratorResponse_File::set_name(const char* value, size_t size) {
- set_has_name();
- if (name_ == &::google::protobuf::internal::kEmptyString) {
- name_ = new ::std::string;
- }
- name_->assign(reinterpret_cast<const char*>(value), size);
-}
-inline ::std::string* CodeGeneratorResponse_File::mutable_name() {
- set_has_name();
- if (name_ == &::google::protobuf::internal::kEmptyString) {
- name_ = new ::std::string;
- }
- return name_;
-}
-inline ::std::string* CodeGeneratorResponse_File::release_name() {
- clear_has_name();
- if (name_ == &::google::protobuf::internal::kEmptyString) {
- return NULL;
- } else {
- ::std::string* temp = name_;
- name_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
- return temp;
- }
-}
-
-// optional string insertion_point = 2;
-inline bool CodeGeneratorResponse_File::has_insertion_point() const {
- return (_has_bits_[0] & 0x00000002u) != 0;
-}
-inline void CodeGeneratorResponse_File::set_has_insertion_point() {
- _has_bits_[0] |= 0x00000002u;
-}
-inline void CodeGeneratorResponse_File::clear_has_insertion_point() {
- _has_bits_[0] &= ~0x00000002u;
-}
-inline void CodeGeneratorResponse_File::clear_insertion_point() {
- if (insertion_point_ != &::google::protobuf::internal::kEmptyString) {
- insertion_point_->clear();
- }
- clear_has_insertion_point();
-}
-inline const ::std::string& CodeGeneratorResponse_File::insertion_point() const {
- return *insertion_point_;
-}
-inline void CodeGeneratorResponse_File::set_insertion_point(const ::std::string& value) {
- set_has_insertion_point();
- if (insertion_point_ == &::google::protobuf::internal::kEmptyString) {
- insertion_point_ = new ::std::string;
- }
- insertion_point_->assign(value);
-}
-inline void CodeGeneratorResponse_File::set_insertion_point(const char* value) {
- set_has_insertion_point();
- if (insertion_point_ == &::google::protobuf::internal::kEmptyString) {
- insertion_point_ = new ::std::string;
- }
- insertion_point_->assign(value);
-}
-inline void CodeGeneratorResponse_File::set_insertion_point(const char* value, size_t size) {
- set_has_insertion_point();
- if (insertion_point_ == &::google::protobuf::internal::kEmptyString) {
- insertion_point_ = new ::std::string;
- }
- insertion_point_->assign(reinterpret_cast<const char*>(value), size);
-}
-inline ::std::string* CodeGeneratorResponse_File::mutable_insertion_point() {
- set_has_insertion_point();
- if (insertion_point_ == &::google::protobuf::internal::kEmptyString) {
- insertion_point_ = new ::std::string;
- }
- return insertion_point_;
-}
-inline ::std::string* CodeGeneratorResponse_File::release_insertion_point() {
- clear_has_insertion_point();
- if (insertion_point_ == &::google::protobuf::internal::kEmptyString) {
- return NULL;
- } else {
- ::std::string* temp = insertion_point_;
- insertion_point_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
- return temp;
- }
-}
-
-// optional string content = 15;
-inline bool CodeGeneratorResponse_File::has_content() const {
- return (_has_bits_[0] & 0x00000004u) != 0;
-}
-inline void CodeGeneratorResponse_File::set_has_content() {
- _has_bits_[0] |= 0x00000004u;
-}
-inline void CodeGeneratorResponse_File::clear_has_content() {
- _has_bits_[0] &= ~0x00000004u;
-}
-inline void CodeGeneratorResponse_File::clear_content() {
- if (content_ != &::google::protobuf::internal::kEmptyString) {
- content_->clear();
- }
- clear_has_content();
-}
-inline const ::std::string& CodeGeneratorResponse_File::content() const {
- return *content_;
-}
-inline void CodeGeneratorResponse_File::set_content(const ::std::string& value) {
- set_has_content();
- if (content_ == &::google::protobuf::internal::kEmptyString) {
- content_ = new ::std::string;
- }
- content_->assign(value);
-}
-inline void CodeGeneratorResponse_File::set_content(const char* value) {
- set_has_content();
- if (content_ == &::google::protobuf::internal::kEmptyString) {
- content_ = new ::std::string;
- }
- content_->assign(value);
-}
-inline void CodeGeneratorResponse_File::set_content(const char* value, size_t size) {
- set_has_content();
- if (content_ == &::google::protobuf::internal::kEmptyString) {
- content_ = new ::std::string;
- }
- content_->assign(reinterpret_cast<const char*>(value), size);
-}
-inline ::std::string* CodeGeneratorResponse_File::mutable_content() {
- set_has_content();
- if (content_ == &::google::protobuf::internal::kEmptyString) {
- content_ = new ::std::string;
- }
- return content_;
-}
-inline ::std::string* CodeGeneratorResponse_File::release_content() {
- clear_has_content();
- if (content_ == &::google::protobuf::internal::kEmptyString) {
- return NULL;
- } else {
- ::std::string* temp = content_;
- content_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
- return temp;
- }
-}
-
-// -------------------------------------------------------------------
-
-// CodeGeneratorResponse
-
-// optional string error = 1;
-inline bool CodeGeneratorResponse::has_error() const {
- return (_has_bits_[0] & 0x00000001u) != 0;
-}
-inline void CodeGeneratorResponse::set_has_error() {
- _has_bits_[0] |= 0x00000001u;
-}
-inline void CodeGeneratorResponse::clear_has_error() {
- _has_bits_[0] &= ~0x00000001u;
-}
-inline void CodeGeneratorResponse::clear_error() {
- if (error_ != &::google::protobuf::internal::kEmptyString) {
- error_->clear();
- }
- clear_has_error();
-}
-inline const ::std::string& CodeGeneratorResponse::error() const {
- return *error_;
-}
-inline void CodeGeneratorResponse::set_error(const ::std::string& value) {
- set_has_error();
- if (error_ == &::google::protobuf::internal::kEmptyString) {
- error_ = new ::std::string;
- }
- error_->assign(value);
-}
-inline void CodeGeneratorResponse::set_error(const char* value) {
- set_has_error();
- if (error_ == &::google::protobuf::internal::kEmptyString) {
- error_ = new ::std::string;
- }
- error_->assign(value);
-}
-inline void CodeGeneratorResponse::set_error(const char* value, size_t size) {
- set_has_error();
- if (error_ == &::google::protobuf::internal::kEmptyString) {
- error_ = new ::std::string;
- }
- error_->assign(reinterpret_cast<const char*>(value), size);
-}
-inline ::std::string* CodeGeneratorResponse::mutable_error() {
- set_has_error();
- if (error_ == &::google::protobuf::internal::kEmptyString) {
- error_ = new ::std::string;
- }
- return error_;
-}
-inline ::std::string* CodeGeneratorResponse::release_error() {
- clear_has_error();
- if (error_ == &::google::protobuf::internal::kEmptyString) {
- return NULL;
- } else {
- ::std::string* temp = error_;
- error_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
- return temp;
- }
-}
-
-// repeated .google.protobuf.compiler.CodeGeneratorResponse.File file = 15;
-inline int CodeGeneratorResponse::file_size() const {
- return file_.size();
-}
-inline void CodeGeneratorResponse::clear_file() {
- file_.Clear();
-}
-inline const ::google::protobuf::compiler::CodeGeneratorResponse_File& CodeGeneratorResponse::file(int index) const {
- return file_.Get(index);
-}
-inline ::google::protobuf::compiler::CodeGeneratorResponse_File* CodeGeneratorResponse::mutable_file(int index) {
- return file_.Mutable(index);
-}
-inline ::google::protobuf::compiler::CodeGeneratorResponse_File* CodeGeneratorResponse::add_file() {
- return file_.Add();
-}
-inline const ::google::protobuf::RepeatedPtrField< ::google::protobuf::compiler::CodeGeneratorResponse_File >&
-CodeGeneratorResponse::file() const {
- return file_;
-}
-inline ::google::protobuf::RepeatedPtrField< ::google::protobuf::compiler::CodeGeneratorResponse_File >*
-CodeGeneratorResponse::mutable_file() {
- return &file_;
-}
-
-
-// @@protoc_insertion_point(namespace_scope)
-
-} // namespace compiler
-} // namespace protobuf
-} // namespace google
-
-#ifndef SWIG
-namespace google {
-namespace protobuf {
-
-
-} // namespace google
-} // namespace protobuf
-#endif // SWIG
-
-// @@protoc_insertion_point(global_scope)
-
-#endif // PROTOBUF_google_2fprotobuf_2fcompiler_2fplugin_2eproto__INCLUDED
diff --git a/contrib/prebuilt/include/google/protobuf/compiler/plugin.proto b/contrib/prebuilt/include/google/protobuf/compiler/plugin.proto
deleted file mode 100644
index 651ed10..0000000
--- a/contrib/prebuilt/include/google/protobuf/compiler/plugin.proto
+++ /dev/null
@@ -1,145 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// http://code.google.com/p/protobuf/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Author: kenton@google.com (Kenton Varda)
-//
-// WARNING: The plugin interface is currently EXPERIMENTAL and is subject to
-// change.
-//
-// protoc (aka the Protocol Compiler) can be extended via plugins. A plugin is
-// just a program that reads a CodeGeneratorRequest from stdin and writes a
-// CodeGeneratorResponse to stdout.
-//
-// Plugins written using C++ can use google/protobuf/compiler/plugin.h instead
-// of dealing with the raw protocol defined here.
-//
-// A plugin executable needs only to be placed somewhere in the path. The
-// plugin should be named "protoc-gen-$NAME", and will then be used when the
-// flag "--${NAME}_out" is passed to protoc.
-
-package google.protobuf.compiler;
-
-import "google/protobuf/descriptor.proto";
-
-// An encoded CodeGeneratorRequest is written to the plugin's stdin.
-message CodeGeneratorRequest {
- // The .proto files that were explicitly listed on the command-line. The
- // code generator should generate code only for these files. Each file's
- // descriptor will be included in proto_file, below.
- repeated string file_to_generate = 1;
-
- // The generator parameter passed on the command-line.
- optional string parameter = 2;
-
- // FileDescriptorProtos for all files in files_to_generate and everything
- // they import. The files will appear in topological order, so each file
- // appears before any file that imports it.
- //
- // protoc guarantees that all proto_files will be written after
- // the fields above, even though this is not technically guaranteed by the
- // protobuf wire format. This theoretically could allow a plugin to stream
- // in the FileDescriptorProtos and handle them one by one rather than read
- // the entire set into memory at once. However, as of this writing, this
- // is not similarly optimized on protoc's end -- it will store all fields in
- // memory at once before sending them to the plugin.
- repeated FileDescriptorProto proto_file = 15;
-}
-
-// The plugin writes an encoded CodeGeneratorResponse to stdout.
-message CodeGeneratorResponse {
- // Error message. If non-empty, code generation failed. The plugin process
- // should exit with status code zero even if it reports an error in this way.
- //
- // This should be used to indicate errors in .proto files which prevent the
- // code generator from generating correct code. Errors which indicate a
- // problem in protoc itself -- such as the input CodeGeneratorRequest being
- // unparseable -- should be reported by writing a message to stderr and
- // exiting with a non-zero status code.
- optional string error = 1;
-
- // Represents a single generated file.
- message File {
- // The file name, relative to the output directory. The name must not
- // contain "." or ".." components and must be relative, not be absolute (so,
- // the file cannot lie outside the output directory). "/" must be used as
- // the path separator, not "\".
- //
- // If the name is omitted, the content will be appended to the previous
- // file. This allows the generator to break large files into small chunks,
- // and allows the generated text to be streamed back to protoc so that large
- // files need not reside completely in memory at one time. Note that as of
- // this writing protoc does not optimize for this -- it will read the entire
- // CodeGeneratorResponse before writing files to disk.
- optional string name = 1;
-
- // If non-empty, indicates that the named file should already exist, and the
- // content here is to be inserted into that file at a defined insertion
- // point. This feature allows a code generator to extend the output
- // produced by another code generator. The original generator may provide
- // insertion points by placing special annotations in the file that look
- // like:
- // @@protoc_insertion_point(NAME)
- // The annotation can have arbitrary text before and after it on the line,
- // which allows it to be placed in a comment. NAME should be replaced with
- // an identifier naming the point -- this is what other generators will use
- // as the insertion_point. Code inserted at this point will be placed
- // immediately above the line containing the insertion point (thus multiple
- // insertions to the same point will come out in the order they were added).
- // The double-@ is intended to make it unlikely that the generated code
- // could contain things that look like insertion points by accident.
- //
- // For example, the C++ code generator places the following line in the
- // .pb.h files that it generates:
- // // @@protoc_insertion_point(namespace_scope)
- // This line appears within the scope of the file's package namespace, but
- // outside of any particular class. Another plugin can then specify the
- // insertion_point "namespace_scope" to generate additional classes or
- // other declarations that should be placed in this scope.
- //
- // Note that if the line containing the insertion point begins with
- // whitespace, the same whitespace will be added to every line of the
- // inserted text. This is useful for languages like Python, where
- // indentation matters. In these languages, the insertion point comment
- // should be indented the same amount as any inserted code will need to be
- // in order to work correctly in that context.
- //
- // The code generator that generates the initial file and the one which
- // inserts into it must both run as part of a single invocation of protoc.
- // Code generators are executed in the order in which they appear on the
- // command line.
- //
- // If |insertion_point| is present, |name| must also be present.
- optional string insertion_point = 2;
-
- // The file contents.
- optional string content = 15;
- }
- repeated File file = 15;
-}
diff --git a/contrib/prebuilt/include/google/protobuf/compiler/python/python_generator.h b/contrib/prebuilt/include/google/protobuf/compiler/python/python_generator.h
deleted file mode 100644
index 84eaf8a..0000000
--- a/contrib/prebuilt/include/google/protobuf/compiler/python/python_generator.h
+++ /dev/null
@@ -1,156 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// http://code.google.com/p/protobuf/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Author: robinson@google.com (Will Robinson)
-//
-// Generates Python code for a given .proto file.
-
-#ifndef GOOGLE_PROTOBUF_COMPILER_PYTHON_GENERATOR_H__
-#define GOOGLE_PROTOBUF_COMPILER_PYTHON_GENERATOR_H__
-
-#include <string>
-
-#include <google/protobuf/compiler/code_generator.h>
-#include <google/protobuf/stubs/common.h>
-
-namespace google {
-namespace protobuf {
-
-class Descriptor;
-class EnumDescriptor;
-class EnumValueDescriptor;
-class FieldDescriptor;
-class ServiceDescriptor;
-
-namespace io { class Printer; }
-
-namespace compiler {
-namespace python {
-
-// CodeGenerator implementation for generated Python protocol buffer classes.
-// If you create your own protocol compiler binary and you want it to support
-// Python output, you can do so by registering an instance of this
-// CodeGenerator with the CommandLineInterface in your main() function.
-class LIBPROTOC_EXPORT Generator : public CodeGenerator {
- public:
- Generator();
- virtual ~Generator();
-
- // CodeGenerator methods.
- virtual bool Generate(const FileDescriptor* file,
- const string& parameter,
- GeneratorContext* generator_context,
- string* error) const;
-
- private:
- void PrintImports() const;
- void PrintFileDescriptor() const;
- void PrintTopLevelEnums() const;
- void PrintAllNestedEnumsInFile() const;
- void PrintNestedEnums(const Descriptor& descriptor) const;
- void PrintEnum(const EnumDescriptor& enum_descriptor) const;
-
- void PrintTopLevelExtensions() const;
-
- void PrintFieldDescriptor(
- const FieldDescriptor& field, bool is_extension) const;
- void PrintFieldDescriptorsInDescriptor(
- const Descriptor& message_descriptor,
- bool is_extension,
- const string& list_variable_name,
- int (Descriptor::*CountFn)() const,
- const FieldDescriptor* (Descriptor::*GetterFn)(int) const) const;
- void PrintFieldsInDescriptor(const Descriptor& message_descriptor) const;
- void PrintExtensionsInDescriptor(const Descriptor& message_descriptor) const;
- void PrintMessageDescriptors() const;
- void PrintDescriptor(const Descriptor& message_descriptor) const;
- void PrintNestedDescriptors(const Descriptor& containing_descriptor) const;
-
- void PrintMessages() const;
- void PrintMessage(const Descriptor& message_descriptor) const;
- void PrintNestedMessages(const Descriptor& containing_descriptor) const;
-
- void FixForeignFieldsInDescriptors() const;
- void FixForeignFieldsInDescriptor(
- const Descriptor& descriptor,
- const Descriptor* containing_descriptor) const;
- void FixForeignFieldsInField(const Descriptor* containing_type,
- const FieldDescriptor& field,
- const string& python_dict_name) const;
- void AddMessageToFileDescriptor(const Descriptor& descriptor) const;
- string FieldReferencingExpression(const Descriptor* containing_type,
- const FieldDescriptor& field,
- const string& python_dict_name) const;
- template <typename DescriptorT>
- void FixContainingTypeInDescriptor(
- const DescriptorT& descriptor,
- const Descriptor* containing_descriptor) const;
-
- void FixForeignFieldsInExtensions() const;
- void FixForeignFieldsInExtension(
- const FieldDescriptor& extension_field) const;
- void FixForeignFieldsInNestedExtensions(const Descriptor& descriptor) const;
-
- void PrintServices() const;
- void PrintServiceDescriptor(const ServiceDescriptor& descriptor) const;
- void PrintServiceClass(const ServiceDescriptor& descriptor) const;
- void PrintServiceStub(const ServiceDescriptor& descriptor) const;
-
- void PrintEnumValueDescriptor(const EnumValueDescriptor& descriptor) const;
- string OptionsValue(const string& class_name,
- const string& serialized_options) const;
- bool GeneratingDescriptorProto() const;
-
- template <typename DescriptorT>
- string ModuleLevelDescriptorName(const DescriptorT& descriptor) const;
- string ModuleLevelMessageName(const Descriptor& descriptor) const;
- string ModuleLevelServiceDescriptorName(
- const ServiceDescriptor& descriptor) const;
-
- template <typename DescriptorT, typename DescriptorProtoT>
- void PrintSerializedPbInterval(
- const DescriptorT& descriptor, DescriptorProtoT& proto) const;
-
- // Very coarse-grained lock to ensure that Generate() is reentrant.
- // Guards file_, printer_ and file_descriptor_serialized_.
- mutable Mutex mutex_;
- mutable const FileDescriptor* file_; // Set in Generate(). Under mutex_.
- mutable string file_descriptor_serialized_;
- mutable io::Printer* printer_; // Set in Generate(). Under mutex_.
-
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(Generator);
-};
-
-} // namespace python
-} // namespace compiler
-} // namespace protobuf
-
-} // namespace google
-#endif // GOOGLE_PROTOBUF_COMPILER_PYTHON_GENERATOR_H__
diff --git a/contrib/prebuilt/include/google/protobuf/descriptor.h b/contrib/prebuilt/include/google/protobuf/descriptor.h
deleted file mode 100644
index 7f87dd8..0000000
--- a/contrib/prebuilt/include/google/protobuf/descriptor.h
+++ /dev/null
@@ -1,1367 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// http://code.google.com/p/protobuf/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Author: kenton@google.com (Kenton Varda)
-// Based on original Protocol Buffers design by
-// Sanjay Ghemawat, Jeff Dean, and others.
-//
-// This file contains classes which describe a type of protocol message.
-// You can use a message's descriptor to learn at runtime what fields
-// it contains and what the types of those fields are. The Message
-// interface also allows you to dynamically access and modify individual
-// fields by passing the FieldDescriptor of the field you are interested
-// in.
-//
-// Most users will not care about descriptors, because they will write
-// code specific to certain protocol types and will simply use the classes
-// generated by the protocol compiler directly. Advanced users who want
-// to operate on arbitrary types (not known at compile time) may want to
-// read descriptors in order to learn about the contents of a message.
-// A very small number of users will want to construct their own
-// Descriptors, either because they are implementing Message manually or
-// because they are writing something like the protocol compiler.
-//
-// For an example of how you might use descriptors, see the code example
-// at the top of message.h.
-
-#ifndef GOOGLE_PROTOBUF_DESCRIPTOR_H__
-#define GOOGLE_PROTOBUF_DESCRIPTOR_H__
-
-#include <string>
-#include <vector>
-#include <google/protobuf/stubs/common.h>
-
-
-namespace google {
-namespace protobuf {
-
-// Defined in this file.
-class Descriptor;
-class FieldDescriptor;
-class EnumDescriptor;
-class EnumValueDescriptor;
-class ServiceDescriptor;
-class MethodDescriptor;
-class FileDescriptor;
-class DescriptorDatabase;
-class DescriptorPool;
-
-// Defined in descriptor.proto
-class DescriptorProto;
-class FieldDescriptorProto;
-class EnumDescriptorProto;
-class EnumValueDescriptorProto;
-class ServiceDescriptorProto;
-class MethodDescriptorProto;
-class FileDescriptorProto;
-class MessageOptions;
-class FieldOptions;
-class EnumOptions;
-class EnumValueOptions;
-class ServiceOptions;
-class MethodOptions;
-class FileOptions;
-class UninterpretedOption;
-
-// Defined in message.h
-class Message;
-
-// Defined in descriptor.cc
-class DescriptorBuilder;
-class FileDescriptorTables;
-
-// Defined in unknown_field_set.h.
-class UnknownField;
-
-// Describes a type of protocol message, or a particular group within a
-// message. To obtain the Descriptor for a given message object, call
-// Message::GetDescriptor(). Generated message classes also have a
-// static method called descriptor() which returns the type's descriptor.
-// Use DescriptorPool to construct your own descriptors.
-class LIBPROTOBUF_EXPORT Descriptor {
- public:
- // The name of the message type, not including its scope.
- const string& name() const;
-
- // The fully-qualified name of the message type, scope delimited by
- // periods. For example, message type "Foo" which is declared in package
- // "bar" has full name "bar.Foo". If a type "Baz" is nested within
- // Foo, Baz's full_name is "bar.Foo.Baz". To get only the part that
- // comes after the last '.', use name().
- const string& full_name() const;
-
- // Index of this descriptor within the file or containing type's message
- // type array.
- int index() const;
-
- // The .proto file in which this message type was defined. Never NULL.
- const FileDescriptor* file() const;
-
- // If this Descriptor describes a nested type, this returns the type
- // in which it is nested. Otherwise, returns NULL.
- const Descriptor* containing_type() const;
-
- // Get options for this message type. These are specified in the .proto file
- // by placing lines like "option foo = 1234;" in the message definition.
- // Allowed options are defined by MessageOptions in
- // google/protobuf/descriptor.proto, and any available extensions of that
- // message.
- const MessageOptions& options() const;
-
- // Write the contents of this Descriptor into the given DescriptorProto.
- // The target DescriptorProto must be clear before calling this; if it
- // isn't, the result may be garbage.
- void CopyTo(DescriptorProto* proto) const;
-
- // Write the contents of this decriptor in a human-readable form. Output
- // will be suitable for re-parsing.
- string DebugString() const;
-
- // Field stuff -----------------------------------------------------
-
- // The number of fields in this message type.
- int field_count() const;
- // Gets a field by index, where 0 <= index < field_count().
- // These are returned in the order they were defined in the .proto file.
- const FieldDescriptor* field(int index) const;
-
- // Looks up a field by declared tag number. Returns NULL if no such field
- // exists.
- const FieldDescriptor* FindFieldByNumber(int number) const;
- // Looks up a field by name. Returns NULL if no such field exists.
- const FieldDescriptor* FindFieldByName(const string& name) const;
-
- // Looks up a field by lowercased name (as returned by lowercase_name()).
- // This lookup may be ambiguous if multiple field names differ only by case,
- // in which case the field returned is chosen arbitrarily from the matches.
- const FieldDescriptor* FindFieldByLowercaseName(
- const string& lowercase_name) const;
-
- // Looks up a field by camel-case name (as returned by camelcase_name()).
- // This lookup may be ambiguous if multiple field names differ in a way that
- // leads them to have identical camel-case names, in which case the field
- // returned is chosen arbitrarily from the matches.
- const FieldDescriptor* FindFieldByCamelcaseName(
- const string& camelcase_name) const;
-
- // Nested type stuff -----------------------------------------------
-
- // The number of nested types in this message type.
- int nested_type_count() const;
- // Gets a nested type by index, where 0 <= index < nested_type_count().
- // These are returned in the order they were defined in the .proto file.
- const Descriptor* nested_type(int index) const;
-
- // Looks up a nested type by name. Returns NULL if no such nested type
- // exists.
- const Descriptor* FindNestedTypeByName(const string& name) const;
-
- // Enum stuff ------------------------------------------------------
-
- // The number of enum types in this message type.
- int enum_type_count() const;
- // Gets an enum type by index, where 0 <= index < enum_type_count().
- // These are returned in the order they were defined in the .proto file.
- const EnumDescriptor* enum_type(int index) const;
-
- // Looks up an enum type by name. Returns NULL if no such enum type exists.
- const EnumDescriptor* FindEnumTypeByName(const string& name) const;
-
- // Looks up an enum value by name, among all enum types in this message.
- // Returns NULL if no such value exists.
- const EnumValueDescriptor* FindEnumValueByName(const string& name) const;
-
- // Extensions ------------------------------------------------------
-
- // A range of field numbers which are designated for third-party
- // extensions.
- struct ExtensionRange {
- int start; // inclusive
- int end; // exclusive
- };
-
- // The number of extension ranges in this message type.
- int extension_range_count() const;
- // Gets an extension range by index, where 0 <= index <
- // extension_range_count(). These are returned in the order they were defined
- // in the .proto file.
- const ExtensionRange* extension_range(int index) const;
-
- // Returns true if the number is in one of the extension ranges.
- bool IsExtensionNumber(int number) const;
-
- // The number of extensions -- extending *other* messages -- that were
- // defined nested within this message type's scope.
- int extension_count() const;
- // Get an extension by index, where 0 <= index < extension_count().
- // These are returned in the order they were defined in the .proto file.
- const FieldDescriptor* extension(int index) const;
-
- // Looks up a named extension (which extends some *other* message type)
- // defined within this message type's scope.
- const FieldDescriptor* FindExtensionByName(const string& name) const;
-
- // Similar to FindFieldByLowercaseName(), but finds extensions defined within
- // this message type's scope.
- const FieldDescriptor* FindExtensionByLowercaseName(const string& name) const;
-
- // Similar to FindFieldByCamelcaseName(), but finds extensions defined within
- // this message type's scope.
- const FieldDescriptor* FindExtensionByCamelcaseName(const string& name) const;
-
- private:
- typedef MessageOptions OptionsType;
-
- // Internal version of DebugString; controls the level of indenting for
- // correct depth
- void DebugString(int depth, string *contents) const;
-
- const string* name_;
- const string* full_name_;
- const FileDescriptor* file_;
- const Descriptor* containing_type_;
- const MessageOptions* options_;
-
- // True if this is a placeholder for an unknown type.
- bool is_placeholder_;
- // True if this is a placeholder and the type name wasn't fully-qualified.
- bool is_unqualified_placeholder_;
-
- int field_count_;
- FieldDescriptor* fields_;
- int nested_type_count_;
- Descriptor* nested_types_;
- int enum_type_count_;
- EnumDescriptor* enum_types_;
- int extension_range_count_;
- ExtensionRange* extension_ranges_;
- int extension_count_;
- FieldDescriptor* extensions_;
- // IMPORTANT: If you add a new field, make sure to search for all instances
- // of Allocate<Descriptor>() and AllocateArray<Descriptor>() in descriptor.cc
- // and update them to initialize the field.
-
- // Must be constructed using DescriptorPool.
- Descriptor() {}
- friend class DescriptorBuilder;
- friend class EnumDescriptor;
- friend class FieldDescriptor;
- friend class MethodDescriptor;
- friend class FileDescriptor;
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(Descriptor);
-};
-
-// Describes a single field of a message. To get the descriptor for a given
-// field, first get the Descriptor for the message in which it is defined,
-// then call Descriptor::FindFieldByName(). To get a FieldDescriptor for
-// an extension, do one of the following:
-// - Get the Descriptor or FileDescriptor for its containing scope, then
-// call Descriptor::FindExtensionByName() or
-// FileDescriptor::FindExtensionByName().
-// - Given a DescriptorPool, call DescriptorPool::FindExtensionByNumber().
-// - Given a Reflection for a message object, call
-// Reflection::FindKnownExtensionByName() or
-// Reflection::FindKnownExtensionByNumber().
-// Use DescriptorPool to construct your own descriptors.
-class LIBPROTOBUF_EXPORT FieldDescriptor {
- public:
- // Identifies a field type. 0 is reserved for errors. The order is weird
- // for historical reasons. Types 12 and up are new in proto2.
- enum Type {
- TYPE_DOUBLE = 1, // double, exactly eight bytes on the wire.
- TYPE_FLOAT = 2, // float, exactly four bytes on the wire.
- TYPE_INT64 = 3, // int64, varint on the wire. Negative numbers
- // take 10 bytes. Use TYPE_SINT64 if negative
- // values are likely.
- TYPE_UINT64 = 4, // uint64, varint on the wire.
- TYPE_INT32 = 5, // int32, varint on the wire. Negative numbers
- // take 10 bytes. Use TYPE_SINT32 if negative
- // values are likely.
- TYPE_FIXED64 = 6, // uint64, exactly eight bytes on the wire.
- TYPE_FIXED32 = 7, // uint32, exactly four bytes on the wire.
- TYPE_BOOL = 8, // bool, varint on the wire.
- TYPE_STRING = 9, // UTF-8 text.
- TYPE_GROUP = 10, // Tag-delimited message. Deprecated.
- TYPE_MESSAGE = 11, // Length-delimited message.
-
- TYPE_BYTES = 12, // Arbitrary byte array.
- TYPE_UINT32 = 13, // uint32, varint on the wire
- TYPE_ENUM = 14, // Enum, varint on the wire
- TYPE_SFIXED32 = 15, // int32, exactly four bytes on the wire
- TYPE_SFIXED64 = 16, // int64, exactly eight bytes on the wire
- TYPE_SINT32 = 17, // int32, ZigZag-encoded varint on the wire
- TYPE_SINT64 = 18, // int64, ZigZag-encoded varint on the wire
-
- MAX_TYPE = 18, // Constant useful for defining lookup tables
- // indexed by Type.
- };
-
- // Specifies the C++ data type used to represent the field. There is a
- // fixed mapping from Type to CppType where each Type maps to exactly one
- // CppType. 0 is reserved for errors.
- enum CppType {
- CPPTYPE_INT32 = 1, // TYPE_INT32, TYPE_SINT32, TYPE_SFIXED32
- CPPTYPE_INT64 = 2, // TYPE_INT64, TYPE_SINT64, TYPE_SFIXED64
- CPPTYPE_UINT32 = 3, // TYPE_UINT32, TYPE_FIXED32
- CPPTYPE_UINT64 = 4, // TYPE_UINT64, TYPE_FIXED64
- CPPTYPE_DOUBLE = 5, // TYPE_DOUBLE
- CPPTYPE_FLOAT = 6, // TYPE_FLOAT
- CPPTYPE_BOOL = 7, // TYPE_BOOL
- CPPTYPE_ENUM = 8, // TYPE_ENUM
- CPPTYPE_STRING = 9, // TYPE_STRING, TYPE_BYTES
- CPPTYPE_MESSAGE = 10, // TYPE_MESSAGE, TYPE_GROUP
-
- MAX_CPPTYPE = 10, // Constant useful for defining lookup tables
- // indexed by CppType.
- };
-
- // Identifies whether the field is optional, required, or repeated. 0 is
- // reserved for errors.
- enum Label {
- LABEL_OPTIONAL = 1, // optional
- LABEL_REQUIRED = 2, // required
- LABEL_REPEATED = 3, // repeated
-
- MAX_LABEL = 3, // Constant useful for defining lookup tables
- // indexed by Label.
- };
-
- // Valid field numbers are positive integers up to kMaxNumber.
- static const int kMaxNumber = (1 << 29) - 1;
-
- // First field number reserved for the protocol buffer library implementation.
- // Users may not declare fields that use reserved numbers.
- static const int kFirstReservedNumber = 19000;
- // Last field number reserved for the protocol buffer library implementation.
- // Users may not declare fields that use reserved numbers.
- static const int kLastReservedNumber = 19999;
-
- const string& name() const; // Name of this field within the message.
- const string& full_name() const; // Fully-qualified name of the field.
- const FileDescriptor* file() const;// File in which this field was defined.
- bool is_extension() const; // Is this an extension field?
- int number() const; // Declared tag number.
-
- // Same as name() except converted to lower-case. This (and especially the
- // FindFieldByLowercaseName() method) can be useful when parsing formats
- // which prefer to use lowercase naming style. (Although, technically
- // field names should be lowercased anyway according to the protobuf style
- // guide, so this only makes a difference when dealing with old .proto files
- // which do not follow the guide.)
- const string& lowercase_name() const;
-
- // Same as name() except converted to camel-case. In this conversion, any
- // time an underscore appears in the name, it is removed and the next
- // letter is capitalized. Furthermore, the first letter of the name is
- // lower-cased. Examples:
- // FooBar -> fooBar
- // foo_bar -> fooBar
- // fooBar -> fooBar
- // This (and especially the FindFieldByCamelcaseName() method) can be useful
- // when parsing formats which prefer to use camel-case naming style.
- const string& camelcase_name() const;
-
- Type type() const; // Declared type of this field.
- CppType cpp_type() const; // C++ type of this field.
- Label label() const; // optional/required/repeated
-
- bool is_required() const; // shorthand for label() == LABEL_REQUIRED
- bool is_optional() const; // shorthand for label() == LABEL_OPTIONAL
- bool is_repeated() const; // shorthand for label() == LABEL_REPEATED
- bool is_packable() const; // shorthand for is_repeated() &&
- // IsTypePackable(type())
-
- // Index of this field within the message's field array, or the file or
- // extension scope's extensions array.
- int index() const;
-
- // Does this field have an explicitly-declared default value?
- bool has_default_value() const;
-
- // Get the field default value if cpp_type() == CPPTYPE_INT32. If no
- // explicit default was defined, the default is 0.
- int32 default_value_int32() const;
- // Get the field default value if cpp_type() == CPPTYPE_INT64. If no
- // explicit default was defined, the default is 0.
- int64 default_value_int64() const;
- // Get the field default value if cpp_type() == CPPTYPE_UINT32. If no
- // explicit default was defined, the default is 0.
- uint32 default_value_uint32() const;
- // Get the field default value if cpp_type() == CPPTYPE_UINT64. If no
- // explicit default was defined, the default is 0.
- uint64 default_value_uint64() const;
- // Get the field default value if cpp_type() == CPPTYPE_FLOAT. If no
- // explicit default was defined, the default is 0.0.
- float default_value_float() const;
- // Get the field default value if cpp_type() == CPPTYPE_DOUBLE. If no
- // explicit default was defined, the default is 0.0.
- double default_value_double() const;
- // Get the field default value if cpp_type() == CPPTYPE_BOOL. If no
- // explicit default was defined, the default is false.
- bool default_value_bool() const;
- // Get the field default value if cpp_type() == CPPTYPE_ENUM. If no
- // explicit default was defined, the default is the first value defined
- // in the enum type (all enum types are required to have at least one value).
- // This never returns NULL.
- const EnumValueDescriptor* default_value_enum() const;
- // Get the field default value if cpp_type() == CPPTYPE_STRING. If no
- // explicit default was defined, the default is the empty string.
- const string& default_value_string() const;
-
- // The Descriptor for the message of which this is a field. For extensions,
- // this is the extended type. Never NULL.
- const Descriptor* containing_type() const;
-
- // An extension may be declared within the scope of another message. If this
- // field is an extension (is_extension() is true), then extension_scope()
- // returns that message, or NULL if the extension was declared at global
- // scope. If this is not an extension, extension_scope() is undefined (may
- // assert-fail).
- const Descriptor* extension_scope() const;
-
- // If type is TYPE_MESSAGE or TYPE_GROUP, returns a descriptor for the
- // message or the group type. Otherwise, undefined.
- const Descriptor* message_type() const;
- // If type is TYPE_ENUM, returns a descriptor for the enum. Otherwise,
- // undefined.
- const EnumDescriptor* enum_type() const;
-
- // EXPERIMENTAL; DO NOT USE.
- // If this field is a map field, experimental_map_key() is the field
- // that is the key for this map.
- // experimental_map_key()->containing_type() is the same as message_type().
- const FieldDescriptor* experimental_map_key() const;
-
- // Get the FieldOptions for this field. This includes things listed in
- // square brackets after the field definition. E.g., the field:
- // optional string text = 1 [ctype=CORD];
- // has the "ctype" option set. Allowed options are defined by FieldOptions
- // in google/protobuf/descriptor.proto, and any available extensions of that
- // message.
- const FieldOptions& options() const;
-
- // See Descriptor::CopyTo().
- void CopyTo(FieldDescriptorProto* proto) const;
-
- // See Descriptor::DebugString().
- string DebugString() const;
-
- // Helper method to get the CppType for a particular Type.
- static CppType TypeToCppType(Type type);
-
- // Return true iff [packed = true] is valid for fields of this type.
- static inline bool IsTypePackable(Type field_type);
-
- private:
- typedef FieldOptions OptionsType;
-
- // See Descriptor::DebugString().
- void DebugString(int depth, string *contents) const;
-
- // formats the default value appropriately and returns it as a string.
- // Must have a default value to call this. If quote_string_type is true, then
- // types of CPPTYPE_STRING whill be surrounded by quotes and CEscaped.
- string DefaultValueAsString(bool quote_string_type) const;
-
- const string* name_;
- const string* full_name_;
- const string* lowercase_name_;
- const string* camelcase_name_;
- const FileDescriptor* file_;
- int number_;
- Type type_;
- Label label_;
- bool is_extension_;
- const Descriptor* containing_type_;
- const Descriptor* extension_scope_;
- const Descriptor* message_type_;
- const EnumDescriptor* enum_type_;
- const FieldDescriptor* experimental_map_key_;
- const FieldOptions* options_;
- // IMPORTANT: If you add a new field, make sure to search for all instances
- // of Allocate<FieldDescriptor>() and AllocateArray<FieldDescriptor>() in
- // descriptor.cc and update them to initialize the field.
-
- bool has_default_value_;
- union {
- int32 default_value_int32_;
- int64 default_value_int64_;
- uint32 default_value_uint32_;
- uint64 default_value_uint64_;
- float default_value_float_;
- double default_value_double_;
- bool default_value_bool_;
-
- const EnumValueDescriptor* default_value_enum_;
- const string* default_value_string_;
- };
-
- static const CppType kTypeToCppTypeMap[MAX_TYPE + 1];
-
- static const char * const kTypeToName[MAX_TYPE + 1];
-
- static const char * const kLabelToName[MAX_LABEL + 1];
-
- // Must be constructed using DescriptorPool.
- FieldDescriptor() {}
- friend class DescriptorBuilder;
- friend class FileDescriptor;
- friend class Descriptor;
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(FieldDescriptor);
-};
-
-// Describes an enum type defined in a .proto file. To get the EnumDescriptor
-// for a generated enum type, call TypeName_descriptor(). Use DescriptorPool
-// to construct your own descriptors.
-class LIBPROTOBUF_EXPORT EnumDescriptor {
- public:
- // The name of this enum type in the containing scope.
- const string& name() const;
-
- // The fully-qualified name of the enum type, scope delimited by periods.
- const string& full_name() const;
-
- // Index of this enum within the file or containing message's enum array.
- int index() const;
-
- // The .proto file in which this enum type was defined. Never NULL.
- const FileDescriptor* file() const;
-
- // The number of values for this EnumDescriptor. Guaranteed to be greater
- // than zero.
- int value_count() const;
- // Gets a value by index, where 0 <= index < value_count().
- // These are returned in the order they were defined in the .proto file.
- const EnumValueDescriptor* value(int index) const;
-
- // Looks up a value by name. Returns NULL if no such value exists.
- const EnumValueDescriptor* FindValueByName(const string& name) const;
- // Looks up a value by number. Returns NULL if no such value exists. If
- // multiple values have this number, the first one defined is returned.
- const EnumValueDescriptor* FindValueByNumber(int number) const;
-
- // If this enum type is nested in a message type, this is that message type.
- // Otherwise, NULL.
- const Descriptor* containing_type() const;
-
- // Get options for this enum type. These are specified in the .proto file by
- // placing lines like "option foo = 1234;" in the enum definition. Allowed
- // options are defined by EnumOptions in google/protobuf/descriptor.proto,
- // and any available extensions of that message.
- const EnumOptions& options() const;
-
- // See Descriptor::CopyTo().
- void CopyTo(EnumDescriptorProto* proto) const;
-
- // See Descriptor::DebugString().
- string DebugString() const;
-
- private:
- typedef EnumOptions OptionsType;
-
- // See Descriptor::DebugString().
- void DebugString(int depth, string *contents) const;
-
- const string* name_;
- const string* full_name_;
- const FileDescriptor* file_;
- const Descriptor* containing_type_;
- const EnumOptions* options_;
-
- // True if this is a placeholder for an unknown type.
- bool is_placeholder_;
- // True if this is a placeholder and the type name wasn't fully-qualified.
- bool is_unqualified_placeholder_;
-
- int value_count_;
- EnumValueDescriptor* values_;
- // IMPORTANT: If you add a new field, make sure to search for all instances
- // of Allocate<EnumDescriptor>() and AllocateArray<EnumDescriptor>() in
- // descriptor.cc and update them to initialize the field.
-
- // Must be constructed using DescriptorPool.
- EnumDescriptor() {}
- friend class DescriptorBuilder;
- friend class Descriptor;
- friend class FieldDescriptor;
- friend class EnumValueDescriptor;
- friend class FileDescriptor;
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(EnumDescriptor);
-};
-
-// Describes an individual enum constant of a particular type. To get the
-// EnumValueDescriptor for a given enum value, first get the EnumDescriptor
-// for its type, then use EnumDescriptor::FindValueByName() or
-// EnumDescriptor::FindValueByNumber(). Use DescriptorPool to construct
-// your own descriptors.
-class LIBPROTOBUF_EXPORT EnumValueDescriptor {
- public:
- const string& name() const; // Name of this enum constant.
- int index() const; // Index within the enums's Descriptor.
- int number() const; // Numeric value of this enum constant.
-
- // The full_name of an enum value is a sibling symbol of the enum type.
- // e.g. the full name of FieldDescriptorProto::TYPE_INT32 is actually
- // "google.protobuf.FieldDescriptorProto.TYPE_INT32", NOT
- // "google.protobuf.FieldDescriptorProto.Type.TYPE_INT32". This is to conform
- // with C++ scoping rules for enums.
- const string& full_name() const;
-
- // The type of this value. Never NULL.
- const EnumDescriptor* type() const;
-
- // Get options for this enum value. These are specified in the .proto file
- // by adding text like "[foo = 1234]" after an enum value definition.
- // Allowed options are defined by EnumValueOptions in
- // google/protobuf/descriptor.proto, and any available extensions of that
- // message.
- const EnumValueOptions& options() const;
-
- // See Descriptor::CopyTo().
- void CopyTo(EnumValueDescriptorProto* proto) const;
-
- // See Descriptor::DebugString().
- string DebugString() const;
-
- private:
- typedef EnumValueOptions OptionsType;
-
- // See Descriptor::DebugString().
- void DebugString(int depth, string *contents) const;
-
- const string* name_;
- const string* full_name_;
- int number_;
- const EnumDescriptor* type_;
- const EnumValueOptions* options_;
- // IMPORTANT: If you add a new field, make sure to search for all instances
- // of Allocate<EnumValueDescriptor>() and AllocateArray<EnumValueDescriptor>()
- // in descriptor.cc and update them to initialize the field.
-
- // Must be constructed using DescriptorPool.
- EnumValueDescriptor() {}
- friend class DescriptorBuilder;
- friend class EnumDescriptor;
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(EnumValueDescriptor);
-};
-
-// Describes an RPC service. To get the ServiceDescriptor for a service,
-// call Service::GetDescriptor(). Generated service classes also have a
-// static method called descriptor() which returns the type's
-// ServiceDescriptor. Use DescriptorPool to construct your own descriptors.
-class LIBPROTOBUF_EXPORT ServiceDescriptor {
- public:
- // The name of the service, not including its containing scope.
- const string& name() const;
- // The fully-qualified name of the service, scope delimited by periods.
- const string& full_name() const;
- // Index of this service within the file's services array.
- int index() const;
-
- // The .proto file in which this service was defined. Never NULL.
- const FileDescriptor* file() const;
-
- // Get options for this service type. These are specified in the .proto file
- // by placing lines like "option foo = 1234;" in the service definition.
- // Allowed options are defined by ServiceOptions in
- // google/protobuf/descriptor.proto, and any available extensions of that
- // message.
- const ServiceOptions& options() const;
-
- // The number of methods this service defines.
- int method_count() const;
- // Gets a MethodDescriptor by index, where 0 <= index < method_count().
- // These are returned in the order they were defined in the .proto file.
- const MethodDescriptor* method(int index) const;
-
- // Look up a MethodDescriptor by name.
- const MethodDescriptor* FindMethodByName(const string& name) const;
-
- // See Descriptor::CopyTo().
- void CopyTo(ServiceDescriptorProto* proto) const;
-
- // See Descriptor::DebugString().
- string DebugString() const;
-
- private:
- typedef ServiceOptions OptionsType;
-
- // See Descriptor::DebugString().
- void DebugString(string *contents) const;
-
- const string* name_;
- const string* full_name_;
- const FileDescriptor* file_;
- const ServiceOptions* options_;
- int method_count_;
- MethodDescriptor* methods_;
- // IMPORTANT: If you add a new field, make sure to search for all instances
- // of Allocate<ServiceDescriptor>() and AllocateArray<ServiceDescriptor>() in
- // descriptor.cc and update them to initialize the field.
-
- // Must be constructed using DescriptorPool.
- ServiceDescriptor() {}
- friend class DescriptorBuilder;
- friend class FileDescriptor;
- friend class MethodDescriptor;
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(ServiceDescriptor);
-};
-
-// Describes an individual service method. To obtain a MethodDescriptor given
-// a service, first get its ServiceDescriptor, then call
-// ServiceDescriptor::FindMethodByName(). Use DescriptorPool to construct your
-// own descriptors.
-class LIBPROTOBUF_EXPORT MethodDescriptor {
- public:
- // Name of this method, not including containing scope.
- const string& name() const;
- // The fully-qualified name of the method, scope delimited by periods.
- const string& full_name() const;
- // Index within the service's Descriptor.
- int index() const;
-
- // Gets the service to which this method belongs. Never NULL.
- const ServiceDescriptor* service() const;
-
- // Gets the type of protocol message which this method accepts as input.
- const Descriptor* input_type() const;
- // Gets the type of protocol message which this message produces as output.
- const Descriptor* output_type() const;
-
- // Get options for this method. These are specified in the .proto file by
- // placing lines like "option foo = 1234;" in curly-braces after a method
- // declaration. Allowed options are defined by MethodOptions in
- // google/protobuf/descriptor.proto, and any available extensions of that
- // message.
- const MethodOptions& options() const;
-
- // See Descriptor::CopyTo().
- void CopyTo(MethodDescriptorProto* proto) const;
-
- // See Descriptor::DebugString().
- string DebugString() const;
-
- private:
- typedef MethodOptions OptionsType;
-
- // See Descriptor::DebugString().
- void DebugString(int depth, string *contents) const;
-
- const string* name_;
- const string* full_name_;
- const ServiceDescriptor* service_;
- const Descriptor* input_type_;
- const Descriptor* output_type_;
- const MethodOptions* options_;
- // IMPORTANT: If you add a new field, make sure to search for all instances
- // of Allocate<MethodDescriptor>() and AllocateArray<MethodDescriptor>() in
- // descriptor.cc and update them to initialize the field.
-
- // Must be constructed using DescriptorPool.
- MethodDescriptor() {}
- friend class DescriptorBuilder;
- friend class ServiceDescriptor;
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(MethodDescriptor);
-};
-
-// Describes a whole .proto file. To get the FileDescriptor for a compiled-in
-// file, get the descriptor for something defined in that file and call
-// descriptor->file(). Use DescriptorPool to construct your own descriptors.
-class LIBPROTOBUF_EXPORT FileDescriptor {
- public:
- // The filename, relative to the source tree.
- // e.g. "google/protobuf/descriptor.proto"
- const string& name() const;
-
- // The package, e.g. "google.protobuf.compiler".
- const string& package() const;
-
- // The DescriptorPool in which this FileDescriptor and all its contents were
- // allocated. Never NULL.
- const DescriptorPool* pool() const;
-
- // The number of files imported by this one.
- int dependency_count() const;
- // Gets an imported file by index, where 0 <= index < dependency_count().
- // These are returned in the order they were defined in the .proto file.
- const FileDescriptor* dependency(int index) const;
-
- // Number of top-level message types defined in this file. (This does not
- // include nested types.)
- int message_type_count() const;
- // Gets a top-level message type, where 0 <= index < message_type_count().
- // These are returned in the order they were defined in the .proto file.
- const Descriptor* message_type(int index) const;
-
- // Number of top-level enum types defined in this file. (This does not
- // include nested types.)
- int enum_type_count() const;
- // Gets a top-level enum type, where 0 <= index < enum_type_count().
- // These are returned in the order they were defined in the .proto file.
- const EnumDescriptor* enum_type(int index) const;
-
- // Number of services defined in this file.
- int service_count() const;
- // Gets a service, where 0 <= index < service_count().
- // These are returned in the order they were defined in the .proto file.
- const ServiceDescriptor* service(int index) const;
-
- // Number of extensions defined at file scope. (This does not include
- // extensions nested within message types.)
- int extension_count() const;
- // Gets an extension's descriptor, where 0 <= index < extension_count().
- // These are returned in the order they were defined in the .proto file.
- const FieldDescriptor* extension(int index) const;
-
- // Get options for this file. These are specified in the .proto file by
- // placing lines like "option foo = 1234;" at the top level, outside of any
- // other definitions. Allowed options are defined by FileOptions in
- // google/protobuf/descriptor.proto, and any available extensions of that
- // message.
- const FileOptions& options() const;
-
- // Find a top-level message type by name. Returns NULL if not found.
- const Descriptor* FindMessageTypeByName(const string& name) const;
- // Find a top-level enum type by name. Returns NULL if not found.
- const EnumDescriptor* FindEnumTypeByName(const string& name) const;
- // Find an enum value defined in any top-level enum by name. Returns NULL if
- // not found.
- const EnumValueDescriptor* FindEnumValueByName(const string& name) const;
- // Find a service definition by name. Returns NULL if not found.
- const ServiceDescriptor* FindServiceByName(const string& name) const;
- // Find a top-level extension definition by name. Returns NULL if not found.
- const FieldDescriptor* FindExtensionByName(const string& name) const;
- // Similar to FindExtensionByName(), but searches by lowercased-name. See
- // Descriptor::FindFieldByLowercaseName().
- const FieldDescriptor* FindExtensionByLowercaseName(const string& name) const;
- // Similar to FindExtensionByName(), but searches by camelcased-name. See
- // Descriptor::FindFieldByCamelcaseName().
- const FieldDescriptor* FindExtensionByCamelcaseName(const string& name) const;
-
- // See Descriptor::CopyTo().
- void CopyTo(FileDescriptorProto* proto) const;
-
- // See Descriptor::DebugString().
- string DebugString() const;
-
- private:
- typedef FileOptions OptionsType;
-
- const string* name_;
- const string* package_;
- const DescriptorPool* pool_;
- int dependency_count_;
- const FileDescriptor** dependencies_;
- int message_type_count_;
- Descriptor* message_types_;
- int enum_type_count_;
- EnumDescriptor* enum_types_;
- int service_count_;
- ServiceDescriptor* services_;
- int extension_count_;
- FieldDescriptor* extensions_;
- const FileOptions* options_;
-
- const FileDescriptorTables* tables_;
- // IMPORTANT: If you add a new field, make sure to search for all instances
- // of Allocate<FileDescriptor>() and AllocateArray<FileDescriptor>() in
- // descriptor.cc and update them to initialize the field.
-
- FileDescriptor() {}
- friend class DescriptorBuilder;
- friend class Descriptor;
- friend class FieldDescriptor;
- friend class EnumDescriptor;
- friend class ServiceDescriptor;
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(FileDescriptor);
-};
-
-// ===================================================================
-
-// Used to construct descriptors.
-//
-// Normally you won't want to build your own descriptors. Message classes
-// constructed by the protocol compiler will provide them for you. However,
-// if you are implementing Message on your own, or if you are writing a
-// program which can operate on totally arbitrary types and needs to load
-// them from some sort of database, you might need to.
-//
-// Since Descriptors are composed of a whole lot of cross-linked bits of
-// data that would be a pain to put together manually, the
-// DescriptorPool class is provided to make the process easier. It can
-// take a FileDescriptorProto (defined in descriptor.proto), validate it,
-// and convert it to a set of nicely cross-linked Descriptors.
-//
-// DescriptorPool also helps with memory management. Descriptors are
-// composed of many objects containing static data and pointers to each
-// other. In all likelihood, when it comes time to delete this data,
-// you'll want to delete it all at once. In fact, it is not uncommon to
-// have a whole pool of descriptors all cross-linked with each other which
-// you wish to delete all at once. This class represents such a pool, and
-// handles the memory management for you.
-//
-// You can also search for descriptors within a DescriptorPool by name, and
-// extensions by number.
-class LIBPROTOBUF_EXPORT DescriptorPool {
- public:
- // Create a normal, empty DescriptorPool.
- DescriptorPool();
-
- // Constructs a DescriptorPool that, when it can't find something among the
- // descriptors already in the pool, looks for it in the given
- // DescriptorDatabase.
- // Notes:
- // - If a DescriptorPool is constructed this way, its BuildFile*() methods
- // must not be called (they will assert-fail). The only way to populate
- // the pool with descriptors is to call the Find*By*() methods.
- // - The Find*By*() methods may block the calling thread if the
- // DescriptorDatabase blocks. This in turn means that parsing messages
- // may block if they need to look up extensions.
- // - The Find*By*() methods will use mutexes for thread-safety, thus making
- // them slower even when they don't have to fall back to the database.
- // In fact, even the Find*By*() methods of descriptor objects owned by
- // this pool will be slower, since they will have to obtain locks too.
- // - An ErrorCollector may optionally be given to collect validation errors
- // in files loaded from the database. If not given, errors will be printed
- // to GOOGLE_LOG(ERROR). Remember that files are built on-demand, so this
- // ErrorCollector may be called from any thread that calls one of the
- // Find*By*() methods.
- class ErrorCollector;
- explicit DescriptorPool(DescriptorDatabase* fallback_database,
- ErrorCollector* error_collector = NULL);
-
- ~DescriptorPool();
-
- // Get a pointer to the generated pool. Generated protocol message classes
- // which are compiled into the binary will allocate their descriptors in
- // this pool. Do not add your own descriptors to this pool.
- static const DescriptorPool* generated_pool();
-
- // Find a FileDescriptor in the pool by file name. Returns NULL if not
- // found.
- const FileDescriptor* FindFileByName(const string& name) const;
-
- // Find the FileDescriptor in the pool which defines the given symbol.
- // If any of the Find*ByName() methods below would succeed, then this is
- // equivalent to calling that method and calling the result's file() method.
- // Otherwise this returns NULL.
- const FileDescriptor* FindFileContainingSymbol(
- const string& symbol_name) const;
-
- // Looking up descriptors ------------------------------------------
- // These find descriptors by fully-qualified name. These will find both
- // top-level descriptors and nested descriptors. They return NULL if not
- // found.
-
- const Descriptor* FindMessageTypeByName(const string& name) const;
- const FieldDescriptor* FindFieldByName(const string& name) const;
- const FieldDescriptor* FindExtensionByName(const string& name) const;
- const EnumDescriptor* FindEnumTypeByName(const string& name) const;
- const EnumValueDescriptor* FindEnumValueByName(const string& name) const;
- const ServiceDescriptor* FindServiceByName(const string& name) const;
- const MethodDescriptor* FindMethodByName(const string& name) const;
-
- // Finds an extension of the given type by number. The extendee must be
- // a member of this DescriptorPool or one of its underlays.
- const FieldDescriptor* FindExtensionByNumber(const Descriptor* extendee,
- int number) const;
-
- // Finds extensions of extendee. The extensions will be appended to
- // out in an undefined order. Only extensions defined directly in
- // this DescriptorPool or one of its underlays are guaranteed to be
- // found: extensions defined in the fallback database might not be found
- // depending on the database implementation.
- void FindAllExtensions(const Descriptor* extendee,
- vector<const FieldDescriptor*>* out) const;
-
- // Building descriptors --------------------------------------------
-
- // When converting a FileDescriptorProto to a FileDescriptor, various
- // errors might be detected in the input. The caller may handle these
- // programmatically by implementing an ErrorCollector.
- class LIBPROTOBUF_EXPORT ErrorCollector {
- public:
- inline ErrorCollector() {}
- virtual ~ErrorCollector();
-
- // These constants specify what exact part of the construct is broken.
- // This is useful e.g. for mapping the error back to an exact location
- // in a .proto file.
- enum ErrorLocation {
- NAME, // the symbol name, or the package name for files
- NUMBER, // field or extension range number
- TYPE, // field type
- EXTENDEE, // field extendee
- DEFAULT_VALUE, // field default value
- INPUT_TYPE, // method input type
- OUTPUT_TYPE, // method output type
- OPTION_NAME, // name in assignment
- OPTION_VALUE, // value in option assignment
- OTHER // some other problem
- };
-
- // Reports an error in the FileDescriptorProto.
- virtual void AddError(
- const string& filename, // File name in which the error occurred.
- const string& element_name, // Full name of the erroneous element.
- const Message* descriptor, // Descriptor of the erroneous element.
- ErrorLocation location, // One of the location constants, above.
- const string& message // Human-readable error message.
- ) = 0;
-
- private:
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(ErrorCollector);
- };
-
- // Convert the FileDescriptorProto to real descriptors and place them in
- // this DescriptorPool. All dependencies of the file must already be in
- // the pool. Returns the resulting FileDescriptor, or NULL if there were
- // problems with the input (e.g. the message was invalid, or dependencies
- // were missing). Details about the errors are written to GOOGLE_LOG(ERROR).
- const FileDescriptor* BuildFile(const FileDescriptorProto& proto);
-
- // Same as BuildFile() except errors are sent to the given ErrorCollector.
- const FileDescriptor* BuildFileCollectingErrors(
- const FileDescriptorProto& proto,
- ErrorCollector* error_collector);
-
- // By default, it is an error if a FileDescriptorProto contains references
- // to types or other files that are not found in the DescriptorPool (or its
- // backing DescriptorDatabase, if any). If you call
- // AllowUnknownDependencies(), however, then unknown types and files
- // will be replaced by placeholder descriptors. This can allow you to
- // perform some useful operations with a .proto file even if you do not
- // have access to other .proto files on which it depends. However, some
- // heuristics must be used to fill in the gaps in information, and these
- // can lead to descriptors which are inaccurate. For example, the
- // DescriptorPool may be forced to guess whether an unknown type is a message
- // or an enum, as well as what package it resides in. Furthermore,
- // placeholder types will not be discoverable via FindMessageTypeByName()
- // and similar methods, which could confuse some descriptor-based algorithms.
- // Generally, the results of this option should only be relied upon for
- // debugging purposes.
- void AllowUnknownDependencies() { allow_unknown_ = true; }
-
- // Internal stuff --------------------------------------------------
- // These methods MUST NOT be called from outside the proto2 library.
- // These methods may contain hidden pitfalls and may be removed in a
- // future library version.
-
- // Create a DescriptorPool which is overlaid on top of some other pool.
- // If you search for a descriptor in the overlay and it is not found, the
- // underlay will be searched as a backup. If the underlay has its own
- // underlay, that will be searched next, and so on. This also means that
- // files built in the overlay will be cross-linked with the underlay's
- // descriptors if necessary. The underlay remains property of the caller;
- // it must remain valid for the lifetime of the newly-constructed pool.
- //
- // Example: Say you want to parse a .proto file at runtime in order to use
- // its type with a DynamicMessage. Say this .proto file has dependencies,
- // but you know that all the dependencies will be things that are already
- // compiled into the binary. For ease of use, you'd like to load the types
- // right out of generated_pool() rather than have to parse redundant copies
- // of all these .protos and runtime. But, you don't want to add the parsed
- // types directly into generated_pool(): this is not allowed, and would be
- // bad design anyway. So, instead, you could use generated_pool() as an
- // underlay for a new DescriptorPool in which you add only the new file.
- //
- // WARNING: Use of underlays can lead to many subtle gotchas. Instead,
- // try to formulate what you want to do in terms of DescriptorDatabases.
- explicit DescriptorPool(const DescriptorPool* underlay);
-
- // Called by generated classes at init time to add their descriptors to
- // generated_pool. Do NOT call this in your own code! filename must be a
- // permanent string (e.g. a string literal).
- static void InternalAddGeneratedFile(
- const void* encoded_file_descriptor, int size);
-
-
- // For internal use only: Gets a non-const pointer to the generated pool.
- // This is called at static-initialization time only, so thread-safety is
- // not a concern. If both an underlay and a fallback database are present,
- // the fallback database takes precedence.
- static DescriptorPool* internal_generated_pool();
-
- // For internal use only: Changes the behavior of BuildFile() such that it
- // allows the file to make reference to message types declared in other files
- // which it did not officially declare as dependencies.
- void InternalDontEnforceDependencies();
-
- // For internal use only.
- void internal_set_underlay(const DescriptorPool* underlay) {
- underlay_ = underlay;
- }
-
- // For internal (unit test) use only: Returns true if a FileDescriptor has
- // been constructed for the given file, false otherwise. Useful for testing
- // lazy descriptor initialization behavior.
- bool InternalIsFileLoaded(const string& filename) const;
-
- private:
- friend class Descriptor;
- friend class FieldDescriptor;
- friend class EnumDescriptor;
- friend class ServiceDescriptor;
- friend class FileDescriptor;
- friend class DescriptorBuilder;
-
- // Tries to find something in the fallback database and link in the
- // corresponding proto file. Returns true if successful, in which case
- // the caller should search for the thing again. These are declared
- // const because they are called by (semantically) const methods.
- bool TryFindFileInFallbackDatabase(const string& name) const;
- bool TryFindSymbolInFallbackDatabase(const string& name) const;
- bool TryFindExtensionInFallbackDatabase(const Descriptor* containing_type,
- int field_number) const;
-
- // Like BuildFile() but called internally when the file has been loaded from
- // fallback_database_. Declared const because it is called by (semantically)
- // const methods.
- const FileDescriptor* BuildFileFromDatabase(
- const FileDescriptorProto& proto) const;
-
- // If fallback_database_ is NULL, this is NULL. Otherwise, this is a mutex
- // which must be locked while accessing tables_.
- Mutex* mutex_;
-
- // See constructor.
- DescriptorDatabase* fallback_database_;
- ErrorCollector* default_error_collector_;
- const DescriptorPool* underlay_;
-
- // This class contains a lot of hash maps with complicated types that
- // we'd like to keep out of the header.
- class Tables;
- scoped_ptr<Tables> tables_;
-
- bool enforce_dependencies_;
- bool allow_unknown_;
-
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(DescriptorPool);
-};
-
-// inline methods ====================================================
-
-// These macros makes this repetitive code more readable.
-#define PROTOBUF_DEFINE_ACCESSOR(CLASS, FIELD, TYPE) \
- inline TYPE CLASS::FIELD() const { return FIELD##_; }
-
-// Strings fields are stored as pointers but returned as const references.
-#define PROTOBUF_DEFINE_STRING_ACCESSOR(CLASS, FIELD) \
- inline const string& CLASS::FIELD() const { return *FIELD##_; }
-
-// Arrays take an index parameter, obviously.
-#define PROTOBUF_DEFINE_ARRAY_ACCESSOR(CLASS, FIELD, TYPE) \
- inline TYPE CLASS::FIELD(int index) const { return FIELD##s_ + index; }
-
-#define PROTOBUF_DEFINE_OPTIONS_ACCESSOR(CLASS, TYPE) \
- inline const TYPE& CLASS::options() const { return *options_; }
-
-PROTOBUF_DEFINE_STRING_ACCESSOR(Descriptor, name)
-PROTOBUF_DEFINE_STRING_ACCESSOR(Descriptor, full_name)
-PROTOBUF_DEFINE_ACCESSOR(Descriptor, file, const FileDescriptor*)
-PROTOBUF_DEFINE_ACCESSOR(Descriptor, containing_type, const Descriptor*)
-
-PROTOBUF_DEFINE_ACCESSOR(Descriptor, field_count, int)
-PROTOBUF_DEFINE_ACCESSOR(Descriptor, nested_type_count, int)
-PROTOBUF_DEFINE_ACCESSOR(Descriptor, enum_type_count, int)
-
-PROTOBUF_DEFINE_ARRAY_ACCESSOR(Descriptor, field, const FieldDescriptor*)
-PROTOBUF_DEFINE_ARRAY_ACCESSOR(Descriptor, nested_type, const Descriptor*)
-PROTOBUF_DEFINE_ARRAY_ACCESSOR(Descriptor, enum_type, const EnumDescriptor*)
-
-PROTOBUF_DEFINE_ACCESSOR(Descriptor, extension_range_count, int)
-PROTOBUF_DEFINE_ACCESSOR(Descriptor, extension_count, int)
-PROTOBUF_DEFINE_ARRAY_ACCESSOR(Descriptor, extension_range,
- const Descriptor::ExtensionRange*)
-PROTOBUF_DEFINE_ARRAY_ACCESSOR(Descriptor, extension,
- const FieldDescriptor*)
-PROTOBUF_DEFINE_OPTIONS_ACCESSOR(Descriptor, MessageOptions);
-
-PROTOBUF_DEFINE_STRING_ACCESSOR(FieldDescriptor, name)
-PROTOBUF_DEFINE_STRING_ACCESSOR(FieldDescriptor, full_name)
-PROTOBUF_DEFINE_STRING_ACCESSOR(FieldDescriptor, lowercase_name)
-PROTOBUF_DEFINE_STRING_ACCESSOR(FieldDescriptor, camelcase_name)
-PROTOBUF_DEFINE_ACCESSOR(FieldDescriptor, file, const FileDescriptor*)
-PROTOBUF_DEFINE_ACCESSOR(FieldDescriptor, number, int)
-PROTOBUF_DEFINE_ACCESSOR(FieldDescriptor, is_extension, bool)
-PROTOBUF_DEFINE_ACCESSOR(FieldDescriptor, type, FieldDescriptor::Type)
-PROTOBUF_DEFINE_ACCESSOR(FieldDescriptor, label, FieldDescriptor::Label)
-PROTOBUF_DEFINE_ACCESSOR(FieldDescriptor, containing_type, const Descriptor*)
-PROTOBUF_DEFINE_ACCESSOR(FieldDescriptor, extension_scope, const Descriptor*)
-PROTOBUF_DEFINE_ACCESSOR(FieldDescriptor, message_type, const Descriptor*)
-PROTOBUF_DEFINE_ACCESSOR(FieldDescriptor, enum_type, const EnumDescriptor*)
-PROTOBUF_DEFINE_ACCESSOR(FieldDescriptor, experimental_map_key,
- const FieldDescriptor*)
-PROTOBUF_DEFINE_OPTIONS_ACCESSOR(FieldDescriptor, FieldOptions);
-PROTOBUF_DEFINE_ACCESSOR(FieldDescriptor, has_default_value, bool)
-PROTOBUF_DEFINE_ACCESSOR(FieldDescriptor, default_value_int32 , int32 )
-PROTOBUF_DEFINE_ACCESSOR(FieldDescriptor, default_value_int64 , int64 )
-PROTOBUF_DEFINE_ACCESSOR(FieldDescriptor, default_value_uint32, uint32)
-PROTOBUF_DEFINE_ACCESSOR(FieldDescriptor, default_value_uint64, uint64)
-PROTOBUF_DEFINE_ACCESSOR(FieldDescriptor, default_value_float , float )
-PROTOBUF_DEFINE_ACCESSOR(FieldDescriptor, default_value_double, double)
-PROTOBUF_DEFINE_ACCESSOR(FieldDescriptor, default_value_bool , bool )
-PROTOBUF_DEFINE_ACCESSOR(FieldDescriptor, default_value_enum,
- const EnumValueDescriptor*)
-PROTOBUF_DEFINE_STRING_ACCESSOR(FieldDescriptor, default_value_string)
-
-PROTOBUF_DEFINE_STRING_ACCESSOR(EnumDescriptor, name)
-PROTOBUF_DEFINE_STRING_ACCESSOR(EnumDescriptor, full_name)
-PROTOBUF_DEFINE_ACCESSOR(EnumDescriptor, file, const FileDescriptor*)
-PROTOBUF_DEFINE_ACCESSOR(EnumDescriptor, containing_type, const Descriptor*)
-PROTOBUF_DEFINE_ACCESSOR(EnumDescriptor, value_count, int)
-PROTOBUF_DEFINE_ARRAY_ACCESSOR(EnumDescriptor, value,
- const EnumValueDescriptor*)
-PROTOBUF_DEFINE_OPTIONS_ACCESSOR(EnumDescriptor, EnumOptions);
-
-PROTOBUF_DEFINE_STRING_ACCESSOR(EnumValueDescriptor, name)
-PROTOBUF_DEFINE_STRING_ACCESSOR(EnumValueDescriptor, full_name)
-PROTOBUF_DEFINE_ACCESSOR(EnumValueDescriptor, number, int)
-PROTOBUF_DEFINE_ACCESSOR(EnumValueDescriptor, type, const EnumDescriptor*)
-PROTOBUF_DEFINE_OPTIONS_ACCESSOR(EnumValueDescriptor, EnumValueOptions);
-
-PROTOBUF_DEFINE_STRING_ACCESSOR(ServiceDescriptor, name)
-PROTOBUF_DEFINE_STRING_ACCESSOR(ServiceDescriptor, full_name)
-PROTOBUF_DEFINE_ACCESSOR(ServiceDescriptor, file, const FileDescriptor*)
-PROTOBUF_DEFINE_ACCESSOR(ServiceDescriptor, method_count, int)
-PROTOBUF_DEFINE_ARRAY_ACCESSOR(ServiceDescriptor, method,
- const MethodDescriptor*)
-PROTOBUF_DEFINE_OPTIONS_ACCESSOR(ServiceDescriptor, ServiceOptions);
-
-PROTOBUF_DEFINE_STRING_ACCESSOR(MethodDescriptor, name)
-PROTOBUF_DEFINE_STRING_ACCESSOR(MethodDescriptor, full_name)
-PROTOBUF_DEFINE_ACCESSOR(MethodDescriptor, service, const ServiceDescriptor*)
-PROTOBUF_DEFINE_ACCESSOR(MethodDescriptor, input_type, const Descriptor*)
-PROTOBUF_DEFINE_ACCESSOR(MethodDescriptor, output_type, const Descriptor*)
-PROTOBUF_DEFINE_OPTIONS_ACCESSOR(MethodDescriptor, MethodOptions);
-
-PROTOBUF_DEFINE_STRING_ACCESSOR(FileDescriptor, name)
-PROTOBUF_DEFINE_STRING_ACCESSOR(FileDescriptor, package)
-PROTOBUF_DEFINE_ACCESSOR(FileDescriptor, pool, const DescriptorPool*)
-PROTOBUF_DEFINE_ACCESSOR(FileDescriptor, dependency_count, int)
-PROTOBUF_DEFINE_ACCESSOR(FileDescriptor, message_type_count, int)
-PROTOBUF_DEFINE_ACCESSOR(FileDescriptor, enum_type_count, int)
-PROTOBUF_DEFINE_ACCESSOR(FileDescriptor, service_count, int)
-PROTOBUF_DEFINE_ACCESSOR(FileDescriptor, extension_count, int)
-PROTOBUF_DEFINE_OPTIONS_ACCESSOR(FileDescriptor, FileOptions);
-
-PROTOBUF_DEFINE_ARRAY_ACCESSOR(FileDescriptor, message_type, const Descriptor*)
-PROTOBUF_DEFINE_ARRAY_ACCESSOR(FileDescriptor, enum_type, const EnumDescriptor*)
-PROTOBUF_DEFINE_ARRAY_ACCESSOR(FileDescriptor, service,
- const ServiceDescriptor*)
-PROTOBUF_DEFINE_ARRAY_ACCESSOR(FileDescriptor, extension,
- const FieldDescriptor*)
-
-#undef PROTOBUF_DEFINE_ACCESSOR
-#undef PROTOBUF_DEFINE_STRING_ACCESSOR
-#undef PROTOBUF_DEFINE_ARRAY_ACCESSOR
-
-// A few accessors differ from the macros...
-
-inline bool FieldDescriptor::is_required() const {
- return label() == LABEL_REQUIRED;
-}
-
-inline bool FieldDescriptor::is_optional() const {
- return label() == LABEL_OPTIONAL;
-}
-
-inline bool FieldDescriptor::is_repeated() const {
- return label() == LABEL_REPEATED;
-}
-
-inline bool FieldDescriptor::is_packable() const {
- return is_repeated() && IsTypePackable(type());
-}
-
-// To save space, index() is computed by looking at the descriptor's position
-// in the parent's array of children.
-inline int FieldDescriptor::index() const {
- if (!is_extension_) {
- return this - containing_type_->fields_;
- } else if (extension_scope_ != NULL) {
- return this - extension_scope_->extensions_;
- } else {
- return this - file_->extensions_;
- }
-}
-
-inline int Descriptor::index() const {
- if (containing_type_ == NULL) {
- return this - file_->message_types_;
- } else {
- return this - containing_type_->nested_types_;
- }
-}
-
-inline int EnumDescriptor::index() const {
- if (containing_type_ == NULL) {
- return this - file_->enum_types_;
- } else {
- return this - containing_type_->enum_types_;
- }
-}
-
-inline int EnumValueDescriptor::index() const {
- return this - type_->values_;
-}
-
-inline int ServiceDescriptor::index() const {
- return this - file_->services_;
-}
-
-inline int MethodDescriptor::index() const {
- return this - service_->methods_;
-}
-
-inline FieldDescriptor::CppType FieldDescriptor::cpp_type() const {
- return kTypeToCppTypeMap[type_];
-}
-
-inline FieldDescriptor::CppType FieldDescriptor::TypeToCppType(Type type) {
- return kTypeToCppTypeMap[type];
-}
-
-inline bool FieldDescriptor::IsTypePackable(Type field_type) {
- return (field_type != FieldDescriptor::TYPE_STRING &&
- field_type != FieldDescriptor::TYPE_GROUP &&
- field_type != FieldDescriptor::TYPE_MESSAGE &&
- field_type != FieldDescriptor::TYPE_BYTES);
-}
-
-inline const FileDescriptor* FileDescriptor::dependency(int index) const {
- return dependencies_[index];
-}
-
-} // namespace protobuf
-
-} // namespace google
-#endif // GOOGLE_PROTOBUF_DESCRIPTOR_H__
diff --git a/contrib/prebuilt/include/google/protobuf/descriptor.pb.h b/contrib/prebuilt/include/google/protobuf/descriptor.pb.h
deleted file mode 100644
index 95febb8..0000000
--- a/contrib/prebuilt/include/google/protobuf/descriptor.pb.h
+++ /dev/null
@@ -1,5223 +0,0 @@
-// Generated by the protocol buffer compiler. DO NOT EDIT!
-// source: google/protobuf/descriptor.proto
-
-#ifndef PROTOBUF_google_2fprotobuf_2fdescriptor_2eproto__INCLUDED
-#define PROTOBUF_google_2fprotobuf_2fdescriptor_2eproto__INCLUDED
-
-#include <string>
-
-#include <google/protobuf/stubs/common.h>
-
-#if GOOGLE_PROTOBUF_VERSION < 2004000
-#error This file was generated by a newer version of protoc which is
-#error incompatible with your Protocol Buffer headers. Please update
-#error your headers.
-#endif
-#if 2004001 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
-#error This file was generated by an older version of protoc which is
-#error incompatible with your Protocol Buffer headers. Please
-#error regenerate this file with a newer version of protoc.
-#endif
-
-#include <google/protobuf/generated_message_util.h>
-#include <google/protobuf/repeated_field.h>
-#include <google/protobuf/extension_set.h>
-#include <google/protobuf/generated_message_reflection.h>
-// @@protoc_insertion_point(includes)
-
-namespace google {
-namespace protobuf {
-
-// Internal implementation detail -- do not call these.
-void LIBPROTOBUF_EXPORT protobuf_AddDesc_google_2fprotobuf_2fdescriptor_2eproto();
-void protobuf_AssignDesc_google_2fprotobuf_2fdescriptor_2eproto();
-void protobuf_ShutdownFile_google_2fprotobuf_2fdescriptor_2eproto();
-
-class FileDescriptorSet;
-class FileDescriptorProto;
-class DescriptorProto;
-class DescriptorProto_ExtensionRange;
-class FieldDescriptorProto;
-class EnumDescriptorProto;
-class EnumValueDescriptorProto;
-class ServiceDescriptorProto;
-class MethodDescriptorProto;
-class FileOptions;
-class MessageOptions;
-class FieldOptions;
-class EnumOptions;
-class EnumValueOptions;
-class ServiceOptions;
-class MethodOptions;
-class UninterpretedOption;
-class UninterpretedOption_NamePart;
-class SourceCodeInfo;
-class SourceCodeInfo_Location;
-
-enum FieldDescriptorProto_Type {
- FieldDescriptorProto_Type_TYPE_DOUBLE = 1,
- FieldDescriptorProto_Type_TYPE_FLOAT = 2,
- FieldDescriptorProto_Type_TYPE_INT64 = 3,
- FieldDescriptorProto_Type_TYPE_UINT64 = 4,
- FieldDescriptorProto_Type_TYPE_INT32 = 5,
- FieldDescriptorProto_Type_TYPE_FIXED64 = 6,
- FieldDescriptorProto_Type_TYPE_FIXED32 = 7,
- FieldDescriptorProto_Type_TYPE_BOOL = 8,
- FieldDescriptorProto_Type_TYPE_STRING = 9,
- FieldDescriptorProto_Type_TYPE_GROUP = 10,
- FieldDescriptorProto_Type_TYPE_MESSAGE = 11,
- FieldDescriptorProto_Type_TYPE_BYTES = 12,
- FieldDescriptorProto_Type_TYPE_UINT32 = 13,
- FieldDescriptorProto_Type_TYPE_ENUM = 14,
- FieldDescriptorProto_Type_TYPE_SFIXED32 = 15,
- FieldDescriptorProto_Type_TYPE_SFIXED64 = 16,
- FieldDescriptorProto_Type_TYPE_SINT32 = 17,
- FieldDescriptorProto_Type_TYPE_SINT64 = 18
-};
-LIBPROTOBUF_EXPORT bool FieldDescriptorProto_Type_IsValid(int value);
-const FieldDescriptorProto_Type FieldDescriptorProto_Type_Type_MIN = FieldDescriptorProto_Type_TYPE_DOUBLE;
-const FieldDescriptorProto_Type FieldDescriptorProto_Type_Type_MAX = FieldDescriptorProto_Type_TYPE_SINT64;
-const int FieldDescriptorProto_Type_Type_ARRAYSIZE = FieldDescriptorProto_Type_Type_MAX + 1;
-
-LIBPROTOBUF_EXPORT const ::google::protobuf::EnumDescriptor* FieldDescriptorProto_Type_descriptor();
-inline const ::std::string& FieldDescriptorProto_Type_Name(FieldDescriptorProto_Type value) {
- return ::google::protobuf::internal::NameOfEnum(
- FieldDescriptorProto_Type_descriptor(), value);
-}
-inline bool FieldDescriptorProto_Type_Parse(
- const ::std::string& name, FieldDescriptorProto_Type* value) {
- return ::google::protobuf::internal::ParseNamedEnum<FieldDescriptorProto_Type>(
- FieldDescriptorProto_Type_descriptor(), name, value);
-}
-enum FieldDescriptorProto_Label {
- FieldDescriptorProto_Label_LABEL_OPTIONAL = 1,
- FieldDescriptorProto_Label_LABEL_REQUIRED = 2,
- FieldDescriptorProto_Label_LABEL_REPEATED = 3
-};
-LIBPROTOBUF_EXPORT bool FieldDescriptorProto_Label_IsValid(int value);
-const FieldDescriptorProto_Label FieldDescriptorProto_Label_Label_MIN = FieldDescriptorProto_Label_LABEL_OPTIONAL;
-const FieldDescriptorProto_Label FieldDescriptorProto_Label_Label_MAX = FieldDescriptorProto_Label_LABEL_REPEATED;
-const int FieldDescriptorProto_Label_Label_ARRAYSIZE = FieldDescriptorProto_Label_Label_MAX + 1;
-
-LIBPROTOBUF_EXPORT const ::google::protobuf::EnumDescriptor* FieldDescriptorProto_Label_descriptor();
-inline const ::std::string& FieldDescriptorProto_Label_Name(FieldDescriptorProto_Label value) {
- return ::google::protobuf::internal::NameOfEnum(
- FieldDescriptorProto_Label_descriptor(), value);
-}
-inline bool FieldDescriptorProto_Label_Parse(
- const ::std::string& name, FieldDescriptorProto_Label* value) {
- return ::google::protobuf::internal::ParseNamedEnum<FieldDescriptorProto_Label>(
- FieldDescriptorProto_Label_descriptor(), name, value);
-}
-enum FileOptions_OptimizeMode {
- FileOptions_OptimizeMode_SPEED = 1,
- FileOptions_OptimizeMode_CODE_SIZE = 2,
- FileOptions_OptimizeMode_LITE_RUNTIME = 3
-};
-LIBPROTOBUF_EXPORT bool FileOptions_OptimizeMode_IsValid(int value);
-const FileOptions_OptimizeMode FileOptions_OptimizeMode_OptimizeMode_MIN = FileOptions_OptimizeMode_SPEED;
-const FileOptions_OptimizeMode FileOptions_OptimizeMode_OptimizeMode_MAX = FileOptions_OptimizeMode_LITE_RUNTIME;
-const int FileOptions_OptimizeMode_OptimizeMode_ARRAYSIZE = FileOptions_OptimizeMode_OptimizeMode_MAX + 1;
-
-LIBPROTOBUF_EXPORT const ::google::protobuf::EnumDescriptor* FileOptions_OptimizeMode_descriptor();
-inline const ::std::string& FileOptions_OptimizeMode_Name(FileOptions_OptimizeMode value) {
- return ::google::protobuf::internal::NameOfEnum(
- FileOptions_OptimizeMode_descriptor(), value);
-}
-inline bool FileOptions_OptimizeMode_Parse(
- const ::std::string& name, FileOptions_OptimizeMode* value) {
- return ::google::protobuf::internal::ParseNamedEnum<FileOptions_OptimizeMode>(
- FileOptions_OptimizeMode_descriptor(), name, value);
-}
-enum FieldOptions_CType {
- FieldOptions_CType_STRING = 0,
- FieldOptions_CType_CORD = 1,
- FieldOptions_CType_STRING_PIECE = 2
-};
-LIBPROTOBUF_EXPORT bool FieldOptions_CType_IsValid(int value);
-const FieldOptions_CType FieldOptions_CType_CType_MIN = FieldOptions_CType_STRING;
-const FieldOptions_CType FieldOptions_CType_CType_MAX = FieldOptions_CType_STRING_PIECE;
-const int FieldOptions_CType_CType_ARRAYSIZE = FieldOptions_CType_CType_MAX + 1;
-
-LIBPROTOBUF_EXPORT const ::google::protobuf::EnumDescriptor* FieldOptions_CType_descriptor();
-inline const ::std::string& FieldOptions_CType_Name(FieldOptions_CType value) {
- return ::google::protobuf::internal::NameOfEnum(
- FieldOptions_CType_descriptor(), value);
-}
-inline bool FieldOptions_CType_Parse(
- const ::std::string& name, FieldOptions_CType* value) {
- return ::google::protobuf::internal::ParseNamedEnum<FieldOptions_CType>(
- FieldOptions_CType_descriptor(), name, value);
-}
-// ===================================================================
-
-class LIBPROTOBUF_EXPORT FileDescriptorSet : public ::google::protobuf::Message {
- public:
- FileDescriptorSet();
- virtual ~FileDescriptorSet();
-
- FileDescriptorSet(const FileDescriptorSet& from);
-
- inline FileDescriptorSet& operator=(const FileDescriptorSet& from) {
- CopyFrom(from);
- return *this;
- }
-
- inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
- return _unknown_fields_;
- }
-
- inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
- return &_unknown_fields_;
- }
-
- static const ::google::protobuf::Descriptor* descriptor();
- static const FileDescriptorSet& default_instance();
-
- void Swap(FileDescriptorSet* other);
-
- // implements Message ----------------------------------------------
-
- FileDescriptorSet* New() const;
- void CopyFrom(const ::google::protobuf::Message& from);
- void MergeFrom(const ::google::protobuf::Message& from);
- void CopyFrom(const FileDescriptorSet& from);
- void MergeFrom(const FileDescriptorSet& from);
- void Clear();
- bool IsInitialized() const;
-
- int ByteSize() const;
- bool MergePartialFromCodedStream(
- ::google::protobuf::io::CodedInputStream* input);
- void SerializeWithCachedSizes(
- ::google::protobuf::io::CodedOutputStream* output) const;
- ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
- int GetCachedSize() const { return _cached_size_; }
- private:
- void SharedCtor();
- void SharedDtor();
- void SetCachedSize(int size) const;
- public:
-
- ::google::protobuf::Metadata GetMetadata() const;
-
- // nested types ----------------------------------------------------
-
- // accessors -------------------------------------------------------
-
- // repeated .google.protobuf.FileDescriptorProto file = 1;
- inline int file_size() const;
- inline void clear_file();
- static const int kFileFieldNumber = 1;
- inline const ::google::protobuf::FileDescriptorProto& file(int index) const;
- inline ::google::protobuf::FileDescriptorProto* mutable_file(int index);
- inline ::google::protobuf::FileDescriptorProto* add_file();
- inline const ::google::protobuf::RepeatedPtrField< ::google::protobuf::FileDescriptorProto >&
- file() const;
- inline ::google::protobuf::RepeatedPtrField< ::google::protobuf::FileDescriptorProto >*
- mutable_file();
-
- // @@protoc_insertion_point(class_scope:google.protobuf.FileDescriptorSet)
- private:
-
- ::google::protobuf::UnknownFieldSet _unknown_fields_;
-
- ::google::protobuf::RepeatedPtrField< ::google::protobuf::FileDescriptorProto > file_;
-
- mutable int _cached_size_;
- ::google::protobuf::uint32 _has_bits_[(1 + 31) / 32];
-
- friend void LIBPROTOBUF_EXPORT protobuf_AddDesc_google_2fprotobuf_2fdescriptor_2eproto();
- friend void protobuf_AssignDesc_google_2fprotobuf_2fdescriptor_2eproto();
- friend void protobuf_ShutdownFile_google_2fprotobuf_2fdescriptor_2eproto();
-
- void InitAsDefaultInstance();
- static FileDescriptorSet* default_instance_;
-};
-// -------------------------------------------------------------------
-
-class LIBPROTOBUF_EXPORT FileDescriptorProto : public ::google::protobuf::Message {
- public:
- FileDescriptorProto();
- virtual ~FileDescriptorProto();
-
- FileDescriptorProto(const FileDescriptorProto& from);
-
- inline FileDescriptorProto& operator=(const FileDescriptorProto& from) {
- CopyFrom(from);
- return *this;
- }
-
- inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
- return _unknown_fields_;
- }
-
- inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
- return &_unknown_fields_;
- }
-
- static const ::google::protobuf::Descriptor* descriptor();
- static const FileDescriptorProto& default_instance();
-
- void Swap(FileDescriptorProto* other);
-
- // implements Message ----------------------------------------------
-
- FileDescriptorProto* New() const;
- void CopyFrom(const ::google::protobuf::Message& from);
- void MergeFrom(const ::google::protobuf::Message& from);
- void CopyFrom(const FileDescriptorProto& from);
- void MergeFrom(const FileDescriptorProto& from);
- void Clear();
- bool IsInitialized() const;
-
- int ByteSize() const;
- bool MergePartialFromCodedStream(
- ::google::protobuf::io::CodedInputStream* input);
- void SerializeWithCachedSizes(
- ::google::protobuf::io::CodedOutputStream* output) const;
- ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
- int GetCachedSize() const { return _cached_size_; }
- private:
- void SharedCtor();
- void SharedDtor();
- void SetCachedSize(int size) const;
- public:
-
- ::google::protobuf::Metadata GetMetadata() const;
-
- // nested types ----------------------------------------------------
-
- // accessors -------------------------------------------------------
-
- // optional string name = 1;
- inline bool has_name() const;
- inline void clear_name();
- static const int kNameFieldNumber = 1;
- inline const ::std::string& name() const;
- inline void set_name(const ::std::string& value);
- inline void set_name(const char* value);
- inline void set_name(const char* value, size_t size);
- inline ::std::string* mutable_name();
- inline ::std::string* release_name();
-
- // optional string package = 2;
- inline bool has_package() const;
- inline void clear_package();
- static const int kPackageFieldNumber = 2;
- inline const ::std::string& package() const;
- inline void set_package(const ::std::string& value);
- inline void set_package(const char* value);
- inline void set_package(const char* value, size_t size);
- inline ::std::string* mutable_package();
- inline ::std::string* release_package();
-
- // repeated string dependency = 3;
- inline int dependency_size() const;
- inline void clear_dependency();
- static const int kDependencyFieldNumber = 3;
- inline const ::std::string& dependency(int index) const;
- inline ::std::string* mutable_dependency(int index);
- inline void set_dependency(int index, const ::std::string& value);
- inline void set_dependency(int index, const char* value);
- inline void set_dependency(int index, const char* value, size_t size);
- inline ::std::string* add_dependency();
- inline void add_dependency(const ::std::string& value);
- inline void add_dependency(const char* value);
- inline void add_dependency(const char* value, size_t size);
- inline const ::google::protobuf::RepeatedPtrField< ::std::string>& dependency() const;
- inline ::google::protobuf::RepeatedPtrField< ::std::string>* mutable_dependency();
-
- // repeated .google.protobuf.DescriptorProto message_type = 4;
- inline int message_type_size() const;
- inline void clear_message_type();
- static const int kMessageTypeFieldNumber = 4;
- inline const ::google::protobuf::DescriptorProto& message_type(int index) const;
- inline ::google::protobuf::DescriptorProto* mutable_message_type(int index);
- inline ::google::protobuf::DescriptorProto* add_message_type();
- inline const ::google::protobuf::RepeatedPtrField< ::google::protobuf::DescriptorProto >&
- message_type() const;
- inline ::google::protobuf::RepeatedPtrField< ::google::protobuf::DescriptorProto >*
- mutable_message_type();
-
- // repeated .google.protobuf.EnumDescriptorProto enum_type = 5;
- inline int enum_type_size() const;
- inline void clear_enum_type();
- static const int kEnumTypeFieldNumber = 5;
- inline const ::google::protobuf::EnumDescriptorProto& enum_type(int index) const;
- inline ::google::protobuf::EnumDescriptorProto* mutable_enum_type(int index);
- inline ::google::protobuf::EnumDescriptorProto* add_enum_type();
- inline const ::google::protobuf::RepeatedPtrField< ::google::protobuf::EnumDescriptorProto >&
- enum_type() const;
- inline ::google::protobuf::RepeatedPtrField< ::google::protobuf::EnumDescriptorProto >*
- mutable_enum_type();
-
- // repeated .google.protobuf.ServiceDescriptorProto service = 6;
- inline int service_size() const;
- inline void clear_service();
- static const int kServiceFieldNumber = 6;
- inline const ::google::protobuf::ServiceDescriptorProto& service(int index) const;
- inline ::google::protobuf::ServiceDescriptorProto* mutable_service(int index);
- inline ::google::protobuf::ServiceDescriptorProto* add_service();
- inline const ::google::protobuf::RepeatedPtrField< ::google::protobuf::ServiceDescriptorProto >&
- service() const;
- inline ::google::protobuf::RepeatedPtrField< ::google::protobuf::ServiceDescriptorProto >*
- mutable_service();
-
- // repeated .google.protobuf.FieldDescriptorProto extension = 7;
- inline int extension_size() const;
- inline void clear_extension();
- static const int kExtensionFieldNumber = 7;
- inline const ::google::protobuf::FieldDescriptorProto& extension(int index) const;
- inline ::google::protobuf::FieldDescriptorProto* mutable_extension(int index);
- inline ::google::protobuf::FieldDescriptorProto* add_extension();
- inline const ::google::protobuf::RepeatedPtrField< ::google::protobuf::FieldDescriptorProto >&
- extension() const;
- inline ::google::protobuf::RepeatedPtrField< ::google::protobuf::FieldDescriptorProto >*
- mutable_extension();
-
- // optional .google.protobuf.FileOptions options = 8;
- inline bool has_options() const;
- inline void clear_options();
- static const int kOptionsFieldNumber = 8;
- inline const ::google::protobuf::FileOptions& options() const;
- inline ::google::protobuf::FileOptions* mutable_options();
- inline ::google::protobuf::FileOptions* release_options();
-
- // optional .google.protobuf.SourceCodeInfo source_code_info = 9;
- inline bool has_source_code_info() const;
- inline void clear_source_code_info();
- static const int kSourceCodeInfoFieldNumber = 9;
- inline const ::google::protobuf::SourceCodeInfo& source_code_info() const;
- inline ::google::protobuf::SourceCodeInfo* mutable_source_code_info();
- inline ::google::protobuf::SourceCodeInfo* release_source_code_info();
-
- // @@protoc_insertion_point(class_scope:google.protobuf.FileDescriptorProto)
- private:
- inline void set_has_name();
- inline void clear_has_name();
- inline void set_has_package();
- inline void clear_has_package();
- inline void set_has_options();
- inline void clear_has_options();
- inline void set_has_source_code_info();
- inline void clear_has_source_code_info();
-
- ::google::protobuf::UnknownFieldSet _unknown_fields_;
-
- ::std::string* name_;
- ::std::string* package_;
- ::google::protobuf::RepeatedPtrField< ::std::string> dependency_;
- ::google::protobuf::RepeatedPtrField< ::google::protobuf::DescriptorProto > message_type_;
- ::google::protobuf::RepeatedPtrField< ::google::protobuf::EnumDescriptorProto > enum_type_;
- ::google::protobuf::RepeatedPtrField< ::google::protobuf::ServiceDescriptorProto > service_;
- ::google::protobuf::RepeatedPtrField< ::google::protobuf::FieldDescriptorProto > extension_;
- ::google::protobuf::FileOptions* options_;
- ::google::protobuf::SourceCodeInfo* source_code_info_;
-
- mutable int _cached_size_;
- ::google::protobuf::uint32 _has_bits_[(9 + 31) / 32];
-
- friend void LIBPROTOBUF_EXPORT protobuf_AddDesc_google_2fprotobuf_2fdescriptor_2eproto();
- friend void protobuf_AssignDesc_google_2fprotobuf_2fdescriptor_2eproto();
- friend void protobuf_ShutdownFile_google_2fprotobuf_2fdescriptor_2eproto();
-
- void InitAsDefaultInstance();
- static FileDescriptorProto* default_instance_;
-};
-// -------------------------------------------------------------------
-
-class LIBPROTOBUF_EXPORT DescriptorProto_ExtensionRange : public ::google::protobuf::Message {
- public:
- DescriptorProto_ExtensionRange();
- virtual ~DescriptorProto_ExtensionRange();
-
- DescriptorProto_ExtensionRange(const DescriptorProto_ExtensionRange& from);
-
- inline DescriptorProto_ExtensionRange& operator=(const DescriptorProto_ExtensionRange& from) {
- CopyFrom(from);
- return *this;
- }
-
- inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
- return _unknown_fields_;
- }
-
- inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
- return &_unknown_fields_;
- }
-
- static const ::google::protobuf::Descriptor* descriptor();
- static const DescriptorProto_ExtensionRange& default_instance();
-
- void Swap(DescriptorProto_ExtensionRange* other);
-
- // implements Message ----------------------------------------------
-
- DescriptorProto_ExtensionRange* New() const;
- void CopyFrom(const ::google::protobuf::Message& from);
- void MergeFrom(const ::google::protobuf::Message& from);
- void CopyFrom(const DescriptorProto_ExtensionRange& from);
- void MergeFrom(const DescriptorProto_ExtensionRange& from);
- void Clear();
- bool IsInitialized() const;
-
- int ByteSize() const;
- bool MergePartialFromCodedStream(
- ::google::protobuf::io::CodedInputStream* input);
- void SerializeWithCachedSizes(
- ::google::protobuf::io::CodedOutputStream* output) const;
- ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
- int GetCachedSize() const { return _cached_size_; }
- private:
- void SharedCtor();
- void SharedDtor();
- void SetCachedSize(int size) const;
- public:
-
- ::google::protobuf::Metadata GetMetadata() const;
-
- // nested types ----------------------------------------------------
-
- // accessors -------------------------------------------------------
-
- // optional int32 start = 1;
- inline bool has_start() const;
- inline void clear_start();
- static const int kStartFieldNumber = 1;
- inline ::google::protobuf::int32 start() const;
- inline void set_start(::google::protobuf::int32 value);
-
- // optional int32 end = 2;
- inline bool has_end() const;
- inline void clear_end();
- static const int kEndFieldNumber = 2;
- inline ::google::protobuf::int32 end() const;
- inline void set_end(::google::protobuf::int32 value);
-
- // @@protoc_insertion_point(class_scope:google.protobuf.DescriptorProto.ExtensionRange)
- private:
- inline void set_has_start();
- inline void clear_has_start();
- inline void set_has_end();
- inline void clear_has_end();
-
- ::google::protobuf::UnknownFieldSet _unknown_fields_;
-
- ::google::protobuf::int32 start_;
- ::google::protobuf::int32 end_;
-
- mutable int _cached_size_;
- ::google::protobuf::uint32 _has_bits_[(2 + 31) / 32];
-
- friend void LIBPROTOBUF_EXPORT protobuf_AddDesc_google_2fprotobuf_2fdescriptor_2eproto();
- friend void protobuf_AssignDesc_google_2fprotobuf_2fdescriptor_2eproto();
- friend void protobuf_ShutdownFile_google_2fprotobuf_2fdescriptor_2eproto();
-
- void InitAsDefaultInstance();
- static DescriptorProto_ExtensionRange* default_instance_;
-};
-// -------------------------------------------------------------------
-
-class LIBPROTOBUF_EXPORT DescriptorProto : public ::google::protobuf::Message {
- public:
- DescriptorProto();
- virtual ~DescriptorProto();
-
- DescriptorProto(const DescriptorProto& from);
-
- inline DescriptorProto& operator=(const DescriptorProto& from) {
- CopyFrom(from);
- return *this;
- }
-
- inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
- return _unknown_fields_;
- }
-
- inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
- return &_unknown_fields_;
- }
-
- static const ::google::protobuf::Descriptor* descriptor();
- static const DescriptorProto& default_instance();
-
- void Swap(DescriptorProto* other);
-
- // implements Message ----------------------------------------------
-
- DescriptorProto* New() const;
- void CopyFrom(const ::google::protobuf::Message& from);
- void MergeFrom(const ::google::protobuf::Message& from);
- void CopyFrom(const DescriptorProto& from);
- void MergeFrom(const DescriptorProto& from);
- void Clear();
- bool IsInitialized() const;
-
- int ByteSize() const;
- bool MergePartialFromCodedStream(
- ::google::protobuf::io::CodedInputStream* input);
- void SerializeWithCachedSizes(
- ::google::protobuf::io::CodedOutputStream* output) const;
- ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
- int GetCachedSize() const { return _cached_size_; }
- private:
- void SharedCtor();
- void SharedDtor();
- void SetCachedSize(int size) const;
- public:
-
- ::google::protobuf::Metadata GetMetadata() const;
-
- // nested types ----------------------------------------------------
-
- typedef DescriptorProto_ExtensionRange ExtensionRange;
-
- // accessors -------------------------------------------------------
-
- // optional string name = 1;
- inline bool has_name() const;
- inline void clear_name();
- static const int kNameFieldNumber = 1;
- inline const ::std::string& name() const;
- inline void set_name(const ::std::string& value);
- inline void set_name(const char* value);
- inline void set_name(const char* value, size_t size);
- inline ::std::string* mutable_name();
- inline ::std::string* release_name();
-
- // repeated .google.protobuf.FieldDescriptorProto field = 2;
- inline int field_size() const;
- inline void clear_field();
- static const int kFieldFieldNumber = 2;
- inline const ::google::protobuf::FieldDescriptorProto& field(int index) const;
- inline ::google::protobuf::FieldDescriptorProto* mutable_field(int index);
- inline ::google::protobuf::FieldDescriptorProto* add_field();
- inline const ::google::protobuf::RepeatedPtrField< ::google::protobuf::FieldDescriptorProto >&
- field() const;
- inline ::google::protobuf::RepeatedPtrField< ::google::protobuf::FieldDescriptorProto >*
- mutable_field();
-
- // repeated .google.protobuf.FieldDescriptorProto extension = 6;
- inline int extension_size() const;
- inline void clear_extension();
- static const int kExtensionFieldNumber = 6;
- inline const ::google::protobuf::FieldDescriptorProto& extension(int index) const;
- inline ::google::protobuf::FieldDescriptorProto* mutable_extension(int index);
- inline ::google::protobuf::FieldDescriptorProto* add_extension();
- inline const ::google::protobuf::RepeatedPtrField< ::google::protobuf::FieldDescriptorProto >&
- extension() const;
- inline ::google::protobuf::RepeatedPtrField< ::google::protobuf::FieldDescriptorProto >*
- mutable_extension();
-
- // repeated .google.protobuf.DescriptorProto nested_type = 3;
- inline int nested_type_size() const;
- inline void clear_nested_type();
- static const int kNestedTypeFieldNumber = 3;
- inline const ::google::protobuf::DescriptorProto& nested_type(int index) const;
- inline ::google::protobuf::DescriptorProto* mutable_nested_type(int index);
- inline ::google::protobuf::DescriptorProto* add_nested_type();
- inline const ::google::protobuf::RepeatedPtrField< ::google::protobuf::DescriptorProto >&
- nested_type() const;
- inline ::google::protobuf::RepeatedPtrField< ::google::protobuf::DescriptorProto >*
- mutable_nested_type();
-
- // repeated .google.protobuf.EnumDescriptorProto enum_type = 4;
- inline int enum_type_size() const;
- inline void clear_enum_type();
- static const int kEnumTypeFieldNumber = 4;
- inline const ::google::protobuf::EnumDescriptorProto& enum_type(int index) const;
- inline ::google::protobuf::EnumDescriptorProto* mutable_enum_type(int index);
- inline ::google::protobuf::EnumDescriptorProto* add_enum_type();
- inline const ::google::protobuf::RepeatedPtrField< ::google::protobuf::EnumDescriptorProto >&
- enum_type() const;
- inline ::google::protobuf::RepeatedPtrField< ::google::protobuf::EnumDescriptorProto >*
- mutable_enum_type();
-
- // repeated .google.protobuf.DescriptorProto.ExtensionRange extension_range = 5;
- inline int extension_range_size() const;
- inline void clear_extension_range();
- static const int kExtensionRangeFieldNumber = 5;
- inline const ::google::protobuf::DescriptorProto_ExtensionRange& extension_range(int index) const;
- inline ::google::protobuf::DescriptorProto_ExtensionRange* mutable_extension_range(int index);
- inline ::google::protobuf::DescriptorProto_ExtensionRange* add_extension_range();
- inline const ::google::protobuf::RepeatedPtrField< ::google::protobuf::DescriptorProto_ExtensionRange >&
- extension_range() const;
- inline ::google::protobuf::RepeatedPtrField< ::google::protobuf::DescriptorProto_ExtensionRange >*
- mutable_extension_range();
-
- // optional .google.protobuf.MessageOptions options = 7;
- inline bool has_options() const;
- inline void clear_options();
- static const int kOptionsFieldNumber = 7;
- inline const ::google::protobuf::MessageOptions& options() const;
- inline ::google::protobuf::MessageOptions* mutable_options();
- inline ::google::protobuf::MessageOptions* release_options();
-
- // @@protoc_insertion_point(class_scope:google.protobuf.DescriptorProto)
- private:
- inline void set_has_name();
- inline void clear_has_name();
- inline void set_has_options();
- inline void clear_has_options();
-
- ::google::protobuf::UnknownFieldSet _unknown_fields_;
-
- ::std::string* name_;
- ::google::protobuf::RepeatedPtrField< ::google::protobuf::FieldDescriptorProto > field_;
- ::google::protobuf::RepeatedPtrField< ::google::protobuf::FieldDescriptorProto > extension_;
- ::google::protobuf::RepeatedPtrField< ::google::protobuf::DescriptorProto > nested_type_;
- ::google::protobuf::RepeatedPtrField< ::google::protobuf::EnumDescriptorProto > enum_type_;
- ::google::protobuf::RepeatedPtrField< ::google::protobuf::DescriptorProto_ExtensionRange > extension_range_;
- ::google::protobuf::MessageOptions* options_;
-
- mutable int _cached_size_;
- ::google::protobuf::uint32 _has_bits_[(7 + 31) / 32];
-
- friend void LIBPROTOBUF_EXPORT protobuf_AddDesc_google_2fprotobuf_2fdescriptor_2eproto();
- friend void protobuf_AssignDesc_google_2fprotobuf_2fdescriptor_2eproto();
- friend void protobuf_ShutdownFile_google_2fprotobuf_2fdescriptor_2eproto();
-
- void InitAsDefaultInstance();
- static DescriptorProto* default_instance_;
-};
-// -------------------------------------------------------------------
-
-class LIBPROTOBUF_EXPORT FieldDescriptorProto : public ::google::protobuf::Message {
- public:
- FieldDescriptorProto();
- virtual ~FieldDescriptorProto();
-
- FieldDescriptorProto(const FieldDescriptorProto& from);
-
- inline FieldDescriptorProto& operator=(const FieldDescriptorProto& from) {
- CopyFrom(from);
- return *this;
- }
-
- inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
- return _unknown_fields_;
- }
-
- inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
- return &_unknown_fields_;
- }
-
- static const ::google::protobuf::Descriptor* descriptor();
- static const FieldDescriptorProto& default_instance();
-
- void Swap(FieldDescriptorProto* other);
-
- // implements Message ----------------------------------------------
-
- FieldDescriptorProto* New() const;
- void CopyFrom(const ::google::protobuf::Message& from);
- void MergeFrom(const ::google::protobuf::Message& from);
- void CopyFrom(const FieldDescriptorProto& from);
- void MergeFrom(const FieldDescriptorProto& from);
- void Clear();
- bool IsInitialized() const;
-
- int ByteSize() const;
- bool MergePartialFromCodedStream(
- ::google::protobuf::io::CodedInputStream* input);
- void SerializeWithCachedSizes(
- ::google::protobuf::io::CodedOutputStream* output) const;
- ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
- int GetCachedSize() const { return _cached_size_; }
- private:
- void SharedCtor();
- void SharedDtor();
- void SetCachedSize(int size) const;
- public:
-
- ::google::protobuf::Metadata GetMetadata() const;
-
- // nested types ----------------------------------------------------
-
- typedef FieldDescriptorProto_Type Type;
- static const Type TYPE_DOUBLE = FieldDescriptorProto_Type_TYPE_DOUBLE;
- static const Type TYPE_FLOAT = FieldDescriptorProto_Type_TYPE_FLOAT;
- static const Type TYPE_INT64 = FieldDescriptorProto_Type_TYPE_INT64;
- static const Type TYPE_UINT64 = FieldDescriptorProto_Type_TYPE_UINT64;
- static const Type TYPE_INT32 = FieldDescriptorProto_Type_TYPE_INT32;
- static const Type TYPE_FIXED64 = FieldDescriptorProto_Type_TYPE_FIXED64;
- static const Type TYPE_FIXED32 = FieldDescriptorProto_Type_TYPE_FIXED32;
- static const Type TYPE_BOOL = FieldDescriptorProto_Type_TYPE_BOOL;
- static const Type TYPE_STRING = FieldDescriptorProto_Type_TYPE_STRING;
- static const Type TYPE_GROUP = FieldDescriptorProto_Type_TYPE_GROUP;
- static const Type TYPE_MESSAGE = FieldDescriptorProto_Type_TYPE_MESSAGE;
- static const Type TYPE_BYTES = FieldDescriptorProto_Type_TYPE_BYTES;
- static const Type TYPE_UINT32 = FieldDescriptorProto_Type_TYPE_UINT32;
- static const Type TYPE_ENUM = FieldDescriptorProto_Type_TYPE_ENUM;
- static const Type TYPE_SFIXED32 = FieldDescriptorProto_Type_TYPE_SFIXED32;
- static const Type TYPE_SFIXED64 = FieldDescriptorProto_Type_TYPE_SFIXED64;
- static const Type TYPE_SINT32 = FieldDescriptorProto_Type_TYPE_SINT32;
- static const Type TYPE_SINT64 = FieldDescriptorProto_Type_TYPE_SINT64;
- static inline bool Type_IsValid(int value) {
- return FieldDescriptorProto_Type_IsValid(value);
- }
- static const Type Type_MIN =
- FieldDescriptorProto_Type_Type_MIN;
- static const Type Type_MAX =
- FieldDescriptorProto_Type_Type_MAX;
- static const int Type_ARRAYSIZE =
- FieldDescriptorProto_Type_Type_ARRAYSIZE;
- static inline const ::google::protobuf::EnumDescriptor*
- Type_descriptor() {
- return FieldDescriptorProto_Type_descriptor();
- }
- static inline const ::std::string& Type_Name(Type value) {
- return FieldDescriptorProto_Type_Name(value);
- }
- static inline bool Type_Parse(const ::std::string& name,
- Type* value) {
- return FieldDescriptorProto_Type_Parse(name, value);
- }
-
- typedef FieldDescriptorProto_Label Label;
- static const Label LABEL_OPTIONAL = FieldDescriptorProto_Label_LABEL_OPTIONAL;
- static const Label LABEL_REQUIRED = FieldDescriptorProto_Label_LABEL_REQUIRED;
- static const Label LABEL_REPEATED = FieldDescriptorProto_Label_LABEL_REPEATED;
- static inline bool Label_IsValid(int value) {
- return FieldDescriptorProto_Label_IsValid(value);
- }
- static const Label Label_MIN =
- FieldDescriptorProto_Label_Label_MIN;
- static const Label Label_MAX =
- FieldDescriptorProto_Label_Label_MAX;
- static const int Label_ARRAYSIZE =
- FieldDescriptorProto_Label_Label_ARRAYSIZE;
- static inline const ::google::protobuf::EnumDescriptor*
- Label_descriptor() {
- return FieldDescriptorProto_Label_descriptor();
- }
- static inline const ::std::string& Label_Name(Label value) {
- return FieldDescriptorProto_Label_Name(value);
- }
- static inline bool Label_Parse(const ::std::string& name,
- Label* value) {
- return FieldDescriptorProto_Label_Parse(name, value);
- }
-
- // accessors -------------------------------------------------------
-
- // optional string name = 1;
- inline bool has_name() const;
- inline void clear_name();
- static const int kNameFieldNumber = 1;
- inline const ::std::string& name() const;
- inline void set_name(const ::std::string& value);
- inline void set_name(const char* value);
- inline void set_name(const char* value, size_t size);
- inline ::std::string* mutable_name();
- inline ::std::string* release_name();
-
- // optional int32 number = 3;
- inline bool has_number() const;
- inline void clear_number();
- static const int kNumberFieldNumber = 3;
- inline ::google::protobuf::int32 number() const;
- inline void set_number(::google::protobuf::int32 value);
-
- // optional .google.protobuf.FieldDescriptorProto.Label label = 4;
- inline bool has_label() const;
- inline void clear_label();
- static const int kLabelFieldNumber = 4;
- inline ::google::protobuf::FieldDescriptorProto_Label label() const;
- inline void set_label(::google::protobuf::FieldDescriptorProto_Label value);
-
- // optional .google.protobuf.FieldDescriptorProto.Type type = 5;
- inline bool has_type() const;
- inline void clear_type();
- static const int kTypeFieldNumber = 5;
- inline ::google::protobuf::FieldDescriptorProto_Type type() const;
- inline void set_type(::google::protobuf::FieldDescriptorProto_Type value);
-
- // optional string type_name = 6;
- inline bool has_type_name() const;
- inline void clear_type_name();
- static const int kTypeNameFieldNumber = 6;
- inline const ::std::string& type_name() const;
- inline void set_type_name(const ::std::string& value);
- inline void set_type_name(const char* value);
- inline void set_type_name(const char* value, size_t size);
- inline ::std::string* mutable_type_name();
- inline ::std::string* release_type_name();
-
- // optional string extendee = 2;
- inline bool has_extendee() const;
- inline void clear_extendee();
- static const int kExtendeeFieldNumber = 2;
- inline const ::std::string& extendee() const;
- inline void set_extendee(const ::std::string& value);
- inline void set_extendee(const char* value);
- inline void set_extendee(const char* value, size_t size);
- inline ::std::string* mutable_extendee();
- inline ::std::string* release_extendee();
-
- // optional string default_value = 7;
- inline bool has_default_value() const;
- inline void clear_default_value();
- static const int kDefaultValueFieldNumber = 7;
- inline const ::std::string& default_value() const;
- inline void set_default_value(const ::std::string& value);
- inline void set_default_value(const char* value);
- inline void set_default_value(const char* value, size_t size);
- inline ::std::string* mutable_default_value();
- inline ::std::string* release_default_value();
-
- // optional .google.protobuf.FieldOptions options = 8;
- inline bool has_options() const;
- inline void clear_options();
- static const int kOptionsFieldNumber = 8;
- inline const ::google::protobuf::FieldOptions& options() const;
- inline ::google::protobuf::FieldOptions* mutable_options();
- inline ::google::protobuf::FieldOptions* release_options();
-
- // @@protoc_insertion_point(class_scope:google.protobuf.FieldDescriptorProto)
- private:
- inline void set_has_name();
- inline void clear_has_name();
- inline void set_has_number();
- inline void clear_has_number();
- inline void set_has_label();
- inline void clear_has_label();
- inline void set_has_type();
- inline void clear_has_type();
- inline void set_has_type_name();
- inline void clear_has_type_name();
- inline void set_has_extendee();
- inline void clear_has_extendee();
- inline void set_has_default_value();
- inline void clear_has_default_value();
- inline void set_has_options();
- inline void clear_has_options();
-
- ::google::protobuf::UnknownFieldSet _unknown_fields_;
-
- ::std::string* name_;
- ::google::protobuf::int32 number_;
- int label_;
- ::std::string* type_name_;
- ::std::string* extendee_;
- ::std::string* default_value_;
- ::google::protobuf::FieldOptions* options_;
- int type_;
-
- mutable int _cached_size_;
- ::google::protobuf::uint32 _has_bits_[(8 + 31) / 32];
-
- friend void LIBPROTOBUF_EXPORT protobuf_AddDesc_google_2fprotobuf_2fdescriptor_2eproto();
- friend void protobuf_AssignDesc_google_2fprotobuf_2fdescriptor_2eproto();
- friend void protobuf_ShutdownFile_google_2fprotobuf_2fdescriptor_2eproto();
-
- void InitAsDefaultInstance();
- static FieldDescriptorProto* default_instance_;
-};
-// -------------------------------------------------------------------
-
-class LIBPROTOBUF_EXPORT EnumDescriptorProto : public ::google::protobuf::Message {
- public:
- EnumDescriptorProto();
- virtual ~EnumDescriptorProto();
-
- EnumDescriptorProto(const EnumDescriptorProto& from);
-
- inline EnumDescriptorProto& operator=(const EnumDescriptorProto& from) {
- CopyFrom(from);
- return *this;
- }
-
- inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
- return _unknown_fields_;
- }
-
- inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
- return &_unknown_fields_;
- }
-
- static const ::google::protobuf::Descriptor* descriptor();
- static const EnumDescriptorProto& default_instance();
-
- void Swap(EnumDescriptorProto* other);
-
- // implements Message ----------------------------------------------
-
- EnumDescriptorProto* New() const;
- void CopyFrom(const ::google::protobuf::Message& from);
- void MergeFrom(const ::google::protobuf::Message& from);
- void CopyFrom(const EnumDescriptorProto& from);
- void MergeFrom(const EnumDescriptorProto& from);
- void Clear();
- bool IsInitialized() const;
-
- int ByteSize() const;
- bool MergePartialFromCodedStream(
- ::google::protobuf::io::CodedInputStream* input);
- void SerializeWithCachedSizes(
- ::google::protobuf::io::CodedOutputStream* output) const;
- ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
- int GetCachedSize() const { return _cached_size_; }
- private:
- void SharedCtor();
- void SharedDtor();
- void SetCachedSize(int size) const;
- public:
-
- ::google::protobuf::Metadata GetMetadata() const;
-
- // nested types ----------------------------------------------------
-
- // accessors -------------------------------------------------------
-
- // optional string name = 1;
- inline bool has_name() const;
- inline void clear_name();
- static const int kNameFieldNumber = 1;
- inline const ::std::string& name() const;
- inline void set_name(const ::std::string& value);
- inline void set_name(const char* value);
- inline void set_name(const char* value, size_t size);
- inline ::std::string* mutable_name();
- inline ::std::string* release_name();
-
- // repeated .google.protobuf.EnumValueDescriptorProto value = 2;
- inline int value_size() const;
- inline void clear_value();
- static const int kValueFieldNumber = 2;
- inline const ::google::protobuf::EnumValueDescriptorProto& value(int index) const;
- inline ::google::protobuf::EnumValueDescriptorProto* mutable_value(int index);
- inline ::google::protobuf::EnumValueDescriptorProto* add_value();
- inline const ::google::protobuf::RepeatedPtrField< ::google::protobuf::EnumValueDescriptorProto >&
- value() const;
- inline ::google::protobuf::RepeatedPtrField< ::google::protobuf::EnumValueDescriptorProto >*
- mutable_value();
-
- // optional .google.protobuf.EnumOptions options = 3;
- inline bool has_options() const;
- inline void clear_options();
- static const int kOptionsFieldNumber = 3;
- inline const ::google::protobuf::EnumOptions& options() const;
- inline ::google::protobuf::EnumOptions* mutable_options();
- inline ::google::protobuf::EnumOptions* release_options();
-
- // @@protoc_insertion_point(class_scope:google.protobuf.EnumDescriptorProto)
- private:
- inline void set_has_name();
- inline void clear_has_name();
- inline void set_has_options();
- inline void clear_has_options();
-
- ::google::protobuf::UnknownFieldSet _unknown_fields_;
-
- ::std::string* name_;
- ::google::protobuf::RepeatedPtrField< ::google::protobuf::EnumValueDescriptorProto > value_;
- ::google::protobuf::EnumOptions* options_;
-
- mutable int _cached_size_;
- ::google::protobuf::uint32 _has_bits_[(3 + 31) / 32];
-
- friend void LIBPROTOBUF_EXPORT protobuf_AddDesc_google_2fprotobuf_2fdescriptor_2eproto();
- friend void protobuf_AssignDesc_google_2fprotobuf_2fdescriptor_2eproto();
- friend void protobuf_ShutdownFile_google_2fprotobuf_2fdescriptor_2eproto();
-
- void InitAsDefaultInstance();
- static EnumDescriptorProto* default_instance_;
-};
-// -------------------------------------------------------------------
-
-class LIBPROTOBUF_EXPORT EnumValueDescriptorProto : public ::google::protobuf::Message {
- public:
- EnumValueDescriptorProto();
- virtual ~EnumValueDescriptorProto();
-
- EnumValueDescriptorProto(const EnumValueDescriptorProto& from);
-
- inline EnumValueDescriptorProto& operator=(const EnumValueDescriptorProto& from) {
- CopyFrom(from);
- return *this;
- }
-
- inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
- return _unknown_fields_;
- }
-
- inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
- return &_unknown_fields_;
- }
-
- static const ::google::protobuf::Descriptor* descriptor();
- static const EnumValueDescriptorProto& default_instance();
-
- void Swap(EnumValueDescriptorProto* other);
-
- // implements Message ----------------------------------------------
-
- EnumValueDescriptorProto* New() const;
- void CopyFrom(const ::google::protobuf::Message& from);
- void MergeFrom(const ::google::protobuf::Message& from);
- void CopyFrom(const EnumValueDescriptorProto& from);
- void MergeFrom(const EnumValueDescriptorProto& from);
- void Clear();
- bool IsInitialized() const;
-
- int ByteSize() const;
- bool MergePartialFromCodedStream(
- ::google::protobuf::io::CodedInputStream* input);
- void SerializeWithCachedSizes(
- ::google::protobuf::io::CodedOutputStream* output) const;
- ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
- int GetCachedSize() const { return _cached_size_; }
- private:
- void SharedCtor();
- void SharedDtor();
- void SetCachedSize(int size) const;
- public:
-
- ::google::protobuf::Metadata GetMetadata() const;
-
- // nested types ----------------------------------------------------
-
- // accessors -------------------------------------------------------
-
- // optional string name = 1;
- inline bool has_name() const;
- inline void clear_name();
- static const int kNameFieldNumber = 1;
- inline const ::std::string& name() const;
- inline void set_name(const ::std::string& value);
- inline void set_name(const char* value);
- inline void set_name(const char* value, size_t size);
- inline ::std::string* mutable_name();
- inline ::std::string* release_name();
-
- // optional int32 number = 2;
- inline bool has_number() const;
- inline void clear_number();
- static const int kNumberFieldNumber = 2;
- inline ::google::protobuf::int32 number() const;
- inline void set_number(::google::protobuf::int32 value);
-
- // optional .google.protobuf.EnumValueOptions options = 3;
- inline bool has_options() const;
- inline void clear_options();
- static const int kOptionsFieldNumber = 3;
- inline const ::google::protobuf::EnumValueOptions& options() const;
- inline ::google::protobuf::EnumValueOptions* mutable_options();
- inline ::google::protobuf::EnumValueOptions* release_options();
-
- // @@protoc_insertion_point(class_scope:google.protobuf.EnumValueDescriptorProto)
- private:
- inline void set_has_name();
- inline void clear_has_name();
- inline void set_has_number();
- inline void clear_has_number();
- inline void set_has_options();
- inline void clear_has_options();
-
- ::google::protobuf::UnknownFieldSet _unknown_fields_;
-
- ::std::string* name_;
- ::google::protobuf::EnumValueOptions* options_;
- ::google::protobuf::int32 number_;
-
- mutable int _cached_size_;
- ::google::protobuf::uint32 _has_bits_[(3 + 31) / 32];
-
- friend void LIBPROTOBUF_EXPORT protobuf_AddDesc_google_2fprotobuf_2fdescriptor_2eproto();
- friend void protobuf_AssignDesc_google_2fprotobuf_2fdescriptor_2eproto();
- friend void protobuf_ShutdownFile_google_2fprotobuf_2fdescriptor_2eproto();
-
- void InitAsDefaultInstance();
- static EnumValueDescriptorProto* default_instance_;
-};
-// -------------------------------------------------------------------
-
-class LIBPROTOBUF_EXPORT ServiceDescriptorProto : public ::google::protobuf::Message {
- public:
- ServiceDescriptorProto();
- virtual ~ServiceDescriptorProto();
-
- ServiceDescriptorProto(const ServiceDescriptorProto& from);
-
- inline ServiceDescriptorProto& operator=(const ServiceDescriptorProto& from) {
- CopyFrom(from);
- return *this;
- }
-
- inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
- return _unknown_fields_;
- }
-
- inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
- return &_unknown_fields_;
- }
-
- static const ::google::protobuf::Descriptor* descriptor();
- static const ServiceDescriptorProto& default_instance();
-
- void Swap(ServiceDescriptorProto* other);
-
- // implements Message ----------------------------------------------
-
- ServiceDescriptorProto* New() const;
- void CopyFrom(const ::google::protobuf::Message& from);
- void MergeFrom(const ::google::protobuf::Message& from);
- void CopyFrom(const ServiceDescriptorProto& from);
- void MergeFrom(const ServiceDescriptorProto& from);
- void Clear();
- bool IsInitialized() const;
-
- int ByteSize() const;
- bool MergePartialFromCodedStream(
- ::google::protobuf::io::CodedInputStream* input);
- void SerializeWithCachedSizes(
- ::google::protobuf::io::CodedOutputStream* output) const;
- ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
- int GetCachedSize() const { return _cached_size_; }
- private:
- void SharedCtor();
- void SharedDtor();
- void SetCachedSize(int size) const;
- public:
-
- ::google::protobuf::Metadata GetMetadata() const;
-
- // nested types ----------------------------------------------------
-
- // accessors -------------------------------------------------------
-
- // optional string name = 1;
- inline bool has_name() const;
- inline void clear_name();
- static const int kNameFieldNumber = 1;
- inline const ::std::string& name() const;
- inline void set_name(const ::std::string& value);
- inline void set_name(const char* value);
- inline void set_name(const char* value, size_t size);
- inline ::std::string* mutable_name();
- inline ::std::string* release_name();
-
- // repeated .google.protobuf.MethodDescriptorProto method = 2;
- inline int method_size() const;
- inline void clear_method();
- static const int kMethodFieldNumber = 2;
- inline const ::google::protobuf::MethodDescriptorProto& method(int index) const;
- inline ::google::protobuf::MethodDescriptorProto* mutable_method(int index);
- inline ::google::protobuf::MethodDescriptorProto* add_method();
- inline const ::google::protobuf::RepeatedPtrField< ::google::protobuf::MethodDescriptorProto >&
- method() const;
- inline ::google::protobuf::RepeatedPtrField< ::google::protobuf::MethodDescriptorProto >*
- mutable_method();
-
- // optional .google.protobuf.ServiceOptions options = 3;
- inline bool has_options() const;
- inline void clear_options();
- static const int kOptionsFieldNumber = 3;
- inline const ::google::protobuf::ServiceOptions& options() const;
- inline ::google::protobuf::ServiceOptions* mutable_options();
- inline ::google::protobuf::ServiceOptions* release_options();
-
- // @@protoc_insertion_point(class_scope:google.protobuf.ServiceDescriptorProto)
- private:
- inline void set_has_name();
- inline void clear_has_name();
- inline void set_has_options();
- inline void clear_has_options();
-
- ::google::protobuf::UnknownFieldSet _unknown_fields_;
-
- ::std::string* name_;
- ::google::protobuf::RepeatedPtrField< ::google::protobuf::MethodDescriptorProto > method_;
- ::google::protobuf::ServiceOptions* options_;
-
- mutable int _cached_size_;
- ::google::protobuf::uint32 _has_bits_[(3 + 31) / 32];
-
- friend void LIBPROTOBUF_EXPORT protobuf_AddDesc_google_2fprotobuf_2fdescriptor_2eproto();
- friend void protobuf_AssignDesc_google_2fprotobuf_2fdescriptor_2eproto();
- friend void protobuf_ShutdownFile_google_2fprotobuf_2fdescriptor_2eproto();
-
- void InitAsDefaultInstance();
- static ServiceDescriptorProto* default_instance_;
-};
-// -------------------------------------------------------------------
-
-class LIBPROTOBUF_EXPORT MethodDescriptorProto : public ::google::protobuf::Message {
- public:
- MethodDescriptorProto();
- virtual ~MethodDescriptorProto();
-
- MethodDescriptorProto(const MethodDescriptorProto& from);
-
- inline MethodDescriptorProto& operator=(const MethodDescriptorProto& from) {
- CopyFrom(from);
- return *this;
- }
-
- inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
- return _unknown_fields_;
- }
-
- inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
- return &_unknown_fields_;
- }
-
- static const ::google::protobuf::Descriptor* descriptor();
- static const MethodDescriptorProto& default_instance();
-
- void Swap(MethodDescriptorProto* other);
-
- // implements Message ----------------------------------------------
-
- MethodDescriptorProto* New() const;
- void CopyFrom(const ::google::protobuf::Message& from);
- void MergeFrom(const ::google::protobuf::Message& from);
- void CopyFrom(const MethodDescriptorProto& from);
- void MergeFrom(const MethodDescriptorProto& from);
- void Clear();
- bool IsInitialized() const;
-
- int ByteSize() const;
- bool MergePartialFromCodedStream(
- ::google::protobuf::io::CodedInputStream* input);
- void SerializeWithCachedSizes(
- ::google::protobuf::io::CodedOutputStream* output) const;
- ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
- int GetCachedSize() const { return _cached_size_; }
- private:
- void SharedCtor();
- void SharedDtor();
- void SetCachedSize(int size) const;
- public:
-
- ::google::protobuf::Metadata GetMetadata() const;
-
- // nested types ----------------------------------------------------
-
- // accessors -------------------------------------------------------
-
- // optional string name = 1;
- inline bool has_name() const;
- inline void clear_name();
- static const int kNameFieldNumber = 1;
- inline const ::std::string& name() const;
- inline void set_name(const ::std::string& value);
- inline void set_name(const char* value);
- inline void set_name(const char* value, size_t size);
- inline ::std::string* mutable_name();
- inline ::std::string* release_name();
-
- // optional string input_type = 2;
- inline bool has_input_type() const;
- inline void clear_input_type();
- static const int kInputTypeFieldNumber = 2;
- inline const ::std::string& input_type() const;
- inline void set_input_type(const ::std::string& value);
- inline void set_input_type(const char* value);
- inline void set_input_type(const char* value, size_t size);
- inline ::std::string* mutable_input_type();
- inline ::std::string* release_input_type();
-
- // optional string output_type = 3;
- inline bool has_output_type() const;
- inline void clear_output_type();
- static const int kOutputTypeFieldNumber = 3;
- inline const ::std::string& output_type() const;
- inline void set_output_type(const ::std::string& value);
- inline void set_output_type(const char* value);
- inline void set_output_type(const char* value, size_t size);
- inline ::std::string* mutable_output_type();
- inline ::std::string* release_output_type();
-
- // optional .google.protobuf.MethodOptions options = 4;
- inline bool has_options() const;
- inline void clear_options();
- static const int kOptionsFieldNumber = 4;
- inline const ::google::protobuf::MethodOptions& options() const;
- inline ::google::protobuf::MethodOptions* mutable_options();
- inline ::google::protobuf::MethodOptions* release_options();
-
- // @@protoc_insertion_point(class_scope:google.protobuf.MethodDescriptorProto)
- private:
- inline void set_has_name();
- inline void clear_has_name();
- inline void set_has_input_type();
- inline void clear_has_input_type();
- inline void set_has_output_type();
- inline void clear_has_output_type();
- inline void set_has_options();
- inline void clear_has_options();
-
- ::google::protobuf::UnknownFieldSet _unknown_fields_;
-
- ::std::string* name_;
- ::std::string* input_type_;
- ::std::string* output_type_;
- ::google::protobuf::MethodOptions* options_;
-
- mutable int _cached_size_;
- ::google::protobuf::uint32 _has_bits_[(4 + 31) / 32];
-
- friend void LIBPROTOBUF_EXPORT protobuf_AddDesc_google_2fprotobuf_2fdescriptor_2eproto();
- friend void protobuf_AssignDesc_google_2fprotobuf_2fdescriptor_2eproto();
- friend void protobuf_ShutdownFile_google_2fprotobuf_2fdescriptor_2eproto();
-
- void InitAsDefaultInstance();
- static MethodDescriptorProto* default_instance_;
-};
-// -------------------------------------------------------------------
-
-class LIBPROTOBUF_EXPORT FileOptions : public ::google::protobuf::Message {
- public:
- FileOptions();
- virtual ~FileOptions();
-
- FileOptions(const FileOptions& from);
-
- inline FileOptions& operator=(const FileOptions& from) {
- CopyFrom(from);
- return *this;
- }
-
- inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
- return _unknown_fields_;
- }
-
- inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
- return &_unknown_fields_;
- }
-
- static const ::google::protobuf::Descriptor* descriptor();
- static const FileOptions& default_instance();
-
- void Swap(FileOptions* other);
-
- // implements Message ----------------------------------------------
-
- FileOptions* New() const;
- void CopyFrom(const ::google::protobuf::Message& from);
- void MergeFrom(const ::google::protobuf::Message& from);
- void CopyFrom(const FileOptions& from);
- void MergeFrom(const FileOptions& from);
- void Clear();
- bool IsInitialized() const;
-
- int ByteSize() const;
- bool MergePartialFromCodedStream(
- ::google::protobuf::io::CodedInputStream* input);
- void SerializeWithCachedSizes(
- ::google::protobuf::io::CodedOutputStream* output) const;
- ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
- int GetCachedSize() const { return _cached_size_; }
- private:
- void SharedCtor();
- void SharedDtor();
- void SetCachedSize(int size) const;
- public:
-
- ::google::protobuf::Metadata GetMetadata() const;
-
- // nested types ----------------------------------------------------
-
- typedef FileOptions_OptimizeMode OptimizeMode;
- static const OptimizeMode SPEED = FileOptions_OptimizeMode_SPEED;
- static const OptimizeMode CODE_SIZE = FileOptions_OptimizeMode_CODE_SIZE;
- static const OptimizeMode LITE_RUNTIME = FileOptions_OptimizeMode_LITE_RUNTIME;
- static inline bool OptimizeMode_IsValid(int value) {
- return FileOptions_OptimizeMode_IsValid(value);
- }
- static const OptimizeMode OptimizeMode_MIN =
- FileOptions_OptimizeMode_OptimizeMode_MIN;
- static const OptimizeMode OptimizeMode_MAX =
- FileOptions_OptimizeMode_OptimizeMode_MAX;
- static const int OptimizeMode_ARRAYSIZE =
- FileOptions_OptimizeMode_OptimizeMode_ARRAYSIZE;
- static inline const ::google::protobuf::EnumDescriptor*
- OptimizeMode_descriptor() {
- return FileOptions_OptimizeMode_descriptor();
- }
- static inline const ::std::string& OptimizeMode_Name(OptimizeMode value) {
- return FileOptions_OptimizeMode_Name(value);
- }
- static inline bool OptimizeMode_Parse(const ::std::string& name,
- OptimizeMode* value) {
- return FileOptions_OptimizeMode_Parse(name, value);
- }
-
- // accessors -------------------------------------------------------
-
- // optional string java_package = 1;
- inline bool has_java_package() const;
- inline void clear_java_package();
- static const int kJavaPackageFieldNumber = 1;
- inline const ::std::string& java_package() const;
- inline void set_java_package(const ::std::string& value);
- inline void set_java_package(const char* value);
- inline void set_java_package(const char* value, size_t size);
- inline ::std::string* mutable_java_package();
- inline ::std::string* release_java_package();
-
- // optional string java_outer_classname = 8;
- inline bool has_java_outer_classname() const;
- inline void clear_java_outer_classname();
- static const int kJavaOuterClassnameFieldNumber = 8;
- inline const ::std::string& java_outer_classname() const;
- inline void set_java_outer_classname(const ::std::string& value);
- inline void set_java_outer_classname(const char* value);
- inline void set_java_outer_classname(const char* value, size_t size);
- inline ::std::string* mutable_java_outer_classname();
- inline ::std::string* release_java_outer_classname();
-
- // optional bool java_multiple_files = 10 [default = false];
- inline bool has_java_multiple_files() const;
- inline void clear_java_multiple_files();
- static const int kJavaMultipleFilesFieldNumber = 10;
- inline bool java_multiple_files() const;
- inline void set_java_multiple_files(bool value);
-
- // optional bool java_generate_equals_and_hash = 20 [default = false];
- inline bool has_java_generate_equals_and_hash() const;
- inline void clear_java_generate_equals_and_hash();
- static const int kJavaGenerateEqualsAndHashFieldNumber = 20;
- inline bool java_generate_equals_and_hash() const;
- inline void set_java_generate_equals_and_hash(bool value);
-
- // optional .google.protobuf.FileOptions.OptimizeMode optimize_for = 9 [default = SPEED];
- inline bool has_optimize_for() const;
- inline void clear_optimize_for();
- static const int kOptimizeForFieldNumber = 9;
- inline ::google::protobuf::FileOptions_OptimizeMode optimize_for() const;
- inline void set_optimize_for(::google::protobuf::FileOptions_OptimizeMode value);
-
- // optional bool cc_generic_services = 16 [default = false];
- inline bool has_cc_generic_services() const;
- inline void clear_cc_generic_services();
- static const int kCcGenericServicesFieldNumber = 16;
- inline bool cc_generic_services() const;
- inline void set_cc_generic_services(bool value);
-
- // optional bool java_generic_services = 17 [default = false];
- inline bool has_java_generic_services() const;
- inline void clear_java_generic_services();
- static const int kJavaGenericServicesFieldNumber = 17;
- inline bool java_generic_services() const;
- inline void set_java_generic_services(bool value);
-
- // optional bool py_generic_services = 18 [default = false];
- inline bool has_py_generic_services() const;
- inline void clear_py_generic_services();
- static const int kPyGenericServicesFieldNumber = 18;
- inline bool py_generic_services() const;
- inline void set_py_generic_services(bool value);
-
- // repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
- inline int uninterpreted_option_size() const;
- inline void clear_uninterpreted_option();
- static const int kUninterpretedOptionFieldNumber = 999;
- inline const ::google::protobuf::UninterpretedOption& uninterpreted_option(int index) const;
- inline ::google::protobuf::UninterpretedOption* mutable_uninterpreted_option(int index);
- inline ::google::protobuf::UninterpretedOption* add_uninterpreted_option();
- inline const ::google::protobuf::RepeatedPtrField< ::google::protobuf::UninterpretedOption >&
- uninterpreted_option() const;
- inline ::google::protobuf::RepeatedPtrField< ::google::protobuf::UninterpretedOption >*
- mutable_uninterpreted_option();
-
- GOOGLE_PROTOBUF_EXTENSION_ACCESSORS(FileOptions)
- // @@protoc_insertion_point(class_scope:google.protobuf.FileOptions)
- private:
- inline void set_has_java_package();
- inline void clear_has_java_package();
- inline void set_has_java_outer_classname();
- inline void clear_has_java_outer_classname();
- inline void set_has_java_multiple_files();
- inline void clear_has_java_multiple_files();
- inline void set_has_java_generate_equals_and_hash();
- inline void clear_has_java_generate_equals_and_hash();
- inline void set_has_optimize_for();
- inline void clear_has_optimize_for();
- inline void set_has_cc_generic_services();
- inline void clear_has_cc_generic_services();
- inline void set_has_java_generic_services();
- inline void clear_has_java_generic_services();
- inline void set_has_py_generic_services();
- inline void clear_has_py_generic_services();
-
- ::google::protobuf::internal::ExtensionSet _extensions_;
-
- ::google::protobuf::UnknownFieldSet _unknown_fields_;
-
- ::std::string* java_package_;
- ::std::string* java_outer_classname_;
- int optimize_for_;
- bool java_multiple_files_;
- bool java_generate_equals_and_hash_;
- bool cc_generic_services_;
- bool java_generic_services_;
- ::google::protobuf::RepeatedPtrField< ::google::protobuf::UninterpretedOption > uninterpreted_option_;
- bool py_generic_services_;
-
- mutable int _cached_size_;
- ::google::protobuf::uint32 _has_bits_[(9 + 31) / 32];
-
- friend void LIBPROTOBUF_EXPORT protobuf_AddDesc_google_2fprotobuf_2fdescriptor_2eproto();
- friend void protobuf_AssignDesc_google_2fprotobuf_2fdescriptor_2eproto();
- friend void protobuf_ShutdownFile_google_2fprotobuf_2fdescriptor_2eproto();
-
- void InitAsDefaultInstance();
- static FileOptions* default_instance_;
-};
-// -------------------------------------------------------------------
-
-class LIBPROTOBUF_EXPORT MessageOptions : public ::google::protobuf::Message {
- public:
- MessageOptions();
- virtual ~MessageOptions();
-
- MessageOptions(const MessageOptions& from);
-
- inline MessageOptions& operator=(const MessageOptions& from) {
- CopyFrom(from);
- return *this;
- }
-
- inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
- return _unknown_fields_;
- }
-
- inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
- return &_unknown_fields_;
- }
-
- static const ::google::protobuf::Descriptor* descriptor();
- static const MessageOptions& default_instance();
-
- void Swap(MessageOptions* other);
-
- // implements Message ----------------------------------------------
-
- MessageOptions* New() const;
- void CopyFrom(const ::google::protobuf::Message& from);
- void MergeFrom(const ::google::protobuf::Message& from);
- void CopyFrom(const MessageOptions& from);
- void MergeFrom(const MessageOptions& from);
- void Clear();
- bool IsInitialized() const;
-
- int ByteSize() const;
- bool MergePartialFromCodedStream(
- ::google::protobuf::io::CodedInputStream* input);
- void SerializeWithCachedSizes(
- ::google::protobuf::io::CodedOutputStream* output) const;
- ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
- int GetCachedSize() const { return _cached_size_; }
- private:
- void SharedCtor();
- void SharedDtor();
- void SetCachedSize(int size) const;
- public:
-
- ::google::protobuf::Metadata GetMetadata() const;
-
- // nested types ----------------------------------------------------
-
- // accessors -------------------------------------------------------
-
- // optional bool message_set_wire_format = 1 [default = false];
- inline bool has_message_set_wire_format() const;
- inline void clear_message_set_wire_format();
- static const int kMessageSetWireFormatFieldNumber = 1;
- inline bool message_set_wire_format() const;
- inline void set_message_set_wire_format(bool value);
-
- // optional bool no_standard_descriptor_accessor = 2 [default = false];
- inline bool has_no_standard_descriptor_accessor() const;
- inline void clear_no_standard_descriptor_accessor();
- static const int kNoStandardDescriptorAccessorFieldNumber = 2;
- inline bool no_standard_descriptor_accessor() const;
- inline void set_no_standard_descriptor_accessor(bool value);
-
- // repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
- inline int uninterpreted_option_size() const;
- inline void clear_uninterpreted_option();
- static const int kUninterpretedOptionFieldNumber = 999;
- inline const ::google::protobuf::UninterpretedOption& uninterpreted_option(int index) const;
- inline ::google::protobuf::UninterpretedOption* mutable_uninterpreted_option(int index);
- inline ::google::protobuf::UninterpretedOption* add_uninterpreted_option();
- inline const ::google::protobuf::RepeatedPtrField< ::google::protobuf::UninterpretedOption >&
- uninterpreted_option() const;
- inline ::google::protobuf::RepeatedPtrField< ::google::protobuf::UninterpretedOption >*
- mutable_uninterpreted_option();
-
- GOOGLE_PROTOBUF_EXTENSION_ACCESSORS(MessageOptions)
- // @@protoc_insertion_point(class_scope:google.protobuf.MessageOptions)
- private:
- inline void set_has_message_set_wire_format();
- inline void clear_has_message_set_wire_format();
- inline void set_has_no_standard_descriptor_accessor();
- inline void clear_has_no_standard_descriptor_accessor();
-
- ::google::protobuf::internal::ExtensionSet _extensions_;
-
- ::google::protobuf::UnknownFieldSet _unknown_fields_;
-
- ::google::protobuf::RepeatedPtrField< ::google::protobuf::UninterpretedOption > uninterpreted_option_;
- bool message_set_wire_format_;
- bool no_standard_descriptor_accessor_;
-
- mutable int _cached_size_;
- ::google::protobuf::uint32 _has_bits_[(3 + 31) / 32];
-
- friend void LIBPROTOBUF_EXPORT protobuf_AddDesc_google_2fprotobuf_2fdescriptor_2eproto();
- friend void protobuf_AssignDesc_google_2fprotobuf_2fdescriptor_2eproto();
- friend void protobuf_ShutdownFile_google_2fprotobuf_2fdescriptor_2eproto();
-
- void InitAsDefaultInstance();
- static MessageOptions* default_instance_;
-};
-// -------------------------------------------------------------------
-
-class LIBPROTOBUF_EXPORT FieldOptions : public ::google::protobuf::Message {
- public:
- FieldOptions();
- virtual ~FieldOptions();
-
- FieldOptions(const FieldOptions& from);
-
- inline FieldOptions& operator=(const FieldOptions& from) {
- CopyFrom(from);
- return *this;
- }
-
- inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
- return _unknown_fields_;
- }
-
- inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
- return &_unknown_fields_;
- }
-
- static const ::google::protobuf::Descriptor* descriptor();
- static const FieldOptions& default_instance();
-
- void Swap(FieldOptions* other);
-
- // implements Message ----------------------------------------------
-
- FieldOptions* New() const;
- void CopyFrom(const ::google::protobuf::Message& from);
- void MergeFrom(const ::google::protobuf::Message& from);
- void CopyFrom(const FieldOptions& from);
- void MergeFrom(const FieldOptions& from);
- void Clear();
- bool IsInitialized() const;
-
- int ByteSize() const;
- bool MergePartialFromCodedStream(
- ::google::protobuf::io::CodedInputStream* input);
- void SerializeWithCachedSizes(
- ::google::protobuf::io::CodedOutputStream* output) const;
- ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
- int GetCachedSize() const { return _cached_size_; }
- private:
- void SharedCtor();
- void SharedDtor();
- void SetCachedSize(int size) const;
- public:
-
- ::google::protobuf::Metadata GetMetadata() const;
-
- // nested types ----------------------------------------------------
-
- typedef FieldOptions_CType CType;
- static const CType STRING = FieldOptions_CType_STRING;
- static const CType CORD = FieldOptions_CType_CORD;
- static const CType STRING_PIECE = FieldOptions_CType_STRING_PIECE;
- static inline bool CType_IsValid(int value) {
- return FieldOptions_CType_IsValid(value);
- }
- static const CType CType_MIN =
- FieldOptions_CType_CType_MIN;
- static const CType CType_MAX =
- FieldOptions_CType_CType_MAX;
- static const int CType_ARRAYSIZE =
- FieldOptions_CType_CType_ARRAYSIZE;
- static inline const ::google::protobuf::EnumDescriptor*
- CType_descriptor() {
- return FieldOptions_CType_descriptor();
- }
- static inline const ::std::string& CType_Name(CType value) {
- return FieldOptions_CType_Name(value);
- }
- static inline bool CType_Parse(const ::std::string& name,
- CType* value) {
- return FieldOptions_CType_Parse(name, value);
- }
-
- // accessors -------------------------------------------------------
-
- // optional .google.protobuf.FieldOptions.CType ctype = 1 [default = STRING];
- inline bool has_ctype() const;
- inline void clear_ctype();
- static const int kCtypeFieldNumber = 1;
- inline ::google::protobuf::FieldOptions_CType ctype() const;
- inline void set_ctype(::google::protobuf::FieldOptions_CType value);
-
- // optional bool packed = 2;
- inline bool has_packed() const;
- inline void clear_packed();
- static const int kPackedFieldNumber = 2;
- inline bool packed() const;
- inline void set_packed(bool value);
-
- // optional bool deprecated = 3 [default = false];
- inline bool has_deprecated() const;
- inline void clear_deprecated();
- static const int kDeprecatedFieldNumber = 3;
- inline bool deprecated() const;
- inline void set_deprecated(bool value);
-
- // optional string experimental_map_key = 9;
- inline bool has_experimental_map_key() const;
- inline void clear_experimental_map_key();
- static const int kExperimentalMapKeyFieldNumber = 9;
- inline const ::std::string& experimental_map_key() const;
- inline void set_experimental_map_key(const ::std::string& value);
- inline void set_experimental_map_key(const char* value);
- inline void set_experimental_map_key(const char* value, size_t size);
- inline ::std::string* mutable_experimental_map_key();
- inline ::std::string* release_experimental_map_key();
-
- // repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
- inline int uninterpreted_option_size() const;
- inline void clear_uninterpreted_option();
- static const int kUninterpretedOptionFieldNumber = 999;
- inline const ::google::protobuf::UninterpretedOption& uninterpreted_option(int index) const;
- inline ::google::protobuf::UninterpretedOption* mutable_uninterpreted_option(int index);
- inline ::google::protobuf::UninterpretedOption* add_uninterpreted_option();
- inline const ::google::protobuf::RepeatedPtrField< ::google::protobuf::UninterpretedOption >&
- uninterpreted_option() const;
- inline ::google::protobuf::RepeatedPtrField< ::google::protobuf::UninterpretedOption >*
- mutable_uninterpreted_option();
-
- GOOGLE_PROTOBUF_EXTENSION_ACCESSORS(FieldOptions)
- // @@protoc_insertion_point(class_scope:google.protobuf.FieldOptions)
- private:
- inline void set_has_ctype();
- inline void clear_has_ctype();
- inline void set_has_packed();
- inline void clear_has_packed();
- inline void set_has_deprecated();
- inline void clear_has_deprecated();
- inline void set_has_experimental_map_key();
- inline void clear_has_experimental_map_key();
-
- ::google::protobuf::internal::ExtensionSet _extensions_;
-
- ::google::protobuf::UnknownFieldSet _unknown_fields_;
-
- int ctype_;
- bool packed_;
- bool deprecated_;
- ::std::string* experimental_map_key_;
- ::google::protobuf::RepeatedPtrField< ::google::protobuf::UninterpretedOption > uninterpreted_option_;
-
- mutable int _cached_size_;
- ::google::protobuf::uint32 _has_bits_[(5 + 31) / 32];
-
- friend void LIBPROTOBUF_EXPORT protobuf_AddDesc_google_2fprotobuf_2fdescriptor_2eproto();
- friend void protobuf_AssignDesc_google_2fprotobuf_2fdescriptor_2eproto();
- friend void protobuf_ShutdownFile_google_2fprotobuf_2fdescriptor_2eproto();
-
- void InitAsDefaultInstance();
- static FieldOptions* default_instance_;
-};
-// -------------------------------------------------------------------
-
-class LIBPROTOBUF_EXPORT EnumOptions : public ::google::protobuf::Message {
- public:
- EnumOptions();
- virtual ~EnumOptions();
-
- EnumOptions(const EnumOptions& from);
-
- inline EnumOptions& operator=(const EnumOptions& from) {
- CopyFrom(from);
- return *this;
- }
-
- inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
- return _unknown_fields_;
- }
-
- inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
- return &_unknown_fields_;
- }
-
- static const ::google::protobuf::Descriptor* descriptor();
- static const EnumOptions& default_instance();
-
- void Swap(EnumOptions* other);
-
- // implements Message ----------------------------------------------
-
- EnumOptions* New() const;
- void CopyFrom(const ::google::protobuf::Message& from);
- void MergeFrom(const ::google::protobuf::Message& from);
- void CopyFrom(const EnumOptions& from);
- void MergeFrom(const EnumOptions& from);
- void Clear();
- bool IsInitialized() const;
-
- int ByteSize() const;
- bool MergePartialFromCodedStream(
- ::google::protobuf::io::CodedInputStream* input);
- void SerializeWithCachedSizes(
- ::google::protobuf::io::CodedOutputStream* output) const;
- ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
- int GetCachedSize() const { return _cached_size_; }
- private:
- void SharedCtor();
- void SharedDtor();
- void SetCachedSize(int size) const;
- public:
-
- ::google::protobuf::Metadata GetMetadata() const;
-
- // nested types ----------------------------------------------------
-
- // accessors -------------------------------------------------------
-
- // repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
- inline int uninterpreted_option_size() const;
- inline void clear_uninterpreted_option();
- static const int kUninterpretedOptionFieldNumber = 999;
- inline const ::google::protobuf::UninterpretedOption& uninterpreted_option(int index) const;
- inline ::google::protobuf::UninterpretedOption* mutable_uninterpreted_option(int index);
- inline ::google::protobuf::UninterpretedOption* add_uninterpreted_option();
- inline const ::google::protobuf::RepeatedPtrField< ::google::protobuf::UninterpretedOption >&
- uninterpreted_option() const;
- inline ::google::protobuf::RepeatedPtrField< ::google::protobuf::UninterpretedOption >*
- mutable_uninterpreted_option();
-
- GOOGLE_PROTOBUF_EXTENSION_ACCESSORS(EnumOptions)
- // @@protoc_insertion_point(class_scope:google.protobuf.EnumOptions)
- private:
-
- ::google::protobuf::internal::ExtensionSet _extensions_;
-
- ::google::protobuf::UnknownFieldSet _unknown_fields_;
-
- ::google::protobuf::RepeatedPtrField< ::google::protobuf::UninterpretedOption > uninterpreted_option_;
-
- mutable int _cached_size_;
- ::google::protobuf::uint32 _has_bits_[(1 + 31) / 32];
-
- friend void LIBPROTOBUF_EXPORT protobuf_AddDesc_google_2fprotobuf_2fdescriptor_2eproto();
- friend void protobuf_AssignDesc_google_2fprotobuf_2fdescriptor_2eproto();
- friend void protobuf_ShutdownFile_google_2fprotobuf_2fdescriptor_2eproto();
-
- void InitAsDefaultInstance();
- static EnumOptions* default_instance_;
-};
-// -------------------------------------------------------------------
-
-class LIBPROTOBUF_EXPORT EnumValueOptions : public ::google::protobuf::Message {
- public:
- EnumValueOptions();
- virtual ~EnumValueOptions();
-
- EnumValueOptions(const EnumValueOptions& from);
-
- inline EnumValueOptions& operator=(const EnumValueOptions& from) {
- CopyFrom(from);
- return *this;
- }
-
- inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
- return _unknown_fields_;
- }
-
- inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
- return &_unknown_fields_;
- }
-
- static const ::google::protobuf::Descriptor* descriptor();
- static const EnumValueOptions& default_instance();
-
- void Swap(EnumValueOptions* other);
-
- // implements Message ----------------------------------------------
-
- EnumValueOptions* New() const;
- void CopyFrom(const ::google::protobuf::Message& from);
- void MergeFrom(const ::google::protobuf::Message& from);
- void CopyFrom(const EnumValueOptions& from);
- void MergeFrom(const EnumValueOptions& from);
- void Clear();
- bool IsInitialized() const;
-
- int ByteSize() const;
- bool MergePartialFromCodedStream(
- ::google::protobuf::io::CodedInputStream* input);
- void SerializeWithCachedSizes(
- ::google::protobuf::io::CodedOutputStream* output) const;
- ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
- int GetCachedSize() const { return _cached_size_; }
- private:
- void SharedCtor();
- void SharedDtor();
- void SetCachedSize(int size) const;
- public:
-
- ::google::protobuf::Metadata GetMetadata() const;
-
- // nested types ----------------------------------------------------
-
- // accessors -------------------------------------------------------
-
- // repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
- inline int uninterpreted_option_size() const;
- inline void clear_uninterpreted_option();
- static const int kUninterpretedOptionFieldNumber = 999;
- inline const ::google::protobuf::UninterpretedOption& uninterpreted_option(int index) const;
- inline ::google::protobuf::UninterpretedOption* mutable_uninterpreted_option(int index);
- inline ::google::protobuf::UninterpretedOption* add_uninterpreted_option();
- inline const ::google::protobuf::RepeatedPtrField< ::google::protobuf::UninterpretedOption >&
- uninterpreted_option() const;
- inline ::google::protobuf::RepeatedPtrField< ::google::protobuf::UninterpretedOption >*
- mutable_uninterpreted_option();
-
- GOOGLE_PROTOBUF_EXTENSION_ACCESSORS(EnumValueOptions)
- // @@protoc_insertion_point(class_scope:google.protobuf.EnumValueOptions)
- private:
-
- ::google::protobuf::internal::ExtensionSet _extensions_;
-
- ::google::protobuf::UnknownFieldSet _unknown_fields_;
-
- ::google::protobuf::RepeatedPtrField< ::google::protobuf::UninterpretedOption > uninterpreted_option_;
-
- mutable int _cached_size_;
- ::google::protobuf::uint32 _has_bits_[(1 + 31) / 32];
-
- friend void LIBPROTOBUF_EXPORT protobuf_AddDesc_google_2fprotobuf_2fdescriptor_2eproto();
- friend void protobuf_AssignDesc_google_2fprotobuf_2fdescriptor_2eproto();
- friend void protobuf_ShutdownFile_google_2fprotobuf_2fdescriptor_2eproto();
-
- void InitAsDefaultInstance();
- static EnumValueOptions* default_instance_;
-};
-// -------------------------------------------------------------------
-
-class LIBPROTOBUF_EXPORT ServiceOptions : public ::google::protobuf::Message {
- public:
- ServiceOptions();
- virtual ~ServiceOptions();
-
- ServiceOptions(const ServiceOptions& from);
-
- inline ServiceOptions& operator=(const ServiceOptions& from) {
- CopyFrom(from);
- return *this;
- }
-
- inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
- return _unknown_fields_;
- }
-
- inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
- return &_unknown_fields_;
- }
-
- static const ::google::protobuf::Descriptor* descriptor();
- static const ServiceOptions& default_instance();
-
- void Swap(ServiceOptions* other);
-
- // implements Message ----------------------------------------------
-
- ServiceOptions* New() const;
- void CopyFrom(const ::google::protobuf::Message& from);
- void MergeFrom(const ::google::protobuf::Message& from);
- void CopyFrom(const ServiceOptions& from);
- void MergeFrom(const ServiceOptions& from);
- void Clear();
- bool IsInitialized() const;
-
- int ByteSize() const;
- bool MergePartialFromCodedStream(
- ::google::protobuf::io::CodedInputStream* input);
- void SerializeWithCachedSizes(
- ::google::protobuf::io::CodedOutputStream* output) const;
- ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
- int GetCachedSize() const { return _cached_size_; }
- private:
- void SharedCtor();
- void SharedDtor();
- void SetCachedSize(int size) const;
- public:
-
- ::google::protobuf::Metadata GetMetadata() const;
-
- // nested types ----------------------------------------------------
-
- // accessors -------------------------------------------------------
-
- // repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
- inline int uninterpreted_option_size() const;
- inline void clear_uninterpreted_option();
- static const int kUninterpretedOptionFieldNumber = 999;
- inline const ::google::protobuf::UninterpretedOption& uninterpreted_option(int index) const;
- inline ::google::protobuf::UninterpretedOption* mutable_uninterpreted_option(int index);
- inline ::google::protobuf::UninterpretedOption* add_uninterpreted_option();
- inline const ::google::protobuf::RepeatedPtrField< ::google::protobuf::UninterpretedOption >&
- uninterpreted_option() const;
- inline ::google::protobuf::RepeatedPtrField< ::google::protobuf::UninterpretedOption >*
- mutable_uninterpreted_option();
-
- GOOGLE_PROTOBUF_EXTENSION_ACCESSORS(ServiceOptions)
- // @@protoc_insertion_point(class_scope:google.protobuf.ServiceOptions)
- private:
-
- ::google::protobuf::internal::ExtensionSet _extensions_;
-
- ::google::protobuf::UnknownFieldSet _unknown_fields_;
-
- ::google::protobuf::RepeatedPtrField< ::google::protobuf::UninterpretedOption > uninterpreted_option_;
-
- mutable int _cached_size_;
- ::google::protobuf::uint32 _has_bits_[(1 + 31) / 32];
-
- friend void LIBPROTOBUF_EXPORT protobuf_AddDesc_google_2fprotobuf_2fdescriptor_2eproto();
- friend void protobuf_AssignDesc_google_2fprotobuf_2fdescriptor_2eproto();
- friend void protobuf_ShutdownFile_google_2fprotobuf_2fdescriptor_2eproto();
-
- void InitAsDefaultInstance();
- static ServiceOptions* default_instance_;
-};
-// -------------------------------------------------------------------
-
-class LIBPROTOBUF_EXPORT MethodOptions : public ::google::protobuf::Message {
- public:
- MethodOptions();
- virtual ~MethodOptions();
-
- MethodOptions(const MethodOptions& from);
-
- inline MethodOptions& operator=(const MethodOptions& from) {
- CopyFrom(from);
- return *this;
- }
-
- inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
- return _unknown_fields_;
- }
-
- inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
- return &_unknown_fields_;
- }
-
- static const ::google::protobuf::Descriptor* descriptor();
- static const MethodOptions& default_instance();
-
- void Swap(MethodOptions* other);
-
- // implements Message ----------------------------------------------
-
- MethodOptions* New() const;
- void CopyFrom(const ::google::protobuf::Message& from);
- void MergeFrom(const ::google::protobuf::Message& from);
- void CopyFrom(const MethodOptions& from);
- void MergeFrom(const MethodOptions& from);
- void Clear();
- bool IsInitialized() const;
-
- int ByteSize() const;
- bool MergePartialFromCodedStream(
- ::google::protobuf::io::CodedInputStream* input);
- void SerializeWithCachedSizes(
- ::google::protobuf::io::CodedOutputStream* output) const;
- ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
- int GetCachedSize() const { return _cached_size_; }
- private:
- void SharedCtor();
- void SharedDtor();
- void SetCachedSize(int size) const;
- public:
-
- ::google::protobuf::Metadata GetMetadata() const;
-
- // nested types ----------------------------------------------------
-
- // accessors -------------------------------------------------------
-
- // repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
- inline int uninterpreted_option_size() const;
- inline void clear_uninterpreted_option();
- static const int kUninterpretedOptionFieldNumber = 999;
- inline const ::google::protobuf::UninterpretedOption& uninterpreted_option(int index) const;
- inline ::google::protobuf::UninterpretedOption* mutable_uninterpreted_option(int index);
- inline ::google::protobuf::UninterpretedOption* add_uninterpreted_option();
- inline const ::google::protobuf::RepeatedPtrField< ::google::protobuf::UninterpretedOption >&
- uninterpreted_option() const;
- inline ::google::protobuf::RepeatedPtrField< ::google::protobuf::UninterpretedOption >*
- mutable_uninterpreted_option();
-
- GOOGLE_PROTOBUF_EXTENSION_ACCESSORS(MethodOptions)
- // @@protoc_insertion_point(class_scope:google.protobuf.MethodOptions)
- private:
-
- ::google::protobuf::internal::ExtensionSet _extensions_;
-
- ::google::protobuf::UnknownFieldSet _unknown_fields_;
-
- ::google::protobuf::RepeatedPtrField< ::google::protobuf::UninterpretedOption > uninterpreted_option_;
-
- mutable int _cached_size_;
- ::google::protobuf::uint32 _has_bits_[(1 + 31) / 32];
-
- friend void LIBPROTOBUF_EXPORT protobuf_AddDesc_google_2fprotobuf_2fdescriptor_2eproto();
- friend void protobuf_AssignDesc_google_2fprotobuf_2fdescriptor_2eproto();
- friend void protobuf_ShutdownFile_google_2fprotobuf_2fdescriptor_2eproto();
-
- void InitAsDefaultInstance();
- static MethodOptions* default_instance_;
-};
-// -------------------------------------------------------------------
-
-class LIBPROTOBUF_EXPORT UninterpretedOption_NamePart : public ::google::protobuf::Message {
- public:
- UninterpretedOption_NamePart();
- virtual ~UninterpretedOption_NamePart();
-
- UninterpretedOption_NamePart(const UninterpretedOption_NamePart& from);
-
- inline UninterpretedOption_NamePart& operator=(const UninterpretedOption_NamePart& from) {
- CopyFrom(from);
- return *this;
- }
-
- inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
- return _unknown_fields_;
- }
-
- inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
- return &_unknown_fields_;
- }
-
- static const ::google::protobuf::Descriptor* descriptor();
- static const UninterpretedOption_NamePart& default_instance();
-
- void Swap(UninterpretedOption_NamePart* other);
-
- // implements Message ----------------------------------------------
-
- UninterpretedOption_NamePart* New() const;
- void CopyFrom(const ::google::protobuf::Message& from);
- void MergeFrom(const ::google::protobuf::Message& from);
- void CopyFrom(const UninterpretedOption_NamePart& from);
- void MergeFrom(const UninterpretedOption_NamePart& from);
- void Clear();
- bool IsInitialized() const;
-
- int ByteSize() const;
- bool MergePartialFromCodedStream(
- ::google::protobuf::io::CodedInputStream* input);
- void SerializeWithCachedSizes(
- ::google::protobuf::io::CodedOutputStream* output) const;
- ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
- int GetCachedSize() const { return _cached_size_; }
- private:
- void SharedCtor();
- void SharedDtor();
- void SetCachedSize(int size) const;
- public:
-
- ::google::protobuf::Metadata GetMetadata() const;
-
- // nested types ----------------------------------------------------
-
- // accessors -------------------------------------------------------
-
- // required string name_part = 1;
- inline bool has_name_part() const;
- inline void clear_name_part();
- static const int kNamePartFieldNumber = 1;
- inline const ::std::string& name_part() const;
- inline void set_name_part(const ::std::string& value);
- inline void set_name_part(const char* value);
- inline void set_name_part(const char* value, size_t size);
- inline ::std::string* mutable_name_part();
- inline ::std::string* release_name_part();
-
- // required bool is_extension = 2;
- inline bool has_is_extension() const;
- inline void clear_is_extension();
- static const int kIsExtensionFieldNumber = 2;
- inline bool is_extension() const;
- inline void set_is_extension(bool value);
-
- // @@protoc_insertion_point(class_scope:google.protobuf.UninterpretedOption.NamePart)
- private:
- inline void set_has_name_part();
- inline void clear_has_name_part();
- inline void set_has_is_extension();
- inline void clear_has_is_extension();
-
- ::google::protobuf::UnknownFieldSet _unknown_fields_;
-
- ::std::string* name_part_;
- bool is_extension_;
-
- mutable int _cached_size_;
- ::google::protobuf::uint32 _has_bits_[(2 + 31) / 32];
-
- friend void LIBPROTOBUF_EXPORT protobuf_AddDesc_google_2fprotobuf_2fdescriptor_2eproto();
- friend void protobuf_AssignDesc_google_2fprotobuf_2fdescriptor_2eproto();
- friend void protobuf_ShutdownFile_google_2fprotobuf_2fdescriptor_2eproto();
-
- void InitAsDefaultInstance();
- static UninterpretedOption_NamePart* default_instance_;
-};
-// -------------------------------------------------------------------
-
-class LIBPROTOBUF_EXPORT UninterpretedOption : public ::google::protobuf::Message {
- public:
- UninterpretedOption();
- virtual ~UninterpretedOption();
-
- UninterpretedOption(const UninterpretedOption& from);
-
- inline UninterpretedOption& operator=(const UninterpretedOption& from) {
- CopyFrom(from);
- return *this;
- }
-
- inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
- return _unknown_fields_;
- }
-
- inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
- return &_unknown_fields_;
- }
-
- static const ::google::protobuf::Descriptor* descriptor();
- static const UninterpretedOption& default_instance();
-
- void Swap(UninterpretedOption* other);
-
- // implements Message ----------------------------------------------
-
- UninterpretedOption* New() const;
- void CopyFrom(const ::google::protobuf::Message& from);
- void MergeFrom(const ::google::protobuf::Message& from);
- void CopyFrom(const UninterpretedOption& from);
- void MergeFrom(const UninterpretedOption& from);
- void Clear();
- bool IsInitialized() const;
-
- int ByteSize() const;
- bool MergePartialFromCodedStream(
- ::google::protobuf::io::CodedInputStream* input);
- void SerializeWithCachedSizes(
- ::google::protobuf::io::CodedOutputStream* output) const;
- ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
- int GetCachedSize() const { return _cached_size_; }
- private:
- void SharedCtor();
- void SharedDtor();
- void SetCachedSize(int size) const;
- public:
-
- ::google::protobuf::Metadata GetMetadata() const;
-
- // nested types ----------------------------------------------------
-
- typedef UninterpretedOption_NamePart NamePart;
-
- // accessors -------------------------------------------------------
-
- // repeated .google.protobuf.UninterpretedOption.NamePart name = 2;
- inline int name_size() const;
- inline void clear_name();
- static const int kNameFieldNumber = 2;
- inline const ::google::protobuf::UninterpretedOption_NamePart& name(int index) const;
- inline ::google::protobuf::UninterpretedOption_NamePart* mutable_name(int index);
- inline ::google::protobuf::UninterpretedOption_NamePart* add_name();
- inline const ::google::protobuf::RepeatedPtrField< ::google::protobuf::UninterpretedOption_NamePart >&
- name() const;
- inline ::google::protobuf::RepeatedPtrField< ::google::protobuf::UninterpretedOption_NamePart >*
- mutable_name();
-
- // optional string identifier_value = 3;
- inline bool has_identifier_value() const;
- inline void clear_identifier_value();
- static const int kIdentifierValueFieldNumber = 3;
- inline const ::std::string& identifier_value() const;
- inline void set_identifier_value(const ::std::string& value);
- inline void set_identifier_value(const char* value);
- inline void set_identifier_value(const char* value, size_t size);
- inline ::std::string* mutable_identifier_value();
- inline ::std::string* release_identifier_value();
-
- // optional uint64 positive_int_value = 4;
- inline bool has_positive_int_value() const;
- inline void clear_positive_int_value();
- static const int kPositiveIntValueFieldNumber = 4;
- inline ::google::protobuf::uint64 positive_int_value() const;
- inline void set_positive_int_value(::google::protobuf::uint64 value);
-
- // optional int64 negative_int_value = 5;
- inline bool has_negative_int_value() const;
- inline void clear_negative_int_value();
- static const int kNegativeIntValueFieldNumber = 5;
- inline ::google::protobuf::int64 negative_int_value() const;
- inline void set_negative_int_value(::google::protobuf::int64 value);
-
- // optional double double_value = 6;
- inline bool has_double_value() const;
- inline void clear_double_value();
- static const int kDoubleValueFieldNumber = 6;
- inline double double_value() const;
- inline void set_double_value(double value);
-
- // optional bytes string_value = 7;
- inline bool has_string_value() const;
- inline void clear_string_value();
- static const int kStringValueFieldNumber = 7;
- inline const ::std::string& string_value() const;
- inline void set_string_value(const ::std::string& value);
- inline void set_string_value(const char* value);
- inline void set_string_value(const void* value, size_t size);
- inline ::std::string* mutable_string_value();
- inline ::std::string* release_string_value();
-
- // optional string aggregate_value = 8;
- inline bool has_aggregate_value() const;
- inline void clear_aggregate_value();
- static const int kAggregateValueFieldNumber = 8;
- inline const ::std::string& aggregate_value() const;
- inline void set_aggregate_value(const ::std::string& value);
- inline void set_aggregate_value(const char* value);
- inline void set_aggregate_value(const char* value, size_t size);
- inline ::std::string* mutable_aggregate_value();
- inline ::std::string* release_aggregate_value();
-
- // @@protoc_insertion_point(class_scope:google.protobuf.UninterpretedOption)
- private:
- inline void set_has_identifier_value();
- inline void clear_has_identifier_value();
- inline void set_has_positive_int_value();
- inline void clear_has_positive_int_value();
- inline void set_has_negative_int_value();
- inline void clear_has_negative_int_value();
- inline void set_has_double_value();
- inline void clear_has_double_value();
- inline void set_has_string_value();
- inline void clear_has_string_value();
- inline void set_has_aggregate_value();
- inline void clear_has_aggregate_value();
-
- ::google::protobuf::UnknownFieldSet _unknown_fields_;
-
- ::google::protobuf::RepeatedPtrField< ::google::protobuf::UninterpretedOption_NamePart > name_;
- ::std::string* identifier_value_;
- ::google::protobuf::uint64 positive_int_value_;
- ::google::protobuf::int64 negative_int_value_;
- double double_value_;
- ::std::string* string_value_;
- ::std::string* aggregate_value_;
-
- mutable int _cached_size_;
- ::google::protobuf::uint32 _has_bits_[(7 + 31) / 32];
-
- friend void LIBPROTOBUF_EXPORT protobuf_AddDesc_google_2fprotobuf_2fdescriptor_2eproto();
- friend void protobuf_AssignDesc_google_2fprotobuf_2fdescriptor_2eproto();
- friend void protobuf_ShutdownFile_google_2fprotobuf_2fdescriptor_2eproto();
-
- void InitAsDefaultInstance();
- static UninterpretedOption* default_instance_;
-};
-// -------------------------------------------------------------------
-
-class LIBPROTOBUF_EXPORT SourceCodeInfo_Location : public ::google::protobuf::Message {
- public:
- SourceCodeInfo_Location();
- virtual ~SourceCodeInfo_Location();
-
- SourceCodeInfo_Location(const SourceCodeInfo_Location& from);
-
- inline SourceCodeInfo_Location& operator=(const SourceCodeInfo_Location& from) {
- CopyFrom(from);
- return *this;
- }
-
- inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
- return _unknown_fields_;
- }
-
- inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
- return &_unknown_fields_;
- }
-
- static const ::google::protobuf::Descriptor* descriptor();
- static const SourceCodeInfo_Location& default_instance();
-
- void Swap(SourceCodeInfo_Location* other);
-
- // implements Message ----------------------------------------------
-
- SourceCodeInfo_Location* New() const;
- void CopyFrom(const ::google::protobuf::Message& from);
- void MergeFrom(const ::google::protobuf::Message& from);
- void CopyFrom(const SourceCodeInfo_Location& from);
- void MergeFrom(const SourceCodeInfo_Location& from);
- void Clear();
- bool IsInitialized() const;
-
- int ByteSize() const;
- bool MergePartialFromCodedStream(
- ::google::protobuf::io::CodedInputStream* input);
- void SerializeWithCachedSizes(
- ::google::protobuf::io::CodedOutputStream* output) const;
- ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
- int GetCachedSize() const { return _cached_size_; }
- private:
- void SharedCtor();
- void SharedDtor();
- void SetCachedSize(int size) const;
- public:
-
- ::google::protobuf::Metadata GetMetadata() const;
-
- // nested types ----------------------------------------------------
-
- // accessors -------------------------------------------------------
-
- // repeated int32 path = 1 [packed = true];
- inline int path_size() const;
- inline void clear_path();
- static const int kPathFieldNumber = 1;
- inline ::google::protobuf::int32 path(int index) const;
- inline void set_path(int index, ::google::protobuf::int32 value);
- inline void add_path(::google::protobuf::int32 value);
- inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
- path() const;
- inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
- mutable_path();
-
- // repeated int32 span = 2 [packed = true];
- inline int span_size() const;
- inline void clear_span();
- static const int kSpanFieldNumber = 2;
- inline ::google::protobuf::int32 span(int index) const;
- inline void set_span(int index, ::google::protobuf::int32 value);
- inline void add_span(::google::protobuf::int32 value);
- inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
- span() const;
- inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
- mutable_span();
-
- // @@protoc_insertion_point(class_scope:google.protobuf.SourceCodeInfo.Location)
- private:
-
- ::google::protobuf::UnknownFieldSet _unknown_fields_;
-
- ::google::protobuf::RepeatedField< ::google::protobuf::int32 > path_;
- mutable int _path_cached_byte_size_;
- ::google::protobuf::RepeatedField< ::google::protobuf::int32 > span_;
- mutable int _span_cached_byte_size_;
-
- mutable int _cached_size_;
- ::google::protobuf::uint32 _has_bits_[(2 + 31) / 32];
-
- friend void LIBPROTOBUF_EXPORT protobuf_AddDesc_google_2fprotobuf_2fdescriptor_2eproto();
- friend void protobuf_AssignDesc_google_2fprotobuf_2fdescriptor_2eproto();
- friend void protobuf_ShutdownFile_google_2fprotobuf_2fdescriptor_2eproto();
-
- void InitAsDefaultInstance();
- static SourceCodeInfo_Location* default_instance_;
-};
-// -------------------------------------------------------------------
-
-class LIBPROTOBUF_EXPORT SourceCodeInfo : public ::google::protobuf::Message {
- public:
- SourceCodeInfo();
- virtual ~SourceCodeInfo();
-
- SourceCodeInfo(const SourceCodeInfo& from);
-
- inline SourceCodeInfo& operator=(const SourceCodeInfo& from) {
- CopyFrom(from);
- return *this;
- }
-
- inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
- return _unknown_fields_;
- }
-
- inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
- return &_unknown_fields_;
- }
-
- static const ::google::protobuf::Descriptor* descriptor();
- static const SourceCodeInfo& default_instance();
-
- void Swap(SourceCodeInfo* other);
-
- // implements Message ----------------------------------------------
-
- SourceCodeInfo* New() const;
- void CopyFrom(const ::google::protobuf::Message& from);
- void MergeFrom(const ::google::protobuf::Message& from);
- void CopyFrom(const SourceCodeInfo& from);
- void MergeFrom(const SourceCodeInfo& from);
- void Clear();
- bool IsInitialized() const;
-
- int ByteSize() const;
- bool MergePartialFromCodedStream(
- ::google::protobuf::io::CodedInputStream* input);
- void SerializeWithCachedSizes(
- ::google::protobuf::io::CodedOutputStream* output) const;
- ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
- int GetCachedSize() const { return _cached_size_; }
- private:
- void SharedCtor();
- void SharedDtor();
- void SetCachedSize(int size) const;
- public:
-
- ::google::protobuf::Metadata GetMetadata() const;
-
- // nested types ----------------------------------------------------
-
- typedef SourceCodeInfo_Location Location;
-
- // accessors -------------------------------------------------------
-
- // repeated .google.protobuf.SourceCodeInfo.Location location = 1;
- inline int location_size() const;
- inline void clear_location();
- static const int kLocationFieldNumber = 1;
- inline const ::google::protobuf::SourceCodeInfo_Location& location(int index) const;
- inline ::google::protobuf::SourceCodeInfo_Location* mutable_location(int index);
- inline ::google::protobuf::SourceCodeInfo_Location* add_location();
- inline const ::google::protobuf::RepeatedPtrField< ::google::protobuf::SourceCodeInfo_Location >&
- location() const;
- inline ::google::protobuf::RepeatedPtrField< ::google::protobuf::SourceCodeInfo_Location >*
- mutable_location();
-
- // @@protoc_insertion_point(class_scope:google.protobuf.SourceCodeInfo)
- private:
-
- ::google::protobuf::UnknownFieldSet _unknown_fields_;
-
- ::google::protobuf::RepeatedPtrField< ::google::protobuf::SourceCodeInfo_Location > location_;
-
- mutable int _cached_size_;
- ::google::protobuf::uint32 _has_bits_[(1 + 31) / 32];
-
- friend void LIBPROTOBUF_EXPORT protobuf_AddDesc_google_2fprotobuf_2fdescriptor_2eproto();
- friend void protobuf_AssignDesc_google_2fprotobuf_2fdescriptor_2eproto();
- friend void protobuf_ShutdownFile_google_2fprotobuf_2fdescriptor_2eproto();
-
- void InitAsDefaultInstance();
- static SourceCodeInfo* default_instance_;
-};
-// ===================================================================
-
-
-// ===================================================================
-
-// FileDescriptorSet
-
-// repeated .google.protobuf.FileDescriptorProto file = 1;
-inline int FileDescriptorSet::file_size() const {
- return file_.size();
-}
-inline void FileDescriptorSet::clear_file() {
- file_.Clear();
-}
-inline const ::google::protobuf::FileDescriptorProto& FileDescriptorSet::file(int index) const {
- return file_.Get(index);
-}
-inline ::google::protobuf::FileDescriptorProto* FileDescriptorSet::mutable_file(int index) {
- return file_.Mutable(index);
-}
-inline ::google::protobuf::FileDescriptorProto* FileDescriptorSet::add_file() {
- return file_.Add();
-}
-inline const ::google::protobuf::RepeatedPtrField< ::google::protobuf::FileDescriptorProto >&
-FileDescriptorSet::file() const {
- return file_;
-}
-inline ::google::protobuf::RepeatedPtrField< ::google::protobuf::FileDescriptorProto >*
-FileDescriptorSet::mutable_file() {
- return &file_;
-}
-
-// -------------------------------------------------------------------
-
-// FileDescriptorProto
-
-// optional string name = 1;
-inline bool FileDescriptorProto::has_name() const {
- return (_has_bits_[0] & 0x00000001u) != 0;
-}
-inline void FileDescriptorProto::set_has_name() {
- _has_bits_[0] |= 0x00000001u;
-}
-inline void FileDescriptorProto::clear_has_name() {
- _has_bits_[0] &= ~0x00000001u;
-}
-inline void FileDescriptorProto::clear_name() {
- if (name_ != &::google::protobuf::internal::kEmptyString) {
- name_->clear();
- }
- clear_has_name();
-}
-inline const ::std::string& FileDescriptorProto::name() const {
- return *name_;
-}
-inline void FileDescriptorProto::set_name(const ::std::string& value) {
- set_has_name();
- if (name_ == &::google::protobuf::internal::kEmptyString) {
- name_ = new ::std::string;
- }
- name_->assign(value);
-}
-inline void FileDescriptorProto::set_name(const char* value) {
- set_has_name();
- if (name_ == &::google::protobuf::internal::kEmptyString) {
- name_ = new ::std::string;
- }
- name_->assign(value);
-}
-inline void FileDescriptorProto::set_name(const char* value, size_t size) {
- set_has_name();
- if (name_ == &::google::protobuf::internal::kEmptyString) {
- name_ = new ::std::string;
- }
- name_->assign(reinterpret_cast<const char*>(value), size);
-}
-inline ::std::string* FileDescriptorProto::mutable_name() {
- set_has_name();
- if (name_ == &::google::protobuf::internal::kEmptyString) {
- name_ = new ::std::string;
- }
- return name_;
-}
-inline ::std::string* FileDescriptorProto::release_name() {
- clear_has_name();
- if (name_ == &::google::protobuf::internal::kEmptyString) {
- return NULL;
- } else {
- ::std::string* temp = name_;
- name_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
- return temp;
- }
-}
-
-// optional string package = 2;
-inline bool FileDescriptorProto::has_package() const {
- return (_has_bits_[0] & 0x00000002u) != 0;
-}
-inline void FileDescriptorProto::set_has_package() {
- _has_bits_[0] |= 0x00000002u;
-}
-inline void FileDescriptorProto::clear_has_package() {
- _has_bits_[0] &= ~0x00000002u;
-}
-inline void FileDescriptorProto::clear_package() {
- if (package_ != &::google::protobuf::internal::kEmptyString) {
- package_->clear();
- }
- clear_has_package();
-}
-inline const ::std::string& FileDescriptorProto::package() const {
- return *package_;
-}
-inline void FileDescriptorProto::set_package(const ::std::string& value) {
- set_has_package();
- if (package_ == &::google::protobuf::internal::kEmptyString) {
- package_ = new ::std::string;
- }
- package_->assign(value);
-}
-inline void FileDescriptorProto::set_package(const char* value) {
- set_has_package();
- if (package_ == &::google::protobuf::internal::kEmptyString) {
- package_ = new ::std::string;
- }
- package_->assign(value);
-}
-inline void FileDescriptorProto::set_package(const char* value, size_t size) {
- set_has_package();
- if (package_ == &::google::protobuf::internal::kEmptyString) {
- package_ = new ::std::string;
- }
- package_->assign(reinterpret_cast<const char*>(value), size);
-}
-inline ::std::string* FileDescriptorProto::mutable_package() {
- set_has_package();
- if (package_ == &::google::protobuf::internal::kEmptyString) {
- package_ = new ::std::string;
- }
- return package_;
-}
-inline ::std::string* FileDescriptorProto::release_package() {
- clear_has_package();
- if (package_ == &::google::protobuf::internal::kEmptyString) {
- return NULL;
- } else {
- ::std::string* temp = package_;
- package_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
- return temp;
- }
-}
-
-// repeated string dependency = 3;
-inline int FileDescriptorProto::dependency_size() const {
- return dependency_.size();
-}
-inline void FileDescriptorProto::clear_dependency() {
- dependency_.Clear();
-}
-inline const ::std::string& FileDescriptorProto::dependency(int index) const {
- return dependency_.Get(index);
-}
-inline ::std::string* FileDescriptorProto::mutable_dependency(int index) {
- return dependency_.Mutable(index);
-}
-inline void FileDescriptorProto::set_dependency(int index, const ::std::string& value) {
- dependency_.Mutable(index)->assign(value);
-}
-inline void FileDescriptorProto::set_dependency(int index, const char* value) {
- dependency_.Mutable(index)->assign(value);
-}
-inline void FileDescriptorProto::set_dependency(int index, const char* value, size_t size) {
- dependency_.Mutable(index)->assign(
- reinterpret_cast<const char*>(value), size);
-}
-inline ::std::string* FileDescriptorProto::add_dependency() {
- return dependency_.Add();
-}
-inline void FileDescriptorProto::add_dependency(const ::std::string& value) {
- dependency_.Add()->assign(value);
-}
-inline void FileDescriptorProto::add_dependency(const char* value) {
- dependency_.Add()->assign(value);
-}
-inline void FileDescriptorProto::add_dependency(const char* value, size_t size) {
- dependency_.Add()->assign(reinterpret_cast<const char*>(value), size);
-}
-inline const ::google::protobuf::RepeatedPtrField< ::std::string>&
-FileDescriptorProto::dependency() const {
- return dependency_;
-}
-inline ::google::protobuf::RepeatedPtrField< ::std::string>*
-FileDescriptorProto::mutable_dependency() {
- return &dependency_;
-}
-
-// repeated .google.protobuf.DescriptorProto message_type = 4;
-inline int FileDescriptorProto::message_type_size() const {
- return message_type_.size();
-}
-inline void FileDescriptorProto::clear_message_type() {
- message_type_.Clear();
-}
-inline const ::google::protobuf::DescriptorProto& FileDescriptorProto::message_type(int index) const {
- return message_type_.Get(index);
-}
-inline ::google::protobuf::DescriptorProto* FileDescriptorProto::mutable_message_type(int index) {
- return message_type_.Mutable(index);
-}
-inline ::google::protobuf::DescriptorProto* FileDescriptorProto::add_message_type() {
- return message_type_.Add();
-}
-inline const ::google::protobuf::RepeatedPtrField< ::google::protobuf::DescriptorProto >&
-FileDescriptorProto::message_type() const {
- return message_type_;
-}
-inline ::google::protobuf::RepeatedPtrField< ::google::protobuf::DescriptorProto >*
-FileDescriptorProto::mutable_message_type() {
- return &message_type_;
-}
-
-// repeated .google.protobuf.EnumDescriptorProto enum_type = 5;
-inline int FileDescriptorProto::enum_type_size() const {
- return enum_type_.size();
-}
-inline void FileDescriptorProto::clear_enum_type() {
- enum_type_.Clear();
-}
-inline const ::google::protobuf::EnumDescriptorProto& FileDescriptorProto::enum_type(int index) const {
- return enum_type_.Get(index);
-}
-inline ::google::protobuf::EnumDescriptorProto* FileDescriptorProto::mutable_enum_type(int index) {
- return enum_type_.Mutable(index);
-}
-inline ::google::protobuf::EnumDescriptorProto* FileDescriptorProto::add_enum_type() {
- return enum_type_.Add();
-}
-inline const ::google::protobuf::RepeatedPtrField< ::google::protobuf::EnumDescriptorProto >&
-FileDescriptorProto::enum_type() const {
- return enum_type_;
-}
-inline ::google::protobuf::RepeatedPtrField< ::google::protobuf::EnumDescriptorProto >*
-FileDescriptorProto::mutable_enum_type() {
- return &enum_type_;
-}
-
-// repeated .google.protobuf.ServiceDescriptorProto service = 6;
-inline int FileDescriptorProto::service_size() const {
- return service_.size();
-}
-inline void FileDescriptorProto::clear_service() {
- service_.Clear();
-}
-inline const ::google::protobuf::ServiceDescriptorProto& FileDescriptorProto::service(int index) const {
- return service_.Get(index);
-}
-inline ::google::protobuf::ServiceDescriptorProto* FileDescriptorProto::mutable_service(int index) {
- return service_.Mutable(index);
-}
-inline ::google::protobuf::ServiceDescriptorProto* FileDescriptorProto::add_service() {
- return service_.Add();
-}
-inline const ::google::protobuf::RepeatedPtrField< ::google::protobuf::ServiceDescriptorProto >&
-FileDescriptorProto::service() const {
- return service_;
-}
-inline ::google::protobuf::RepeatedPtrField< ::google::protobuf::ServiceDescriptorProto >*
-FileDescriptorProto::mutable_service() {
- return &service_;
-}
-
-// repeated .google.protobuf.FieldDescriptorProto extension = 7;
-inline int FileDescriptorProto::extension_size() const {
- return extension_.size();
-}
-inline void FileDescriptorProto::clear_extension() {
- extension_.Clear();
-}
-inline const ::google::protobuf::FieldDescriptorProto& FileDescriptorProto::extension(int index) const {
- return extension_.Get(index);
-}
-inline ::google::protobuf::FieldDescriptorProto* FileDescriptorProto::mutable_extension(int index) {
- return extension_.Mutable(index);
-}
-inline ::google::protobuf::FieldDescriptorProto* FileDescriptorProto::add_extension() {
- return extension_.Add();
-}
-inline const ::google::protobuf::RepeatedPtrField< ::google::protobuf::FieldDescriptorProto >&
-FileDescriptorProto::extension() const {
- return extension_;
-}
-inline ::google::protobuf::RepeatedPtrField< ::google::protobuf::FieldDescriptorProto >*
-FileDescriptorProto::mutable_extension() {
- return &extension_;
-}
-
-// optional .google.protobuf.FileOptions options = 8;
-inline bool FileDescriptorProto::has_options() const {
- return (_has_bits_[0] & 0x00000080u) != 0;
-}
-inline void FileDescriptorProto::set_has_options() {
- _has_bits_[0] |= 0x00000080u;
-}
-inline void FileDescriptorProto::clear_has_options() {
- _has_bits_[0] &= ~0x00000080u;
-}
-inline void FileDescriptorProto::clear_options() {
- if (options_ != NULL) options_->::google::protobuf::FileOptions::Clear();
- clear_has_options();
-}
-inline const ::google::protobuf::FileOptions& FileDescriptorProto::options() const {
- return options_ != NULL ? *options_ : *default_instance_->options_;
-}
-inline ::google::protobuf::FileOptions* FileDescriptorProto::mutable_options() {
- set_has_options();
- if (options_ == NULL) options_ = new ::google::protobuf::FileOptions;
- return options_;
-}
-inline ::google::protobuf::FileOptions* FileDescriptorProto::release_options() {
- clear_has_options();
- ::google::protobuf::FileOptions* temp = options_;
- options_ = NULL;
- return temp;
-}
-
-// optional .google.protobuf.SourceCodeInfo source_code_info = 9;
-inline bool FileDescriptorProto::has_source_code_info() const {
- return (_has_bits_[0] & 0x00000100u) != 0;
-}
-inline void FileDescriptorProto::set_has_source_code_info() {
- _has_bits_[0] |= 0x00000100u;
-}
-inline void FileDescriptorProto::clear_has_source_code_info() {
- _has_bits_[0] &= ~0x00000100u;
-}
-inline void FileDescriptorProto::clear_source_code_info() {
- if (source_code_info_ != NULL) source_code_info_->::google::protobuf::SourceCodeInfo::Clear();
- clear_has_source_code_info();
-}
-inline const ::google::protobuf::SourceCodeInfo& FileDescriptorProto::source_code_info() const {
- return source_code_info_ != NULL ? *source_code_info_ : *default_instance_->source_code_info_;
-}
-inline ::google::protobuf::SourceCodeInfo* FileDescriptorProto::mutable_source_code_info() {
- set_has_source_code_info();
- if (source_code_info_ == NULL) source_code_info_ = new ::google::protobuf::SourceCodeInfo;
- return source_code_info_;
-}
-inline ::google::protobuf::SourceCodeInfo* FileDescriptorProto::release_source_code_info() {
- clear_has_source_code_info();
- ::google::protobuf::SourceCodeInfo* temp = source_code_info_;
- source_code_info_ = NULL;
- return temp;
-}
-
-// -------------------------------------------------------------------
-
-// DescriptorProto_ExtensionRange
-
-// optional int32 start = 1;
-inline bool DescriptorProto_ExtensionRange::has_start() const {
- return (_has_bits_[0] & 0x00000001u) != 0;
-}
-inline void DescriptorProto_ExtensionRange::set_has_start() {
- _has_bits_[0] |= 0x00000001u;
-}
-inline void DescriptorProto_ExtensionRange::clear_has_start() {
- _has_bits_[0] &= ~0x00000001u;
-}
-inline void DescriptorProto_ExtensionRange::clear_start() {
- start_ = 0;
- clear_has_start();
-}
-inline ::google::protobuf::int32 DescriptorProto_ExtensionRange::start() const {
- return start_;
-}
-inline void DescriptorProto_ExtensionRange::set_start(::google::protobuf::int32 value) {
- set_has_start();
- start_ = value;
-}
-
-// optional int32 end = 2;
-inline bool DescriptorProto_ExtensionRange::has_end() const {
- return (_has_bits_[0] & 0x00000002u) != 0;
-}
-inline void DescriptorProto_ExtensionRange::set_has_end() {
- _has_bits_[0] |= 0x00000002u;
-}
-inline void DescriptorProto_ExtensionRange::clear_has_end() {
- _has_bits_[0] &= ~0x00000002u;
-}
-inline void DescriptorProto_ExtensionRange::clear_end() {
- end_ = 0;
- clear_has_end();
-}
-inline ::google::protobuf::int32 DescriptorProto_ExtensionRange::end() const {
- return end_;
-}
-inline void DescriptorProto_ExtensionRange::set_end(::google::protobuf::int32 value) {
- set_has_end();
- end_ = value;
-}
-
-// -------------------------------------------------------------------
-
-// DescriptorProto
-
-// optional string name = 1;
-inline bool DescriptorProto::has_name() const {
- return (_has_bits_[0] & 0x00000001u) != 0;
-}
-inline void DescriptorProto::set_has_name() {
- _has_bits_[0] |= 0x00000001u;
-}
-inline void DescriptorProto::clear_has_name() {
- _has_bits_[0] &= ~0x00000001u;
-}
-inline void DescriptorProto::clear_name() {
- if (name_ != &::google::protobuf::internal::kEmptyString) {
- name_->clear();
- }
- clear_has_name();
-}
-inline const ::std::string& DescriptorProto::name() const {
- return *name_;
-}
-inline void DescriptorProto::set_name(const ::std::string& value) {
- set_has_name();
- if (name_ == &::google::protobuf::internal::kEmptyString) {
- name_ = new ::std::string;
- }
- name_->assign(value);
-}
-inline void DescriptorProto::set_name(const char* value) {
- set_has_name();
- if (name_ == &::google::protobuf::internal::kEmptyString) {
- name_ = new ::std::string;
- }
- name_->assign(value);
-}
-inline void DescriptorProto::set_name(const char* value, size_t size) {
- set_has_name();
- if (name_ == &::google::protobuf::internal::kEmptyString) {
- name_ = new ::std::string;
- }
- name_->assign(reinterpret_cast<const char*>(value), size);
-}
-inline ::std::string* DescriptorProto::mutable_name() {
- set_has_name();
- if (name_ == &::google::protobuf::internal::kEmptyString) {
- name_ = new ::std::string;
- }
- return name_;
-}
-inline ::std::string* DescriptorProto::release_name() {
- clear_has_name();
- if (name_ == &::google::protobuf::internal::kEmptyString) {
- return NULL;
- } else {
- ::std::string* temp = name_;
- name_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
- return temp;
- }
-}
-
-// repeated .google.protobuf.FieldDescriptorProto field = 2;
-inline int DescriptorProto::field_size() const {
- return field_.size();
-}
-inline void DescriptorProto::clear_field() {
- field_.Clear();
-}
-inline const ::google::protobuf::FieldDescriptorProto& DescriptorProto::field(int index) const {
- return field_.Get(index);
-}
-inline ::google::protobuf::FieldDescriptorProto* DescriptorProto::mutable_field(int index) {
- return field_.Mutable(index);
-}
-inline ::google::protobuf::FieldDescriptorProto* DescriptorProto::add_field() {
- return field_.Add();
-}
-inline const ::google::protobuf::RepeatedPtrField< ::google::protobuf::FieldDescriptorProto >&
-DescriptorProto::field() const {
- return field_;
-}
-inline ::google::protobuf::RepeatedPtrField< ::google::protobuf::FieldDescriptorProto >*
-DescriptorProto::mutable_field() {
- return &field_;
-}
-
-// repeated .google.protobuf.FieldDescriptorProto extension = 6;
-inline int DescriptorProto::extension_size() const {
- return extension_.size();
-}
-inline void DescriptorProto::clear_extension() {
- extension_.Clear();
-}
-inline const ::google::protobuf::FieldDescriptorProto& DescriptorProto::extension(int index) const {
- return extension_.Get(index);
-}
-inline ::google::protobuf::FieldDescriptorProto* DescriptorProto::mutable_extension(int index) {
- return extension_.Mutable(index);
-}
-inline ::google::protobuf::FieldDescriptorProto* DescriptorProto::add_extension() {
- return extension_.Add();
-}
-inline const ::google::protobuf::RepeatedPtrField< ::google::protobuf::FieldDescriptorProto >&
-DescriptorProto::extension() const {
- return extension_;
-}
-inline ::google::protobuf::RepeatedPtrField< ::google::protobuf::FieldDescriptorProto >*
-DescriptorProto::mutable_extension() {
- return &extension_;
-}
-
-// repeated .google.protobuf.DescriptorProto nested_type = 3;
-inline int DescriptorProto::nested_type_size() const {
- return nested_type_.size();
-}
-inline void DescriptorProto::clear_nested_type() {
- nested_type_.Clear();
-}
-inline const ::google::protobuf::DescriptorProto& DescriptorProto::nested_type(int index) const {
- return nested_type_.Get(index);
-}
-inline ::google::protobuf::DescriptorProto* DescriptorProto::mutable_nested_type(int index) {
- return nested_type_.Mutable(index);
-}
-inline ::google::protobuf::DescriptorProto* DescriptorProto::add_nested_type() {
- return nested_type_.Add();
-}
-inline const ::google::protobuf::RepeatedPtrField< ::google::protobuf::DescriptorProto >&
-DescriptorProto::nested_type() const {
- return nested_type_;
-}
-inline ::google::protobuf::RepeatedPtrField< ::google::protobuf::DescriptorProto >*
-DescriptorProto::mutable_nested_type() {
- return &nested_type_;
-}
-
-// repeated .google.protobuf.EnumDescriptorProto enum_type = 4;
-inline int DescriptorProto::enum_type_size() const {
- return enum_type_.size();
-}
-inline void DescriptorProto::clear_enum_type() {
- enum_type_.Clear();
-}
-inline const ::google::protobuf::EnumDescriptorProto& DescriptorProto::enum_type(int index) const {
- return enum_type_.Get(index);
-}
-inline ::google::protobuf::EnumDescriptorProto* DescriptorProto::mutable_enum_type(int index) {
- return enum_type_.Mutable(index);
-}
-inline ::google::protobuf::EnumDescriptorProto* DescriptorProto::add_enum_type() {
- return enum_type_.Add();
-}
-inline const ::google::protobuf::RepeatedPtrField< ::google::protobuf::EnumDescriptorProto >&
-DescriptorProto::enum_type() const {
- return enum_type_;
-}
-inline ::google::protobuf::RepeatedPtrField< ::google::protobuf::EnumDescriptorProto >*
-DescriptorProto::mutable_enum_type() {
- return &enum_type_;
-}
-
-// repeated .google.protobuf.DescriptorProto.ExtensionRange extension_range = 5;
-inline int DescriptorProto::extension_range_size() const {
- return extension_range_.size();
-}
-inline void DescriptorProto::clear_extension_range() {
- extension_range_.Clear();
-}
-inline const ::google::protobuf::DescriptorProto_ExtensionRange& DescriptorProto::extension_range(int index) const {
- return extension_range_.Get(index);
-}
-inline ::google::protobuf::DescriptorProto_ExtensionRange* DescriptorProto::mutable_extension_range(int index) {
- return extension_range_.Mutable(index);
-}
-inline ::google::protobuf::DescriptorProto_ExtensionRange* DescriptorProto::add_extension_range() {
- return extension_range_.Add();
-}
-inline const ::google::protobuf::RepeatedPtrField< ::google::protobuf::DescriptorProto_ExtensionRange >&
-DescriptorProto::extension_range() const {
- return extension_range_;
-}
-inline ::google::protobuf::RepeatedPtrField< ::google::protobuf::DescriptorProto_ExtensionRange >*
-DescriptorProto::mutable_extension_range() {
- return &extension_range_;
-}
-
-// optional .google.protobuf.MessageOptions options = 7;
-inline bool DescriptorProto::has_options() const {
- return (_has_bits_[0] & 0x00000040u) != 0;
-}
-inline void DescriptorProto::set_has_options() {
- _has_bits_[0] |= 0x00000040u;
-}
-inline void DescriptorProto::clear_has_options() {
- _has_bits_[0] &= ~0x00000040u;
-}
-inline void DescriptorProto::clear_options() {
- if (options_ != NULL) options_->::google::protobuf::MessageOptions::Clear();
- clear_has_options();
-}
-inline const ::google::protobuf::MessageOptions& DescriptorProto::options() const {
- return options_ != NULL ? *options_ : *default_instance_->options_;
-}
-inline ::google::protobuf::MessageOptions* DescriptorProto::mutable_options() {
- set_has_options();
- if (options_ == NULL) options_ = new ::google::protobuf::MessageOptions;
- return options_;
-}
-inline ::google::protobuf::MessageOptions* DescriptorProto::release_options() {
- clear_has_options();
- ::google::protobuf::MessageOptions* temp = options_;
- options_ = NULL;
- return temp;
-}
-
-// -------------------------------------------------------------------
-
-// FieldDescriptorProto
-
-// optional string name = 1;
-inline bool FieldDescriptorProto::has_name() const {
- return (_has_bits_[0] & 0x00000001u) != 0;
-}
-inline void FieldDescriptorProto::set_has_name() {
- _has_bits_[0] |= 0x00000001u;
-}
-inline void FieldDescriptorProto::clear_has_name() {
- _has_bits_[0] &= ~0x00000001u;
-}
-inline void FieldDescriptorProto::clear_name() {
- if (name_ != &::google::protobuf::internal::kEmptyString) {
- name_->clear();
- }
- clear_has_name();
-}
-inline const ::std::string& FieldDescriptorProto::name() const {
- return *name_;
-}
-inline void FieldDescriptorProto::set_name(const ::std::string& value) {
- set_has_name();
- if (name_ == &::google::protobuf::internal::kEmptyString) {
- name_ = new ::std::string;
- }
- name_->assign(value);
-}
-inline void FieldDescriptorProto::set_name(const char* value) {
- set_has_name();
- if (name_ == &::google::protobuf::internal::kEmptyString) {
- name_ = new ::std::string;
- }
- name_->assign(value);
-}
-inline void FieldDescriptorProto::set_name(const char* value, size_t size) {
- set_has_name();
- if (name_ == &::google::protobuf::internal::kEmptyString) {
- name_ = new ::std::string;
- }
- name_->assign(reinterpret_cast<const char*>(value), size);
-}
-inline ::std::string* FieldDescriptorProto::mutable_name() {
- set_has_name();
- if (name_ == &::google::protobuf::internal::kEmptyString) {
- name_ = new ::std::string;
- }
- return name_;
-}
-inline ::std::string* FieldDescriptorProto::release_name() {
- clear_has_name();
- if (name_ == &::google::protobuf::internal::kEmptyString) {
- return NULL;
- } else {
- ::std::string* temp = name_;
- name_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
- return temp;
- }
-}
-
-// optional int32 number = 3;
-inline bool FieldDescriptorProto::has_number() const {
- return (_has_bits_[0] & 0x00000002u) != 0;
-}
-inline void FieldDescriptorProto::set_has_number() {
- _has_bits_[0] |= 0x00000002u;
-}
-inline void FieldDescriptorProto::clear_has_number() {
- _has_bits_[0] &= ~0x00000002u;
-}
-inline void FieldDescriptorProto::clear_number() {
- number_ = 0;
- clear_has_number();
-}
-inline ::google::protobuf::int32 FieldDescriptorProto::number() const {
- return number_;
-}
-inline void FieldDescriptorProto::set_number(::google::protobuf::int32 value) {
- set_has_number();
- number_ = value;
-}
-
-// optional .google.protobuf.FieldDescriptorProto.Label label = 4;
-inline bool FieldDescriptorProto::has_label() const {
- return (_has_bits_[0] & 0x00000004u) != 0;
-}
-inline void FieldDescriptorProto::set_has_label() {
- _has_bits_[0] |= 0x00000004u;
-}
-inline void FieldDescriptorProto::clear_has_label() {
- _has_bits_[0] &= ~0x00000004u;
-}
-inline void FieldDescriptorProto::clear_label() {
- label_ = 1;
- clear_has_label();
-}
-inline ::google::protobuf::FieldDescriptorProto_Label FieldDescriptorProto::label() const {
- return static_cast< ::google::protobuf::FieldDescriptorProto_Label >(label_);
-}
-inline void FieldDescriptorProto::set_label(::google::protobuf::FieldDescriptorProto_Label value) {
- GOOGLE_DCHECK(::google::protobuf::FieldDescriptorProto_Label_IsValid(value));
- set_has_label();
- label_ = value;
-}
-
-// optional .google.protobuf.FieldDescriptorProto.Type type = 5;
-inline bool FieldDescriptorProto::has_type() const {
- return (_has_bits_[0] & 0x00000008u) != 0;
-}
-inline void FieldDescriptorProto::set_has_type() {
- _has_bits_[0] |= 0x00000008u;
-}
-inline void FieldDescriptorProto::clear_has_type() {
- _has_bits_[0] &= ~0x00000008u;
-}
-inline void FieldDescriptorProto::clear_type() {
- type_ = 1;
- clear_has_type();
-}
-inline ::google::protobuf::FieldDescriptorProto_Type FieldDescriptorProto::type() const {
- return static_cast< ::google::protobuf::FieldDescriptorProto_Type >(type_);
-}
-inline void FieldDescriptorProto::set_type(::google::protobuf::FieldDescriptorProto_Type value) {
- GOOGLE_DCHECK(::google::protobuf::FieldDescriptorProto_Type_IsValid(value));
- set_has_type();
- type_ = value;
-}
-
-// optional string type_name = 6;
-inline bool FieldDescriptorProto::has_type_name() const {
- return (_has_bits_[0] & 0x00000010u) != 0;
-}
-inline void FieldDescriptorProto::set_has_type_name() {
- _has_bits_[0] |= 0x00000010u;
-}
-inline void FieldDescriptorProto::clear_has_type_name() {
- _has_bits_[0] &= ~0x00000010u;
-}
-inline void FieldDescriptorProto::clear_type_name() {
- if (type_name_ != &::google::protobuf::internal::kEmptyString) {
- type_name_->clear();
- }
- clear_has_type_name();
-}
-inline const ::std::string& FieldDescriptorProto::type_name() const {
- return *type_name_;
-}
-inline void FieldDescriptorProto::set_type_name(const ::std::string& value) {
- set_has_type_name();
- if (type_name_ == &::google::protobuf::internal::kEmptyString) {
- type_name_ = new ::std::string;
- }
- type_name_->assign(value);
-}
-inline void FieldDescriptorProto::set_type_name(const char* value) {
- set_has_type_name();
- if (type_name_ == &::google::protobuf::internal::kEmptyString) {
- type_name_ = new ::std::string;
- }
- type_name_->assign(value);
-}
-inline void FieldDescriptorProto::set_type_name(const char* value, size_t size) {
- set_has_type_name();
- if (type_name_ == &::google::protobuf::internal::kEmptyString) {
- type_name_ = new ::std::string;
- }
- type_name_->assign(reinterpret_cast<const char*>(value), size);
-}
-inline ::std::string* FieldDescriptorProto::mutable_type_name() {
- set_has_type_name();
- if (type_name_ == &::google::protobuf::internal::kEmptyString) {
- type_name_ = new ::std::string;
- }
- return type_name_;
-}
-inline ::std::string* FieldDescriptorProto::release_type_name() {
- clear_has_type_name();
- if (type_name_ == &::google::protobuf::internal::kEmptyString) {
- return NULL;
- } else {
- ::std::string* temp = type_name_;
- type_name_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
- return temp;
- }
-}
-
-// optional string extendee = 2;
-inline bool FieldDescriptorProto::has_extendee() const {
- return (_has_bits_[0] & 0x00000020u) != 0;
-}
-inline void FieldDescriptorProto::set_has_extendee() {
- _has_bits_[0] |= 0x00000020u;
-}
-inline void FieldDescriptorProto::clear_has_extendee() {
- _has_bits_[0] &= ~0x00000020u;
-}
-inline void FieldDescriptorProto::clear_extendee() {
- if (extendee_ != &::google::protobuf::internal::kEmptyString) {
- extendee_->clear();
- }
- clear_has_extendee();
-}
-inline const ::std::string& FieldDescriptorProto::extendee() const {
- return *extendee_;
-}
-inline void FieldDescriptorProto::set_extendee(const ::std::string& value) {
- set_has_extendee();
- if (extendee_ == &::google::protobuf::internal::kEmptyString) {
- extendee_ = new ::std::string;
- }
- extendee_->assign(value);
-}
-inline void FieldDescriptorProto::set_extendee(const char* value) {
- set_has_extendee();
- if (extendee_ == &::google::protobuf::internal::kEmptyString) {
- extendee_ = new ::std::string;
- }
- extendee_->assign(value);
-}
-inline void FieldDescriptorProto::set_extendee(const char* value, size_t size) {
- set_has_extendee();
- if (extendee_ == &::google::protobuf::internal::kEmptyString) {
- extendee_ = new ::std::string;
- }
- extendee_->assign(reinterpret_cast<const char*>(value), size);
-}
-inline ::std::string* FieldDescriptorProto::mutable_extendee() {
- set_has_extendee();
- if (extendee_ == &::google::protobuf::internal::kEmptyString) {
- extendee_ = new ::std::string;
- }
- return extendee_;
-}
-inline ::std::string* FieldDescriptorProto::release_extendee() {
- clear_has_extendee();
- if (extendee_ == &::google::protobuf::internal::kEmptyString) {
- return NULL;
- } else {
- ::std::string* temp = extendee_;
- extendee_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
- return temp;
- }
-}
-
-// optional string default_value = 7;
-inline bool FieldDescriptorProto::has_default_value() const {
- return (_has_bits_[0] & 0x00000040u) != 0;
-}
-inline void FieldDescriptorProto::set_has_default_value() {
- _has_bits_[0] |= 0x00000040u;
-}
-inline void FieldDescriptorProto::clear_has_default_value() {
- _has_bits_[0] &= ~0x00000040u;
-}
-inline void FieldDescriptorProto::clear_default_value() {
- if (default_value_ != &::google::protobuf::internal::kEmptyString) {
- default_value_->clear();
- }
- clear_has_default_value();
-}
-inline const ::std::string& FieldDescriptorProto::default_value() const {
- return *default_value_;
-}
-inline void FieldDescriptorProto::set_default_value(const ::std::string& value) {
- set_has_default_value();
- if (default_value_ == &::google::protobuf::internal::kEmptyString) {
- default_value_ = new ::std::string;
- }
- default_value_->assign(value);
-}
-inline void FieldDescriptorProto::set_default_value(const char* value) {
- set_has_default_value();
- if (default_value_ == &::google::protobuf::internal::kEmptyString) {
- default_value_ = new ::std::string;
- }
- default_value_->assign(value);
-}
-inline void FieldDescriptorProto::set_default_value(const char* value, size_t size) {
- set_has_default_value();
- if (default_value_ == &::google::protobuf::internal::kEmptyString) {
- default_value_ = new ::std::string;
- }
- default_value_->assign(reinterpret_cast<const char*>(value), size);
-}
-inline ::std::string* FieldDescriptorProto::mutable_default_value() {
- set_has_default_value();
- if (default_value_ == &::google::protobuf::internal::kEmptyString) {
- default_value_ = new ::std::string;
- }
- return default_value_;
-}
-inline ::std::string* FieldDescriptorProto::release_default_value() {
- clear_has_default_value();
- if (default_value_ == &::google::protobuf::internal::kEmptyString) {
- return NULL;
- } else {
- ::std::string* temp = default_value_;
- default_value_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
- return temp;
- }
-}
-
-// optional .google.protobuf.FieldOptions options = 8;
-inline bool FieldDescriptorProto::has_options() const {
- return (_has_bits_[0] & 0x00000080u) != 0;
-}
-inline void FieldDescriptorProto::set_has_options() {
- _has_bits_[0] |= 0x00000080u;
-}
-inline void FieldDescriptorProto::clear_has_options() {
- _has_bits_[0] &= ~0x00000080u;
-}
-inline void FieldDescriptorProto::clear_options() {
- if (options_ != NULL) options_->::google::protobuf::FieldOptions::Clear();
- clear_has_options();
-}
-inline const ::google::protobuf::FieldOptions& FieldDescriptorProto::options() const {
- return options_ != NULL ? *options_ : *default_instance_->options_;
-}
-inline ::google::protobuf::FieldOptions* FieldDescriptorProto::mutable_options() {
- set_has_options();
- if (options_ == NULL) options_ = new ::google::protobuf::FieldOptions;
- return options_;
-}
-inline ::google::protobuf::FieldOptions* FieldDescriptorProto::release_options() {
- clear_has_options();
- ::google::protobuf::FieldOptions* temp = options_;
- options_ = NULL;
- return temp;
-}
-
-// -------------------------------------------------------------------
-
-// EnumDescriptorProto
-
-// optional string name = 1;
-inline bool EnumDescriptorProto::has_name() const {
- return (_has_bits_[0] & 0x00000001u) != 0;
-}
-inline void EnumDescriptorProto::set_has_name() {
- _has_bits_[0] |= 0x00000001u;
-}
-inline void EnumDescriptorProto::clear_has_name() {
- _has_bits_[0] &= ~0x00000001u;
-}
-inline void EnumDescriptorProto::clear_name() {
- if (name_ != &::google::protobuf::internal::kEmptyString) {
- name_->clear();
- }
- clear_has_name();
-}
-inline const ::std::string& EnumDescriptorProto::name() const {
- return *name_;
-}
-inline void EnumDescriptorProto::set_name(const ::std::string& value) {
- set_has_name();
- if (name_ == &::google::protobuf::internal::kEmptyString) {
- name_ = new ::std::string;
- }
- name_->assign(value);
-}
-inline void EnumDescriptorProto::set_name(const char* value) {
- set_has_name();
- if (name_ == &::google::protobuf::internal::kEmptyString) {
- name_ = new ::std::string;
- }
- name_->assign(value);
-}
-inline void EnumDescriptorProto::set_name(const char* value, size_t size) {
- set_has_name();
- if (name_ == &::google::protobuf::internal::kEmptyString) {
- name_ = new ::std::string;
- }
- name_->assign(reinterpret_cast<const char*>(value), size);
-}
-inline ::std::string* EnumDescriptorProto::mutable_name() {
- set_has_name();
- if (name_ == &::google::protobuf::internal::kEmptyString) {
- name_ = new ::std::string;
- }
- return name_;
-}
-inline ::std::string* EnumDescriptorProto::release_name() {
- clear_has_name();
- if (name_ == &::google::protobuf::internal::kEmptyString) {
- return NULL;
- } else {
- ::std::string* temp = name_;
- name_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
- return temp;
- }
-}
-
-// repeated .google.protobuf.EnumValueDescriptorProto value = 2;
-inline int EnumDescriptorProto::value_size() const {
- return value_.size();
-}
-inline void EnumDescriptorProto::clear_value() {
- value_.Clear();
-}
-inline const ::google::protobuf::EnumValueDescriptorProto& EnumDescriptorProto::value(int index) const {
- return value_.Get(index);
-}
-inline ::google::protobuf::EnumValueDescriptorProto* EnumDescriptorProto::mutable_value(int index) {
- return value_.Mutable(index);
-}
-inline ::google::protobuf::EnumValueDescriptorProto* EnumDescriptorProto::add_value() {
- return value_.Add();
-}
-inline const ::google::protobuf::RepeatedPtrField< ::google::protobuf::EnumValueDescriptorProto >&
-EnumDescriptorProto::value() const {
- return value_;
-}
-inline ::google::protobuf::RepeatedPtrField< ::google::protobuf::EnumValueDescriptorProto >*
-EnumDescriptorProto::mutable_value() {
- return &value_;
-}
-
-// optional .google.protobuf.EnumOptions options = 3;
-inline bool EnumDescriptorProto::has_options() const {
- return (_has_bits_[0] & 0x00000004u) != 0;
-}
-inline void EnumDescriptorProto::set_has_options() {
- _has_bits_[0] |= 0x00000004u;
-}
-inline void EnumDescriptorProto::clear_has_options() {
- _has_bits_[0] &= ~0x00000004u;
-}
-inline void EnumDescriptorProto::clear_options() {
- if (options_ != NULL) options_->::google::protobuf::EnumOptions::Clear();
- clear_has_options();
-}
-inline const ::google::protobuf::EnumOptions& EnumDescriptorProto::options() const {
- return options_ != NULL ? *options_ : *default_instance_->options_;
-}
-inline ::google::protobuf::EnumOptions* EnumDescriptorProto::mutable_options() {
- set_has_options();
- if (options_ == NULL) options_ = new ::google::protobuf::EnumOptions;
- return options_;
-}
-inline ::google::protobuf::EnumOptions* EnumDescriptorProto::release_options() {
- clear_has_options();
- ::google::protobuf::EnumOptions* temp = options_;
- options_ = NULL;
- return temp;
-}
-
-// -------------------------------------------------------------------
-
-// EnumValueDescriptorProto
-
-// optional string name = 1;
-inline bool EnumValueDescriptorProto::has_name() const {
- return (_has_bits_[0] & 0x00000001u) != 0;
-}
-inline void EnumValueDescriptorProto::set_has_name() {
- _has_bits_[0] |= 0x00000001u;
-}
-inline void EnumValueDescriptorProto::clear_has_name() {
- _has_bits_[0] &= ~0x00000001u;
-}
-inline void EnumValueDescriptorProto::clear_name() {
- if (name_ != &::google::protobuf::internal::kEmptyString) {
- name_->clear();
- }
- clear_has_name();
-}
-inline const ::std::string& EnumValueDescriptorProto::name() const {
- return *name_;
-}
-inline void EnumValueDescriptorProto::set_name(const ::std::string& value) {
- set_has_name();
- if (name_ == &::google::protobuf::internal::kEmptyString) {
- name_ = new ::std::string;
- }
- name_->assign(value);
-}
-inline void EnumValueDescriptorProto::set_name(const char* value) {
- set_has_name();
- if (name_ == &::google::protobuf::internal::kEmptyString) {
- name_ = new ::std::string;
- }
- name_->assign(value);
-}
-inline void EnumValueDescriptorProto::set_name(const char* value, size_t size) {
- set_has_name();
- if (name_ == &::google::protobuf::internal::kEmptyString) {
- name_ = new ::std::string;
- }
- name_->assign(reinterpret_cast<const char*>(value), size);
-}
-inline ::std::string* EnumValueDescriptorProto::mutable_name() {
- set_has_name();
- if (name_ == &::google::protobuf::internal::kEmptyString) {
- name_ = new ::std::string;
- }
- return name_;
-}
-inline ::std::string* EnumValueDescriptorProto::release_name() {
- clear_has_name();
- if (name_ == &::google::protobuf::internal::kEmptyString) {
- return NULL;
- } else {
- ::std::string* temp = name_;
- name_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
- return temp;
- }
-}
-
-// optional int32 number = 2;
-inline bool EnumValueDescriptorProto::has_number() const {
- return (_has_bits_[0] & 0x00000002u) != 0;
-}
-inline void EnumValueDescriptorProto::set_has_number() {
- _has_bits_[0] |= 0x00000002u;
-}
-inline void EnumValueDescriptorProto::clear_has_number() {
- _has_bits_[0] &= ~0x00000002u;
-}
-inline void EnumValueDescriptorProto::clear_number() {
- number_ = 0;
- clear_has_number();
-}
-inline ::google::protobuf::int32 EnumValueDescriptorProto::number() const {
- return number_;
-}
-inline void EnumValueDescriptorProto::set_number(::google::protobuf::int32 value) {
- set_has_number();
- number_ = value;
-}
-
-// optional .google.protobuf.EnumValueOptions options = 3;
-inline bool EnumValueDescriptorProto::has_options() const {
- return (_has_bits_[0] & 0x00000004u) != 0;
-}
-inline void EnumValueDescriptorProto::set_has_options() {
- _has_bits_[0] |= 0x00000004u;
-}
-inline void EnumValueDescriptorProto::clear_has_options() {
- _has_bits_[0] &= ~0x00000004u;
-}
-inline void EnumValueDescriptorProto::clear_options() {
- if (options_ != NULL) options_->::google::protobuf::EnumValueOptions::Clear();
- clear_has_options();
-}
-inline const ::google::protobuf::EnumValueOptions& EnumValueDescriptorProto::options() const {
- return options_ != NULL ? *options_ : *default_instance_->options_;
-}
-inline ::google::protobuf::EnumValueOptions* EnumValueDescriptorProto::mutable_options() {
- set_has_options();
- if (options_ == NULL) options_ = new ::google::protobuf::EnumValueOptions;
- return options_;
-}
-inline ::google::protobuf::EnumValueOptions* EnumValueDescriptorProto::release_options() {
- clear_has_options();
- ::google::protobuf::EnumValueOptions* temp = options_;
- options_ = NULL;
- return temp;
-}
-
-// -------------------------------------------------------------------
-
-// ServiceDescriptorProto
-
-// optional string name = 1;
-inline bool ServiceDescriptorProto::has_name() const {
- return (_has_bits_[0] & 0x00000001u) != 0;
-}
-inline void ServiceDescriptorProto::set_has_name() {
- _has_bits_[0] |= 0x00000001u;
-}
-inline void ServiceDescriptorProto::clear_has_name() {
- _has_bits_[0] &= ~0x00000001u;
-}
-inline void ServiceDescriptorProto::clear_name() {
- if (name_ != &::google::protobuf::internal::kEmptyString) {
- name_->clear();
- }
- clear_has_name();
-}
-inline const ::std::string& ServiceDescriptorProto::name() const {
- return *name_;
-}
-inline void ServiceDescriptorProto::set_name(const ::std::string& value) {
- set_has_name();
- if (name_ == &::google::protobuf::internal::kEmptyString) {
- name_ = new ::std::string;
- }
- name_->assign(value);
-}
-inline void ServiceDescriptorProto::set_name(const char* value) {
- set_has_name();
- if (name_ == &::google::protobuf::internal::kEmptyString) {
- name_ = new ::std::string;
- }
- name_->assign(value);
-}
-inline void ServiceDescriptorProto::set_name(const char* value, size_t size) {
- set_has_name();
- if (name_ == &::google::protobuf::internal::kEmptyString) {
- name_ = new ::std::string;
- }
- name_->assign(reinterpret_cast<const char*>(value), size);
-}
-inline ::std::string* ServiceDescriptorProto::mutable_name() {
- set_has_name();
- if (name_ == &::google::protobuf::internal::kEmptyString) {
- name_ = new ::std::string;
- }
- return name_;
-}
-inline ::std::string* ServiceDescriptorProto::release_name() {
- clear_has_name();
- if (name_ == &::google::protobuf::internal::kEmptyString) {
- return NULL;
- } else {
- ::std::string* temp = name_;
- name_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
- return temp;
- }
-}
-
-// repeated .google.protobuf.MethodDescriptorProto method = 2;
-inline int ServiceDescriptorProto::method_size() const {
- return method_.size();
-}
-inline void ServiceDescriptorProto::clear_method() {
- method_.Clear();
-}
-inline const ::google::protobuf::MethodDescriptorProto& ServiceDescriptorProto::method(int index) const {
- return method_.Get(index);
-}
-inline ::google::protobuf::MethodDescriptorProto* ServiceDescriptorProto::mutable_method(int index) {
- return method_.Mutable(index);
-}
-inline ::google::protobuf::MethodDescriptorProto* ServiceDescriptorProto::add_method() {
- return method_.Add();
-}
-inline const ::google::protobuf::RepeatedPtrField< ::google::protobuf::MethodDescriptorProto >&
-ServiceDescriptorProto::method() const {
- return method_;
-}
-inline ::google::protobuf::RepeatedPtrField< ::google::protobuf::MethodDescriptorProto >*
-ServiceDescriptorProto::mutable_method() {
- return &method_;
-}
-
-// optional .google.protobuf.ServiceOptions options = 3;
-inline bool ServiceDescriptorProto::has_options() const {
- return (_has_bits_[0] & 0x00000004u) != 0;
-}
-inline void ServiceDescriptorProto::set_has_options() {
- _has_bits_[0] |= 0x00000004u;
-}
-inline void ServiceDescriptorProto::clear_has_options() {
- _has_bits_[0] &= ~0x00000004u;
-}
-inline void ServiceDescriptorProto::clear_options() {
- if (options_ != NULL) options_->::google::protobuf::ServiceOptions::Clear();
- clear_has_options();
-}
-inline const ::google::protobuf::ServiceOptions& ServiceDescriptorProto::options() const {
- return options_ != NULL ? *options_ : *default_instance_->options_;
-}
-inline ::google::protobuf::ServiceOptions* ServiceDescriptorProto::mutable_options() {
- set_has_options();
- if (options_ == NULL) options_ = new ::google::protobuf::ServiceOptions;
- return options_;
-}
-inline ::google::protobuf::ServiceOptions* ServiceDescriptorProto::release_options() {
- clear_has_options();
- ::google::protobuf::ServiceOptions* temp = options_;
- options_ = NULL;
- return temp;
-}
-
-// -------------------------------------------------------------------
-
-// MethodDescriptorProto
-
-// optional string name = 1;
-inline bool MethodDescriptorProto::has_name() const {
- return (_has_bits_[0] & 0x00000001u) != 0;
-}
-inline void MethodDescriptorProto::set_has_name() {
- _has_bits_[0] |= 0x00000001u;
-}
-inline void MethodDescriptorProto::clear_has_name() {
- _has_bits_[0] &= ~0x00000001u;
-}
-inline void MethodDescriptorProto::clear_name() {
- if (name_ != &::google::protobuf::internal::kEmptyString) {
- name_->clear();
- }
- clear_has_name();
-}
-inline const ::std::string& MethodDescriptorProto::name() const {
- return *name_;
-}
-inline void MethodDescriptorProto::set_name(const ::std::string& value) {
- set_has_name();
- if (name_ == &::google::protobuf::internal::kEmptyString) {
- name_ = new ::std::string;
- }
- name_->assign(value);
-}
-inline void MethodDescriptorProto::set_name(const char* value) {
- set_has_name();
- if (name_ == &::google::protobuf::internal::kEmptyString) {
- name_ = new ::std::string;
- }
- name_->assign(value);
-}
-inline void MethodDescriptorProto::set_name(const char* value, size_t size) {
- set_has_name();
- if (name_ == &::google::protobuf::internal::kEmptyString) {
- name_ = new ::std::string;
- }
- name_->assign(reinterpret_cast<const char*>(value), size);
-}
-inline ::std::string* MethodDescriptorProto::mutable_name() {
- set_has_name();
- if (name_ == &::google::protobuf::internal::kEmptyString) {
- name_ = new ::std::string;
- }
- return name_;
-}
-inline ::std::string* MethodDescriptorProto::release_name() {
- clear_has_name();
- if (name_ == &::google::protobuf::internal::kEmptyString) {
- return NULL;
- } else {
- ::std::string* temp = name_;
- name_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
- return temp;
- }
-}
-
-// optional string input_type = 2;
-inline bool MethodDescriptorProto::has_input_type() const {
- return (_has_bits_[0] & 0x00000002u) != 0;
-}
-inline void MethodDescriptorProto::set_has_input_type() {
- _has_bits_[0] |= 0x00000002u;
-}
-inline void MethodDescriptorProto::clear_has_input_type() {
- _has_bits_[0] &= ~0x00000002u;
-}
-inline void MethodDescriptorProto::clear_input_type() {
- if (input_type_ != &::google::protobuf::internal::kEmptyString) {
- input_type_->clear();
- }
- clear_has_input_type();
-}
-inline const ::std::string& MethodDescriptorProto::input_type() const {
- return *input_type_;
-}
-inline void MethodDescriptorProto::set_input_type(const ::std::string& value) {
- set_has_input_type();
- if (input_type_ == &::google::protobuf::internal::kEmptyString) {
- input_type_ = new ::std::string;
- }
- input_type_->assign(value);
-}
-inline void MethodDescriptorProto::set_input_type(const char* value) {
- set_has_input_type();
- if (input_type_ == &::google::protobuf::internal::kEmptyString) {
- input_type_ = new ::std::string;
- }
- input_type_->assign(value);
-}
-inline void MethodDescriptorProto::set_input_type(const char* value, size_t size) {
- set_has_input_type();
- if (input_type_ == &::google::protobuf::internal::kEmptyString) {
- input_type_ = new ::std::string;
- }
- input_type_->assign(reinterpret_cast<const char*>(value), size);
-}
-inline ::std::string* MethodDescriptorProto::mutable_input_type() {
- set_has_input_type();
- if (input_type_ == &::google::protobuf::internal::kEmptyString) {
- input_type_ = new ::std::string;
- }
- return input_type_;
-}
-inline ::std::string* MethodDescriptorProto::release_input_type() {
- clear_has_input_type();
- if (input_type_ == &::google::protobuf::internal::kEmptyString) {
- return NULL;
- } else {
- ::std::string* temp = input_type_;
- input_type_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
- return temp;
- }
-}
-
-// optional string output_type = 3;
-inline bool MethodDescriptorProto::has_output_type() const {
- return (_has_bits_[0] & 0x00000004u) != 0;
-}
-inline void MethodDescriptorProto::set_has_output_type() {
- _has_bits_[0] |= 0x00000004u;
-}
-inline void MethodDescriptorProto::clear_has_output_type() {
- _has_bits_[0] &= ~0x00000004u;
-}
-inline void MethodDescriptorProto::clear_output_type() {
- if (output_type_ != &::google::protobuf::internal::kEmptyString) {
- output_type_->clear();
- }
- clear_has_output_type();
-}
-inline const ::std::string& MethodDescriptorProto::output_type() const {
- return *output_type_;
-}
-inline void MethodDescriptorProto::set_output_type(const ::std::string& value) {
- set_has_output_type();
- if (output_type_ == &::google::protobuf::internal::kEmptyString) {
- output_type_ = new ::std::string;
- }
- output_type_->assign(value);
-}
-inline void MethodDescriptorProto::set_output_type(const char* value) {
- set_has_output_type();
- if (output_type_ == &::google::protobuf::internal::kEmptyString) {
- output_type_ = new ::std::string;
- }
- output_type_->assign(value);
-}
-inline void MethodDescriptorProto::set_output_type(const char* value, size_t size) {
- set_has_output_type();
- if (output_type_ == &::google::protobuf::internal::kEmptyString) {
- output_type_ = new ::std::string;
- }
- output_type_->assign(reinterpret_cast<const char*>(value), size);
-}
-inline ::std::string* MethodDescriptorProto::mutable_output_type() {
- set_has_output_type();
- if (output_type_ == &::google::protobuf::internal::kEmptyString) {
- output_type_ = new ::std::string;
- }
- return output_type_;
-}
-inline ::std::string* MethodDescriptorProto::release_output_type() {
- clear_has_output_type();
- if (output_type_ == &::google::protobuf::internal::kEmptyString) {
- return NULL;
- } else {
- ::std::string* temp = output_type_;
- output_type_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
- return temp;
- }
-}
-
-// optional .google.protobuf.MethodOptions options = 4;
-inline bool MethodDescriptorProto::has_options() const {
- return (_has_bits_[0] & 0x00000008u) != 0;
-}
-inline void MethodDescriptorProto::set_has_options() {
- _has_bits_[0] |= 0x00000008u;
-}
-inline void MethodDescriptorProto::clear_has_options() {
- _has_bits_[0] &= ~0x00000008u;
-}
-inline void MethodDescriptorProto::clear_options() {
- if (options_ != NULL) options_->::google::protobuf::MethodOptions::Clear();
- clear_has_options();
-}
-inline const ::google::protobuf::MethodOptions& MethodDescriptorProto::options() const {
- return options_ != NULL ? *options_ : *default_instance_->options_;
-}
-inline ::google::protobuf::MethodOptions* MethodDescriptorProto::mutable_options() {
- set_has_options();
- if (options_ == NULL) options_ = new ::google::protobuf::MethodOptions;
- return options_;
-}
-inline ::google::protobuf::MethodOptions* MethodDescriptorProto::release_options() {
- clear_has_options();
- ::google::protobuf::MethodOptions* temp = options_;
- options_ = NULL;
- return temp;
-}
-
-// -------------------------------------------------------------------
-
-// FileOptions
-
-// optional string java_package = 1;
-inline bool FileOptions::has_java_package() const {
- return (_has_bits_[0] & 0x00000001u) != 0;
-}
-inline void FileOptions::set_has_java_package() {
- _has_bits_[0] |= 0x00000001u;
-}
-inline void FileOptions::clear_has_java_package() {
- _has_bits_[0] &= ~0x00000001u;
-}
-inline void FileOptions::clear_java_package() {
- if (java_package_ != &::google::protobuf::internal::kEmptyString) {
- java_package_->clear();
- }
- clear_has_java_package();
-}
-inline const ::std::string& FileOptions::java_package() const {
- return *java_package_;
-}
-inline void FileOptions::set_java_package(const ::std::string& value) {
- set_has_java_package();
- if (java_package_ == &::google::protobuf::internal::kEmptyString) {
- java_package_ = new ::std::string;
- }
- java_package_->assign(value);
-}
-inline void FileOptions::set_java_package(const char* value) {
- set_has_java_package();
- if (java_package_ == &::google::protobuf::internal::kEmptyString) {
- java_package_ = new ::std::string;
- }
- java_package_->assign(value);
-}
-inline void FileOptions::set_java_package(const char* value, size_t size) {
- set_has_java_package();
- if (java_package_ == &::google::protobuf::internal::kEmptyString) {
- java_package_ = new ::std::string;
- }
- java_package_->assign(reinterpret_cast<const char*>(value), size);
-}
-inline ::std::string* FileOptions::mutable_java_package() {
- set_has_java_package();
- if (java_package_ == &::google::protobuf::internal::kEmptyString) {
- java_package_ = new ::std::string;
- }
- return java_package_;
-}
-inline ::std::string* FileOptions::release_java_package() {
- clear_has_java_package();
- if (java_package_ == &::google::protobuf::internal::kEmptyString) {
- return NULL;
- } else {
- ::std::string* temp = java_package_;
- java_package_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
- return temp;
- }
-}
-
-// optional string java_outer_classname = 8;
-inline bool FileOptions::has_java_outer_classname() const {
- return (_has_bits_[0] & 0x00000002u) != 0;
-}
-inline void FileOptions::set_has_java_outer_classname() {
- _has_bits_[0] |= 0x00000002u;
-}
-inline void FileOptions::clear_has_java_outer_classname() {
- _has_bits_[0] &= ~0x00000002u;
-}
-inline void FileOptions::clear_java_outer_classname() {
- if (java_outer_classname_ != &::google::protobuf::internal::kEmptyString) {
- java_outer_classname_->clear();
- }
- clear_has_java_outer_classname();
-}
-inline const ::std::string& FileOptions::java_outer_classname() const {
- return *java_outer_classname_;
-}
-inline void FileOptions::set_java_outer_classname(const ::std::string& value) {
- set_has_java_outer_classname();
- if (java_outer_classname_ == &::google::protobuf::internal::kEmptyString) {
- java_outer_classname_ = new ::std::string;
- }
- java_outer_classname_->assign(value);
-}
-inline void FileOptions::set_java_outer_classname(const char* value) {
- set_has_java_outer_classname();
- if (java_outer_classname_ == &::google::protobuf::internal::kEmptyString) {
- java_outer_classname_ = new ::std::string;
- }
- java_outer_classname_->assign(value);
-}
-inline void FileOptions::set_java_outer_classname(const char* value, size_t size) {
- set_has_java_outer_classname();
- if (java_outer_classname_ == &::google::protobuf::internal::kEmptyString) {
- java_outer_classname_ = new ::std::string;
- }
- java_outer_classname_->assign(reinterpret_cast<const char*>(value), size);
-}
-inline ::std::string* FileOptions::mutable_java_outer_classname() {
- set_has_java_outer_classname();
- if (java_outer_classname_ == &::google::protobuf::internal::kEmptyString) {
- java_outer_classname_ = new ::std::string;
- }
- return java_outer_classname_;
-}
-inline ::std::string* FileOptions::release_java_outer_classname() {
- clear_has_java_outer_classname();
- if (java_outer_classname_ == &::google::protobuf::internal::kEmptyString) {
- return NULL;
- } else {
- ::std::string* temp = java_outer_classname_;
- java_outer_classname_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
- return temp;
- }
-}
-
-// optional bool java_multiple_files = 10 [default = false];
-inline bool FileOptions::has_java_multiple_files() const {
- return (_has_bits_[0] & 0x00000004u) != 0;
-}
-inline void FileOptions::set_has_java_multiple_files() {
- _has_bits_[0] |= 0x00000004u;
-}
-inline void FileOptions::clear_has_java_multiple_files() {
- _has_bits_[0] &= ~0x00000004u;
-}
-inline void FileOptions::clear_java_multiple_files() {
- java_multiple_files_ = false;
- clear_has_java_multiple_files();
-}
-inline bool FileOptions::java_multiple_files() const {
- return java_multiple_files_;
-}
-inline void FileOptions::set_java_multiple_files(bool value) {
- set_has_java_multiple_files();
- java_multiple_files_ = value;
-}
-
-// optional bool java_generate_equals_and_hash = 20 [default = false];
-inline bool FileOptions::has_java_generate_equals_and_hash() const {
- return (_has_bits_[0] & 0x00000008u) != 0;
-}
-inline void FileOptions::set_has_java_generate_equals_and_hash() {
- _has_bits_[0] |= 0x00000008u;
-}
-inline void FileOptions::clear_has_java_generate_equals_and_hash() {
- _has_bits_[0] &= ~0x00000008u;
-}
-inline void FileOptions::clear_java_generate_equals_and_hash() {
- java_generate_equals_and_hash_ = false;
- clear_has_java_generate_equals_and_hash();
-}
-inline bool FileOptions::java_generate_equals_and_hash() const {
- return java_generate_equals_and_hash_;
-}
-inline void FileOptions::set_java_generate_equals_and_hash(bool value) {
- set_has_java_generate_equals_and_hash();
- java_generate_equals_and_hash_ = value;
-}
-
-// optional .google.protobuf.FileOptions.OptimizeMode optimize_for = 9 [default = SPEED];
-inline bool FileOptions::has_optimize_for() const {
- return (_has_bits_[0] & 0x00000010u) != 0;
-}
-inline void FileOptions::set_has_optimize_for() {
- _has_bits_[0] |= 0x00000010u;
-}
-inline void FileOptions::clear_has_optimize_for() {
- _has_bits_[0] &= ~0x00000010u;
-}
-inline void FileOptions::clear_optimize_for() {
- optimize_for_ = 1;
- clear_has_optimize_for();
-}
-inline ::google::protobuf::FileOptions_OptimizeMode FileOptions::optimize_for() const {
- return static_cast< ::google::protobuf::FileOptions_OptimizeMode >(optimize_for_);
-}
-inline void FileOptions::set_optimize_for(::google::protobuf::FileOptions_OptimizeMode value) {
- GOOGLE_DCHECK(::google::protobuf::FileOptions_OptimizeMode_IsValid(value));
- set_has_optimize_for();
- optimize_for_ = value;
-}
-
-// optional bool cc_generic_services = 16 [default = false];
-inline bool FileOptions::has_cc_generic_services() const {
- return (_has_bits_[0] & 0x00000020u) != 0;
-}
-inline void FileOptions::set_has_cc_generic_services() {
- _has_bits_[0] |= 0x00000020u;
-}
-inline void FileOptions::clear_has_cc_generic_services() {
- _has_bits_[0] &= ~0x00000020u;
-}
-inline void FileOptions::clear_cc_generic_services() {
- cc_generic_services_ = false;
- clear_has_cc_generic_services();
-}
-inline bool FileOptions::cc_generic_services() const {
- return cc_generic_services_;
-}
-inline void FileOptions::set_cc_generic_services(bool value) {
- set_has_cc_generic_services();
- cc_generic_services_ = value;
-}
-
-// optional bool java_generic_services = 17 [default = false];
-inline bool FileOptions::has_java_generic_services() const {
- return (_has_bits_[0] & 0x00000040u) != 0;
-}
-inline void FileOptions::set_has_java_generic_services() {
- _has_bits_[0] |= 0x00000040u;
-}
-inline void FileOptions::clear_has_java_generic_services() {
- _has_bits_[0] &= ~0x00000040u;
-}
-inline void FileOptions::clear_java_generic_services() {
- java_generic_services_ = false;
- clear_has_java_generic_services();
-}
-inline bool FileOptions::java_generic_services() const {
- return java_generic_services_;
-}
-inline void FileOptions::set_java_generic_services(bool value) {
- set_has_java_generic_services();
- java_generic_services_ = value;
-}
-
-// optional bool py_generic_services = 18 [default = false];
-inline bool FileOptions::has_py_generic_services() const {
- return (_has_bits_[0] & 0x00000080u) != 0;
-}
-inline void FileOptions::set_has_py_generic_services() {
- _has_bits_[0] |= 0x00000080u;
-}
-inline void FileOptions::clear_has_py_generic_services() {
- _has_bits_[0] &= ~0x00000080u;
-}
-inline void FileOptions::clear_py_generic_services() {
- py_generic_services_ = false;
- clear_has_py_generic_services();
-}
-inline bool FileOptions::py_generic_services() const {
- return py_generic_services_;
-}
-inline void FileOptions::set_py_generic_services(bool value) {
- set_has_py_generic_services();
- py_generic_services_ = value;
-}
-
-// repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
-inline int FileOptions::uninterpreted_option_size() const {
- return uninterpreted_option_.size();
-}
-inline void FileOptions::clear_uninterpreted_option() {
- uninterpreted_option_.Clear();
-}
-inline const ::google::protobuf::UninterpretedOption& FileOptions::uninterpreted_option(int index) const {
- return uninterpreted_option_.Get(index);
-}
-inline ::google::protobuf::UninterpretedOption* FileOptions::mutable_uninterpreted_option(int index) {
- return uninterpreted_option_.Mutable(index);
-}
-inline ::google::protobuf::UninterpretedOption* FileOptions::add_uninterpreted_option() {
- return uninterpreted_option_.Add();
-}
-inline const ::google::protobuf::RepeatedPtrField< ::google::protobuf::UninterpretedOption >&
-FileOptions::uninterpreted_option() const {
- return uninterpreted_option_;
-}
-inline ::google::protobuf::RepeatedPtrField< ::google::protobuf::UninterpretedOption >*
-FileOptions::mutable_uninterpreted_option() {
- return &uninterpreted_option_;
-}
-
-// -------------------------------------------------------------------
-
-// MessageOptions
-
-// optional bool message_set_wire_format = 1 [default = false];
-inline bool MessageOptions::has_message_set_wire_format() const {
- return (_has_bits_[0] & 0x00000001u) != 0;
-}
-inline void MessageOptions::set_has_message_set_wire_format() {
- _has_bits_[0] |= 0x00000001u;
-}
-inline void MessageOptions::clear_has_message_set_wire_format() {
- _has_bits_[0] &= ~0x00000001u;
-}
-inline void MessageOptions::clear_message_set_wire_format() {
- message_set_wire_format_ = false;
- clear_has_message_set_wire_format();
-}
-inline bool MessageOptions::message_set_wire_format() const {
- return message_set_wire_format_;
-}
-inline void MessageOptions::set_message_set_wire_format(bool value) {
- set_has_message_set_wire_format();
- message_set_wire_format_ = value;
-}
-
-// optional bool no_standard_descriptor_accessor = 2 [default = false];
-inline bool MessageOptions::has_no_standard_descriptor_accessor() const {
- return (_has_bits_[0] & 0x00000002u) != 0;
-}
-inline void MessageOptions::set_has_no_standard_descriptor_accessor() {
- _has_bits_[0] |= 0x00000002u;
-}
-inline void MessageOptions::clear_has_no_standard_descriptor_accessor() {
- _has_bits_[0] &= ~0x00000002u;
-}
-inline void MessageOptions::clear_no_standard_descriptor_accessor() {
- no_standard_descriptor_accessor_ = false;
- clear_has_no_standard_descriptor_accessor();
-}
-inline bool MessageOptions::no_standard_descriptor_accessor() const {
- return no_standard_descriptor_accessor_;
-}
-inline void MessageOptions::set_no_standard_descriptor_accessor(bool value) {
- set_has_no_standard_descriptor_accessor();
- no_standard_descriptor_accessor_ = value;
-}
-
-// repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
-inline int MessageOptions::uninterpreted_option_size() const {
- return uninterpreted_option_.size();
-}
-inline void MessageOptions::clear_uninterpreted_option() {
- uninterpreted_option_.Clear();
-}
-inline const ::google::protobuf::UninterpretedOption& MessageOptions::uninterpreted_option(int index) const {
- return uninterpreted_option_.Get(index);
-}
-inline ::google::protobuf::UninterpretedOption* MessageOptions::mutable_uninterpreted_option(int index) {
- return uninterpreted_option_.Mutable(index);
-}
-inline ::google::protobuf::UninterpretedOption* MessageOptions::add_uninterpreted_option() {
- return uninterpreted_option_.Add();
-}
-inline const ::google::protobuf::RepeatedPtrField< ::google::protobuf::UninterpretedOption >&
-MessageOptions::uninterpreted_option() const {
- return uninterpreted_option_;
-}
-inline ::google::protobuf::RepeatedPtrField< ::google::protobuf::UninterpretedOption >*
-MessageOptions::mutable_uninterpreted_option() {
- return &uninterpreted_option_;
-}
-
-// -------------------------------------------------------------------
-
-// FieldOptions
-
-// optional .google.protobuf.FieldOptions.CType ctype = 1 [default = STRING];
-inline bool FieldOptions::has_ctype() const {
- return (_has_bits_[0] & 0x00000001u) != 0;
-}
-inline void FieldOptions::set_has_ctype() {
- _has_bits_[0] |= 0x00000001u;
-}
-inline void FieldOptions::clear_has_ctype() {
- _has_bits_[0] &= ~0x00000001u;
-}
-inline void FieldOptions::clear_ctype() {
- ctype_ = 0;
- clear_has_ctype();
-}
-inline ::google::protobuf::FieldOptions_CType FieldOptions::ctype() const {
- return static_cast< ::google::protobuf::FieldOptions_CType >(ctype_);
-}
-inline void FieldOptions::set_ctype(::google::protobuf::FieldOptions_CType value) {
- GOOGLE_DCHECK(::google::protobuf::FieldOptions_CType_IsValid(value));
- set_has_ctype();
- ctype_ = value;
-}
-
-// optional bool packed = 2;
-inline bool FieldOptions::has_packed() const {
- return (_has_bits_[0] & 0x00000002u) != 0;
-}
-inline void FieldOptions::set_has_packed() {
- _has_bits_[0] |= 0x00000002u;
-}
-inline void FieldOptions::clear_has_packed() {
- _has_bits_[0] &= ~0x00000002u;
-}
-inline void FieldOptions::clear_packed() {
- packed_ = false;
- clear_has_packed();
-}
-inline bool FieldOptions::packed() const {
- return packed_;
-}
-inline void FieldOptions::set_packed(bool value) {
- set_has_packed();
- packed_ = value;
-}
-
-// optional bool deprecated = 3 [default = false];
-inline bool FieldOptions::has_deprecated() const {
- return (_has_bits_[0] & 0x00000004u) != 0;
-}
-inline void FieldOptions::set_has_deprecated() {
- _has_bits_[0] |= 0x00000004u;
-}
-inline void FieldOptions::clear_has_deprecated() {
- _has_bits_[0] &= ~0x00000004u;
-}
-inline void FieldOptions::clear_deprecated() {
- deprecated_ = false;
- clear_has_deprecated();
-}
-inline bool FieldOptions::deprecated() const {
- return deprecated_;
-}
-inline void FieldOptions::set_deprecated(bool value) {
- set_has_deprecated();
- deprecated_ = value;
-}
-
-// optional string experimental_map_key = 9;
-inline bool FieldOptions::has_experimental_map_key() const {
- return (_has_bits_[0] & 0x00000008u) != 0;
-}
-inline void FieldOptions::set_has_experimental_map_key() {
- _has_bits_[0] |= 0x00000008u;
-}
-inline void FieldOptions::clear_has_experimental_map_key() {
- _has_bits_[0] &= ~0x00000008u;
-}
-inline void FieldOptions::clear_experimental_map_key() {
- if (experimental_map_key_ != &::google::protobuf::internal::kEmptyString) {
- experimental_map_key_->clear();
- }
- clear_has_experimental_map_key();
-}
-inline const ::std::string& FieldOptions::experimental_map_key() const {
- return *experimental_map_key_;
-}
-inline void FieldOptions::set_experimental_map_key(const ::std::string& value) {
- set_has_experimental_map_key();
- if (experimental_map_key_ == &::google::protobuf::internal::kEmptyString) {
- experimental_map_key_ = new ::std::string;
- }
- experimental_map_key_->assign(value);
-}
-inline void FieldOptions::set_experimental_map_key(const char* value) {
- set_has_experimental_map_key();
- if (experimental_map_key_ == &::google::protobuf::internal::kEmptyString) {
- experimental_map_key_ = new ::std::string;
- }
- experimental_map_key_->assign(value);
-}
-inline void FieldOptions::set_experimental_map_key(const char* value, size_t size) {
- set_has_experimental_map_key();
- if (experimental_map_key_ == &::google::protobuf::internal::kEmptyString) {
- experimental_map_key_ = new ::std::string;
- }
- experimental_map_key_->assign(reinterpret_cast<const char*>(value), size);
-}
-inline ::std::string* FieldOptions::mutable_experimental_map_key() {
- set_has_experimental_map_key();
- if (experimental_map_key_ == &::google::protobuf::internal::kEmptyString) {
- experimental_map_key_ = new ::std::string;
- }
- return experimental_map_key_;
-}
-inline ::std::string* FieldOptions::release_experimental_map_key() {
- clear_has_experimental_map_key();
- if (experimental_map_key_ == &::google::protobuf::internal::kEmptyString) {
- return NULL;
- } else {
- ::std::string* temp = experimental_map_key_;
- experimental_map_key_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
- return temp;
- }
-}
-
-// repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
-inline int FieldOptions::uninterpreted_option_size() const {
- return uninterpreted_option_.size();
-}
-inline void FieldOptions::clear_uninterpreted_option() {
- uninterpreted_option_.Clear();
-}
-inline const ::google::protobuf::UninterpretedOption& FieldOptions::uninterpreted_option(int index) const {
- return uninterpreted_option_.Get(index);
-}
-inline ::google::protobuf::UninterpretedOption* FieldOptions::mutable_uninterpreted_option(int index) {
- return uninterpreted_option_.Mutable(index);
-}
-inline ::google::protobuf::UninterpretedOption* FieldOptions::add_uninterpreted_option() {
- return uninterpreted_option_.Add();
-}
-inline const ::google::protobuf::RepeatedPtrField< ::google::protobuf::UninterpretedOption >&
-FieldOptions::uninterpreted_option() const {
- return uninterpreted_option_;
-}
-inline ::google::protobuf::RepeatedPtrField< ::google::protobuf::UninterpretedOption >*
-FieldOptions::mutable_uninterpreted_option() {
- return &uninterpreted_option_;
-}
-
-// -------------------------------------------------------------------
-
-// EnumOptions
-
-// repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
-inline int EnumOptions::uninterpreted_option_size() const {
- return uninterpreted_option_.size();
-}
-inline void EnumOptions::clear_uninterpreted_option() {
- uninterpreted_option_.Clear();
-}
-inline const ::google::protobuf::UninterpretedOption& EnumOptions::uninterpreted_option(int index) const {
- return uninterpreted_option_.Get(index);
-}
-inline ::google::protobuf::UninterpretedOption* EnumOptions::mutable_uninterpreted_option(int index) {
- return uninterpreted_option_.Mutable(index);
-}
-inline ::google::protobuf::UninterpretedOption* EnumOptions::add_uninterpreted_option() {
- return uninterpreted_option_.Add();
-}
-inline const ::google::protobuf::RepeatedPtrField< ::google::protobuf::UninterpretedOption >&
-EnumOptions::uninterpreted_option() const {
- return uninterpreted_option_;
-}
-inline ::google::protobuf::RepeatedPtrField< ::google::protobuf::UninterpretedOption >*
-EnumOptions::mutable_uninterpreted_option() {
- return &uninterpreted_option_;
-}
-
-// -------------------------------------------------------------------
-
-// EnumValueOptions
-
-// repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
-inline int EnumValueOptions::uninterpreted_option_size() const {
- return uninterpreted_option_.size();
-}
-inline void EnumValueOptions::clear_uninterpreted_option() {
- uninterpreted_option_.Clear();
-}
-inline const ::google::protobuf::UninterpretedOption& EnumValueOptions::uninterpreted_option(int index) const {
- return uninterpreted_option_.Get(index);
-}
-inline ::google::protobuf::UninterpretedOption* EnumValueOptions::mutable_uninterpreted_option(int index) {
- return uninterpreted_option_.Mutable(index);
-}
-inline ::google::protobuf::UninterpretedOption* EnumValueOptions::add_uninterpreted_option() {
- return uninterpreted_option_.Add();
-}
-inline const ::google::protobuf::RepeatedPtrField< ::google::protobuf::UninterpretedOption >&
-EnumValueOptions::uninterpreted_option() const {
- return uninterpreted_option_;
-}
-inline ::google::protobuf::RepeatedPtrField< ::google::protobuf::UninterpretedOption >*
-EnumValueOptions::mutable_uninterpreted_option() {
- return &uninterpreted_option_;
-}
-
-// -------------------------------------------------------------------
-
-// ServiceOptions
-
-// repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
-inline int ServiceOptions::uninterpreted_option_size() const {
- return uninterpreted_option_.size();
-}
-inline void ServiceOptions::clear_uninterpreted_option() {
- uninterpreted_option_.Clear();
-}
-inline const ::google::protobuf::UninterpretedOption& ServiceOptions::uninterpreted_option(int index) const {
- return uninterpreted_option_.Get(index);
-}
-inline ::google::protobuf::UninterpretedOption* ServiceOptions::mutable_uninterpreted_option(int index) {
- return uninterpreted_option_.Mutable(index);
-}
-inline ::google::protobuf::UninterpretedOption* ServiceOptions::add_uninterpreted_option() {
- return uninterpreted_option_.Add();
-}
-inline const ::google::protobuf::RepeatedPtrField< ::google::protobuf::UninterpretedOption >&
-ServiceOptions::uninterpreted_option() const {
- return uninterpreted_option_;
-}
-inline ::google::protobuf::RepeatedPtrField< ::google::protobuf::UninterpretedOption >*
-ServiceOptions::mutable_uninterpreted_option() {
- return &uninterpreted_option_;
-}
-
-// -------------------------------------------------------------------
-
-// MethodOptions
-
-// repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
-inline int MethodOptions::uninterpreted_option_size() const {
- return uninterpreted_option_.size();
-}
-inline void MethodOptions::clear_uninterpreted_option() {
- uninterpreted_option_.Clear();
-}
-inline const ::google::protobuf::UninterpretedOption& MethodOptions::uninterpreted_option(int index) const {
- return uninterpreted_option_.Get(index);
-}
-inline ::google::protobuf::UninterpretedOption* MethodOptions::mutable_uninterpreted_option(int index) {
- return uninterpreted_option_.Mutable(index);
-}
-inline ::google::protobuf::UninterpretedOption* MethodOptions::add_uninterpreted_option() {
- return uninterpreted_option_.Add();
-}
-inline const ::google::protobuf::RepeatedPtrField< ::google::protobuf::UninterpretedOption >&
-MethodOptions::uninterpreted_option() const {
- return uninterpreted_option_;
-}
-inline ::google::protobuf::RepeatedPtrField< ::google::protobuf::UninterpretedOption >*
-MethodOptions::mutable_uninterpreted_option() {
- return &uninterpreted_option_;
-}
-
-// -------------------------------------------------------------------
-
-// UninterpretedOption_NamePart
-
-// required string name_part = 1;
-inline bool UninterpretedOption_NamePart::has_name_part() const {
- return (_has_bits_[0] & 0x00000001u) != 0;
-}
-inline void UninterpretedOption_NamePart::set_has_name_part() {
- _has_bits_[0] |= 0x00000001u;
-}
-inline void UninterpretedOption_NamePart::clear_has_name_part() {
- _has_bits_[0] &= ~0x00000001u;
-}
-inline void UninterpretedOption_NamePart::clear_name_part() {
- if (name_part_ != &::google::protobuf::internal::kEmptyString) {
- name_part_->clear();
- }
- clear_has_name_part();
-}
-inline const ::std::string& UninterpretedOption_NamePart::name_part() const {
- return *name_part_;
-}
-inline void UninterpretedOption_NamePart::set_name_part(const ::std::string& value) {
- set_has_name_part();
- if (name_part_ == &::google::protobuf::internal::kEmptyString) {
- name_part_ = new ::std::string;
- }
- name_part_->assign(value);
-}
-inline void UninterpretedOption_NamePart::set_name_part(const char* value) {
- set_has_name_part();
- if (name_part_ == &::google::protobuf::internal::kEmptyString) {
- name_part_ = new ::std::string;
- }
- name_part_->assign(value);
-}
-inline void UninterpretedOption_NamePart::set_name_part(const char* value, size_t size) {
- set_has_name_part();
- if (name_part_ == &::google::protobuf::internal::kEmptyString) {
- name_part_ = new ::std::string;
- }
- name_part_->assign(reinterpret_cast<const char*>(value), size);
-}
-inline ::std::string* UninterpretedOption_NamePart::mutable_name_part() {
- set_has_name_part();
- if (name_part_ == &::google::protobuf::internal::kEmptyString) {
- name_part_ = new ::std::string;
- }
- return name_part_;
-}
-inline ::std::string* UninterpretedOption_NamePart::release_name_part() {
- clear_has_name_part();
- if (name_part_ == &::google::protobuf::internal::kEmptyString) {
- return NULL;
- } else {
- ::std::string* temp = name_part_;
- name_part_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
- return temp;
- }
-}
-
-// required bool is_extension = 2;
-inline bool UninterpretedOption_NamePart::has_is_extension() const {
- return (_has_bits_[0] & 0x00000002u) != 0;
-}
-inline void UninterpretedOption_NamePart::set_has_is_extension() {
- _has_bits_[0] |= 0x00000002u;
-}
-inline void UninterpretedOption_NamePart::clear_has_is_extension() {
- _has_bits_[0] &= ~0x00000002u;
-}
-inline void UninterpretedOption_NamePart::clear_is_extension() {
- is_extension_ = false;
- clear_has_is_extension();
-}
-inline bool UninterpretedOption_NamePart::is_extension() const {
- return is_extension_;
-}
-inline void UninterpretedOption_NamePart::set_is_extension(bool value) {
- set_has_is_extension();
- is_extension_ = value;
-}
-
-// -------------------------------------------------------------------
-
-// UninterpretedOption
-
-// repeated .google.protobuf.UninterpretedOption.NamePart name = 2;
-inline int UninterpretedOption::name_size() const {
- return name_.size();
-}
-inline void UninterpretedOption::clear_name() {
- name_.Clear();
-}
-inline const ::google::protobuf::UninterpretedOption_NamePart& UninterpretedOption::name(int index) const {
- return name_.Get(index);
-}
-inline ::google::protobuf::UninterpretedOption_NamePart* UninterpretedOption::mutable_name(int index) {
- return name_.Mutable(index);
-}
-inline ::google::protobuf::UninterpretedOption_NamePart* UninterpretedOption::add_name() {
- return name_.Add();
-}
-inline const ::google::protobuf::RepeatedPtrField< ::google::protobuf::UninterpretedOption_NamePart >&
-UninterpretedOption::name() const {
- return name_;
-}
-inline ::google::protobuf::RepeatedPtrField< ::google::protobuf::UninterpretedOption_NamePart >*
-UninterpretedOption::mutable_name() {
- return &name_;
-}
-
-// optional string identifier_value = 3;
-inline bool UninterpretedOption::has_identifier_value() const {
- return (_has_bits_[0] & 0x00000002u) != 0;
-}
-inline void UninterpretedOption::set_has_identifier_value() {
- _has_bits_[0] |= 0x00000002u;
-}
-inline void UninterpretedOption::clear_has_identifier_value() {
- _has_bits_[0] &= ~0x00000002u;
-}
-inline void UninterpretedOption::clear_identifier_value() {
- if (identifier_value_ != &::google::protobuf::internal::kEmptyString) {
- identifier_value_->clear();
- }
- clear_has_identifier_value();
-}
-inline const ::std::string& UninterpretedOption::identifier_value() const {
- return *identifier_value_;
-}
-inline void UninterpretedOption::set_identifier_value(const ::std::string& value) {
- set_has_identifier_value();
- if (identifier_value_ == &::google::protobuf::internal::kEmptyString) {
- identifier_value_ = new ::std::string;
- }
- identifier_value_->assign(value);
-}
-inline void UninterpretedOption::set_identifier_value(const char* value) {
- set_has_identifier_value();
- if (identifier_value_ == &::google::protobuf::internal::kEmptyString) {
- identifier_value_ = new ::std::string;
- }
- identifier_value_->assign(value);
-}
-inline void UninterpretedOption::set_identifier_value(const char* value, size_t size) {
- set_has_identifier_value();
- if (identifier_value_ == &::google::protobuf::internal::kEmptyString) {
- identifier_value_ = new ::std::string;
- }
- identifier_value_->assign(reinterpret_cast<const char*>(value), size);
-}
-inline ::std::string* UninterpretedOption::mutable_identifier_value() {
- set_has_identifier_value();
- if (identifier_value_ == &::google::protobuf::internal::kEmptyString) {
- identifier_value_ = new ::std::string;
- }
- return identifier_value_;
-}
-inline ::std::string* UninterpretedOption::release_identifier_value() {
- clear_has_identifier_value();
- if (identifier_value_ == &::google::protobuf::internal::kEmptyString) {
- return NULL;
- } else {
- ::std::string* temp = identifier_value_;
- identifier_value_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
- return temp;
- }
-}
-
-// optional uint64 positive_int_value = 4;
-inline bool UninterpretedOption::has_positive_int_value() const {
- return (_has_bits_[0] & 0x00000004u) != 0;
-}
-inline void UninterpretedOption::set_has_positive_int_value() {
- _has_bits_[0] |= 0x00000004u;
-}
-inline void UninterpretedOption::clear_has_positive_int_value() {
- _has_bits_[0] &= ~0x00000004u;
-}
-inline void UninterpretedOption::clear_positive_int_value() {
- positive_int_value_ = GOOGLE_ULONGLONG(0);
- clear_has_positive_int_value();
-}
-inline ::google::protobuf::uint64 UninterpretedOption::positive_int_value() const {
- return positive_int_value_;
-}
-inline void UninterpretedOption::set_positive_int_value(::google::protobuf::uint64 value) {
- set_has_positive_int_value();
- positive_int_value_ = value;
-}
-
-// optional int64 negative_int_value = 5;
-inline bool UninterpretedOption::has_negative_int_value() const {
- return (_has_bits_[0] & 0x00000008u) != 0;
-}
-inline void UninterpretedOption::set_has_negative_int_value() {
- _has_bits_[0] |= 0x00000008u;
-}
-inline void UninterpretedOption::clear_has_negative_int_value() {
- _has_bits_[0] &= ~0x00000008u;
-}
-inline void UninterpretedOption::clear_negative_int_value() {
- negative_int_value_ = GOOGLE_LONGLONG(0);
- clear_has_negative_int_value();
-}
-inline ::google::protobuf::int64 UninterpretedOption::negative_int_value() const {
- return negative_int_value_;
-}
-inline void UninterpretedOption::set_negative_int_value(::google::protobuf::int64 value) {
- set_has_negative_int_value();
- negative_int_value_ = value;
-}
-
-// optional double double_value = 6;
-inline bool UninterpretedOption::has_double_value() const {
- return (_has_bits_[0] & 0x00000010u) != 0;
-}
-inline void UninterpretedOption::set_has_double_value() {
- _has_bits_[0] |= 0x00000010u;
-}
-inline void UninterpretedOption::clear_has_double_value() {
- _has_bits_[0] &= ~0x00000010u;
-}
-inline void UninterpretedOption::clear_double_value() {
- double_value_ = 0;
- clear_has_double_value();
-}
-inline double UninterpretedOption::double_value() const {
- return double_value_;
-}
-inline void UninterpretedOption::set_double_value(double value) {
- set_has_double_value();
- double_value_ = value;
-}
-
-// optional bytes string_value = 7;
-inline bool UninterpretedOption::has_string_value() const {
- return (_has_bits_[0] & 0x00000020u) != 0;
-}
-inline void UninterpretedOption::set_has_string_value() {
- _has_bits_[0] |= 0x00000020u;
-}
-inline void UninterpretedOption::clear_has_string_value() {
- _has_bits_[0] &= ~0x00000020u;
-}
-inline void UninterpretedOption::clear_string_value() {
- if (string_value_ != &::google::protobuf::internal::kEmptyString) {
- string_value_->clear();
- }
- clear_has_string_value();
-}
-inline const ::std::string& UninterpretedOption::string_value() const {
- return *string_value_;
-}
-inline void UninterpretedOption::set_string_value(const ::std::string& value) {
- set_has_string_value();
- if (string_value_ == &::google::protobuf::internal::kEmptyString) {
- string_value_ = new ::std::string;
- }
- string_value_->assign(value);
-}
-inline void UninterpretedOption::set_string_value(const char* value) {
- set_has_string_value();
- if (string_value_ == &::google::protobuf::internal::kEmptyString) {
- string_value_ = new ::std::string;
- }
- string_value_->assign(value);
-}
-inline void UninterpretedOption::set_string_value(const void* value, size_t size) {
- set_has_string_value();
- if (string_value_ == &::google::protobuf::internal::kEmptyString) {
- string_value_ = new ::std::string;
- }
- string_value_->assign(reinterpret_cast<const char*>(value), size);
-}
-inline ::std::string* UninterpretedOption::mutable_string_value() {
- set_has_string_value();
- if (string_value_ == &::google::protobuf::internal::kEmptyString) {
- string_value_ = new ::std::string;
- }
- return string_value_;
-}
-inline ::std::string* UninterpretedOption::release_string_value() {
- clear_has_string_value();
- if (string_value_ == &::google::protobuf::internal::kEmptyString) {
- return NULL;
- } else {
- ::std::string* temp = string_value_;
- string_value_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
- return temp;
- }
-}
-
-// optional string aggregate_value = 8;
-inline bool UninterpretedOption::has_aggregate_value() const {
- return (_has_bits_[0] & 0x00000040u) != 0;
-}
-inline void UninterpretedOption::set_has_aggregate_value() {
- _has_bits_[0] |= 0x00000040u;
-}
-inline void UninterpretedOption::clear_has_aggregate_value() {
- _has_bits_[0] &= ~0x00000040u;
-}
-inline void UninterpretedOption::clear_aggregate_value() {
- if (aggregate_value_ != &::google::protobuf::internal::kEmptyString) {
- aggregate_value_->clear();
- }
- clear_has_aggregate_value();
-}
-inline const ::std::string& UninterpretedOption::aggregate_value() const {
- return *aggregate_value_;
-}
-inline void UninterpretedOption::set_aggregate_value(const ::std::string& value) {
- set_has_aggregate_value();
- if (aggregate_value_ == &::google::protobuf::internal::kEmptyString) {
- aggregate_value_ = new ::std::string;
- }
- aggregate_value_->assign(value);
-}
-inline void UninterpretedOption::set_aggregate_value(const char* value) {
- set_has_aggregate_value();
- if (aggregate_value_ == &::google::protobuf::internal::kEmptyString) {
- aggregate_value_ = new ::std::string;
- }
- aggregate_value_->assign(value);
-}
-inline void UninterpretedOption::set_aggregate_value(const char* value, size_t size) {
- set_has_aggregate_value();
- if (aggregate_value_ == &::google::protobuf::internal::kEmptyString) {
- aggregate_value_ = new ::std::string;
- }
- aggregate_value_->assign(reinterpret_cast<const char*>(value), size);
-}
-inline ::std::string* UninterpretedOption::mutable_aggregate_value() {
- set_has_aggregate_value();
- if (aggregate_value_ == &::google::protobuf::internal::kEmptyString) {
- aggregate_value_ = new ::std::string;
- }
- return aggregate_value_;
-}
-inline ::std::string* UninterpretedOption::release_aggregate_value() {
- clear_has_aggregate_value();
- if (aggregate_value_ == &::google::protobuf::internal::kEmptyString) {
- return NULL;
- } else {
- ::std::string* temp = aggregate_value_;
- aggregate_value_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
- return temp;
- }
-}
-
-// -------------------------------------------------------------------
-
-// SourceCodeInfo_Location
-
-// repeated int32 path = 1 [packed = true];
-inline int SourceCodeInfo_Location::path_size() const {
- return path_.size();
-}
-inline void SourceCodeInfo_Location::clear_path() {
- path_.Clear();
-}
-inline ::google::protobuf::int32 SourceCodeInfo_Location::path(int index) const {
- return path_.Get(index);
-}
-inline void SourceCodeInfo_Location::set_path(int index, ::google::protobuf::int32 value) {
- path_.Set(index, value);
-}
-inline void SourceCodeInfo_Location::add_path(::google::protobuf::int32 value) {
- path_.Add(value);
-}
-inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
-SourceCodeInfo_Location::path() const {
- return path_;
-}
-inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
-SourceCodeInfo_Location::mutable_path() {
- return &path_;
-}
-
-// repeated int32 span = 2 [packed = true];
-inline int SourceCodeInfo_Location::span_size() const {
- return span_.size();
-}
-inline void SourceCodeInfo_Location::clear_span() {
- span_.Clear();
-}
-inline ::google::protobuf::int32 SourceCodeInfo_Location::span(int index) const {
- return span_.Get(index);
-}
-inline void SourceCodeInfo_Location::set_span(int index, ::google::protobuf::int32 value) {
- span_.Set(index, value);
-}
-inline void SourceCodeInfo_Location::add_span(::google::protobuf::int32 value) {
- span_.Add(value);
-}
-inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
-SourceCodeInfo_Location::span() const {
- return span_;
-}
-inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
-SourceCodeInfo_Location::mutable_span() {
- return &span_;
-}
-
-// -------------------------------------------------------------------
-
-// SourceCodeInfo
-
-// repeated .google.protobuf.SourceCodeInfo.Location location = 1;
-inline int SourceCodeInfo::location_size() const {
- return location_.size();
-}
-inline void SourceCodeInfo::clear_location() {
- location_.Clear();
-}
-inline const ::google::protobuf::SourceCodeInfo_Location& SourceCodeInfo::location(int index) const {
- return location_.Get(index);
-}
-inline ::google::protobuf::SourceCodeInfo_Location* SourceCodeInfo::mutable_location(int index) {
- return location_.Mutable(index);
-}
-inline ::google::protobuf::SourceCodeInfo_Location* SourceCodeInfo::add_location() {
- return location_.Add();
-}
-inline const ::google::protobuf::RepeatedPtrField< ::google::protobuf::SourceCodeInfo_Location >&
-SourceCodeInfo::location() const {
- return location_;
-}
-inline ::google::protobuf::RepeatedPtrField< ::google::protobuf::SourceCodeInfo_Location >*
-SourceCodeInfo::mutable_location() {
- return &location_;
-}
-
-
-// @@protoc_insertion_point(namespace_scope)
-
-} // namespace protobuf
-} // namespace google
-
-#ifndef SWIG
-namespace google {
-namespace protobuf {
-
-template <>
-inline const EnumDescriptor* GetEnumDescriptor< ::google::protobuf::FieldDescriptorProto_Type>() {
- return ::google::protobuf::FieldDescriptorProto_Type_descriptor();
-}
-template <>
-inline const EnumDescriptor* GetEnumDescriptor< ::google::protobuf::FieldDescriptorProto_Label>() {
- return ::google::protobuf::FieldDescriptorProto_Label_descriptor();
-}
-template <>
-inline const EnumDescriptor* GetEnumDescriptor< ::google::protobuf::FileOptions_OptimizeMode>() {
- return ::google::protobuf::FileOptions_OptimizeMode_descriptor();
-}
-template <>
-inline const EnumDescriptor* GetEnumDescriptor< ::google::protobuf::FieldOptions_CType>() {
- return ::google::protobuf::FieldOptions_CType_descriptor();
-}
-
-} // namespace google
-} // namespace protobuf
-#endif // SWIG
-
-// @@protoc_insertion_point(global_scope)
-
-#endif // PROTOBUF_google_2fprotobuf_2fdescriptor_2eproto__INCLUDED
diff --git a/contrib/prebuilt/include/google/protobuf/descriptor.proto b/contrib/prebuilt/include/google/protobuf/descriptor.proto
deleted file mode 100644
index 233f879..0000000
--- a/contrib/prebuilt/include/google/protobuf/descriptor.proto
+++ /dev/null
@@ -1,533 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// http://code.google.com/p/protobuf/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Author: kenton@google.com (Kenton Varda)
-// Based on original Protocol Buffers design by
-// Sanjay Ghemawat, Jeff Dean, and others.
-//
-// The messages in this file describe the definitions found in .proto files.
-// A valid .proto file can be translated directly to a FileDescriptorProto
-// without any other information (e.g. without reading its imports).
-
-
-
-package google.protobuf;
-option java_package = "com.google.protobuf";
-option java_outer_classname = "DescriptorProtos";
-
-// descriptor.proto must be optimized for speed because reflection-based
-// algorithms don't work during bootstrapping.
-option optimize_for = SPEED;
-
-// The protocol compiler can output a FileDescriptorSet containing the .proto
-// files it parses.
-message FileDescriptorSet {
- repeated FileDescriptorProto file = 1;
-}
-
-// Describes a complete .proto file.
-message FileDescriptorProto {
- optional string name = 1; // file name, relative to root of source tree
- optional string package = 2; // e.g. "foo", "foo.bar", etc.
-
- // Names of files imported by this file.
- repeated string dependency = 3;
-
- // All top-level definitions in this file.
- repeated DescriptorProto message_type = 4;
- repeated EnumDescriptorProto enum_type = 5;
- repeated ServiceDescriptorProto service = 6;
- repeated FieldDescriptorProto extension = 7;
-
- optional FileOptions options = 8;
-
- // This field contains optional information about the original source code.
- // You may safely remove this entire field whithout harming runtime
- // functionality of the descriptors -- the information is needed only by
- // development tools.
- optional SourceCodeInfo source_code_info = 9;
-}
-
-// Describes a message type.
-message DescriptorProto {
- optional string name = 1;
-
- repeated FieldDescriptorProto field = 2;
- repeated FieldDescriptorProto extension = 6;
-
- repeated DescriptorProto nested_type = 3;
- repeated EnumDescriptorProto enum_type = 4;
-
- message ExtensionRange {
- optional int32 start = 1;
- optional int32 end = 2;
- }
- repeated ExtensionRange extension_range = 5;
-
- optional MessageOptions options = 7;
-}
-
-// Describes a field within a message.
-message FieldDescriptorProto {
- enum Type {
- // 0 is reserved for errors.
- // Order is weird for historical reasons.
- TYPE_DOUBLE = 1;
- TYPE_FLOAT = 2;
- TYPE_INT64 = 3; // Not ZigZag encoded. Negative numbers
- // take 10 bytes. Use TYPE_SINT64 if negative
- // values are likely.
- TYPE_UINT64 = 4;
- TYPE_INT32 = 5; // Not ZigZag encoded. Negative numbers
- // take 10 bytes. Use TYPE_SINT32 if negative
- // values are likely.
- TYPE_FIXED64 = 6;
- TYPE_FIXED32 = 7;
- TYPE_BOOL = 8;
- TYPE_STRING = 9;
- TYPE_GROUP = 10; // Tag-delimited aggregate.
- TYPE_MESSAGE = 11; // Length-delimited aggregate.
-
- // New in version 2.
- TYPE_BYTES = 12;
- TYPE_UINT32 = 13;
- TYPE_ENUM = 14;
- TYPE_SFIXED32 = 15;
- TYPE_SFIXED64 = 16;
- TYPE_SINT32 = 17; // Uses ZigZag encoding.
- TYPE_SINT64 = 18; // Uses ZigZag encoding.
- };
-
- enum Label {
- // 0 is reserved for errors
- LABEL_OPTIONAL = 1;
- LABEL_REQUIRED = 2;
- LABEL_REPEATED = 3;
- // TODO(sanjay): Should we add LABEL_MAP?
- };
-
- optional string name = 1;
- optional int32 number = 3;
- optional Label label = 4;
-
- // If type_name is set, this need not be set. If both this and type_name
- // are set, this must be either TYPE_ENUM or TYPE_MESSAGE.
- optional Type type = 5;
-
- // For message and enum types, this is the name of the type. If the name
- // starts with a '.', it is fully-qualified. Otherwise, C++-like scoping
- // rules are used to find the type (i.e. first the nested types within this
- // message are searched, then within the parent, on up to the root
- // namespace).
- optional string type_name = 6;
-
- // For extensions, this is the name of the type being extended. It is
- // resolved in the same manner as type_name.
- optional string extendee = 2;
-
- // For numeric types, contains the original text representation of the value.
- // For booleans, "true" or "false".
- // For strings, contains the default text contents (not escaped in any way).
- // For bytes, contains the C escaped value. All bytes >= 128 are escaped.
- // TODO(kenton): Base-64 encode?
- optional string default_value = 7;
-
- optional FieldOptions options = 8;
-}
-
-// Describes an enum type.
-message EnumDescriptorProto {
- optional string name = 1;
-
- repeated EnumValueDescriptorProto value = 2;
-
- optional EnumOptions options = 3;
-}
-
-// Describes a value within an enum.
-message EnumValueDescriptorProto {
- optional string name = 1;
- optional int32 number = 2;
-
- optional EnumValueOptions options = 3;
-}
-
-// Describes a service.
-message ServiceDescriptorProto {
- optional string name = 1;
- repeated MethodDescriptorProto method = 2;
-
- optional ServiceOptions options = 3;
-}
-
-// Describes a method of a service.
-message MethodDescriptorProto {
- optional string name = 1;
-
- // Input and output type names. These are resolved in the same way as
- // FieldDescriptorProto.type_name, but must refer to a message type.
- optional string input_type = 2;
- optional string output_type = 3;
-
- optional MethodOptions options = 4;
-}
-
-// ===================================================================
-// Options
-
-// Each of the definitions above may have "options" attached. These are
-// just annotations which may cause code to be generated slightly differently
-// or may contain hints for code that manipulates protocol messages.
-//
-// Clients may define custom options as extensions of the *Options messages.
-// These extensions may not yet be known at parsing time, so the parser cannot
-// store the values in them. Instead it stores them in a field in the *Options
-// message called uninterpreted_option. This field must have the same name
-// across all *Options messages. We then use this field to populate the
-// extensions when we build a descriptor, at which point all protos have been
-// parsed and so all extensions are known.
-//
-// Extension numbers for custom options may be chosen as follows:
-// * For options which will only be used within a single application or
-// organization, or for experimental options, use field numbers 50000
-// through 99999. It is up to you to ensure that you do not use the
-// same number for multiple options.
-// * For options which will be published and used publicly by multiple
-// independent entities, e-mail kenton@google.com to reserve extension
-// numbers. Simply tell me how many you need and I'll send you back a
-// set of numbers to use -- there's no need to explain how you intend to
-// use them. If this turns out to be popular, a web service will be set up
-// to automatically assign option numbers.
-
-
-message FileOptions {
-
- // Sets the Java package where classes generated from this .proto will be
- // placed. By default, the proto package is used, but this is often
- // inappropriate because proto packages do not normally start with backwards
- // domain names.
- optional string java_package = 1;
-
-
- // If set, all the classes from the .proto file are wrapped in a single
- // outer class with the given name. This applies to both Proto1
- // (equivalent to the old "--one_java_file" option) and Proto2 (where
- // a .proto always translates to a single class, but you may want to
- // explicitly choose the class name).
- optional string java_outer_classname = 8;
-
- // If set true, then the Java code generator will generate a separate .java
- // file for each top-level message, enum, and service defined in the .proto
- // file. Thus, these types will *not* be nested inside the outer class
- // named by java_outer_classname. However, the outer class will still be
- // generated to contain the file's getDescriptor() method as well as any
- // top-level extensions defined in the file.
- optional bool java_multiple_files = 10 [default=false];
-
- // If set true, then the Java code generator will generate equals() and
- // hashCode() methods for all messages defined in the .proto file. This is
- // purely a speed optimization, as the AbstractMessage base class includes
- // reflection-based implementations of these methods.
- optional bool java_generate_equals_and_hash = 20 [default=false];
-
- // Generated classes can be optimized for speed or code size.
- enum OptimizeMode {
- SPEED = 1; // Generate complete code for parsing, serialization,
- // etc.
- CODE_SIZE = 2; // Use ReflectionOps to implement these methods.
- LITE_RUNTIME = 3; // Generate code using MessageLite and the lite runtime.
- }
- optional OptimizeMode optimize_for = 9 [default=SPEED];
-
-
-
-
- // Should generic services be generated in each language? "Generic" services
- // are not specific to any particular RPC system. They are generated by the
- // main code generators in each language (without additional plugins).
- // Generic services were the only kind of service generation supported by
- // early versions of proto2.
- //
- // Generic services are now considered deprecated in favor of using plugins
- // that generate code specific to your particular RPC system. Therefore,
- // these default to false. Old code which depends on generic services should
- // explicitly set them to true.
- optional bool cc_generic_services = 16 [default=false];
- optional bool java_generic_services = 17 [default=false];
- optional bool py_generic_services = 18 [default=false];
-
- // The parser stores options it doesn't recognize here. See above.
- repeated UninterpretedOption uninterpreted_option = 999;
-
- // Clients can define custom options in extensions of this message. See above.
- extensions 1000 to max;
-}
-
-message MessageOptions {
- // Set true to use the old proto1 MessageSet wire format for extensions.
- // This is provided for backwards-compatibility with the MessageSet wire
- // format. You should not use this for any other reason: It's less
- // efficient, has fewer features, and is more complicated.
- //
- // The message must be defined exactly as follows:
- // message Foo {
- // option message_set_wire_format = true;
- // extensions 4 to max;
- // }
- // Note that the message cannot have any defined fields; MessageSets only
- // have extensions.
- //
- // All extensions of your type must be singular messages; e.g. they cannot
- // be int32s, enums, or repeated messages.
- //
- // Because this is an option, the above two restrictions are not enforced by
- // the protocol compiler.
- optional bool message_set_wire_format = 1 [default=false];
-
- // Disables the generation of the standard "descriptor()" accessor, which can
- // conflict with a field of the same name. This is meant to make migration
- // from proto1 easier; new code should avoid fields named "descriptor".
- optional bool no_standard_descriptor_accessor = 2 [default=false];
-
- // The parser stores options it doesn't recognize here. See above.
- repeated UninterpretedOption uninterpreted_option = 999;
-
- // Clients can define custom options in extensions of this message. See above.
- extensions 1000 to max;
-}
-
-message FieldOptions {
- // The ctype option instructs the C++ code generator to use a different
- // representation of the field than it normally would. See the specific
- // options below. This option is not yet implemented in the open source
- // release -- sorry, we'll try to include it in a future version!
- optional CType ctype = 1 [default = STRING];
- enum CType {
- // Default mode.
- STRING = 0;
-
- CORD = 1;
-
- STRING_PIECE = 2;
- }
- // The packed option can be enabled for repeated primitive fields to enable
- // a more efficient representation on the wire. Rather than repeatedly
- // writing the tag and type for each element, the entire array is encoded as
- // a single length-delimited blob.
- optional bool packed = 2;
-
-
- // Is this field deprecated?
- // Depending on the target platform, this can emit Deprecated annotations
- // for accessors, or it will be completely ignored; in the very least, this
- // is a formalization for deprecating fields.
- optional bool deprecated = 3 [default=false];
-
- // EXPERIMENTAL. DO NOT USE.
- // For "map" fields, the name of the field in the enclosed type that
- // is the key for this map. For example, suppose we have:
- // message Item {
- // required string name = 1;
- // required string value = 2;
- // }
- // message Config {
- // repeated Item items = 1 [experimental_map_key="name"];
- // }
- // In this situation, the map key for Item will be set to "name".
- // TODO: Fully-implement this, then remove the "experimental_" prefix.
- optional string experimental_map_key = 9;
-
- // The parser stores options it doesn't recognize here. See above.
- repeated UninterpretedOption uninterpreted_option = 999;
-
- // Clients can define custom options in extensions of this message. See above.
- extensions 1000 to max;
-}
-
-message EnumOptions {
-
- // The parser stores options it doesn't recognize here. See above.
- repeated UninterpretedOption uninterpreted_option = 999;
-
- // Clients can define custom options in extensions of this message. See above.
- extensions 1000 to max;
-}
-
-message EnumValueOptions {
- // The parser stores options it doesn't recognize here. See above.
- repeated UninterpretedOption uninterpreted_option = 999;
-
- // Clients can define custom options in extensions of this message. See above.
- extensions 1000 to max;
-}
-
-message ServiceOptions {
-
- // Note: Field numbers 1 through 32 are reserved for Google's internal RPC
- // framework. We apologize for hoarding these numbers to ourselves, but
- // we were already using them long before we decided to release Protocol
- // Buffers.
-
- // The parser stores options it doesn't recognize here. See above.
- repeated UninterpretedOption uninterpreted_option = 999;
-
- // Clients can define custom options in extensions of this message. See above.
- extensions 1000 to max;
-}
-
-message MethodOptions {
-
- // Note: Field numbers 1 through 32 are reserved for Google's internal RPC
- // framework. We apologize for hoarding these numbers to ourselves, but
- // we were already using them long before we decided to release Protocol
- // Buffers.
-
- // The parser stores options it doesn't recognize here. See above.
- repeated UninterpretedOption uninterpreted_option = 999;
-
- // Clients can define custom options in extensions of this message. See above.
- extensions 1000 to max;
-}
-
-// A message representing a option the parser does not recognize. This only
-// appears in options protos created by the compiler::Parser class.
-// DescriptorPool resolves these when building Descriptor objects. Therefore,
-// options protos in descriptor objects (e.g. returned by Descriptor::options(),
-// or produced by Descriptor::CopyTo()) will never have UninterpretedOptions
-// in them.
-message UninterpretedOption {
- // The name of the uninterpreted option. Each string represents a segment in
- // a dot-separated name. is_extension is true iff a segment represents an
- // extension (denoted with parentheses in options specs in .proto files).
- // E.g.,{ ["foo", false], ["bar.baz", true], ["qux", false] } represents
- // "foo.(bar.baz).qux".
- message NamePart {
- required string name_part = 1;
- required bool is_extension = 2;
- }
- repeated NamePart name = 2;
-
- // The value of the uninterpreted option, in whatever type the tokenizer
- // identified it as during parsing. Exactly one of these should be set.
- optional string identifier_value = 3;
- optional uint64 positive_int_value = 4;
- optional int64 negative_int_value = 5;
- optional double double_value = 6;
- optional bytes string_value = 7;
- optional string aggregate_value = 8;
-}
-
-// ===================================================================
-// Optional source code info
-
-// Encapsulates information about the original source file from which a
-// FileDescriptorProto was generated.
-message SourceCodeInfo {
- // A Location identifies a piece of source code in a .proto file which
- // corresponds to a particular definition. This information is intended
- // to be useful to IDEs, code indexers, documentation generators, and similar
- // tools.
- //
- // For example, say we have a file like:
- // message Foo {
- // optional string foo = 1;
- // }
- // Let's look at just the field definition:
- // optional string foo = 1;
- // ^ ^^ ^^ ^ ^^^
- // a bc de f ghi
- // We have the following locations:
- // span path represents
- // [a,i) [ 4, 0, 2, 0 ] The whole field definition.
- // [a,b) [ 4, 0, 2, 0, 4 ] The label (optional).
- // [c,d) [ 4, 0, 2, 0, 5 ] The type (string).
- // [e,f) [ 4, 0, 2, 0, 1 ] The name (foo).
- // [g,h) [ 4, 0, 2, 0, 3 ] The number (1).
- //
- // Notes:
- // - A location may refer to a repeated field itself (i.e. not to any
- // particular index within it). This is used whenever a set of elements are
- // logically enclosed in a single code segment. For example, an entire
- // extend block (possibly containing multiple extension definitions) will
- // have an outer location whose path refers to the "extensions" repeated
- // field without an index.
- // - Multiple locations may have the same path. This happens when a single
- // logical declaration is spread out across multiple places. The most
- // obvious example is the "extend" block again -- there may be multiple
- // extend blocks in the same scope, each of which will have the same path.
- // - A location's span is not always a subset of its parent's span. For
- // example, the "extendee" of an extension declaration appears at the
- // beginning of the "extend" block and is shared by all extensions within
- // the block.
- // - Just because a location's span is a subset of some other location's span
- // does not mean that it is a descendent. For example, a "group" defines
- // both a type and a field in a single declaration. Thus, the locations
- // corresponding to the type and field and their components will overlap.
- // - Code which tries to interpret locations should probably be designed to
- // ignore those that it doesn't understand, as more types of locations could
- // be recorded in the future.
- repeated Location location = 1;
- message Location {
- // Identifies which part of the FileDescriptorProto was defined at this
- // location.
- //
- // Each element is a field number or an index. They form a path from
- // the root FileDescriptorProto to the place where the definition. For
- // example, this path:
- // [ 4, 3, 2, 7, 1 ]
- // refers to:
- // file.message_type(3) // 4, 3
- // .field(7) // 2, 7
- // .name() // 1
- // This is because FileDescriptorProto.message_type has field number 4:
- // repeated DescriptorProto message_type = 4;
- // and DescriptorProto.field has field number 2:
- // repeated FieldDescriptorProto field = 2;
- // and FieldDescriptorProto.name has field number 1:
- // optional string name = 1;
- //
- // Thus, the above path gives the location of a field name. If we removed
- // the last element:
- // [ 4, 3, 2, 7 ]
- // this path refers to the whole field declaration (from the beginning
- // of the label to the terminating semicolon).
- repeated int32 path = 1 [packed=true];
-
- // Always has exactly three or four elements: start line, start column,
- // end line (optional, otherwise assumed same as start line), end column.
- // These are packed into a single field for efficiency. Note that line
- // and column numbers are zero-based -- typically you will want to add
- // 1 to each before displaying to a user.
- repeated int32 span = 2 [packed=true];
-
- // TODO(kenton): Record comments appearing before and after the
- // declaration.
- }
-}
diff --git a/contrib/prebuilt/include/google/protobuf/descriptor_database.h b/contrib/prebuilt/include/google/protobuf/descriptor_database.h
deleted file mode 100644
index f32b1db..0000000
--- a/contrib/prebuilt/include/google/protobuf/descriptor_database.h
+++ /dev/null
@@ -1,366 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// http://code.google.com/p/protobuf/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Author: kenton@google.com (Kenton Varda)
-// Based on original Protocol Buffers design by
-// Sanjay Ghemawat, Jeff Dean, and others.
-//
-// Interface for manipulating databases of descriptors.
-
-#ifndef GOOGLE_PROTOBUF_DESCRIPTOR_DATABASE_H__
-#define GOOGLE_PROTOBUF_DESCRIPTOR_DATABASE_H__
-
-#include <map>
-#include <string>
-#include <utility>
-#include <vector>
-#include <google/protobuf/descriptor.h>
-
-namespace google {
-namespace protobuf {
-
-// Defined in this file.
-class DescriptorDatabase;
-class SimpleDescriptorDatabase;
-class EncodedDescriptorDatabase;
-class DescriptorPoolDatabase;
-class MergedDescriptorDatabase;
-
-// Abstract interface for a database of descriptors.
-//
-// This is useful if you want to create a DescriptorPool which loads
-// descriptors on-demand from some sort of large database. If the database
-// is large, it may be inefficient to enumerate every .proto file inside it
-// calling DescriptorPool::BuildFile() for each one. Instead, a DescriptorPool
-// can be created which wraps a DescriptorDatabase and only builds particular
-// descriptors when they are needed.
-class LIBPROTOBUF_EXPORT DescriptorDatabase {
- public:
- inline DescriptorDatabase() {}
- virtual ~DescriptorDatabase();
-
- // Find a file by file name. Fills in in *output and returns true if found.
- // Otherwise, returns false, leaving the contents of *output undefined.
- virtual bool FindFileByName(const string& filename,
- FileDescriptorProto* output) = 0;
-
- // Find the file that declares the given fully-qualified symbol name.
- // If found, fills in *output and returns true, otherwise returns false
- // and leaves *output undefined.
- virtual bool FindFileContainingSymbol(const string& symbol_name,
- FileDescriptorProto* output) = 0;
-
- // Find the file which defines an extension extending the given message type
- // with the given field number. If found, fills in *output and returns true,
- // otherwise returns false and leaves *output undefined. containing_type
- // must be a fully-qualified type name.
- virtual bool FindFileContainingExtension(const string& containing_type,
- int field_number,
- FileDescriptorProto* output) = 0;
-
- // Finds the tag numbers used by all known extensions of
- // extendee_type, and appends them to output in an undefined
- // order. This method is best-effort: it's not guaranteed that the
- // database will find all extensions, and it's not guaranteed that
- // FindFileContainingExtension will return true on all of the found
- // numbers. Returns true if the search was successful, otherwise
- // returns false and leaves output unchanged.
- //
- // This method has a default implementation that always returns
- // false.
- virtual bool FindAllExtensionNumbers(const string& extendee_type,
- vector<int>* output) {
- return false;
- }
-
- private:
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(DescriptorDatabase);
-};
-
-// A DescriptorDatabase into which you can insert files manually.
-//
-// FindFileContainingSymbol() is fully-implemented. When you add a file, its
-// symbols will be indexed for this purpose. Note that the implementation
-// may return false positives, but only if it isn't possible for the symbol
-// to be defined in any other file. In particular, if a file defines a symbol
-// "Foo", then searching for "Foo.[anything]" will match that file. This way,
-// the database does not need to aggressively index all children of a symbol.
-//
-// FindFileContainingExtension() is mostly-implemented. It works if and only
-// if the original FieldDescriptorProto defining the extension has a
-// fully-qualified type name in its "extendee" field (i.e. starts with a '.').
-// If the extendee is a relative name, SimpleDescriptorDatabase will not
-// attempt to resolve the type, so it will not know what type the extension is
-// extending. Therefore, calling FindFileContainingExtension() with the
-// extension's containing type will never actually find that extension. Note
-// that this is an unlikely problem, as all FileDescriptorProtos created by the
-// protocol compiler (as well as ones created by calling
-// FileDescriptor::CopyTo()) will always use fully-qualified names for all
-// types. You only need to worry if you are constructing FileDescriptorProtos
-// yourself, or are calling compiler::Parser directly.
-class LIBPROTOBUF_EXPORT SimpleDescriptorDatabase : public DescriptorDatabase {
- public:
- SimpleDescriptorDatabase();
- ~SimpleDescriptorDatabase();
-
- // Adds the FileDescriptorProto to the database, making a copy. The object
- // can be deleted after Add() returns. Returns false if the file conflicted
- // with a file already in the database, in which case an error will have
- // been written to GOOGLE_LOG(ERROR).
- bool Add(const FileDescriptorProto& file);
-
- // Adds the FileDescriptorProto to the database and takes ownership of it.
- bool AddAndOwn(const FileDescriptorProto* file);
-
- // implements DescriptorDatabase -----------------------------------
- bool FindFileByName(const string& filename,
- FileDescriptorProto* output);
- bool FindFileContainingSymbol(const string& symbol_name,
- FileDescriptorProto* output);
- bool FindFileContainingExtension(const string& containing_type,
- int field_number,
- FileDescriptorProto* output);
- bool FindAllExtensionNumbers(const string& extendee_type,
- vector<int>* output);
-
- private:
- // So that it can use DescriptorIndex.
- friend class EncodedDescriptorDatabase;
-
- // An index mapping file names, symbol names, and extension numbers to
- // some sort of values.
- template <typename Value>
- class DescriptorIndex {
- public:
- // Helpers to recursively add particular descriptors and all their contents
- // to the index.
- bool AddFile(const FileDescriptorProto& file,
- Value value);
- bool AddSymbol(const string& name, Value value);
- bool AddNestedExtensions(const DescriptorProto& message_type,
- Value value);
- bool AddExtension(const FieldDescriptorProto& field,
- Value value);
-
- Value FindFile(const string& filename);
- Value FindSymbol(const string& name);
- Value FindExtension(const string& containing_type, int field_number);
- bool FindAllExtensionNumbers(const string& containing_type,
- vector<int>* output);
-
- private:
- map<string, Value> by_name_;
- map<string, Value> by_symbol_;
- map<pair<string, int>, Value> by_extension_;
-
- // Invariant: The by_symbol_ map does not contain any symbols which are
- // prefixes of other symbols in the map. For example, "foo.bar" is a
- // prefix of "foo.bar.baz" (but is not a prefix of "foo.barbaz").
- //
- // This invariant is important because it means that given a symbol name,
- // we can find a key in the map which is a prefix of the symbol in O(lg n)
- // time, and we know that there is at most one such key.
- //
- // The prefix lookup algorithm works like so:
- // 1) Find the last key in the map which is less than or equal to the
- // search key.
- // 2) If the found key is a prefix of the search key, then return it.
- // Otherwise, there is no match.
- //
- // I am sure this algorithm has been described elsewhere, but since I
- // wasn't able to find it quickly I will instead prove that it works
- // myself. The key to the algorithm is that if a match exists, step (1)
- // will find it. Proof:
- // 1) Define the "search key" to be the key we are looking for, the "found
- // key" to be the key found in step (1), and the "match key" to be the
- // key which actually matches the serach key (i.e. the key we're trying
- // to find).
- // 2) The found key must be less than or equal to the search key by
- // definition.
- // 3) The match key must also be less than or equal to the search key
- // (because it is a prefix).
- // 4) The match key cannot be greater than the found key, because if it
- // were, then step (1) of the algorithm would have returned the match
- // key instead (since it finds the *greatest* key which is less than or
- // equal to the search key).
- // 5) Therefore, the found key must be between the match key and the search
- // key, inclusive.
- // 6) Since the search key must be a sub-symbol of the match key, if it is
- // not equal to the match key, then search_key[match_key.size()] must
- // be '.'.
- // 7) Since '.' sorts before any other character that is valid in a symbol
- // name, then if the found key is not equal to the match key, then
- // found_key[match_key.size()] must also be '.', because any other value
- // would make it sort after the search key.
- // 8) Therefore, if the found key is not equal to the match key, then the
- // found key must be a sub-symbol of the match key. However, this would
- // contradict our map invariant which says that no symbol in the map is
- // a sub-symbol of any other.
- // 9) Therefore, the found key must match the match key.
- //
- // The above proof assumes the match key exists. In the case that the
- // match key does not exist, then step (1) will return some other symbol.
- // That symbol cannot be a super-symbol of the search key since if it were,
- // then it would be a match, and we're assuming the match key doesn't exist.
- // Therefore, step 2 will correctly return no match.
-
- // Find the last entry in the by_symbol_ map whose key is less than or
- // equal to the given name.
- typename map<string, Value>::iterator FindLastLessOrEqual(
- const string& name);
-
- // True if either the arguments are equal or super_symbol identifies a
- // parent symbol of sub_symbol (e.g. "foo.bar" is a parent of
- // "foo.bar.baz", but not a parent of "foo.barbaz").
- bool IsSubSymbol(const string& sub_symbol, const string& super_symbol);
-
- // Returns true if and only if all characters in the name are alphanumerics,
- // underscores, or periods.
- bool ValidateSymbolName(const string& name);
- };
-
-
- DescriptorIndex<const FileDescriptorProto*> index_;
- vector<const FileDescriptorProto*> files_to_delete_;
-
- // If file is non-NULL, copy it into *output and return true, otherwise
- // return false.
- bool MaybeCopy(const FileDescriptorProto* file,
- FileDescriptorProto* output);
-
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(SimpleDescriptorDatabase);
-};
-
-// Very similar to SimpleDescriptorDatabase, but stores all the descriptors
-// as raw bytes and generally tries to use as little memory as possible.
-//
-// The same caveats regarding FindFileContainingExtension() apply as with
-// SimpleDescriptorDatabase.
-class LIBPROTOBUF_EXPORT EncodedDescriptorDatabase : public DescriptorDatabase {
- public:
- EncodedDescriptorDatabase();
- ~EncodedDescriptorDatabase();
-
- // Adds the FileDescriptorProto to the database. The descriptor is provided
- // in encoded form. The database does not make a copy of the bytes, nor
- // does it take ownership; it's up to the caller to make sure the bytes
- // remain valid for the life of the database. Returns false and logs an error
- // if the bytes are not a valid FileDescriptorProto or if the file conflicted
- // with a file already in the database.
- bool Add(const void* encoded_file_descriptor, int size);
-
- // Like Add(), but makes a copy of the data, so that the caller does not
- // need to keep it around.
- bool AddCopy(const void* encoded_file_descriptor, int size);
-
- // Like FindFileContainingSymbol but returns only the name of the file.
- bool FindNameOfFileContainingSymbol(const string& symbol_name,
- string* output);
-
- // implements DescriptorDatabase -----------------------------------
- bool FindFileByName(const string& filename,
- FileDescriptorProto* output);
- bool FindFileContainingSymbol(const string& symbol_name,
- FileDescriptorProto* output);
- bool FindFileContainingExtension(const string& containing_type,
- int field_number,
- FileDescriptorProto* output);
- bool FindAllExtensionNumbers(const string& extendee_type,
- vector<int>* output);
-
- private:
- SimpleDescriptorDatabase::DescriptorIndex<pair<const void*, int> > index_;
- vector<void*> files_to_delete_;
-
- // If encoded_file.first is non-NULL, parse the data into *output and return
- // true, otherwise return false.
- bool MaybeParse(pair<const void*, int> encoded_file,
- FileDescriptorProto* output);
-
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(EncodedDescriptorDatabase);
-};
-
-// A DescriptorDatabase that fetches files from a given pool.
-class LIBPROTOBUF_EXPORT DescriptorPoolDatabase : public DescriptorDatabase {
- public:
- DescriptorPoolDatabase(const DescriptorPool& pool);
- ~DescriptorPoolDatabase();
-
- // implements DescriptorDatabase -----------------------------------
- bool FindFileByName(const string& filename,
- FileDescriptorProto* output);
- bool FindFileContainingSymbol(const string& symbol_name,
- FileDescriptorProto* output);
- bool FindFileContainingExtension(const string& containing_type,
- int field_number,
- FileDescriptorProto* output);
- bool FindAllExtensionNumbers(const string& extendee_type,
- vector<int>* output);
-
- private:
- const DescriptorPool& pool_;
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(DescriptorPoolDatabase);
-};
-
-// A DescriptorDatabase that wraps two or more others. It first searches the
-// first database and, if that fails, tries the second, and so on.
-class LIBPROTOBUF_EXPORT MergedDescriptorDatabase : public DescriptorDatabase {
- public:
- // Merge just two databases. The sources remain property of the caller.
- MergedDescriptorDatabase(DescriptorDatabase* source1,
- DescriptorDatabase* source2);
- // Merge more than two databases. The sources remain property of the caller.
- // The vector may be deleted after the constructor returns but the
- // DescriptorDatabases need to stick around.
- MergedDescriptorDatabase(const vector<DescriptorDatabase*>& sources);
- ~MergedDescriptorDatabase();
-
- // implements DescriptorDatabase -----------------------------------
- bool FindFileByName(const string& filename,
- FileDescriptorProto* output);
- bool FindFileContainingSymbol(const string& symbol_name,
- FileDescriptorProto* output);
- bool FindFileContainingExtension(const string& containing_type,
- int field_number,
- FileDescriptorProto* output);
- // Merges the results of calling all databases. Returns true iff any
- // of the databases returned true.
- bool FindAllExtensionNumbers(const string& extendee_type,
- vector<int>* output);
-
- private:
- vector<DescriptorDatabase*> sources_;
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(MergedDescriptorDatabase);
-};
-
-} // namespace protobuf
-
-} // namespace google
-#endif // GOOGLE_PROTOBUF_DESCRIPTOR_DATABASE_H__
diff --git a/contrib/prebuilt/include/google/protobuf/dynamic_message.h b/contrib/prebuilt/include/google/protobuf/dynamic_message.h
deleted file mode 100644
index 81dd2c6..0000000
--- a/contrib/prebuilt/include/google/protobuf/dynamic_message.h
+++ /dev/null
@@ -1,136 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// http://code.google.com/p/protobuf/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Author: kenton@google.com (Kenton Varda)
-// Based on original Protocol Buffers design by
-// Sanjay Ghemawat, Jeff Dean, and others.
-//
-// Defines an implementation of Message which can emulate types which are not
-// known at compile-time.
-
-#ifndef GOOGLE_PROTOBUF_DYNAMIC_MESSAGE_H__
-#define GOOGLE_PROTOBUF_DYNAMIC_MESSAGE_H__
-
-#include <google/protobuf/message.h>
-#include <google/protobuf/stubs/common.h>
-
-namespace google {
-namespace protobuf {
-
-// Defined in other files.
-class Descriptor; // descriptor.h
-class DescriptorPool; // descriptor.h
-
-// Constructs implementations of Message which can emulate types which are not
-// known at compile-time.
-//
-// Sometimes you want to be able to manipulate protocol types that you don't
-// know about at compile time. It would be nice to be able to construct
-// a Message object which implements the message type given by any arbitrary
-// Descriptor. DynamicMessage provides this.
-//
-// As it turns out, a DynamicMessage needs to construct extra
-// information about its type in order to operate. Most of this information
-// can be shared between all DynamicMessages of the same type. But, caching
-// this information in some sort of global map would be a bad idea, since
-// the cached information for a particular descriptor could outlive the
-// descriptor itself. To avoid this problem, DynamicMessageFactory
-// encapsulates this "cache". All DynamicMessages of the same type created
-// from the same factory will share the same support data. Any Descriptors
-// used with a particular factory must outlive the factory.
-class LIBPROTOBUF_EXPORT DynamicMessageFactory : public MessageFactory {
- public:
- // Construct a DynamicMessageFactory that will search for extensions in
- // the DescriptorPool in which the exendee is defined.
- DynamicMessageFactory();
-
- // Construct a DynamicMessageFactory that will search for extensions in
- // the given DescriptorPool.
- //
- // DEPRECATED: Use CodedInputStream::SetExtensionRegistry() to tell the
- // parser to look for extensions in an alternate pool. However, note that
- // this is almost never what you want to do. Almost all users should use
- // the zero-arg constructor.
- DynamicMessageFactory(const DescriptorPool* pool);
-
- ~DynamicMessageFactory();
-
- // Call this to tell the DynamicMessageFactory that if it is given a
- // Descriptor d for which:
- // d->file()->pool() == DescriptorPool::generated_pool(),
- // then it should delegate to MessageFactory::generated_factory() instead
- // of constructing a dynamic implementation of the message. In theory there
- // is no down side to doing this, so it may become the default in the future.
- void SetDelegateToGeneratedFactory(bool enable) {
- delegate_to_generated_factory_ = enable;
- }
-
- // implements MessageFactory ---------------------------------------
-
- // Given a Descriptor, constructs the default (prototype) Message of that
- // type. You can then call that message's New() method to construct a
- // mutable message of that type.
- //
- // Calling this method twice with the same Descriptor returns the same
- // object. The returned object remains property of the factory and will
- // be destroyed when the factory is destroyed. Also, any objects created
- // by calling the prototype's New() method share some data with the
- // prototype, so these must be destoyed before the DynamicMessageFactory
- // is destroyed.
- //
- // The given descriptor must outlive the returned message, and hence must
- // outlive the DynamicMessageFactory.
- //
- // The method is thread-safe.
- const Message* GetPrototype(const Descriptor* type);
-
- private:
- const DescriptorPool* pool_;
- bool delegate_to_generated_factory_;
-
- // This struct just contains a hash_map. We can't #include <google/protobuf/stubs/hash.h> from
- // this header due to hacks needed for hash_map portability in the open source
- // release. Namely, stubs/hash.h, which defines hash_map portably, is not a
- // public header (for good reason), but dynamic_message.h is, and public
- // headers may only #include other public headers.
- struct PrototypeMap;
- scoped_ptr<PrototypeMap> prototypes_;
- mutable Mutex prototypes_mutex_;
-
- friend class DynamicMessage;
- const Message* GetPrototypeNoLock(const Descriptor* type);
-
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(DynamicMessageFactory);
-};
-
-} // namespace protobuf
-
-} // namespace google
-#endif // GOOGLE_PROTOBUF_DYNAMIC_MESSAGE_H__
diff --git a/contrib/prebuilt/include/google/protobuf/extension_set.h b/contrib/prebuilt/include/google/protobuf/extension_set.h
deleted file mode 100644
index ac1ada0..0000000
--- a/contrib/prebuilt/include/google/protobuf/extension_set.h
+++ /dev/null
@@ -1,904 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// http://code.google.com/p/protobuf/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Author: kenton@google.com (Kenton Varda)
-// Based on original Protocol Buffers design by
-// Sanjay Ghemawat, Jeff Dean, and others.
-//
-// This header is logically internal, but is made public because it is used
-// from protocol-compiler-generated code, which may reside in other components.
-
-#ifndef GOOGLE_PROTOBUF_EXTENSION_SET_H__
-#define GOOGLE_PROTOBUF_EXTENSION_SET_H__
-
-#include <vector>
-#include <map>
-#include <utility>
-#include <string>
-
-
-#include <google/protobuf/stubs/common.h>
-
-namespace google {
-
-namespace protobuf {
- class Descriptor; // descriptor.h
- class FieldDescriptor; // descriptor.h
- class DescriptorPool; // descriptor.h
- class MessageLite; // message_lite.h
- class Message; // message.h
- class MessageFactory; // message.h
- class UnknownFieldSet; // unknown_field_set.h
- namespace io {
- class CodedInputStream; // coded_stream.h
- class CodedOutputStream; // coded_stream.h
- }
- namespace internal {
- class FieldSkipper; // wire_format_lite.h
- class RepeatedPtrFieldBase; // repeated_field.h
- }
- template <typename Element> class RepeatedField; // repeated_field.h
- template <typename Element> class RepeatedPtrField; // repeated_field.h
-}
-
-namespace protobuf {
-namespace internal {
-
-// Used to store values of type WireFormatLite::FieldType without having to
-// #include wire_format_lite.h. Also, ensures that we use only one byte to
-// store these values, which is important to keep the layout of
-// ExtensionSet::Extension small.
-typedef uint8 FieldType;
-
-// A function which, given an integer value, returns true if the number
-// matches one of the defined values for the corresponding enum type. This
-// is used with RegisterEnumExtension, below.
-typedef bool EnumValidityFunc(int number);
-
-// Version of the above which takes an argument. This is needed to deal with
-// extensions that are not compiled in.
-typedef bool EnumValidityFuncWithArg(const void* arg, int number);
-
-// Information about a registered extension.
-struct ExtensionInfo {
- inline ExtensionInfo() {}
- inline ExtensionInfo(FieldType type, bool is_repeated, bool is_packed)
- : type(type), is_repeated(is_repeated), is_packed(is_packed),
- descriptor(NULL) {}
-
- FieldType type;
- bool is_repeated;
- bool is_packed;
-
- struct EnumValidityCheck {
- EnumValidityFuncWithArg* func;
- const void* arg;
- };
-
- union {
- EnumValidityCheck enum_validity_check;
- const MessageLite* message_prototype;
- };
-
- // The descriptor for this extension, if one exists and is known. May be
- // NULL. Must not be NULL if the descriptor for the extension does not
- // live in the same pool as the descriptor for the containing type.
- const FieldDescriptor* descriptor;
-};
-
-// Abstract interface for an object which looks up extension definitions. Used
-// when parsing.
-class LIBPROTOBUF_EXPORT ExtensionFinder {
- public:
- virtual ~ExtensionFinder();
-
- // Find the extension with the given containing type and number.
- virtual bool Find(int number, ExtensionInfo* output) = 0;
-};
-
-// Implementation of ExtensionFinder which finds extensions defined in .proto
-// files which have been compiled into the binary.
-class LIBPROTOBUF_EXPORT GeneratedExtensionFinder : public ExtensionFinder {
- public:
- GeneratedExtensionFinder(const MessageLite* containing_type)
- : containing_type_(containing_type) {}
- virtual ~GeneratedExtensionFinder() {}
-
- // Returns true and fills in *output if found, otherwise returns false.
- virtual bool Find(int number, ExtensionInfo* output);
-
- private:
- const MessageLite* containing_type_;
-};
-
-// Note: extension_set_heavy.cc defines DescriptorPoolExtensionFinder for
-// finding extensions from a DescriptorPool.
-
-// This is an internal helper class intended for use within the protocol buffer
-// library and generated classes. Clients should not use it directly. Instead,
-// use the generated accessors such as GetExtension() of the class being
-// extended.
-//
-// This class manages extensions for a protocol message object. The
-// message's HasExtension(), GetExtension(), MutableExtension(), and
-// ClearExtension() methods are just thin wrappers around the embedded
-// ExtensionSet. When parsing, if a tag number is encountered which is
-// inside one of the message type's extension ranges, the tag is passed
-// off to the ExtensionSet for parsing. Etc.
-class LIBPROTOBUF_EXPORT ExtensionSet {
- public:
- ExtensionSet();
- ~ExtensionSet();
-
- // These are called at startup by protocol-compiler-generated code to
- // register known extensions. The registrations are used by ParseField()
- // to look up extensions for parsed field numbers. Note that dynamic parsing
- // does not use ParseField(); only protocol-compiler-generated parsing
- // methods do.
- static void RegisterExtension(const MessageLite* containing_type,
- int number, FieldType type,
- bool is_repeated, bool is_packed);
- static void RegisterEnumExtension(const MessageLite* containing_type,
- int number, FieldType type,
- bool is_repeated, bool is_packed,
- EnumValidityFunc* is_valid);
- static void RegisterMessageExtension(const MessageLite* containing_type,
- int number, FieldType type,
- bool is_repeated, bool is_packed,
- const MessageLite* prototype);
-
- // =================================================================
-
- // Add all fields which are currently present to the given vector. This
- // is useful to implement Reflection::ListFields().
- void AppendToList(const Descriptor* containing_type,
- const DescriptorPool* pool,
- vector<const FieldDescriptor*>* output) const;
-
- // =================================================================
- // Accessors
- //
- // Generated message classes include type-safe templated wrappers around
- // these methods. Generally you should use those rather than call these
- // directly, unless you are doing low-level memory management.
- //
- // When calling any of these accessors, the extension number requested
- // MUST exist in the DescriptorPool provided to the constructor. Otheriwse,
- // the method will fail an assert. Normally, though, you would not call
- // these directly; you would either call the generated accessors of your
- // message class (e.g. GetExtension()) or you would call the accessors
- // of the reflection interface. In both cases, it is impossible to
- // trigger this assert failure: the generated accessors only accept
- // linked-in extension types as parameters, while the Reflection interface
- // requires you to provide the FieldDescriptor describing the extension.
- //
- // When calling any of these accessors, a protocol-compiler-generated
- // implementation of the extension corresponding to the number MUST
- // be linked in, and the FieldDescriptor used to refer to it MUST be
- // the one generated by that linked-in code. Otherwise, the method will
- // die on an assert failure. The message objects returned by the message
- // accessors are guaranteed to be of the correct linked-in type.
- //
- // These methods pretty much match Reflection except that:
- // - They're not virtual.
- // - They identify fields by number rather than FieldDescriptors.
- // - They identify enum values using integers rather than descriptors.
- // - Strings provide Mutable() in addition to Set() accessors.
-
- bool Has(int number) const;
- int ExtensionSize(int number) const; // Size of a repeated extension.
- FieldType ExtensionType(int number) const;
- void ClearExtension(int number);
-
- // singular fields -------------------------------------------------
-
- int32 GetInt32 (int number, int32 default_value) const;
- int64 GetInt64 (int number, int64 default_value) const;
- uint32 GetUInt32(int number, uint32 default_value) const;
- uint64 GetUInt64(int number, uint64 default_value) const;
- float GetFloat (int number, float default_value) const;
- double GetDouble(int number, double default_value) const;
- bool GetBool (int number, bool default_value) const;
- int GetEnum (int number, int default_value) const;
- const string & GetString (int number, const string& default_value) const;
- const MessageLite& GetMessage(int number,
- const MessageLite& default_value) const;
- const MessageLite& GetMessage(int number, const Descriptor* message_type,
- MessageFactory* factory) const;
-
- // |descriptor| may be NULL so long as it is known that the descriptor for
- // the extension lives in the same pool as the descriptor for the containing
- // type.
-#define desc const FieldDescriptor* descriptor // avoid line wrapping
- void SetInt32 (int number, FieldType type, int32 value, desc);
- void SetInt64 (int number, FieldType type, int64 value, desc);
- void SetUInt32(int number, FieldType type, uint32 value, desc);
- void SetUInt64(int number, FieldType type, uint64 value, desc);
- void SetFloat (int number, FieldType type, float value, desc);
- void SetDouble(int number, FieldType type, double value, desc);
- void SetBool (int number, FieldType type, bool value, desc);
- void SetEnum (int number, FieldType type, int value, desc);
- void SetString(int number, FieldType type, const string& value, desc);
- string * MutableString (int number, FieldType type, desc);
- MessageLite* MutableMessage(int number, FieldType type,
- const MessageLite& prototype, desc);
- MessageLite* MutableMessage(const FieldDescriptor* decsriptor,
- MessageFactory* factory);
-#undef desc
-
- // repeated fields -------------------------------------------------
-
- int32 GetRepeatedInt32 (int number, int index) const;
- int64 GetRepeatedInt64 (int number, int index) const;
- uint32 GetRepeatedUInt32(int number, int index) const;
- uint64 GetRepeatedUInt64(int number, int index) const;
- float GetRepeatedFloat (int number, int index) const;
- double GetRepeatedDouble(int number, int index) const;
- bool GetRepeatedBool (int number, int index) const;
- int GetRepeatedEnum (int number, int index) const;
- const string & GetRepeatedString (int number, int index) const;
- const MessageLite& GetRepeatedMessage(int number, int index) const;
-
- void SetRepeatedInt32 (int number, int index, int32 value);
- void SetRepeatedInt64 (int number, int index, int64 value);
- void SetRepeatedUInt32(int number, int index, uint32 value);
- void SetRepeatedUInt64(int number, int index, uint64 value);
- void SetRepeatedFloat (int number, int index, float value);
- void SetRepeatedDouble(int number, int index, double value);
- void SetRepeatedBool (int number, int index, bool value);
- void SetRepeatedEnum (int number, int index, int value);
- void SetRepeatedString(int number, int index, const string& value);
- string * MutableRepeatedString (int number, int index);
- MessageLite* MutableRepeatedMessage(int number, int index);
-
-#define desc const FieldDescriptor* descriptor // avoid line wrapping
- void AddInt32 (int number, FieldType type, bool packed, int32 value, desc);
- void AddInt64 (int number, FieldType type, bool packed, int64 value, desc);
- void AddUInt32(int number, FieldType type, bool packed, uint32 value, desc);
- void AddUInt64(int number, FieldType type, bool packed, uint64 value, desc);
- void AddFloat (int number, FieldType type, bool packed, float value, desc);
- void AddDouble(int number, FieldType type, bool packed, double value, desc);
- void AddBool (int number, FieldType type, bool packed, bool value, desc);
- void AddEnum (int number, FieldType type, bool packed, int value, desc);
- void AddString(int number, FieldType type, const string& value, desc);
- string * AddString (int number, FieldType type, desc);
- MessageLite* AddMessage(int number, FieldType type,
- const MessageLite& prototype, desc);
- MessageLite* AddMessage(const FieldDescriptor* descriptor,
- MessageFactory* factory);
-#undef desc
-
- void RemoveLast(int number);
- void SwapElements(int number, int index1, int index2);
-
- // -----------------------------------------------------------------
- // TODO(kenton): Hardcore memory management accessors
-
- // =================================================================
- // convenience methods for implementing methods of Message
- //
- // These could all be implemented in terms of the other methods of this
- // class, but providing them here helps keep the generated code size down.
-
- void Clear();
- void MergeFrom(const ExtensionSet& other);
- void Swap(ExtensionSet* other);
- bool IsInitialized() const;
-
- // Parses a single extension from the input. The input should start out
- // positioned immediately after the tag. |containing_type| is the default
- // instance for the containing message; it is used only to look up the
- // extension by number. See RegisterExtension(), above. Unlike the other
- // methods of ExtensionSet, this only works for generated message types --
- // it looks up extensions registered using RegisterExtension().
- bool ParseField(uint32 tag, io::CodedInputStream* input,
- ExtensionFinder* extension_finder,
- FieldSkipper* field_skipper);
-
- // Specific versions for lite or full messages (constructs the appropriate
- // FieldSkipper automatically).
- bool ParseField(uint32 tag, io::CodedInputStream* input,
- const MessageLite* containing_type);
- bool ParseField(uint32 tag, io::CodedInputStream* input,
- const Message* containing_type,
- UnknownFieldSet* unknown_fields);
-
- // Parse an entire message in MessageSet format. Such messages have no
- // fields, only extensions.
- bool ParseMessageSet(io::CodedInputStream* input,
- ExtensionFinder* extension_finder,
- FieldSkipper* field_skipper);
-
- // Specific versions for lite or full messages (constructs the appropriate
- // FieldSkipper automatically).
- bool ParseMessageSet(io::CodedInputStream* input,
- const MessageLite* containing_type);
- bool ParseMessageSet(io::CodedInputStream* input,
- const Message* containing_type,
- UnknownFieldSet* unknown_fields);
-
- // Write all extension fields with field numbers in the range
- // [start_field_number, end_field_number)
- // to the output stream, using the cached sizes computed when ByteSize() was
- // last called. Note that the range bounds are inclusive-exclusive.
- void SerializeWithCachedSizes(int start_field_number,
- int end_field_number,
- io::CodedOutputStream* output) const;
-
- // Same as SerializeWithCachedSizes, but without any bounds checking.
- // The caller must ensure that target has sufficient capacity for the
- // serialized extensions.
- //
- // Returns a pointer past the last written byte.
- uint8* SerializeWithCachedSizesToArray(int start_field_number,
- int end_field_number,
- uint8* target) const;
-
- // Like above but serializes in MessageSet format.
- void SerializeMessageSetWithCachedSizes(io::CodedOutputStream* output) const;
- uint8* SerializeMessageSetWithCachedSizesToArray(uint8* target) const;
-
- // Returns the total serialized size of all the extensions.
- int ByteSize() const;
-
- // Like ByteSize() but uses MessageSet format.
- int MessageSetByteSize() const;
-
- // Returns (an estimate of) the total number of bytes used for storing the
- // extensions in memory, excluding sizeof(*this). If the ExtensionSet is
- // for a lite message (and thus possibly contains lite messages), the results
- // are undefined (might work, might crash, might corrupt data, might not even
- // be linked in). It's up to the protocol compiler to avoid calling this on
- // such ExtensionSets (easy enough since lite messages don't implement
- // SpaceUsed()).
- int SpaceUsedExcludingSelf() const;
-
- private:
-
- struct Extension {
- union {
- int32 int32_value;
- int64 int64_value;
- uint32 uint32_value;
- uint64 uint64_value;
- float float_value;
- double double_value;
- bool bool_value;
- int enum_value;
- string* string_value;
- MessageLite* message_value;
-
- RepeatedField <int32 >* repeated_int32_value;
- RepeatedField <int64 >* repeated_int64_value;
- RepeatedField <uint32 >* repeated_uint32_value;
- RepeatedField <uint64 >* repeated_uint64_value;
- RepeatedField <float >* repeated_float_value;
- RepeatedField <double >* repeated_double_value;
- RepeatedField <bool >* repeated_bool_value;
- RepeatedField <int >* repeated_enum_value;
- RepeatedPtrField<string >* repeated_string_value;
- RepeatedPtrField<MessageLite>* repeated_message_value;
- };
-
- FieldType type;
- bool is_repeated;
-
- // For singular types, indicates if the extension is "cleared". This
- // happens when an extension is set and then later cleared by the caller.
- // We want to keep the Extension object around for reuse, so instead of
- // removing it from the map, we just set is_cleared = true. This has no
- // meaning for repeated types; for those, the size of the RepeatedField
- // simply becomes zero when cleared.
- bool is_cleared;
-
- // For repeated types, this indicates if the [packed=true] option is set.
- bool is_packed;
-
- // The descriptor for this extension, if one exists and is known. May be
- // NULL. Must not be NULL if the descriptor for the extension does not
- // live in the same pool as the descriptor for the containing type.
- const FieldDescriptor* descriptor;
-
- // For packed fields, the size of the packed data is recorded here when
- // ByteSize() is called then used during serialization.
- // TODO(kenton): Use atomic<int> when C++ supports it.
- mutable int cached_size;
-
- // Some helper methods for operations on a single Extension.
- void SerializeFieldWithCachedSizes(
- int number,
- io::CodedOutputStream* output) const;
- uint8* SerializeFieldWithCachedSizesToArray(
- int number,
- uint8* target) const;
- void SerializeMessageSetItemWithCachedSizes(
- int number,
- io::CodedOutputStream* output) const;
- uint8* SerializeMessageSetItemWithCachedSizesToArray(
- int number,
- uint8* target) const;
- int ByteSize(int number) const;
- int MessageSetItemByteSize(int number) const;
- void Clear();
- int GetSize() const;
- void Free();
- int SpaceUsedExcludingSelf() const;
- };
-
-
- // Gets the extension with the given number, creating it if it does not
- // already exist. Returns true if the extension did not already exist.
- bool MaybeNewExtension(int number, const FieldDescriptor* descriptor,
- Extension** result);
-
- // Parse a single MessageSet item -- called just after the item group start
- // tag has been read.
- bool ParseMessageSetItem(io::CodedInputStream* input,
- ExtensionFinder* extension_finder,
- FieldSkipper* field_skipper);
-
-
- // Hack: RepeatedPtrFieldBase declares ExtensionSet as a friend. This
- // friendship should automatically extend to ExtensionSet::Extension, but
- // unfortunately some older compilers (e.g. GCC 3.4.4) do not implement this
- // correctly. So, we must provide helpers for calling methods of that
- // class.
-
- // Defined in extension_set_heavy.cc.
- static inline int RepeatedMessage_SpaceUsedExcludingSelf(
- RepeatedPtrFieldBase* field);
-
- // The Extension struct is small enough to be passed by value, so we use it
- // directly as the value type in the map rather than use pointers. We use
- // a map rather than hash_map here because we expect most ExtensionSets will
- // only contain a small number of extensions whereas hash_map is optimized
- // for 100 elements or more. Also, we want AppendToList() to order fields
- // by field number.
- map<int, Extension> extensions_;
-
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(ExtensionSet);
-};
-
-// These are just for convenience...
-inline void ExtensionSet::SetString(int number, FieldType type,
- const string& value,
- const FieldDescriptor* descriptor) {
- MutableString(number, type, descriptor)->assign(value);
-}
-inline void ExtensionSet::SetRepeatedString(int number, int index,
- const string& value) {
- MutableRepeatedString(number, index)->assign(value);
-}
-inline void ExtensionSet::AddString(int number, FieldType type,
- const string& value,
- const FieldDescriptor* descriptor) {
- AddString(number, type, descriptor)->assign(value);
-}
-
-// ===================================================================
-// Glue for generated extension accessors
-
-// -------------------------------------------------------------------
-// Template magic
-
-// First we have a set of classes representing "type traits" for different
-// field types. A type traits class knows how to implement basic accessors
-// for extensions of a particular type given an ExtensionSet. The signature
-// for a type traits class looks like this:
-//
-// class TypeTraits {
-// public:
-// typedef ? ConstType;
-// typedef ? MutableType;
-//
-// static inline ConstType Get(int number, const ExtensionSet& set);
-// static inline void Set(int number, ConstType value, ExtensionSet* set);
-// static inline MutableType Mutable(int number, ExtensionSet* set);
-//
-// // Variants for repeated fields.
-// static inline ConstType Get(int number, const ExtensionSet& set,
-// int index);
-// static inline void Set(int number, int index,
-// ConstType value, ExtensionSet* set);
-// static inline MutableType Mutable(int number, int index,
-// ExtensionSet* set);
-// static inline void Add(int number, ConstType value, ExtensionSet* set);
-// static inline MutableType Add(int number, ExtensionSet* set);
-// };
-//
-// Not all of these methods make sense for all field types. For example, the
-// "Mutable" methods only make sense for strings and messages, and the
-// repeated methods only make sense for repeated types. So, each type
-// traits class implements only the set of methods from this signature that it
-// actually supports. This will cause a compiler error if the user tries to
-// access an extension using a method that doesn't make sense for its type.
-// For example, if "foo" is an extension of type "optional int32", then if you
-// try to write code like:
-// my_message.MutableExtension(foo)
-// you will get a compile error because PrimitiveTypeTraits<int32> does not
-// have a "Mutable()" method.
-
-// -------------------------------------------------------------------
-// PrimitiveTypeTraits
-
-// Since the ExtensionSet has different methods for each primitive type,
-// we must explicitly define the methods of the type traits class for each
-// known type.
-template <typename Type>
-class PrimitiveTypeTraits {
- public:
- typedef Type ConstType;
-
- static inline ConstType Get(int number, const ExtensionSet& set,
- ConstType default_value);
- static inline void Set(int number, FieldType field_type,
- ConstType value, ExtensionSet* set);
-};
-
-template <typename Type>
-class RepeatedPrimitiveTypeTraits {
- public:
- typedef Type ConstType;
-
- static inline Type Get(int number, const ExtensionSet& set, int index);
- static inline void Set(int number, int index, Type value, ExtensionSet* set);
- static inline void Add(int number, FieldType field_type,
- bool is_packed, Type value, ExtensionSet* set);
-};
-
-#define PROTOBUF_DEFINE_PRIMITIVE_TYPE(TYPE, METHOD) \
-template<> inline TYPE PrimitiveTypeTraits<TYPE>::Get( \
- int number, const ExtensionSet& set, TYPE default_value) { \
- return set.Get##METHOD(number, default_value); \
-} \
-template<> inline void PrimitiveTypeTraits<TYPE>::Set( \
- int number, FieldType field_type, TYPE value, ExtensionSet* set) { \
- set->Set##METHOD(number, field_type, value, NULL); \
-} \
- \
-template<> inline TYPE RepeatedPrimitiveTypeTraits<TYPE>::Get( \
- int number, const ExtensionSet& set, int index) { \
- return set.GetRepeated##METHOD(number, index); \
-} \
-template<> inline void RepeatedPrimitiveTypeTraits<TYPE>::Set( \
- int number, int index, TYPE value, ExtensionSet* set) { \
- set->SetRepeated##METHOD(number, index, value); \
-} \
-template<> inline void RepeatedPrimitiveTypeTraits<TYPE>::Add( \
- int number, FieldType field_type, bool is_packed, \
- TYPE value, ExtensionSet* set) { \
- set->Add##METHOD(number, field_type, is_packed, value, NULL); \
-}
-
-PROTOBUF_DEFINE_PRIMITIVE_TYPE( int32, Int32)
-PROTOBUF_DEFINE_PRIMITIVE_TYPE( int64, Int64)
-PROTOBUF_DEFINE_PRIMITIVE_TYPE(uint32, UInt32)
-PROTOBUF_DEFINE_PRIMITIVE_TYPE(uint64, UInt64)
-PROTOBUF_DEFINE_PRIMITIVE_TYPE( float, Float)
-PROTOBUF_DEFINE_PRIMITIVE_TYPE(double, Double)
-PROTOBUF_DEFINE_PRIMITIVE_TYPE( bool, Bool)
-
-#undef PROTOBUF_DEFINE_PRIMITIVE_TYPE
-
-// -------------------------------------------------------------------
-// StringTypeTraits
-
-// Strings support both Set() and Mutable().
-class LIBPROTOBUF_EXPORT StringTypeTraits {
- public:
- typedef const string& ConstType;
- typedef string* MutableType;
-
- static inline const string& Get(int number, const ExtensionSet& set,
- ConstType default_value) {
- return set.GetString(number, default_value);
- }
- static inline void Set(int number, FieldType field_type,
- const string& value, ExtensionSet* set) {
- set->SetString(number, field_type, value, NULL);
- }
- static inline string* Mutable(int number, FieldType field_type,
- ExtensionSet* set) {
- return set->MutableString(number, field_type, NULL);
- }
-};
-
-class LIBPROTOBUF_EXPORT RepeatedStringTypeTraits {
- public:
- typedef const string& ConstType;
- typedef string* MutableType;
-
- static inline const string& Get(int number, const ExtensionSet& set,
- int index) {
- return set.GetRepeatedString(number, index);
- }
- static inline void Set(int number, int index,
- const string& value, ExtensionSet* set) {
- set->SetRepeatedString(number, index, value);
- }
- static inline string* Mutable(int number, int index, ExtensionSet* set) {
- return set->MutableRepeatedString(number, index);
- }
- static inline void Add(int number, FieldType field_type,
- bool /*is_packed*/, const string& value,
- ExtensionSet* set) {
- set->AddString(number, field_type, value, NULL);
- }
- static inline string* Add(int number, FieldType field_type,
- ExtensionSet* set) {
- return set->AddString(number, field_type, NULL);
- }
-};
-
-// -------------------------------------------------------------------
-// EnumTypeTraits
-
-// ExtensionSet represents enums using integers internally, so we have to
-// static_cast around.
-template <typename Type, bool IsValid(int)>
-class EnumTypeTraits {
- public:
- typedef Type ConstType;
-
- static inline ConstType Get(int number, const ExtensionSet& set,
- ConstType default_value) {
- return static_cast<Type>(set.GetEnum(number, default_value));
- }
- static inline void Set(int number, FieldType field_type,
- ConstType value, ExtensionSet* set) {
- GOOGLE_DCHECK(IsValid(value));
- set->SetEnum(number, field_type, value, NULL);
- }
-};
-
-template <typename Type, bool IsValid(int)>
-class RepeatedEnumTypeTraits {
- public:
- typedef Type ConstType;
-
- static inline ConstType Get(int number, const ExtensionSet& set, int index) {
- return static_cast<Type>(set.GetRepeatedEnum(number, index));
- }
- static inline void Set(int number, int index,
- ConstType value, ExtensionSet* set) {
- GOOGLE_DCHECK(IsValid(value));
- set->SetRepeatedEnum(number, index, value);
- }
- static inline void Add(int number, FieldType field_type,
- bool is_packed, ConstType value, ExtensionSet* set) {
- GOOGLE_DCHECK(IsValid(value));
- set->AddEnum(number, field_type, is_packed, value, NULL);
- }
-};
-
-// -------------------------------------------------------------------
-// MessageTypeTraits
-
-// ExtensionSet guarantees that when manipulating extensions with message
-// types, the implementation used will be the compiled-in class representing
-// that type. So, we can static_cast down to the exact type we expect.
-template <typename Type>
-class MessageTypeTraits {
- public:
- typedef const Type& ConstType;
- typedef Type* MutableType;
-
- static inline ConstType Get(int number, const ExtensionSet& set,
- ConstType default_value) {
- return static_cast<const Type&>(
- set.GetMessage(number, default_value));
- }
- static inline MutableType Mutable(int number, FieldType field_type,
- ExtensionSet* set) {
- return static_cast<Type*>(
- set->MutableMessage(number, field_type, Type::default_instance(), NULL));
- }
-};
-
-template <typename Type>
-class RepeatedMessageTypeTraits {
- public:
- typedef const Type& ConstType;
- typedef Type* MutableType;
-
- static inline ConstType Get(int number, const ExtensionSet& set, int index) {
- return static_cast<const Type&>(set.GetRepeatedMessage(number, index));
- }
- static inline MutableType Mutable(int number, int index, ExtensionSet* set) {
- return static_cast<Type*>(set->MutableRepeatedMessage(number, index));
- }
- static inline MutableType Add(int number, FieldType field_type,
- ExtensionSet* set) {
- return static_cast<Type*>(
- set->AddMessage(number, field_type, Type::default_instance(), NULL));
- }
-};
-
-// -------------------------------------------------------------------
-// ExtensionIdentifier
-
-// This is the type of actual extension objects. E.g. if you have:
-// extends Foo with optional int32 bar = 1234;
-// then "bar" will be defined in C++ as:
-// ExtensionIdentifier<Foo, PrimitiveTypeTraits<int32>, 1, false> bar(1234);
-//
-// Note that we could, in theory, supply the field number as a template
-// parameter, and thus make an instance of ExtensionIdentifier have no
-// actual contents. However, if we did that, then using at extension
-// identifier would not necessarily cause the compiler to output any sort
-// of reference to any simple defined in the extension's .pb.o file. Some
-// linkers will actually drop object files that are not explicitly referenced,
-// but that would be bad because it would cause this extension to not be
-// registered at static initialization, and therefore using it would crash.
-
-template <typename ExtendeeType, typename TypeTraitsType,
- FieldType field_type, bool is_packed>
-class ExtensionIdentifier {
- public:
- typedef TypeTraitsType TypeTraits;
- typedef ExtendeeType Extendee;
-
- ExtensionIdentifier(int number, typename TypeTraits::ConstType default_value)
- : number_(number), default_value_(default_value) {}
- inline int number() const { return number_; }
- typename TypeTraits::ConstType default_value() const {
- return default_value_;
- }
-
- private:
- const int number_;
- typename TypeTraits::ConstType default_value_;
-};
-
-// -------------------------------------------------------------------
-// Generated accessors
-
-// This macro should be expanded in the context of a generated type which
-// has extensions.
-//
-// We use "_proto_TypeTraits" as a type name below because "TypeTraits"
-// causes problems if the class has a nested message or enum type with that
-// name and "_TypeTraits" is technically reserved for the C++ library since
-// it starts with an underscore followed by a capital letter.
-#define GOOGLE_PROTOBUF_EXTENSION_ACCESSORS(CLASSNAME) \
- /* Has, Size, Clear */ \
- template <typename _proto_TypeTraits, \
- ::google::protobuf::internal::FieldType field_type, \
- bool is_packed> \
- inline bool HasExtension( \
- const ::google::protobuf::internal::ExtensionIdentifier< \
- CLASSNAME, _proto_TypeTraits, field_type, is_packed>& id) const { \
- return _extensions_.Has(id.number()); \
- } \
- \
- template <typename _proto_TypeTraits, \
- ::google::protobuf::internal::FieldType field_type, \
- bool is_packed> \
- inline void ClearExtension( \
- const ::google::protobuf::internal::ExtensionIdentifier< \
- CLASSNAME, _proto_TypeTraits, field_type, is_packed>& id) { \
- _extensions_.ClearExtension(id.number()); \
- } \
- \
- template <typename _proto_TypeTraits, \
- ::google::protobuf::internal::FieldType field_type, \
- bool is_packed> \
- inline int ExtensionSize( \
- const ::google::protobuf::internal::ExtensionIdentifier< \
- CLASSNAME, _proto_TypeTraits, field_type, is_packed>& id) const { \
- return _extensions_.ExtensionSize(id.number()); \
- } \
- \
- /* Singular accessors */ \
- template <typename _proto_TypeTraits, \
- ::google::protobuf::internal::FieldType field_type, \
- bool is_packed> \
- inline typename _proto_TypeTraits::ConstType GetExtension( \
- const ::google::protobuf::internal::ExtensionIdentifier< \
- CLASSNAME, _proto_TypeTraits, field_type, is_packed>& id) const { \
- return _proto_TypeTraits::Get(id.number(), _extensions_, \
- id.default_value()); \
- } \
- \
- template <typename _proto_TypeTraits, \
- ::google::protobuf::internal::FieldType field_type, \
- bool is_packed> \
- inline typename _proto_TypeTraits::MutableType MutableExtension( \
- const ::google::protobuf::internal::ExtensionIdentifier< \
- CLASSNAME, _proto_TypeTraits, field_type, is_packed>& id) { \
- return _proto_TypeTraits::Mutable(id.number(), field_type, &_extensions_);\
- } \
- \
- template <typename _proto_TypeTraits, \
- ::google::protobuf::internal::FieldType field_type, \
- bool is_packed> \
- inline void SetExtension( \
- const ::google::protobuf::internal::ExtensionIdentifier< \
- CLASSNAME, _proto_TypeTraits, field_type, is_packed>& id, \
- typename _proto_TypeTraits::ConstType value) { \
- _proto_TypeTraits::Set(id.number(), field_type, value, &_extensions_); \
- } \
- \
- /* Repeated accessors */ \
- template <typename _proto_TypeTraits, \
- ::google::protobuf::internal::FieldType field_type, \
- bool is_packed> \
- inline typename _proto_TypeTraits::ConstType GetExtension( \
- const ::google::protobuf::internal::ExtensionIdentifier< \
- CLASSNAME, _proto_TypeTraits, field_type, is_packed>& id, \
- int index) const { \
- return _proto_TypeTraits::Get(id.number(), _extensions_, index); \
- } \
- \
- template <typename _proto_TypeTraits, \
- ::google::protobuf::internal::FieldType field_type, \
- bool is_packed> \
- inline typename _proto_TypeTraits::MutableType MutableExtension( \
- const ::google::protobuf::internal::ExtensionIdentifier< \
- CLASSNAME, _proto_TypeTraits, field_type, is_packed>& id, \
- int index) { \
- return _proto_TypeTraits::Mutable(id.number(), index, &_extensions_); \
- } \
- \
- template <typename _proto_TypeTraits, \
- ::google::protobuf::internal::FieldType field_type, \
- bool is_packed> \
- inline void SetExtension( \
- const ::google::protobuf::internal::ExtensionIdentifier< \
- CLASSNAME, _proto_TypeTraits, field_type, is_packed>& id, \
- int index, typename _proto_TypeTraits::ConstType value) { \
- _proto_TypeTraits::Set(id.number(), index, value, &_extensions_); \
- } \
- \
- template <typename _proto_TypeTraits, \
- ::google::protobuf::internal::FieldType field_type, \
- bool is_packed> \
- inline typename _proto_TypeTraits::MutableType AddExtension( \
- const ::google::protobuf::internal::ExtensionIdentifier< \
- CLASSNAME, _proto_TypeTraits, field_type, is_packed>& id) { \
- return _proto_TypeTraits::Add(id.number(), field_type, &_extensions_); \
- } \
- \
- template <typename _proto_TypeTraits, \
- ::google::protobuf::internal::FieldType field_type, \
- bool is_packed> \
- inline void AddExtension( \
- const ::google::protobuf::internal::ExtensionIdentifier< \
- CLASSNAME, _proto_TypeTraits, field_type, is_packed>& id, \
- typename _proto_TypeTraits::ConstType value) { \
- _proto_TypeTraits::Add(id.number(), field_type, is_packed, \
- value, &_extensions_); \
- }
-
-} // namespace internal
-} // namespace protobuf
-
-} // namespace google
-#endif // GOOGLE_PROTOBUF_EXTENSION_SET_H__
diff --git a/contrib/prebuilt/include/google/protobuf/generated_message_reflection.h b/contrib/prebuilt/include/google/protobuf/generated_message_reflection.h
deleted file mode 100644
index b545fa1..0000000
--- a/contrib/prebuilt/include/google/protobuf/generated_message_reflection.h
+++ /dev/null
@@ -1,424 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// http://code.google.com/p/protobuf/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Author: kenton@google.com (Kenton Varda)
-// Based on original Protocol Buffers design by
-// Sanjay Ghemawat, Jeff Dean, and others.
-//
-// This header is logically internal, but is made public because it is used
-// from protocol-compiler-generated code, which may reside in other components.
-
-#ifndef GOOGLE_PROTOBUF_GENERATED_MESSAGE_REFLECTION_H__
-#define GOOGLE_PROTOBUF_GENERATED_MESSAGE_REFLECTION_H__
-
-#include <string>
-#include <vector>
-#include <google/protobuf/message.h>
-#include <google/protobuf/unknown_field_set.h>
-
-
-namespace google {
-namespace protobuf {
- class DescriptorPool;
- // Generated code needs these to have been forward-declared. Easier to do it
- // here than to print them inside every .pb.h file.
- class FileDescriptor;
- class EnumDescriptor;
-}
-
-namespace protobuf {
-namespace internal {
-
-// Defined in this file.
-class GeneratedMessageReflection;
-
-// Defined in other files.
-class ExtensionSet; // extension_set.h
-
-// THIS CLASS IS NOT INTENDED FOR DIRECT USE. It is intended for use
-// by generated code. This class is just a big hack that reduces code
-// size.
-//
-// A GeneratedMessageReflection is an implementation of Reflection
-// which expects all fields to be backed by simple variables located in
-// memory. The locations are given using a base pointer and a set of
-// offsets.
-//
-// It is required that the user represents fields of each type in a standard
-// way, so that GeneratedMessageReflection can cast the void* pointer to
-// the appropriate type. For primitive fields and string fields, each field
-// should be represented using the obvious C++ primitive type. Enums and
-// Messages are different:
-// - Singular Message fields are stored as a pointer to a Message. These
-// should start out NULL, except for in the default instance where they
-// should start out pointing to other default instances.
-// - Enum fields are stored as an int. This int must always contain
-// a valid value, such that EnumDescriptor::FindValueByNumber() would
-// not return NULL.
-// - Repeated fields are stored as RepeatedFields or RepeatedPtrFields
-// of whatever type the individual field would be. Strings and
-// Messages use RepeatedPtrFields while everything else uses
-// RepeatedFields.
-class LIBPROTOBUF_EXPORT GeneratedMessageReflection : public Reflection {
- public:
- // Constructs a GeneratedMessageReflection.
- // Parameters:
- // descriptor: The descriptor for the message type being implemented.
- // default_instance: The default instance of the message. This is only
- // used to obtain pointers to default instances of embedded
- // messages, which GetMessage() will return if the particular
- // sub-message has not been initialized yet. (Thus, all
- // embedded message fields *must* have non-NULL pointers
- // in the default instance.)
- // offsets: An array of ints giving the byte offsets, relative to
- // the start of the message object, of each field. These can
- // be computed at compile time using the
- // GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET() macro, defined
- // below.
- // has_bits_offset: Offset in the message of an array of uint32s of size
- // descriptor->field_count()/32, rounded up. This is a
- // bitfield where each bit indicates whether or not the
- // corresponding field of the message has been initialized.
- // The bit for field index i is obtained by the expression:
- // has_bits[i / 32] & (1 << (i % 32))
- // unknown_fields_offset: Offset in the message of the UnknownFieldSet for
- // the message.
- // extensions_offset: Offset in the message of the ExtensionSet for the
- // message, or -1 if the message type has no extension
- // ranges.
- // pool: DescriptorPool to search for extension definitions. Only
- // used by FindKnownExtensionByName() and
- // FindKnownExtensionByNumber().
- // factory: MessageFactory to use to construct extension messages.
- // object_size: The size of a message object of this type, as measured
- // by sizeof().
- GeneratedMessageReflection(const Descriptor* descriptor,
- const Message* default_instance,
- const int offsets[],
- int has_bits_offset,
- int unknown_fields_offset,
- int extensions_offset,
- const DescriptorPool* pool,
- MessageFactory* factory,
- int object_size);
- ~GeneratedMessageReflection();
-
- // implements Reflection -------------------------------------------
-
- const UnknownFieldSet& GetUnknownFields(const Message& message) const;
- UnknownFieldSet* MutableUnknownFields(Message* message) const;
-
- int SpaceUsed(const Message& message) const;
-
- bool HasField(const Message& message, const FieldDescriptor* field) const;
- int FieldSize(const Message& message, const FieldDescriptor* field) const;
- void ClearField(Message* message, const FieldDescriptor* field) const;
- void RemoveLast(Message* message, const FieldDescriptor* field) const;
- void Swap(Message* message1, Message* message2) const;
- void SwapElements(Message* message, const FieldDescriptor* field,
- int index1, int index2) const;
- void ListFields(const Message& message,
- vector<const FieldDescriptor*>* output) const;
-
- int32 GetInt32 (const Message& message,
- const FieldDescriptor* field) const;
- int64 GetInt64 (const Message& message,
- const FieldDescriptor* field) const;
- uint32 GetUInt32(const Message& message,
- const FieldDescriptor* field) const;
- uint64 GetUInt64(const Message& message,
- const FieldDescriptor* field) const;
- float GetFloat (const Message& message,
- const FieldDescriptor* field) const;
- double GetDouble(const Message& message,
- const FieldDescriptor* field) const;
- bool GetBool (const Message& message,
- const FieldDescriptor* field) const;
- string GetString(const Message& message,
- const FieldDescriptor* field) const;
- const string& GetStringReference(const Message& message,
- const FieldDescriptor* field,
- string* scratch) const;
- const EnumValueDescriptor* GetEnum(const Message& message,
- const FieldDescriptor* field) const;
- const Message& GetMessage(const Message& message,
- const FieldDescriptor* field,
- MessageFactory* factory = NULL) const;
-
- void SetInt32 (Message* message,
- const FieldDescriptor* field, int32 value) const;
- void SetInt64 (Message* message,
- const FieldDescriptor* field, int64 value) const;
- void SetUInt32(Message* message,
- const FieldDescriptor* field, uint32 value) const;
- void SetUInt64(Message* message,
- const FieldDescriptor* field, uint64 value) const;
- void SetFloat (Message* message,
- const FieldDescriptor* field, float value) const;
- void SetDouble(Message* message,
- const FieldDescriptor* field, double value) const;
- void SetBool (Message* message,
- const FieldDescriptor* field, bool value) const;
- void SetString(Message* message,
- const FieldDescriptor* field,
- const string& value) const;
- void SetEnum (Message* message, const FieldDescriptor* field,
- const EnumValueDescriptor* value) const;
- Message* MutableMessage(Message* message, const FieldDescriptor* field,
- MessageFactory* factory = NULL) const;
-
- int32 GetRepeatedInt32 (const Message& message,
- const FieldDescriptor* field, int index) const;
- int64 GetRepeatedInt64 (const Message& message,
- const FieldDescriptor* field, int index) const;
- uint32 GetRepeatedUInt32(const Message& message,
- const FieldDescriptor* field, int index) const;
- uint64 GetRepeatedUInt64(const Message& message,
- const FieldDescriptor* field, int index) const;
- float GetRepeatedFloat (const Message& message,
- const FieldDescriptor* field, int index) const;
- double GetRepeatedDouble(const Message& message,
- const FieldDescriptor* field, int index) const;
- bool GetRepeatedBool (const Message& message,
- const FieldDescriptor* field, int index) const;
- string GetRepeatedString(const Message& message,
- const FieldDescriptor* field, int index) const;
- const string& GetRepeatedStringReference(const Message& message,
- const FieldDescriptor* field,
- int index, string* scratch) const;
- const EnumValueDescriptor* GetRepeatedEnum(const Message& message,
- const FieldDescriptor* field,
- int index) const;
- const Message& GetRepeatedMessage(const Message& message,
- const FieldDescriptor* field,
- int index) const;
-
- // Set the value of a field.
- void SetRepeatedInt32 (Message* message,
- const FieldDescriptor* field, int index, int32 value) const;
- void SetRepeatedInt64 (Message* message,
- const FieldDescriptor* field, int index, int64 value) const;
- void SetRepeatedUInt32(Message* message,
- const FieldDescriptor* field, int index, uint32 value) const;
- void SetRepeatedUInt64(Message* message,
- const FieldDescriptor* field, int index, uint64 value) const;
- void SetRepeatedFloat (Message* message,
- const FieldDescriptor* field, int index, float value) const;
- void SetRepeatedDouble(Message* message,
- const FieldDescriptor* field, int index, double value) const;
- void SetRepeatedBool (Message* message,
- const FieldDescriptor* field, int index, bool value) const;
- void SetRepeatedString(Message* message,
- const FieldDescriptor* field, int index,
- const string& value) const;
- void SetRepeatedEnum(Message* message, const FieldDescriptor* field,
- int index, const EnumValueDescriptor* value) const;
- // Get a mutable pointer to a field with a message type.
- Message* MutableRepeatedMessage(Message* message,
- const FieldDescriptor* field,
- int index) const;
-
- void AddInt32 (Message* message,
- const FieldDescriptor* field, int32 value) const;
- void AddInt64 (Message* message,
- const FieldDescriptor* field, int64 value) const;
- void AddUInt32(Message* message,
- const FieldDescriptor* field, uint32 value) const;
- void AddUInt64(Message* message,
- const FieldDescriptor* field, uint64 value) const;
- void AddFloat (Message* message,
- const FieldDescriptor* field, float value) const;
- void AddDouble(Message* message,
- const FieldDescriptor* field, double value) const;
- void AddBool (Message* message,
- const FieldDescriptor* field, bool value) const;
- void AddString(Message* message,
- const FieldDescriptor* field, const string& value) const;
- void AddEnum(Message* message,
- const FieldDescriptor* field,
- const EnumValueDescriptor* value) const;
- Message* AddMessage(Message* message, const FieldDescriptor* field,
- MessageFactory* factory = NULL) const;
-
- const FieldDescriptor* FindKnownExtensionByName(const string& name) const;
- const FieldDescriptor* FindKnownExtensionByNumber(int number) const;
-
- private:
- friend class GeneratedMessage;
-
- const Descriptor* descriptor_;
- const Message* default_instance_;
- const int* offsets_;
-
- int has_bits_offset_;
- int unknown_fields_offset_;
- int extensions_offset_;
- int object_size_;
-
- const DescriptorPool* descriptor_pool_;
- MessageFactory* message_factory_;
-
- template <typename Type>
- inline const Type& GetRaw(const Message& message,
- const FieldDescriptor* field) const;
- template <typename Type>
- inline Type* MutableRaw(Message* message,
- const FieldDescriptor* field) const;
- template <typename Type>
- inline const Type& DefaultRaw(const FieldDescriptor* field) const;
- inline const Message* GetMessagePrototype(const FieldDescriptor* field) const;
-
- inline const uint32* GetHasBits(const Message& message) const;
- inline uint32* MutableHasBits(Message* message) const;
- inline const ExtensionSet& GetExtensionSet(const Message& message) const;
- inline ExtensionSet* MutableExtensionSet(Message* message) const;
-
- inline bool HasBit(const Message& message,
- const FieldDescriptor* field) const;
- inline void SetBit(Message* message,
- const FieldDescriptor* field) const;
- inline void ClearBit(Message* message,
- const FieldDescriptor* field) const;
-
- template <typename Type>
- inline const Type& GetField(const Message& message,
- const FieldDescriptor* field) const;
- template <typename Type>
- inline void SetField(Message* message,
- const FieldDescriptor* field, const Type& value) const;
- template <typename Type>
- inline Type* MutableField(Message* message,
- const FieldDescriptor* field) const;
- template <typename Type>
- inline const Type& GetRepeatedField(const Message& message,
- const FieldDescriptor* field,
- int index) const;
- template <typename Type>
- inline const Type& GetRepeatedPtrField(const Message& message,
- const FieldDescriptor* field,
- int index) const;
- template <typename Type>
- inline void SetRepeatedField(Message* message,
- const FieldDescriptor* field, int index,
- Type value) const;
- template <typename Type>
- inline Type* MutableRepeatedField(Message* message,
- const FieldDescriptor* field,
- int index) const;
- template <typename Type>
- inline void AddField(Message* message,
- const FieldDescriptor* field, const Type& value) const;
- template <typename Type>
- inline Type* AddField(Message* message,
- const FieldDescriptor* field) const;
-
- int GetExtensionNumberOrDie(const Descriptor* type) const;
-
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(GeneratedMessageReflection);
-};
-
-// Returns the offset of the given field within the given aggregate type.
-// This is equivalent to the ANSI C offsetof() macro. However, according
-// to the C++ standard, offsetof() only works on POD types, and GCC
-// enforces this requirement with a warning. In practice, this rule is
-// unnecessarily strict; there is probably no compiler or platform on
-// which the offsets of the direct fields of a class are non-constant.
-// Fields inherited from superclasses *can* have non-constant offsets,
-// but that's not what this macro will be used for.
-//
-// Note that we calculate relative to the pointer value 16 here since if we
-// just use zero, GCC complains about dereferencing a NULL pointer. We
-// choose 16 rather than some other number just in case the compiler would
-// be confused by an unaligned pointer.
-#define GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(TYPE, FIELD) \
- static_cast<int>( \
- reinterpret_cast<const char*>( \
- &reinterpret_cast<const TYPE*>(16)->FIELD) - \
- reinterpret_cast<const char*>(16))
-
-// There are some places in proto2 where dynamic_cast would be useful as an
-// optimization. For example, take Message::MergeFrom(const Message& other).
-// For a given generated message FooMessage, we generate these two methods:
-// void MergeFrom(const FooMessage& other);
-// void MergeFrom(const Message& other);
-// The former method can be implemented directly in terms of FooMessage's
-// inline accessors, but the latter method must work with the reflection
-// interface. However, if the parameter to the latter method is actually of
-// type FooMessage, then we'd like to be able to just call the other method
-// as an optimization. So, we use dynamic_cast to check this.
-//
-// That said, dynamic_cast requires RTTI, which many people like to disable
-// for performance and code size reasons. When RTTI is not available, we
-// still need to produce correct results. So, in this case we have to fall
-// back to using reflection, which is what we would have done anyway if the
-// objects were not of the exact same class.
-//
-// dynamic_cast_if_available() implements this logic. If RTTI is
-// enabled, it does a dynamic_cast. If RTTI is disabled, it just returns
-// NULL.
-//
-// If you need to compile without RTTI, simply #define GOOGLE_PROTOBUF_NO_RTTI.
-// On MSVC, this should be detected automatically.
-template<typename To, typename From>
-inline To dynamic_cast_if_available(From from) {
-#if defined(GOOGLE_PROTOBUF_NO_RTTI) || (defined(_MSC_VER)&&!defined(_CPPRTTI))
- return NULL;
-#else
- return dynamic_cast<To>(from);
-#endif
-}
-
-// Helper for EnumType_Parse functions: try to parse the string 'name' as an
-// enum name of the given type, returning true and filling in value on success,
-// or returning false and leaving value unchanged on failure.
-LIBPROTOBUF_EXPORT bool ParseNamedEnum(const EnumDescriptor* descriptor,
- const string& name,
- int* value);
-
-template<typename EnumType>
-bool ParseNamedEnum(const EnumDescriptor* descriptor,
- const string& name,
- EnumType* value) {
- int tmp;
- if (!ParseNamedEnum(descriptor, name, &tmp)) return false;
- *value = static_cast<EnumType>(tmp);
- return true;
-}
-
-// Just a wrapper around printing the name of a value. The main point of this
-// function is not to be inlined, so that you can do this without including
-// descriptor.h.
-LIBPROTOBUF_EXPORT const string& NameOfEnum(const EnumDescriptor* descriptor, int value);
-
-} // namespace internal
-} // namespace protobuf
-
-} // namespace google
-#endif // GOOGLE_PROTOBUF_GENERATED_MESSAGE_REFLECTION_H__
diff --git a/contrib/prebuilt/include/google/protobuf/generated_message_util.h b/contrib/prebuilt/include/google/protobuf/generated_message_util.h
deleted file mode 100644
index 1a2343d..0000000
--- a/contrib/prebuilt/include/google/protobuf/generated_message_util.h
+++ /dev/null
@@ -1,82 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// http://code.google.com/p/protobuf/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Author: kenton@google.com (Kenton Varda)
-// Based on original Protocol Buffers design by
-// Sanjay Ghemawat, Jeff Dean, and others.
-//
-// This file contains miscellaneous helper code used by generated code --
-// including lite types -- but which should not be used directly by users.
-
-#ifndef GOOGLE_PROTOBUF_GENERATED_MESSAGE_UTIL_H__
-#define GOOGLE_PROTOBUF_GENERATED_MESSAGE_UTIL_H__
-
-#include <string>
-
-#include <google/protobuf/stubs/common.h>
-
-
-namespace google {
-namespace protobuf {
- namespace io {
- class CodedInputStream; // coded_stream.h
- }
-}
-
-namespace protobuf {
-namespace internal {
-
-// Annotation for the compiler to emit a deprecation message if a field marked
-// with option 'deprecated=true' is used in the code, or for other things in
-// generated code which are deprecated.
-//
-// For internal use in the pb.cc files, deprecation warnings are suppressed
-// there.
-#undef DEPRECATED_PROTOBUF_FIELD
-#if !defined(INTERNAL_SUPPRESS_PROTOBUF_FIELD_DEPRECATION)
-# define PROTOBUF_DEPRECATED GOOGLE_ATTRIBUTE_DEPRECATED
-#else
-# define PROTOBUF_DEPRECATED
-#endif
-
-
-// Constants for special floating point values.
-double Infinity();
-double NaN();
-
-// Constant used for empty default strings.
-extern const ::std::string kEmptyString;
-
-
-} // namespace internal
-} // namespace protobuf
-
-} // namespace google
-#endif // GOOGLE_PROTOBUF_GENERATED_MESSAGE_UTIL_H__
diff --git a/contrib/prebuilt/include/google/protobuf/io/coded_stream.h b/contrib/prebuilt/include/google/protobuf/io/coded_stream.h
deleted file mode 100644
index 1b6b4e1..0000000
--- a/contrib/prebuilt/include/google/protobuf/io/coded_stream.h
+++ /dev/null
@@ -1,1102 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// http://code.google.com/p/protobuf/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Author: kenton@google.com (Kenton Varda)
-// Based on original Protocol Buffers design by
-// Sanjay Ghemawat, Jeff Dean, and others.
-//
-// This file contains the CodedInputStream and CodedOutputStream classes,
-// which wrap a ZeroCopyInputStream or ZeroCopyOutputStream, respectively,
-// and allow you to read or write individual pieces of data in various
-// formats. In particular, these implement the varint encoding for
-// integers, a simple variable-length encoding in which smaller numbers
-// take fewer bytes.
-//
-// Typically these classes will only be used internally by the protocol
-// buffer library in order to encode and decode protocol buffers. Clients
-// of the library only need to know about this class if they wish to write
-// custom message parsing or serialization procedures.
-//
-// CodedOutputStream example:
-// // Write some data to "myfile". First we write a 4-byte "magic number"
-// // to identify the file type, then write a length-delimited string. The
-// // string is composed of a varint giving the length followed by the raw
-// // bytes.
-// int fd = open("myfile", O_WRONLY);
-// ZeroCopyOutputStream* raw_output = new FileOutputStream(fd);
-// CodedOutputStream* coded_output = new CodedOutputStream(raw_output);
-//
-// int magic_number = 1234;
-// char text[] = "Hello world!";
-// coded_output->WriteLittleEndian32(magic_number);
-// coded_output->WriteVarint32(strlen(text));
-// coded_output->WriteRaw(text, strlen(text));
-//
-// delete coded_output;
-// delete raw_output;
-// close(fd);
-//
-// CodedInputStream example:
-// // Read a file created by the above code.
-// int fd = open("myfile", O_RDONLY);
-// ZeroCopyInputStream* raw_input = new FileInputStream(fd);
-// CodedInputStream coded_input = new CodedInputStream(raw_input);
-//
-// coded_input->ReadLittleEndian32(&magic_number);
-// if (magic_number != 1234) {
-// cerr << "File not in expected format." << endl;
-// return;
-// }
-//
-// uint32 size;
-// coded_input->ReadVarint32(&size);
-//
-// char* text = new char[size + 1];
-// coded_input->ReadRaw(buffer, size);
-// text[size] = '\0';
-//
-// delete coded_input;
-// delete raw_input;
-// close(fd);
-//
-// cout << "Text is: " << text << endl;
-// delete [] text;
-//
-// For those who are interested, varint encoding is defined as follows:
-//
-// The encoding operates on unsigned integers of up to 64 bits in length.
-// Each byte of the encoded value has the format:
-// * bits 0-6: Seven bits of the number being encoded.
-// * bit 7: Zero if this is the last byte in the encoding (in which
-// case all remaining bits of the number are zero) or 1 if
-// more bytes follow.
-// The first byte contains the least-significant 7 bits of the number, the
-// second byte (if present) contains the next-least-significant 7 bits,
-// and so on. So, the binary number 1011000101011 would be encoded in two
-// bytes as "10101011 00101100".
-//
-// In theory, varint could be used to encode integers of any length.
-// However, for practicality we set a limit at 64 bits. The maximum encoded
-// length of a number is thus 10 bytes.
-
-#ifndef GOOGLE_PROTOBUF_IO_CODED_STREAM_H__
-#define GOOGLE_PROTOBUF_IO_CODED_STREAM_H__
-
-#include <string>
-#ifdef _MSC_VER
- #if defined(_M_IX86) && \
- !defined(PROTOBUF_DISABLE_LITTLE_ENDIAN_OPT_FOR_TEST)
- #define PROTOBUF_LITTLE_ENDIAN 1
- #endif
- #if _MSC_VER >= 1300
- // If MSVC has "/RTCc" set, it will complain about truncating casts at
- // runtime. This file contains some intentional truncating casts.
- #pragma runtime_checks("c", off)
- #endif
-#else
- #include <sys/param.h> // __BYTE_ORDER
- #if defined(__BYTE_ORDER) && __BYTE_ORDER == __LITTLE_ENDIAN && \
- !defined(PROTOBUF_DISABLE_LITTLE_ENDIAN_OPT_FOR_TEST)
- #define PROTOBUF_LITTLE_ENDIAN 1
- #endif
-#endif
-#include <google/protobuf/stubs/common.h>
-
-
-namespace google {
-namespace protobuf {
-
-class DescriptorPool;
-class MessageFactory;
-
-namespace io {
-
-// Defined in this file.
-class CodedInputStream;
-class CodedOutputStream;
-
-// Defined in other files.
-class ZeroCopyInputStream; // zero_copy_stream.h
-class ZeroCopyOutputStream; // zero_copy_stream.h
-
-// Class which reads and decodes binary data which is composed of varint-
-// encoded integers and fixed-width pieces. Wraps a ZeroCopyInputStream.
-// Most users will not need to deal with CodedInputStream.
-//
-// Most methods of CodedInputStream that return a bool return false if an
-// underlying I/O error occurs or if the data is malformed. Once such a
-// failure occurs, the CodedInputStream is broken and is no longer useful.
-class LIBPROTOBUF_EXPORT CodedInputStream {
- public:
- // Create a CodedInputStream that reads from the given ZeroCopyInputStream.
- explicit CodedInputStream(ZeroCopyInputStream* input);
-
- // Create a CodedInputStream that reads from the given flat array. This is
- // faster than using an ArrayInputStream. PushLimit(size) is implied by
- // this constructor.
- explicit CodedInputStream(const uint8* buffer, int size);
-
- // Destroy the CodedInputStream and position the underlying
- // ZeroCopyInputStream at the first unread byte. If an error occurred while
- // reading (causing a method to return false), then the exact position of
- // the input stream may be anywhere between the last value that was read
- // successfully and the stream's byte limit.
- ~CodedInputStream();
-
-
- // Skips a number of bytes. Returns false if an underlying read error
- // occurs.
- bool Skip(int count);
-
- // Sets *data to point directly at the unread part of the CodedInputStream's
- // underlying buffer, and *size to the size of that buffer, but does not
- // advance the stream's current position. This will always either produce
- // a non-empty buffer or return false. If the caller consumes any of
- // this data, it should then call Skip() to skip over the consumed bytes.
- // This may be useful for implementing external fast parsing routines for
- // types of data not covered by the CodedInputStream interface.
- bool GetDirectBufferPointer(const void** data, int* size);
-
- // Like GetDirectBufferPointer, but this method is inlined, and does not
- // attempt to Refresh() if the buffer is currently empty.
- inline void GetDirectBufferPointerInline(const void** data,
- int* size) GOOGLE_ATTRIBUTE_ALWAYS_INLINE;
-
- // Read raw bytes, copying them into the given buffer.
- bool ReadRaw(void* buffer, int size);
-
- // Like ReadRaw, but reads into a string.
- //
- // Implementation Note: ReadString() grows the string gradually as it
- // reads in the data, rather than allocating the entire requested size
- // upfront. This prevents denial-of-service attacks in which a client
- // could claim that a string is going to be MAX_INT bytes long in order to
- // crash the server because it can't allocate this much space at once.
- bool ReadString(string* buffer, int size);
- // Like the above, with inlined optimizations. This should only be used
- // by the protobuf implementation.
- inline bool InternalReadStringInline(string* buffer,
- int size) GOOGLE_ATTRIBUTE_ALWAYS_INLINE;
-
-
- // Read a 32-bit little-endian integer.
- bool ReadLittleEndian32(uint32* value);
- // Read a 64-bit little-endian integer.
- bool ReadLittleEndian64(uint64* value);
-
- // These methods read from an externally provided buffer. The caller is
- // responsible for ensuring that the buffer has sufficient space.
- // Read a 32-bit little-endian integer.
- static const uint8* ReadLittleEndian32FromArray(const uint8* buffer,
- uint32* value);
- // Read a 64-bit little-endian integer.
- static const uint8* ReadLittleEndian64FromArray(const uint8* buffer,
- uint64* value);
-
- // Read an unsigned integer with Varint encoding, truncating to 32 bits.
- // Reading a 32-bit value is equivalent to reading a 64-bit one and casting
- // it to uint32, but may be more efficient.
- bool ReadVarint32(uint32* value);
- // Read an unsigned integer with Varint encoding.
- bool ReadVarint64(uint64* value);
-
- // Read a tag. This calls ReadVarint32() and returns the result, or returns
- // zero (which is not a valid tag) if ReadVarint32() fails. Also, it updates
- // the last tag value, which can be checked with LastTagWas().
- // Always inline because this is only called in once place per parse loop
- // but it is called for every iteration of said loop, so it should be fast.
- // GCC doesn't want to inline this by default.
- uint32 ReadTag() GOOGLE_ATTRIBUTE_ALWAYS_INLINE;
-
- // Usually returns true if calling ReadVarint32() now would produce the given
- // value. Will always return false if ReadVarint32() would not return the
- // given value. If ExpectTag() returns true, it also advances past
- // the varint. For best performance, use a compile-time constant as the
- // parameter.
- // Always inline because this collapses to a small number of instructions
- // when given a constant parameter, but GCC doesn't want to inline by default.
- bool ExpectTag(uint32 expected) GOOGLE_ATTRIBUTE_ALWAYS_INLINE;
-
- // Like above, except this reads from the specified buffer. The caller is
- // responsible for ensuring that the buffer is large enough to read a varint
- // of the expected size. For best performance, use a compile-time constant as
- // the expected tag parameter.
- //
- // Returns a pointer beyond the expected tag if it was found, or NULL if it
- // was not.
- static const uint8* ExpectTagFromArray(
- const uint8* buffer,
- uint32 expected) GOOGLE_ATTRIBUTE_ALWAYS_INLINE;
-
- // Usually returns true if no more bytes can be read. Always returns false
- // if more bytes can be read. If ExpectAtEnd() returns true, a subsequent
- // call to LastTagWas() will act as if ReadTag() had been called and returned
- // zero, and ConsumedEntireMessage() will return true.
- bool ExpectAtEnd();
-
- // If the last call to ReadTag() returned the given value, returns true.
- // Otherwise, returns false;
- //
- // This is needed because parsers for some types of embedded messages
- // (with field type TYPE_GROUP) don't actually know that they've reached the
- // end of a message until they see an ENDGROUP tag, which was actually part
- // of the enclosing message. The enclosing message would like to check that
- // tag to make sure it had the right number, so it calls LastTagWas() on
- // return from the embedded parser to check.
- bool LastTagWas(uint32 expected);
-
- // When parsing message (but NOT a group), this method must be called
- // immediately after MergeFromCodedStream() returns (if it returns true)
- // to further verify that the message ended in a legitimate way. For
- // example, this verifies that parsing did not end on an end-group tag.
- // It also checks for some cases where, due to optimizations,
- // MergeFromCodedStream() can incorrectly return true.
- bool ConsumedEntireMessage();
-
- // Limits ----------------------------------------------------------
- // Limits are used when parsing length-delimited embedded messages.
- // After the message's length is read, PushLimit() is used to prevent
- // the CodedInputStream from reading beyond that length. Once the
- // embedded message has been parsed, PopLimit() is called to undo the
- // limit.
-
- // Opaque type used with PushLimit() and PopLimit(). Do not modify
- // values of this type yourself. The only reason that this isn't a
- // struct with private internals is for efficiency.
- typedef int Limit;
-
- // Places a limit on the number of bytes that the stream may read,
- // starting from the current position. Once the stream hits this limit,
- // it will act like the end of the input has been reached until PopLimit()
- // is called.
- //
- // As the names imply, the stream conceptually has a stack of limits. The
- // shortest limit on the stack is always enforced, even if it is not the
- // top limit.
- //
- // The value returned by PushLimit() is opaque to the caller, and must
- // be passed unchanged to the corresponding call to PopLimit().
- Limit PushLimit(int byte_limit);
-
- // Pops the last limit pushed by PushLimit(). The input must be the value
- // returned by that call to PushLimit().
- void PopLimit(Limit limit);
-
- // Returns the number of bytes left until the nearest limit on the
- // stack is hit, or -1 if no limits are in place.
- int BytesUntilLimit();
-
- // Total Bytes Limit -----------------------------------------------
- // To prevent malicious users from sending excessively large messages
- // and causing integer overflows or memory exhaustion, CodedInputStream
- // imposes a hard limit on the total number of bytes it will read.
-
- // Sets the maximum number of bytes that this CodedInputStream will read
- // before refusing to continue. To prevent integer overflows in the
- // protocol buffers implementation, as well as to prevent servers from
- // allocating enormous amounts of memory to hold parsed messages, the
- // maximum message length should be limited to the shortest length that
- // will not harm usability. The theoretical shortest message that could
- // cause integer overflows is 512MB. The default limit is 64MB. Apps
- // should set shorter limits if possible. If warning_threshold is not -1,
- // a warning will be printed to stderr after warning_threshold bytes are
- // read. An error will always be printed to stderr if the limit is
- // reached.
- //
- // This is unrelated to PushLimit()/PopLimit().
- //
- // Hint: If you are reading this because your program is printing a
- // warning about dangerously large protocol messages, you may be
- // confused about what to do next. The best option is to change your
- // design such that excessively large messages are not necessary.
- // For example, try to design file formats to consist of many small
- // messages rather than a single large one. If this is infeasible,
- // you will need to increase the limit. Chances are, though, that
- // your code never constructs a CodedInputStream on which the limit
- // can be set. You probably parse messages by calling things like
- // Message::ParseFromString(). In this case, you will need to change
- // your code to instead construct some sort of ZeroCopyInputStream
- // (e.g. an ArrayInputStream), construct a CodedInputStream around
- // that, then call Message::ParseFromCodedStream() instead. Then
- // you can adjust the limit. Yes, it's more work, but you're doing
- // something unusual.
- void SetTotalBytesLimit(int total_bytes_limit, int warning_threshold);
-
- // Recursion Limit -------------------------------------------------
- // To prevent corrupt or malicious messages from causing stack overflows,
- // we must keep track of the depth of recursion when parsing embedded
- // messages and groups. CodedInputStream keeps track of this because it
- // is the only object that is passed down the stack during parsing.
-
- // Sets the maximum recursion depth. The default is 64.
- void SetRecursionLimit(int limit);
-
- // Increments the current recursion depth. Returns true if the depth is
- // under the limit, false if it has gone over.
- bool IncrementRecursionDepth();
-
- // Decrements the recursion depth.
- void DecrementRecursionDepth();
-
- // Extension Registry ----------------------------------------------
- // ADVANCED USAGE: 99.9% of people can ignore this section.
- //
- // By default, when parsing extensions, the parser looks for extension
- // definitions in the pool which owns the outer message's Descriptor.
- // However, you may call SetExtensionRegistry() to provide an alternative
- // pool instead. This makes it possible, for example, to parse a message
- // using a generated class, but represent some extensions using
- // DynamicMessage.
-
- // Set the pool used to look up extensions. Most users do not need to call
- // this as the correct pool will be chosen automatically.
- //
- // WARNING: It is very easy to misuse this. Carefully read the requirements
- // below. Do not use this unless you are sure you need it. Almost no one
- // does.
- //
- // Let's say you are parsing a message into message object m, and you want
- // to take advantage of SetExtensionRegistry(). You must follow these
- // requirements:
- //
- // The given DescriptorPool must contain m->GetDescriptor(). It is not
- // sufficient for it to simply contain a descriptor that has the same name
- // and content -- it must be the *exact object*. In other words:
- // assert(pool->FindMessageTypeByName(m->GetDescriptor()->full_name()) ==
- // m->GetDescriptor());
- // There are two ways to satisfy this requirement:
- // 1) Use m->GetDescriptor()->pool() as the pool. This is generally useless
- // because this is the pool that would be used anyway if you didn't call
- // SetExtensionRegistry() at all.
- // 2) Use a DescriptorPool which has m->GetDescriptor()->pool() as an
- // "underlay". Read the documentation for DescriptorPool for more
- // information about underlays.
- //
- // You must also provide a MessageFactory. This factory will be used to
- // construct Message objects representing extensions. The factory's
- // GetPrototype() MUST return non-NULL for any Descriptor which can be found
- // through the provided pool.
- //
- // If the provided factory might return instances of protocol-compiler-
- // generated (i.e. compiled-in) types, or if the outer message object m is
- // a generated type, then the given factory MUST have this property: If
- // GetPrototype() is given a Descriptor which resides in
- // DescriptorPool::generated_pool(), the factory MUST return the same
- // prototype which MessageFactory::generated_factory() would return. That
- // is, given a descriptor for a generated type, the factory must return an
- // instance of the generated class (NOT DynamicMessage). However, when
- // given a descriptor for a type that is NOT in generated_pool, the factory
- // is free to return any implementation.
- //
- // The reason for this requirement is that generated sub-objects may be
- // accessed via the standard (non-reflection) extension accessor methods,
- // and these methods will down-cast the object to the generated class type.
- // If the object is not actually of that type, the results would be undefined.
- // On the other hand, if an extension is not compiled in, then there is no
- // way the code could end up accessing it via the standard accessors -- the
- // only way to access the extension is via reflection. When using reflection,
- // DynamicMessage and generated messages are indistinguishable, so it's fine
- // if these objects are represented using DynamicMessage.
- //
- // Using DynamicMessageFactory on which you have called
- // SetDelegateToGeneratedFactory(true) should be sufficient to satisfy the
- // above requirement.
- //
- // If either pool or factory is NULL, both must be NULL.
- //
- // Note that this feature is ignored when parsing "lite" messages as they do
- // not have descriptors.
- void SetExtensionRegistry(DescriptorPool* pool, MessageFactory* factory);
-
- // Get the DescriptorPool set via SetExtensionRegistry(), or NULL if no pool
- // has been provided.
- const DescriptorPool* GetExtensionPool();
-
- // Get the MessageFactory set via SetExtensionRegistry(), or NULL if no
- // factory has been provided.
- MessageFactory* GetExtensionFactory();
-
- private:
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(CodedInputStream);
-
- ZeroCopyInputStream* input_;
- const uint8* buffer_;
- const uint8* buffer_end_; // pointer to the end of the buffer.
- int total_bytes_read_; // total bytes read from input_, including
- // the current buffer
-
- // If total_bytes_read_ surpasses INT_MAX, we record the extra bytes here
- // so that we can BackUp() on destruction.
- int overflow_bytes_;
-
- // LastTagWas() stuff.
- uint32 last_tag_; // result of last ReadTag().
-
- // This is set true by ReadTag{Fallback/Slow}() if it is called when exactly
- // at EOF, or by ExpectAtEnd() when it returns true. This happens when we
- // reach the end of a message and attempt to read another tag.
- bool legitimate_message_end_;
-
- // See EnableAliasing().
- bool aliasing_enabled_;
-
- // Limits
- Limit current_limit_; // if position = -1, no limit is applied
-
- // For simplicity, if the current buffer crosses a limit (either a normal
- // limit created by PushLimit() or the total bytes limit), buffer_size_
- // only tracks the number of bytes before that limit. This field
- // contains the number of bytes after it. Note that this implies that if
- // buffer_size_ == 0 and buffer_size_after_limit_ > 0, we know we've
- // hit a limit. However, if both are zero, it doesn't necessarily mean
- // we aren't at a limit -- the buffer may have ended exactly at the limit.
- int buffer_size_after_limit_;
-
- // Maximum number of bytes to read, period. This is unrelated to
- // current_limit_. Set using SetTotalBytesLimit().
- int total_bytes_limit_;
- int total_bytes_warning_threshold_;
-
- // Current recursion depth, controlled by IncrementRecursionDepth() and
- // DecrementRecursionDepth().
- int recursion_depth_;
- // Recursion depth limit, set by SetRecursionLimit().
- int recursion_limit_;
-
- // See SetExtensionRegistry().
- const DescriptorPool* extension_pool_;
- MessageFactory* extension_factory_;
-
- // Private member functions.
-
- // Advance the buffer by a given number of bytes.
- void Advance(int amount);
-
- // Back up input_ to the current buffer position.
- void BackUpInputToCurrentPosition();
-
- // Recomputes the value of buffer_size_after_limit_. Must be called after
- // current_limit_ or total_bytes_limit_ changes.
- void RecomputeBufferLimits();
-
- // Writes an error message saying that we hit total_bytes_limit_.
- void PrintTotalBytesLimitError();
-
- // Called when the buffer runs out to request more data. Implies an
- // Advance(BufferSize()).
- bool Refresh();
-
- // When parsing varints, we optimize for the common case of small values, and
- // then optimize for the case when the varint fits within the current buffer
- // piece. The Fallback method is used when we can't use the one-byte
- // optimization. The Slow method is yet another fallback when the buffer is
- // not large enough. Making the slow path out-of-line speeds up the common
- // case by 10-15%. The slow path is fairly uncommon: it only triggers when a
- // message crosses multiple buffers.
- bool ReadVarint32Fallback(uint32* value);
- bool ReadVarint64Fallback(uint64* value);
- bool ReadVarint32Slow(uint32* value);
- bool ReadVarint64Slow(uint64* value);
- bool ReadLittleEndian32Fallback(uint32* value);
- bool ReadLittleEndian64Fallback(uint64* value);
- // Fallback/slow methods for reading tags. These do not update last_tag_,
- // but will set legitimate_message_end_ if we are at the end of the input
- // stream.
- uint32 ReadTagFallback();
- uint32 ReadTagSlow();
- bool ReadStringFallback(string* buffer, int size);
-
- // Return the size of the buffer.
- int BufferSize() const;
-
- static const int kDefaultTotalBytesLimit = 64 << 20; // 64MB
-
- static const int kDefaultTotalBytesWarningThreshold = 32 << 20; // 32MB
- static const int kDefaultRecursionLimit = 64;
-};
-
-// Class which encodes and writes binary data which is composed of varint-
-// encoded integers and fixed-width pieces. Wraps a ZeroCopyOutputStream.
-// Most users will not need to deal with CodedOutputStream.
-//
-// Most methods of CodedOutputStream which return a bool return false if an
-// underlying I/O error occurs. Once such a failure occurs, the
-// CodedOutputStream is broken and is no longer useful. The Write* methods do
-// not return the stream status, but will invalidate the stream if an error
-// occurs. The client can probe HadError() to determine the status.
-//
-// Note that every method of CodedOutputStream which writes some data has
-// a corresponding static "ToArray" version. These versions write directly
-// to the provided buffer, returning a pointer past the last written byte.
-// They require that the buffer has sufficient capacity for the encoded data.
-// This allows an optimization where we check if an output stream has enough
-// space for an entire message before we start writing and, if there is, we
-// call only the ToArray methods to avoid doing bound checks for each
-// individual value.
-// i.e., in the example above:
-//
-// CodedOutputStream coded_output = new CodedOutputStream(raw_output);
-// int magic_number = 1234;
-// char text[] = "Hello world!";
-//
-// int coded_size = sizeof(magic_number) +
-// CodedOutputStream::VarintSize32(strlen(text)) +
-// strlen(text);
-//
-// uint8* buffer =
-// coded_output->GetDirectBufferForNBytesAndAdvance(coded_size);
-// if (buffer != NULL) {
-// // The output stream has enough space in the buffer: write directly to
-// // the array.
-// buffer = CodedOutputStream::WriteLittleEndian32ToArray(magic_number,
-// buffer);
-// buffer = CodedOutputStream::WriteVarint32ToArray(strlen(text), buffer);
-// buffer = CodedOutputStream::WriteRawToArray(text, strlen(text), buffer);
-// } else {
-// // Make bound-checked writes, which will ask the underlying stream for
-// // more space as needed.
-// coded_output->WriteLittleEndian32(magic_number);
-// coded_output->WriteVarint32(strlen(text));
-// coded_output->WriteRaw(text, strlen(text));
-// }
-//
-// delete coded_output;
-class LIBPROTOBUF_EXPORT CodedOutputStream {
- public:
- // Create an CodedOutputStream that writes to the given ZeroCopyOutputStream.
- explicit CodedOutputStream(ZeroCopyOutputStream* output);
-
- // Destroy the CodedOutputStream and position the underlying
- // ZeroCopyOutputStream immediately after the last byte written.
- ~CodedOutputStream();
-
- // Skips a number of bytes, leaving the bytes unmodified in the underlying
- // buffer. Returns false if an underlying write error occurs. This is
- // mainly useful with GetDirectBufferPointer().
- bool Skip(int count);
-
- // Sets *data to point directly at the unwritten part of the
- // CodedOutputStream's underlying buffer, and *size to the size of that
- // buffer, but does not advance the stream's current position. This will
- // always either produce a non-empty buffer or return false. If the caller
- // writes any data to this buffer, it should then call Skip() to skip over
- // the consumed bytes. This may be useful for implementing external fast
- // serialization routines for types of data not covered by the
- // CodedOutputStream interface.
- bool GetDirectBufferPointer(void** data, int* size);
-
- // If there are at least "size" bytes available in the current buffer,
- // returns a pointer directly into the buffer and advances over these bytes.
- // The caller may then write directly into this buffer (e.g. using the
- // *ToArray static methods) rather than go through CodedOutputStream. If
- // there are not enough bytes available, returns NULL. The return pointer is
- // invalidated as soon as any other non-const method of CodedOutputStream
- // is called.
- inline uint8* GetDirectBufferForNBytesAndAdvance(int size);
-
- // Write raw bytes, copying them from the given buffer.
- void WriteRaw(const void* buffer, int size);
- // Like WriteRaw() but writing directly to the target array.
- // This is _not_ inlined, as the compiler often optimizes memcpy into inline
- // copy loops. Since this gets called by every field with string or bytes
- // type, inlining may lead to a significant amount of code bloat, with only a
- // minor performance gain.
- static uint8* WriteRawToArray(const void* buffer, int size, uint8* target);
-
- // Equivalent to WriteRaw(str.data(), str.size()).
- void WriteString(const string& str);
- // Like WriteString() but writing directly to the target array.
- static uint8* WriteStringToArray(const string& str, uint8* target);
-
-
- // Write a 32-bit little-endian integer.
- void WriteLittleEndian32(uint32 value);
- // Like WriteLittleEndian32() but writing directly to the target array.
- static uint8* WriteLittleEndian32ToArray(uint32 value, uint8* target);
- // Write a 64-bit little-endian integer.
- void WriteLittleEndian64(uint64 value);
- // Like WriteLittleEndian64() but writing directly to the target array.
- static uint8* WriteLittleEndian64ToArray(uint64 value, uint8* target);
-
- // Write an unsigned integer with Varint encoding. Writing a 32-bit value
- // is equivalent to casting it to uint64 and writing it as a 64-bit value,
- // but may be more efficient.
- void WriteVarint32(uint32 value);
- // Like WriteVarint32() but writing directly to the target array.
- static uint8* WriteVarint32ToArray(uint32 value, uint8* target);
- // Write an unsigned integer with Varint encoding.
- void WriteVarint64(uint64 value);
- // Like WriteVarint64() but writing directly to the target array.
- static uint8* WriteVarint64ToArray(uint64 value, uint8* target);
-
- // Equivalent to WriteVarint32() except when the value is negative,
- // in which case it must be sign-extended to a full 10 bytes.
- void WriteVarint32SignExtended(int32 value);
- // Like WriteVarint32SignExtended() but writing directly to the target array.
- static uint8* WriteVarint32SignExtendedToArray(int32 value, uint8* target);
-
- // This is identical to WriteVarint32(), but optimized for writing tags.
- // In particular, if the input is a compile-time constant, this method
- // compiles down to a couple instructions.
- // Always inline because otherwise the aformentioned optimization can't work,
- // but GCC by default doesn't want to inline this.
- void WriteTag(uint32 value);
- // Like WriteTag() but writing directly to the target array.
- static uint8* WriteTagToArray(
- uint32 value, uint8* target) GOOGLE_ATTRIBUTE_ALWAYS_INLINE;
-
- // Returns the number of bytes needed to encode the given value as a varint.
- static int VarintSize32(uint32 value);
- // Returns the number of bytes needed to encode the given value as a varint.
- static int VarintSize64(uint64 value);
-
- // If negative, 10 bytes. Otheriwse, same as VarintSize32().
- static int VarintSize32SignExtended(int32 value);
-
- // Returns the total number of bytes written since this object was created.
- inline int ByteCount() const;
-
- // Returns true if there was an underlying I/O error since this object was
- // created.
- bool HadError() const { return had_error_; }
-
- private:
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(CodedOutputStream);
-
- ZeroCopyOutputStream* output_;
- uint8* buffer_;
- int buffer_size_;
- int total_bytes_; // Sum of sizes of all buffers seen so far.
- bool had_error_; // Whether an error occurred during output.
-
- // Advance the buffer by a given number of bytes.
- void Advance(int amount);
-
- // Called when the buffer runs out to request more data. Implies an
- // Advance(buffer_size_).
- bool Refresh();
-
- static uint8* WriteVarint32FallbackToArray(uint32 value, uint8* target);
-
- // Always-inlined versions of WriteVarint* functions so that code can be
- // reused, while still controlling size. For instance, WriteVarint32ToArray()
- // should not directly call this: since it is inlined itself, doing so
- // would greatly increase the size of generated code. Instead, it should call
- // WriteVarint32FallbackToArray. Meanwhile, WriteVarint32() is already
- // out-of-line, so it should just invoke this directly to avoid any extra
- // function call overhead.
- static uint8* WriteVarint32FallbackToArrayInline(
- uint32 value, uint8* target) GOOGLE_ATTRIBUTE_ALWAYS_INLINE;
- static uint8* WriteVarint64ToArrayInline(
- uint64 value, uint8* target) GOOGLE_ATTRIBUTE_ALWAYS_INLINE;
-
- static int VarintSize32Fallback(uint32 value);
-};
-
-// inline methods ====================================================
-// The vast majority of varints are only one byte. These inline
-// methods optimize for that case.
-
-inline bool CodedInputStream::ReadVarint32(uint32* value) {
- if (GOOGLE_PREDICT_TRUE(buffer_ < buffer_end_) && *buffer_ < 0x80) {
- *value = *buffer_;
- Advance(1);
- return true;
- } else {
- return ReadVarint32Fallback(value);
- }
-}
-
-inline bool CodedInputStream::ReadVarint64(uint64* value) {
- if (GOOGLE_PREDICT_TRUE(buffer_ < buffer_end_) && *buffer_ < 0x80) {
- *value = *buffer_;
- Advance(1);
- return true;
- } else {
- return ReadVarint64Fallback(value);
- }
-}
-
-// static
-inline const uint8* CodedInputStream::ReadLittleEndian32FromArray(
- const uint8* buffer,
- uint32* value) {
-#if defined(PROTOBUF_LITTLE_ENDIAN)
- memcpy(value, buffer, sizeof(*value));
- return buffer + sizeof(*value);
-#else
- *value = (static_cast<uint32>(buffer[0]) ) |
- (static_cast<uint32>(buffer[1]) << 8) |
- (static_cast<uint32>(buffer[2]) << 16) |
- (static_cast<uint32>(buffer[3]) << 24);
- return buffer + sizeof(*value);
-#endif
-}
-// static
-inline const uint8* CodedInputStream::ReadLittleEndian64FromArray(
- const uint8* buffer,
- uint64* value) {
-#if defined(PROTOBUF_LITTLE_ENDIAN)
- memcpy(value, buffer, sizeof(*value));
- return buffer + sizeof(*value);
-#else
- uint32 part0 = (static_cast<uint32>(buffer[0]) ) |
- (static_cast<uint32>(buffer[1]) << 8) |
- (static_cast<uint32>(buffer[2]) << 16) |
- (static_cast<uint32>(buffer[3]) << 24);
- uint32 part1 = (static_cast<uint32>(buffer[4]) ) |
- (static_cast<uint32>(buffer[5]) << 8) |
- (static_cast<uint32>(buffer[6]) << 16) |
- (static_cast<uint32>(buffer[7]) << 24);
- *value = static_cast<uint64>(part0) |
- (static_cast<uint64>(part1) << 32);
- return buffer + sizeof(*value);
-#endif
-}
-
-inline bool CodedInputStream::ReadLittleEndian32(uint32* value) {
-#if defined(PROTOBUF_LITTLE_ENDIAN)
- if (GOOGLE_PREDICT_TRUE(BufferSize() >= static_cast<int>(sizeof(*value)))) {
- memcpy(value, buffer_, sizeof(*value));
- Advance(sizeof(*value));
- return true;
- } else {
- return ReadLittleEndian32Fallback(value);
- }
-#else
- return ReadLittleEndian32Fallback(value);
-#endif
-}
-
-inline bool CodedInputStream::ReadLittleEndian64(uint64* value) {
-#if defined(PROTOBUF_LITTLE_ENDIAN)
- if (GOOGLE_PREDICT_TRUE(BufferSize() >= static_cast<int>(sizeof(*value)))) {
- memcpy(value, buffer_, sizeof(*value));
- Advance(sizeof(*value));
- return true;
- } else {
- return ReadLittleEndian64Fallback(value);
- }
-#else
- return ReadLittleEndian64Fallback(value);
-#endif
-}
-
-inline uint32 CodedInputStream::ReadTag() {
- if (GOOGLE_PREDICT_TRUE(buffer_ < buffer_end_) && buffer_[0] < 0x80) {
- last_tag_ = buffer_[0];
- Advance(1);
- return last_tag_;
- } else {
- last_tag_ = ReadTagFallback();
- return last_tag_;
- }
-}
-
-inline bool CodedInputStream::LastTagWas(uint32 expected) {
- return last_tag_ == expected;
-}
-
-inline bool CodedInputStream::ConsumedEntireMessage() {
- return legitimate_message_end_;
-}
-
-inline bool CodedInputStream::ExpectTag(uint32 expected) {
- if (expected < (1 << 7)) {
- if (GOOGLE_PREDICT_TRUE(buffer_ < buffer_end_) && buffer_[0] == expected) {
- Advance(1);
- return true;
- } else {
- return false;
- }
- } else if (expected < (1 << 14)) {
- if (GOOGLE_PREDICT_TRUE(BufferSize() >= 2) &&
- buffer_[0] == static_cast<uint8>(expected | 0x80) &&
- buffer_[1] == static_cast<uint8>(expected >> 7)) {
- Advance(2);
- return true;
- } else {
- return false;
- }
- } else {
- // Don't bother optimizing for larger values.
- return false;
- }
-}
-
-inline const uint8* CodedInputStream::ExpectTagFromArray(
- const uint8* buffer, uint32 expected) {
- if (expected < (1 << 7)) {
- if (buffer[0] == expected) {
- return buffer + 1;
- }
- } else if (expected < (1 << 14)) {
- if (buffer[0] == static_cast<uint8>(expected | 0x80) &&
- buffer[1] == static_cast<uint8>(expected >> 7)) {
- return buffer + 2;
- }
- }
- return NULL;
-}
-
-inline void CodedInputStream::GetDirectBufferPointerInline(const void** data,
- int* size) {
- *data = buffer_;
- *size = buffer_end_ - buffer_;
-}
-
-inline bool CodedInputStream::ExpectAtEnd() {
- // If we are at a limit we know no more bytes can be read. Otherwise, it's
- // hard to say without calling Refresh(), and we'd rather not do that.
-
- if (buffer_ == buffer_end_ && buffer_size_after_limit_ != 0) {
- last_tag_ = 0; // Pretend we called ReadTag()...
- legitimate_message_end_ = true; // ... and it hit EOF.
- return true;
- } else {
- return false;
- }
-}
-
-inline uint8* CodedOutputStream::GetDirectBufferForNBytesAndAdvance(int size) {
- if (buffer_size_ < size) {
- return NULL;
- } else {
- uint8* result = buffer_;
- Advance(size);
- return result;
- }
-}
-
-inline uint8* CodedOutputStream::WriteVarint32ToArray(uint32 value,
- uint8* target) {
- if (value < 0x80) {
- *target = value;
- return target + 1;
- } else {
- return WriteVarint32FallbackToArray(value, target);
- }
-}
-
-inline void CodedOutputStream::WriteVarint32SignExtended(int32 value) {
- if (value < 0) {
- WriteVarint64(static_cast<uint64>(value));
- } else {
- WriteVarint32(static_cast<uint32>(value));
- }
-}
-
-inline uint8* CodedOutputStream::WriteVarint32SignExtendedToArray(
- int32 value, uint8* target) {
- if (value < 0) {
- return WriteVarint64ToArray(static_cast<uint64>(value), target);
- } else {
- return WriteVarint32ToArray(static_cast<uint32>(value), target);
- }
-}
-
-inline uint8* CodedOutputStream::WriteLittleEndian32ToArray(uint32 value,
- uint8* target) {
-#if defined(PROTOBUF_LITTLE_ENDIAN)
- memcpy(target, &value, sizeof(value));
-#else
- target[0] = static_cast<uint8>(value);
- target[1] = static_cast<uint8>(value >> 8);
- target[2] = static_cast<uint8>(value >> 16);
- target[3] = static_cast<uint8>(value >> 24);
-#endif
- return target + sizeof(value);
-}
-
-inline uint8* CodedOutputStream::WriteLittleEndian64ToArray(uint64 value,
- uint8* target) {
-#if defined(PROTOBUF_LITTLE_ENDIAN)
- memcpy(target, &value, sizeof(value));
-#else
- uint32 part0 = static_cast<uint32>(value);
- uint32 part1 = static_cast<uint32>(value >> 32);
-
- target[0] = static_cast<uint8>(part0);
- target[1] = static_cast<uint8>(part0 >> 8);
- target[2] = static_cast<uint8>(part0 >> 16);
- target[3] = static_cast<uint8>(part0 >> 24);
- target[4] = static_cast<uint8>(part1);
- target[5] = static_cast<uint8>(part1 >> 8);
- target[6] = static_cast<uint8>(part1 >> 16);
- target[7] = static_cast<uint8>(part1 >> 24);
-#endif
- return target + sizeof(value);
-}
-
-inline void CodedOutputStream::WriteTag(uint32 value) {
- WriteVarint32(value);
-}
-
-inline uint8* CodedOutputStream::WriteTagToArray(
- uint32 value, uint8* target) {
- if (value < (1 << 7)) {
- target[0] = value;
- return target + 1;
- } else if (value < (1 << 14)) {
- target[0] = static_cast<uint8>(value | 0x80);
- target[1] = static_cast<uint8>(value >> 7);
- return target + 2;
- } else {
- return WriteVarint32FallbackToArray(value, target);
- }
-}
-
-inline int CodedOutputStream::VarintSize32(uint32 value) {
- if (value < (1 << 7)) {
- return 1;
- } else {
- return VarintSize32Fallback(value);
- }
-}
-
-inline int CodedOutputStream::VarintSize32SignExtended(int32 value) {
- if (value < 0) {
- return 10; // TODO(kenton): Make this a symbolic constant.
- } else {
- return VarintSize32(static_cast<uint32>(value));
- }
-}
-
-inline void CodedOutputStream::WriteString(const string& str) {
- WriteRaw(str.data(), static_cast<int>(str.size()));
-}
-
-inline uint8* CodedOutputStream::WriteStringToArray(
- const string& str, uint8* target) {
- return WriteRawToArray(str.data(), static_cast<int>(str.size()), target);
-}
-
-inline int CodedOutputStream::ByteCount() const {
- return total_bytes_ - buffer_size_;
-}
-
-inline void CodedInputStream::Advance(int amount) {
- buffer_ += amount;
-}
-
-inline void CodedOutputStream::Advance(int amount) {
- buffer_ += amount;
- buffer_size_ -= amount;
-}
-
-inline void CodedInputStream::SetRecursionLimit(int limit) {
- recursion_limit_ = limit;
-}
-
-inline bool CodedInputStream::IncrementRecursionDepth() {
- ++recursion_depth_;
- return recursion_depth_ <= recursion_limit_;
-}
-
-inline void CodedInputStream::DecrementRecursionDepth() {
- if (recursion_depth_ > 0) --recursion_depth_;
-}
-
-inline void CodedInputStream::SetExtensionRegistry(DescriptorPool* pool,
- MessageFactory* factory) {
- extension_pool_ = pool;
- extension_factory_ = factory;
-}
-
-inline const DescriptorPool* CodedInputStream::GetExtensionPool() {
- return extension_pool_;
-}
-
-inline MessageFactory* CodedInputStream::GetExtensionFactory() {
- return extension_factory_;
-}
-
-inline int CodedInputStream::BufferSize() const {
- return buffer_end_ - buffer_;
-}
-
-inline CodedInputStream::CodedInputStream(ZeroCopyInputStream* input)
- : input_(input),
- buffer_(NULL),
- buffer_end_(NULL),
- total_bytes_read_(0),
- overflow_bytes_(0),
- last_tag_(0),
- legitimate_message_end_(false),
- aliasing_enabled_(false),
- current_limit_(kint32max),
- buffer_size_after_limit_(0),
- total_bytes_limit_(kDefaultTotalBytesLimit),
- total_bytes_warning_threshold_(kDefaultTotalBytesWarningThreshold),
- recursion_depth_(0),
- recursion_limit_(kDefaultRecursionLimit),
- extension_pool_(NULL),
- extension_factory_(NULL) {
- // Eagerly Refresh() so buffer space is immediately available.
- Refresh();
-}
-
-inline CodedInputStream::CodedInputStream(const uint8* buffer, int size)
- : input_(NULL),
- buffer_(buffer),
- buffer_end_(buffer + size),
- total_bytes_read_(size),
- overflow_bytes_(0),
- last_tag_(0),
- legitimate_message_end_(false),
- aliasing_enabled_(false),
- current_limit_(size),
- buffer_size_after_limit_(0),
- total_bytes_limit_(kDefaultTotalBytesLimit),
- total_bytes_warning_threshold_(kDefaultTotalBytesWarningThreshold),
- recursion_depth_(0),
- recursion_limit_(kDefaultRecursionLimit),
- extension_pool_(NULL),
- extension_factory_(NULL) {
- // Note that setting current_limit_ == size is important to prevent some
- // code paths from trying to access input_ and segfaulting.
-}
-
-inline CodedInputStream::~CodedInputStream() {
- if (input_ != NULL) {
- BackUpInputToCurrentPosition();
- }
-}
-
-} // namespace io
-} // namespace protobuf
-
-
-#if defined(_MSC_VER) && _MSC_VER >= 1300
- #pragma runtime_checks("c", restore)
-#endif // _MSC_VER
-
-} // namespace google
-#endif // GOOGLE_PROTOBUF_IO_CODED_STREAM_H__
diff --git a/contrib/prebuilt/include/google/protobuf/io/gzip_stream.h b/contrib/prebuilt/include/google/protobuf/io/gzip_stream.h
deleted file mode 100644
index 65dbc5b..0000000
--- a/contrib/prebuilt/include/google/protobuf/io/gzip_stream.h
+++ /dev/null
@@ -1,207 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// http://code.google.com/p/protobuf/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Author: brianolson@google.com (Brian Olson)
-//
-// This file contains the definition for classes GzipInputStream and
-// GzipOutputStream.
-//
-// GzipInputStream decompresses data from an underlying
-// ZeroCopyInputStream and provides the decompressed data as a
-// ZeroCopyInputStream.
-//
-// GzipOutputStream is an ZeroCopyOutputStream that compresses data to
-// an underlying ZeroCopyOutputStream.
-
-#ifndef GOOGLE_PROTOBUF_IO_GZIP_STREAM_H__
-#define GOOGLE_PROTOBUF_IO_GZIP_STREAM_H__
-
-#include <zlib.h>
-
-#include <google/protobuf/io/zero_copy_stream.h>
-
-namespace google {
-namespace protobuf {
-namespace io {
-
-// A ZeroCopyInputStream that reads compressed data through zlib
-class LIBPROTOBUF_EXPORT GzipInputStream : public ZeroCopyInputStream {
- public:
- // Format key for constructor
- enum Format {
- // zlib will autodetect gzip header or deflate stream
- AUTO = 0,
-
- // GZIP streams have some extra header data for file attributes.
- GZIP = 1,
-
- // Simpler zlib stream format.
- ZLIB = 2,
- };
-
- // buffer_size and format may be -1 for default of 64kB and GZIP format
- explicit GzipInputStream(
- ZeroCopyInputStream* sub_stream,
- Format format = AUTO,
- int buffer_size = -1);
- virtual ~GzipInputStream();
-
- // Return last error message or NULL if no error.
- inline const char* ZlibErrorMessage() const {
- return zcontext_.msg;
- }
- inline int ZlibErrorCode() const {
- return zerror_;
- }
-
- // implements ZeroCopyInputStream ----------------------------------
- bool Next(const void** data, int* size);
- void BackUp(int count);
- bool Skip(int count);
- int64 ByteCount() const;
-
- private:
- Format format_;
-
- ZeroCopyInputStream* sub_stream_;
-
- z_stream zcontext_;
- int zerror_;
-
- void* output_buffer_;
- void* output_position_;
- size_t output_buffer_length_;
-
- int Inflate(int flush);
- void DoNextOutput(const void** data, int* size);
-
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(GzipInputStream);
-};
-
-
-class LIBPROTOBUF_EXPORT GzipOutputStream : public ZeroCopyOutputStream {
- public:
- // Format key for constructor
- enum Format {
- // GZIP streams have some extra header data for file attributes.
- GZIP = 1,
-
- // Simpler zlib stream format.
- ZLIB = 2,
- };
-
- struct Options {
- // Defaults to GZIP.
- Format format;
-
- // What size buffer to use internally. Defaults to 64kB.
- int buffer_size;
-
- // A number between 0 and 9, where 0 is no compression and 9 is best
- // compression. Defaults to Z_DEFAULT_COMPRESSION (see zlib.h).
- int compression_level;
-
- // Defaults to Z_DEFAULT_STRATEGY. Can also be set to Z_FILTERED,
- // Z_HUFFMAN_ONLY, or Z_RLE. See the documentation for deflateInit2 in
- // zlib.h for definitions of these constants.
- int compression_strategy;
-
- Options(); // Initializes with default values.
- };
-
- // Create a GzipOutputStream with default options.
- explicit GzipOutputStream(ZeroCopyOutputStream* sub_stream);
-
- // Create a GzipOutputStream with the given options.
- GzipOutputStream(
- ZeroCopyOutputStream* sub_stream,
- const Options& options);
-
- // DEPRECATED: Use one of the above constructors instead.
- GzipOutputStream(
- ZeroCopyOutputStream* sub_stream,
- Format format,
- int buffer_size = -1) GOOGLE_ATTRIBUTE_DEPRECATED;
-
- virtual ~GzipOutputStream();
-
- // Return last error message or NULL if no error.
- inline const char* ZlibErrorMessage() const {
- return zcontext_.msg;
- }
- inline int ZlibErrorCode() const {
- return zerror_;
- }
-
- // Flushes data written so far to zipped data in the underlying stream.
- // It is the caller's responsibility to flush the underlying stream if
- // necessary.
- // Compression may be less efficient stopping and starting around flushes.
- // Returns true if no error.
- bool Flush();
-
- // Writes out all data and closes the gzip stream.
- // It is the caller's responsibility to close the underlying stream if
- // necessary.
- // Returns true if no error.
- bool Close();
-
- // implements ZeroCopyOutputStream ---------------------------------
- bool Next(void** data, int* size);
- void BackUp(int count);
- int64 ByteCount() const;
-
- private:
- ZeroCopyOutputStream* sub_stream_;
- // Result from calling Next() on sub_stream_
- void* sub_data_;
- int sub_data_size_;
-
- z_stream zcontext_;
- int zerror_;
- void* input_buffer_;
- size_t input_buffer_length_;
-
- // Shared constructor code.
- void Init(ZeroCopyOutputStream* sub_stream, const Options& options);
-
- // Do some compression.
- // Takes zlib flush mode.
- // Returns zlib error code.
- int Deflate(int flush);
-
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(GzipOutputStream);
-};
-
-} // namespace io
-} // namespace protobuf
-
-} // namespace google
-#endif // GOOGLE_PROTOBUF_IO_GZIP_STREAM_H__
diff --git a/contrib/prebuilt/include/google/protobuf/io/printer.h b/contrib/prebuilt/include/google/protobuf/io/printer.h
deleted file mode 100644
index 5be4854..0000000
--- a/contrib/prebuilt/include/google/protobuf/io/printer.h
+++ /dev/null
@@ -1,136 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// http://code.google.com/p/protobuf/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Author: kenton@google.com (Kenton Varda)
-// Based on original Protocol Buffers design by
-// Sanjay Ghemawat, Jeff Dean, and others.
-//
-// Utility class for writing text to a ZeroCopyOutputStream.
-
-#ifndef GOOGLE_PROTOBUF_IO_PRINTER_H__
-#define GOOGLE_PROTOBUF_IO_PRINTER_H__
-
-#include <string>
-#include <map>
-#include <google/protobuf/stubs/common.h>
-
-namespace google {
-namespace protobuf {
-namespace io {
-
-class ZeroCopyOutputStream; // zero_copy_stream.h
-
-// This simple utility class assists in code generation. It basically
-// allows the caller to define a set of variables and then output some
-// text with variable substitutions. Example usage:
-//
-// Printer printer(output, '$');
-// map<string, string> vars;
-// vars["name"] = "Bob";
-// printer.Print(vars, "My name is $name$.");
-//
-// The above writes "My name is Bob." to the output stream.
-//
-// Printer aggressively enforces correct usage, crashing (with assert failures)
-// in the case of undefined variables in debug builds. This helps greatly in
-// debugging code which uses it.
-class LIBPROTOBUF_EXPORT Printer {
- public:
- // Create a printer that writes text to the given output stream. Use the
- // given character as the delimiter for variables.
- Printer(ZeroCopyOutputStream* output, char variable_delimiter);
- ~Printer();
-
- // Print some text after applying variable substitutions. If a particular
- // variable in the text is not defined, this will crash. Variables to be
- // substituted are identified by their names surrounded by delimiter
- // characters (as given to the constructor). The variable bindings are
- // defined by the given map.
- void Print(const map<string, string>& variables, const char* text);
-
- // Like the first Print(), except the substitutions are given as parameters.
- void Print(const char* text);
- // Like the first Print(), except the substitutions are given as parameters.
- void Print(const char* text, const char* variable, const string& value);
- // Like the first Print(), except the substitutions are given as parameters.
- void Print(const char* text, const char* variable1, const string& value1,
- const char* variable2, const string& value2);
- // Like the first Print(), except the substitutions are given as parameters.
- void Print(const char* text, const char* variable1, const string& value1,
- const char* variable2, const string& value2,
- const char* variable3, const string& value3);
- // TODO(kenton): Overloaded versions with more variables? Three seems
- // to be enough.
-
- // Indent text by two spaces. After calling Indent(), two spaces will be
- // inserted at the beginning of each line of text. Indent() may be called
- // multiple times to produce deeper indents.
- void Indent();
-
- // Reduces the current indent level by two spaces, or crashes if the indent
- // level is zero.
- void Outdent();
-
- // Write a string to the output buffer.
- // This method does not look for newlines to add indentation.
- void PrintRaw(const string& data);
-
- // Write a zero-delimited string to output buffer.
- // This method does not look for newlines to add indentation.
- void PrintRaw(const char* data);
-
- // Write some bytes to the output buffer.
- // This method does not look for newlines to add indentation.
- void WriteRaw(const char* data, int size);
-
- // True if any write to the underlying stream failed. (We don't just
- // crash in this case because this is an I/O failure, not a programming
- // error.)
- bool failed() const { return failed_; }
-
- private:
- const char variable_delimiter_;
-
- ZeroCopyOutputStream* const output_;
- char* buffer_;
- int buffer_size_;
-
- string indent_;
- bool at_start_of_line_;
- bool failed_;
-
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(Printer);
-};
-
-} // namespace io
-} // namespace protobuf
-
-} // namespace google
-#endif // GOOGLE_PROTOBUF_IO_PRINTER_H__
diff --git a/contrib/prebuilt/include/google/protobuf/io/tokenizer.h b/contrib/prebuilt/include/google/protobuf/io/tokenizer.h
deleted file mode 100644
index 8f759ab..0000000
--- a/contrib/prebuilt/include/google/protobuf/io/tokenizer.h
+++ /dev/null
@@ -1,313 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// http://code.google.com/p/protobuf/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Author: kenton@google.com (Kenton Varda)
-// Based on original Protocol Buffers design by
-// Sanjay Ghemawat, Jeff Dean, and others.
-//
-// Class for parsing tokenized text from a ZeroCopyInputStream.
-
-#ifndef GOOGLE_PROTOBUF_IO_TOKENIZER_H__
-#define GOOGLE_PROTOBUF_IO_TOKENIZER_H__
-
-#include <string>
-#include <google/protobuf/stubs/common.h>
-
-namespace google {
-namespace protobuf {
-namespace io {
-
-class ZeroCopyInputStream; // zero_copy_stream.h
-
-// Defined in this file.
-class ErrorCollector;
-class Tokenizer;
-
-// Abstract interface for an object which collects the errors that occur
-// during parsing. A typical implementation might simply print the errors
-// to stdout.
-class LIBPROTOBUF_EXPORT ErrorCollector {
- public:
- inline ErrorCollector() {}
- virtual ~ErrorCollector();
-
- // Indicates that there was an error in the input at the given line and
- // column numbers. The numbers are zero-based, so you may want to add
- // 1 to each before printing them.
- virtual void AddError(int line, int column, const string& message) = 0;
-
- // Indicates that there was a warning in the input at the given line and
- // column numbers. The numbers are zero-based, so you may want to add
- // 1 to each before printing them.
- virtual void AddWarning(int line, int column, const string& message) { }
-
- private:
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(ErrorCollector);
-};
-
-// This class converts a stream of raw text into a stream of tokens for
-// the protocol definition parser to parse. The tokens recognized are
-// similar to those that make up the C language; see the TokenType enum for
-// precise descriptions. Whitespace and comments are skipped. By default,
-// C- and C++-style comments are recognized, but other styles can be used by
-// calling set_comment_style().
-class LIBPROTOBUF_EXPORT Tokenizer {
- public:
- // Construct a Tokenizer that reads and tokenizes text from the given
- // input stream and writes errors to the given error_collector.
- // The caller keeps ownership of input and error_collector.
- Tokenizer(ZeroCopyInputStream* input, ErrorCollector* error_collector);
- ~Tokenizer();
-
- enum TokenType {
- TYPE_START, // Next() has not yet been called.
- TYPE_END, // End of input reached. "text" is empty.
-
- TYPE_IDENTIFIER, // A sequence of letters, digits, and underscores, not
- // starting with a digit. It is an error for a number
- // to be followed by an identifier with no space in
- // between.
- TYPE_INTEGER, // A sequence of digits representing an integer. Normally
- // the digits are decimal, but a prefix of "0x" indicates
- // a hex number and a leading zero indicates octal, just
- // like with C numeric literals. A leading negative sign
- // is NOT included in the token; it's up to the parser to
- // interpret the unary minus operator on its own.
- TYPE_FLOAT, // A floating point literal, with a fractional part and/or
- // an exponent. Always in decimal. Again, never
- // negative.
- TYPE_STRING, // A quoted sequence of escaped characters. Either single
- // or double quotes can be used, but they must match.
- // A string literal cannot cross a line break.
- TYPE_SYMBOL, // Any other printable character, like '!' or '+'.
- // Symbols are always a single character, so "!+$%" is
- // four tokens.
- };
-
- // Structure representing a token read from the token stream.
- struct Token {
- TokenType type;
- string text; // The exact text of the token as it appeared in
- // the input. e.g. tokens of TYPE_STRING will still
- // be escaped and in quotes.
-
- // "line" and "column" specify the position of the first character of
- // the token within the input stream. They are zero-based.
- int line;
- int column;
- int end_column;
- };
-
- // Get the current token. This is updated when Next() is called. Before
- // the first call to Next(), current() has type TYPE_START and no contents.
- const Token& current();
-
- // Return the previous token -- i.e. what current() returned before the
- // previous call to Next().
- const Token& previous();
-
- // Advance to the next token. Returns false if the end of the input is
- // reached.
- bool Next();
-
- // Parse helpers ---------------------------------------------------
-
- // Parses a TYPE_FLOAT token. This never fails, so long as the text actually
- // comes from a TYPE_FLOAT token parsed by Tokenizer. If it doesn't, the
- // result is undefined (possibly an assert failure).
- static double ParseFloat(const string& text);
-
- // Parses a TYPE_STRING token. This never fails, so long as the text actually
- // comes from a TYPE_STRING token parsed by Tokenizer. If it doesn't, the
- // result is undefined (possibly an assert failure).
- static void ParseString(const string& text, string* output);
-
- // Identical to ParseString, but appends to output.
- static void ParseStringAppend(const string& text, string* output);
-
- // Parses a TYPE_INTEGER token. Returns false if the result would be
- // greater than max_value. Otherwise, returns true and sets *output to the
- // result. If the text is not from a Token of type TYPE_INTEGER originally
- // parsed by a Tokenizer, the result is undefined (possibly an assert
- // failure).
- static bool ParseInteger(const string& text, uint64 max_value,
- uint64* output);
-
- // Options ---------------------------------------------------------
-
- // Set true to allow floats to be suffixed with the letter 'f'. Tokens
- // which would otherwise be integers but which have the 'f' suffix will be
- // forced to be interpreted as floats. For all other purposes, the 'f' is
- // ignored.
- void set_allow_f_after_float(bool value) { allow_f_after_float_ = value; }
-
- // Valid values for set_comment_style().
- enum CommentStyle {
- // Line comments begin with "//", block comments are delimited by "/*" and
- // "*/".
- CPP_COMMENT_STYLE,
- // Line comments begin with "#". No way to write block comments.
- SH_COMMENT_STYLE
- };
-
- // Sets the comment style.
- void set_comment_style(CommentStyle style) { comment_style_ = style; }
-
- // -----------------------------------------------------------------
- private:
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(Tokenizer);
-
- Token current_; // Returned by current().
- Token previous_; // Returned by previous().
-
- ZeroCopyInputStream* input_;
- ErrorCollector* error_collector_;
-
- char current_char_; // == buffer_[buffer_pos_], updated by NextChar().
- const char* buffer_; // Current buffer returned from input_.
- int buffer_size_; // Size of buffer_.
- int buffer_pos_; // Current position within the buffer.
- bool read_error_; // Did we previously encounter a read error?
-
- // Line and column number of current_char_ within the whole input stream.
- int line_;
- int column_;
-
- // Position in buffer_ where StartToken() was called. If the token
- // started in the previous buffer, this is zero, and current_.text already
- // contains the part of the token from the previous buffer. If not
- // currently parsing a token, this is -1.
- int token_start_;
-
- // Options.
- bool allow_f_after_float_;
- CommentStyle comment_style_;
-
- // Since we count columns we need to interpret tabs somehow. We'll take
- // the standard 8-character definition for lack of any way to do better.
- static const int kTabWidth = 8;
-
- // -----------------------------------------------------------------
- // Helper methods.
-
- // Consume this character and advance to the next one.
- void NextChar();
-
- // Read a new buffer from the input.
- void Refresh();
-
- // Called when the current character is the first character of a new
- // token (not including whitespace or comments).
- inline void StartToken();
- // Called when the current character is the first character after the
- // end of the last token. After this returns, current_.text will
- // contain all text consumed since StartToken() was called.
- inline void EndToken();
-
- // Convenience method to add an error at the current line and column.
- void AddError(const string& message) {
- error_collector_->AddError(line_, column_, message);
- }
-
- // -----------------------------------------------------------------
- // The following four methods are used to consume tokens of specific
- // types. They are actually used to consume all characters *after*
- // the first, since the calling function consumes the first character
- // in order to decide what kind of token is being read.
-
- // Read and consume a string, ending when the given delimiter is
- // consumed.
- void ConsumeString(char delimiter);
-
- // Read and consume a number, returning TYPE_FLOAT or TYPE_INTEGER
- // depending on what was read. This needs to know if the first
- // character was a zero in order to correctly recognize hex and octal
- // numbers.
- // It also needs to know if the first characted was a . to parse floating
- // point correctly.
- TokenType ConsumeNumber(bool started_with_zero, bool started_with_dot);
-
- // Consume the rest of a line.
- void ConsumeLineComment();
- // Consume until "*/".
- void ConsumeBlockComment();
-
- // -----------------------------------------------------------------
- // These helper methods make the parsing code more readable. The
- // "character classes" refered to are defined at the top of the .cc file.
- // Basically it is a C++ class with one method:
- // static bool InClass(char c);
- // The method returns true if c is a member of this "class", like "Letter"
- // or "Digit".
-
- // Returns true if the current character is of the given character
- // class, but does not consume anything.
- template<typename CharacterClass>
- inline bool LookingAt();
-
- // If the current character is in the given class, consume it and return
- // true. Otherwise return false.
- // e.g. TryConsumeOne<Letter>()
- template<typename CharacterClass>
- inline bool TryConsumeOne();
-
- // Like above, but try to consume the specific character indicated.
- inline bool TryConsume(char c);
-
- // Consume zero or more of the given character class.
- template<typename CharacterClass>
- inline void ConsumeZeroOrMore();
-
- // Consume one or more of the given character class or log the given
- // error message.
- // e.g. ConsumeOneOrMore<Digit>("Expected digits.");
- template<typename CharacterClass>
- inline void ConsumeOneOrMore(const char* error);
-};
-
-// inline methods ====================================================
-inline const Tokenizer::Token& Tokenizer::current() {
- return current_;
-}
-
-inline const Tokenizer::Token& Tokenizer::previous() {
- return previous_;
-}
-
-inline void Tokenizer::ParseString(const string& text, string* output) {
- output->clear();
- ParseStringAppend(text, output);
-}
-
-} // namespace io
-} // namespace protobuf
-
-} // namespace google
-#endif // GOOGLE_PROTOBUF_IO_TOKENIZER_H__
diff --git a/contrib/prebuilt/include/google/protobuf/io/zero_copy_stream.h b/contrib/prebuilt/include/google/protobuf/io/zero_copy_stream.h
deleted file mode 100644
index db5326f..0000000
--- a/contrib/prebuilt/include/google/protobuf/io/zero_copy_stream.h
+++ /dev/null
@@ -1,238 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// http://code.google.com/p/protobuf/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Author: kenton@google.com (Kenton Varda)
-// Based on original Protocol Buffers design by
-// Sanjay Ghemawat, Jeff Dean, and others.
-//
-// This file contains the ZeroCopyInputStream and ZeroCopyOutputStream
-// interfaces, which represent abstract I/O streams to and from which
-// protocol buffers can be read and written. For a few simple
-// implementations of these interfaces, see zero_copy_stream_impl.h.
-//
-// These interfaces are different from classic I/O streams in that they
-// try to minimize the amount of data copying that needs to be done.
-// To accomplish this, responsibility for allocating buffers is moved to
-// the stream object, rather than being the responsibility of the caller.
-// So, the stream can return a buffer which actually points directly into
-// the final data structure where the bytes are to be stored, and the caller
-// can interact directly with that buffer, eliminating an intermediate copy
-// operation.
-//
-// As an example, consider the common case in which you are reading bytes
-// from an array that is already in memory (or perhaps an mmap()ed file).
-// With classic I/O streams, you would do something like:
-// char buffer[BUFFER_SIZE];
-// input->Read(buffer, BUFFER_SIZE);
-// DoSomething(buffer, BUFFER_SIZE);
-// Then, the stream basically just calls memcpy() to copy the data from
-// the array into your buffer. With a ZeroCopyInputStream, you would do
-// this instead:
-// const void* buffer;
-// int size;
-// input->Next(&buffer, &size);
-// DoSomething(buffer, size);
-// Here, no copy is performed. The input stream returns a pointer directly
-// into the backing array, and the caller ends up reading directly from it.
-//
-// If you want to be able to read the old-fashion way, you can create
-// a CodedInputStream or CodedOutputStream wrapping these objects and use
-// their ReadRaw()/WriteRaw() methods. These will, of course, add a copy
-// step, but Coded*Stream will handle buffering so at least it will be
-// reasonably efficient.
-//
-// ZeroCopyInputStream example:
-// // Read in a file and print its contents to stdout.
-// int fd = open("myfile", O_RDONLY);
-// ZeroCopyInputStream* input = new FileInputStream(fd);
-//
-// const void* buffer;
-// int size;
-// while (input->Next(&buffer, &size)) {
-// cout.write(buffer, size);
-// }
-//
-// delete input;
-// close(fd);
-//
-// ZeroCopyOutputStream example:
-// // Copy the contents of "infile" to "outfile", using plain read() for
-// // "infile" but a ZeroCopyOutputStream for "outfile".
-// int infd = open("infile", O_RDONLY);
-// int outfd = open("outfile", O_WRONLY);
-// ZeroCopyOutputStream* output = new FileOutputStream(outfd);
-//
-// void* buffer;
-// int size;
-// while (output->Next(&buffer, &size)) {
-// int bytes = read(infd, buffer, size);
-// if (bytes < size) {
-// // Reached EOF.
-// output->BackUp(size - bytes);
-// break;
-// }
-// }
-//
-// delete output;
-// close(infd);
-// close(outfd);
-
-#ifndef GOOGLE_PROTOBUF_IO_ZERO_COPY_STREAM_H__
-#define GOOGLE_PROTOBUF_IO_ZERO_COPY_STREAM_H__
-
-#include <string>
-#include <google/protobuf/stubs/common.h>
-
-namespace google {
-
-namespace protobuf {
-namespace io {
-
-// Defined in this file.
-class ZeroCopyInputStream;
-class ZeroCopyOutputStream;
-
-// Abstract interface similar to an input stream but designed to minimize
-// copying.
-class LIBPROTOBUF_EXPORT ZeroCopyInputStream {
- public:
- inline ZeroCopyInputStream() {}
- virtual ~ZeroCopyInputStream();
-
- // Obtains a chunk of data from the stream.
- //
- // Preconditions:
- // * "size" and "data" are not NULL.
- //
- // Postconditions:
- // * If the returned value is false, there is no more data to return or
- // an error occurred. All errors are permanent.
- // * Otherwise, "size" points to the actual number of bytes read and "data"
- // points to a pointer to a buffer containing these bytes.
- // * Ownership of this buffer remains with the stream, and the buffer
- // remains valid only until some other method of the stream is called
- // or the stream is destroyed.
- // * It is legal for the returned buffer to have zero size, as long
- // as repeatedly calling Next() eventually yields a buffer with non-zero
- // size.
- virtual bool Next(const void** data, int* size) = 0;
-
- // Backs up a number of bytes, so that the next call to Next() returns
- // data again that was already returned by the last call to Next(). This
- // is useful when writing procedures that are only supposed to read up
- // to a certain point in the input, then return. If Next() returns a
- // buffer that goes beyond what you wanted to read, you can use BackUp()
- // to return to the point where you intended to finish.
- //
- // Preconditions:
- // * The last method called must have been Next().
- // * count must be less than or equal to the size of the last buffer
- // returned by Next().
- //
- // Postconditions:
- // * The last "count" bytes of the last buffer returned by Next() will be
- // pushed back into the stream. Subsequent calls to Next() will return
- // the same data again before producing new data.
- virtual void BackUp(int count) = 0;
-
- // Skips a number of bytes. Returns false if the end of the stream is
- // reached or some input error occurred. In the end-of-stream case, the
- // stream is advanced to the end of the stream (so ByteCount() will return
- // the total size of the stream).
- virtual bool Skip(int count) = 0;
-
- // Returns the total number of bytes read since this object was created.
- virtual int64 ByteCount() const = 0;
-
-
- private:
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(ZeroCopyInputStream);
-};
-
-// Abstract interface similar to an output stream but designed to minimize
-// copying.
-class LIBPROTOBUF_EXPORT ZeroCopyOutputStream {
- public:
- inline ZeroCopyOutputStream() {}
- virtual ~ZeroCopyOutputStream();
-
- // Obtains a buffer into which data can be written. Any data written
- // into this buffer will eventually (maybe instantly, maybe later on)
- // be written to the output.
- //
- // Preconditions:
- // * "size" and "data" are not NULL.
- //
- // Postconditions:
- // * If the returned value is false, an error occurred. All errors are
- // permanent.
- // * Otherwise, "size" points to the actual number of bytes in the buffer
- // and "data" points to the buffer.
- // * Ownership of this buffer remains with the stream, and the buffer
- // remains valid only until some other method of the stream is called
- // or the stream is destroyed.
- // * Any data which the caller stores in this buffer will eventually be
- // written to the output (unless BackUp() is called).
- // * It is legal for the returned buffer to have zero size, as long
- // as repeatedly calling Next() eventually yields a buffer with non-zero
- // size.
- virtual bool Next(void** data, int* size) = 0;
-
- // Backs up a number of bytes, so that the end of the last buffer returned
- // by Next() is not actually written. This is needed when you finish
- // writing all the data you want to write, but the last buffer was bigger
- // than you needed. You don't want to write a bunch of garbage after the
- // end of your data, so you use BackUp() to back up.
- //
- // Preconditions:
- // * The last method called must have been Next().
- // * count must be less than or equal to the size of the last buffer
- // returned by Next().
- // * The caller must not have written anything to the last "count" bytes
- // of that buffer.
- //
- // Postconditions:
- // * The last "count" bytes of the last buffer returned by Next() will be
- // ignored.
- virtual void BackUp(int count) = 0;
-
- // Returns the total number of bytes written since this object was created.
- virtual int64 ByteCount() const = 0;
-
-
- private:
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(ZeroCopyOutputStream);
-};
-
-} // namespace io
-} // namespace protobuf
-
-} // namespace google
-#endif // GOOGLE_PROTOBUF_IO_ZERO_COPY_STREAM_H__
diff --git a/contrib/prebuilt/include/google/protobuf/io/zero_copy_stream_impl.h b/contrib/prebuilt/include/google/protobuf/io/zero_copy_stream_impl.h
deleted file mode 100644
index 9fedb00..0000000
--- a/contrib/prebuilt/include/google/protobuf/io/zero_copy_stream_impl.h
+++ /dev/null
@@ -1,357 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// http://code.google.com/p/protobuf/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Author: kenton@google.com (Kenton Varda)
-// Based on original Protocol Buffers design by
-// Sanjay Ghemawat, Jeff Dean, and others.
-//
-// This file contains common implementations of the interfaces defined in
-// zero_copy_stream.h which are only included in the full (non-lite)
-// protobuf library. These implementations include Unix file descriptors
-// and C++ iostreams. See also: zero_copy_stream_impl_lite.h
-
-#ifndef GOOGLE_PROTOBUF_IO_ZERO_COPY_STREAM_IMPL_H__
-#define GOOGLE_PROTOBUF_IO_ZERO_COPY_STREAM_IMPL_H__
-
-#include <string>
-#include <iosfwd>
-#include <google/protobuf/io/zero_copy_stream.h>
-#include <google/protobuf/io/zero_copy_stream_impl_lite.h>
-#include <google/protobuf/stubs/common.h>
-
-
-namespace google {
-namespace protobuf {
-namespace io {
-
-
-// ===================================================================
-
-// A ZeroCopyInputStream which reads from a file descriptor.
-//
-// FileInputStream is preferred over using an ifstream with IstreamInputStream.
-// The latter will introduce an extra layer of buffering, harming performance.
-// Also, it's conceivable that FileInputStream could someday be enhanced
-// to use zero-copy file descriptors on OSs which support them.
-class LIBPROTOBUF_EXPORT FileInputStream : public ZeroCopyInputStream {
- public:
- // Creates a stream that reads from the given Unix file descriptor.
- // If a block_size is given, it specifies the number of bytes that
- // should be read and returned with each call to Next(). Otherwise,
- // a reasonable default is used.
- explicit FileInputStream(int file_descriptor, int block_size = -1);
- ~FileInputStream();
-
- // Flushes any buffers and closes the underlying file. Returns false if
- // an error occurs during the process; use GetErrno() to examine the error.
- // Even if an error occurs, the file descriptor is closed when this returns.
- bool Close();
-
- // By default, the file descriptor is not closed when the stream is
- // destroyed. Call SetCloseOnDelete(true) to change that. WARNING:
- // This leaves no way for the caller to detect if close() fails. If
- // detecting close() errors is important to you, you should arrange
- // to close the descriptor yourself.
- void SetCloseOnDelete(bool value) { copying_input_.SetCloseOnDelete(value); }
-
- // If an I/O error has occurred on this file descriptor, this is the
- // errno from that error. Otherwise, this is zero. Once an error
- // occurs, the stream is broken and all subsequent operations will
- // fail.
- int GetErrno() { return copying_input_.GetErrno(); }
-
- // implements ZeroCopyInputStream ----------------------------------
- bool Next(const void** data, int* size);
- void BackUp(int count);
- bool Skip(int count);
- int64 ByteCount() const;
-
- private:
- class LIBPROTOBUF_EXPORT CopyingFileInputStream : public CopyingInputStream {
- public:
- CopyingFileInputStream(int file_descriptor);
- ~CopyingFileInputStream();
-
- bool Close();
- void SetCloseOnDelete(bool value) { close_on_delete_ = value; }
- int GetErrno() { return errno_; }
-
- // implements CopyingInputStream ---------------------------------
- int Read(void* buffer, int size);
- int Skip(int count);
-
- private:
- // The file descriptor.
- const int file_;
- bool close_on_delete_;
- bool is_closed_;
-
- // The errno of the I/O error, if one has occurred. Otherwise, zero.
- int errno_;
-
- // Did we try to seek once and fail? If so, we assume this file descriptor
- // doesn't support seeking and won't try again.
- bool previous_seek_failed_;
-
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(CopyingFileInputStream);
- };
-
- CopyingFileInputStream copying_input_;
- CopyingInputStreamAdaptor impl_;
-
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(FileInputStream);
-};
-
-// ===================================================================
-
-// A ZeroCopyOutputStream which writes to a file descriptor.
-//
-// FileOutputStream is preferred over using an ofstream with
-// OstreamOutputStream. The latter will introduce an extra layer of buffering,
-// harming performance. Also, it's conceivable that FileOutputStream could
-// someday be enhanced to use zero-copy file descriptors on OSs which
-// support them.
-class LIBPROTOBUF_EXPORT FileOutputStream : public ZeroCopyOutputStream {
- public:
- // Creates a stream that writes to the given Unix file descriptor.
- // If a block_size is given, it specifies the size of the buffers
- // that should be returned by Next(). Otherwise, a reasonable default
- // is used.
- explicit FileOutputStream(int file_descriptor, int block_size = -1);
- ~FileOutputStream();
-
- // Flushes any buffers and closes the underlying file. Returns false if
- // an error occurs during the process; use GetErrno() to examine the error.
- // Even if an error occurs, the file descriptor is closed when this returns.
- bool Close();
-
- // Flushes FileOutputStream's buffers but does not close the
- // underlying file. No special measures are taken to ensure that
- // underlying operating system file object is synchronized to disk.
- bool Flush();
-
- // By default, the file descriptor is not closed when the stream is
- // destroyed. Call SetCloseOnDelete(true) to change that. WARNING:
- // This leaves no way for the caller to detect if close() fails. If
- // detecting close() errors is important to you, you should arrange
- // to close the descriptor yourself.
- void SetCloseOnDelete(bool value) { copying_output_.SetCloseOnDelete(value); }
-
- // If an I/O error has occurred on this file descriptor, this is the
- // errno from that error. Otherwise, this is zero. Once an error
- // occurs, the stream is broken and all subsequent operations will
- // fail.
- int GetErrno() { return copying_output_.GetErrno(); }
-
- // implements ZeroCopyOutputStream ---------------------------------
- bool Next(void** data, int* size);
- void BackUp(int count);
- int64 ByteCount() const;
-
- private:
- class LIBPROTOBUF_EXPORT CopyingFileOutputStream : public CopyingOutputStream {
- public:
- CopyingFileOutputStream(int file_descriptor);
- ~CopyingFileOutputStream();
-
- bool Close();
- void SetCloseOnDelete(bool value) { close_on_delete_ = value; }
- int GetErrno() { return errno_; }
-
- // implements CopyingOutputStream --------------------------------
- bool Write(const void* buffer, int size);
-
- private:
- // The file descriptor.
- const int file_;
- bool close_on_delete_;
- bool is_closed_;
-
- // The errno of the I/O error, if one has occurred. Otherwise, zero.
- int errno_;
-
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(CopyingFileOutputStream);
- };
-
- CopyingFileOutputStream copying_output_;
- CopyingOutputStreamAdaptor impl_;
-
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(FileOutputStream);
-};
-
-// ===================================================================
-
-// A ZeroCopyInputStream which reads from a C++ istream.
-//
-// Note that for reading files (or anything represented by a file descriptor),
-// FileInputStream is more efficient.
-class LIBPROTOBUF_EXPORT IstreamInputStream : public ZeroCopyInputStream {
- public:
- // Creates a stream that reads from the given C++ istream.
- // If a block_size is given, it specifies the number of bytes that
- // should be read and returned with each call to Next(). Otherwise,
- // a reasonable default is used.
- explicit IstreamInputStream(istream* stream, int block_size = -1);
- ~IstreamInputStream();
-
- // implements ZeroCopyInputStream ----------------------------------
- bool Next(const void** data, int* size);
- void BackUp(int count);
- bool Skip(int count);
- int64 ByteCount() const;
-
- private:
- class LIBPROTOBUF_EXPORT CopyingIstreamInputStream : public CopyingInputStream {
- public:
- CopyingIstreamInputStream(istream* input);
- ~CopyingIstreamInputStream();
-
- // implements CopyingInputStream ---------------------------------
- int Read(void* buffer, int size);
- // (We use the default implementation of Skip().)
-
- private:
- // The stream.
- istream* input_;
-
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(CopyingIstreamInputStream);
- };
-
- CopyingIstreamInputStream copying_input_;
- CopyingInputStreamAdaptor impl_;
-
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(IstreamInputStream);
-};
-
-// ===================================================================
-
-// A ZeroCopyOutputStream which writes to a C++ ostream.
-//
-// Note that for writing files (or anything represented by a file descriptor),
-// FileOutputStream is more efficient.
-class LIBPROTOBUF_EXPORT OstreamOutputStream : public ZeroCopyOutputStream {
- public:
- // Creates a stream that writes to the given C++ ostream.
- // If a block_size is given, it specifies the size of the buffers
- // that should be returned by Next(). Otherwise, a reasonable default
- // is used.
- explicit OstreamOutputStream(ostream* stream, int block_size = -1);
- ~OstreamOutputStream();
-
- // implements ZeroCopyOutputStream ---------------------------------
- bool Next(void** data, int* size);
- void BackUp(int count);
- int64 ByteCount() const;
-
- private:
- class LIBPROTOBUF_EXPORT CopyingOstreamOutputStream : public CopyingOutputStream {
- public:
- CopyingOstreamOutputStream(ostream* output);
- ~CopyingOstreamOutputStream();
-
- // implements CopyingOutputStream --------------------------------
- bool Write(const void* buffer, int size);
-
- private:
- // The stream.
- ostream* output_;
-
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(CopyingOstreamOutputStream);
- };
-
- CopyingOstreamOutputStream copying_output_;
- CopyingOutputStreamAdaptor impl_;
-
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(OstreamOutputStream);
-};
-
-// ===================================================================
-
-// A ZeroCopyInputStream which reads from several other streams in sequence.
-// ConcatenatingInputStream is unable to distinguish between end-of-stream
-// and read errors in the underlying streams, so it assumes any errors mean
-// end-of-stream. So, if the underlying streams fail for any other reason,
-// ConcatenatingInputStream may do odd things. It is suggested that you do
-// not use ConcatenatingInputStream on streams that might produce read errors
-// other than end-of-stream.
-class LIBPROTOBUF_EXPORT ConcatenatingInputStream : public ZeroCopyInputStream {
- public:
- // All streams passed in as well as the array itself must remain valid
- // until the ConcatenatingInputStream is destroyed.
- ConcatenatingInputStream(ZeroCopyInputStream* const streams[], int count);
- ~ConcatenatingInputStream();
-
- // implements ZeroCopyInputStream ----------------------------------
- bool Next(const void** data, int* size);
- void BackUp(int count);
- bool Skip(int count);
- int64 ByteCount() const;
-
-
- private:
- // As streams are retired, streams_ is incremented and count_ is
- // decremented.
- ZeroCopyInputStream* const* streams_;
- int stream_count_;
- int64 bytes_retired_; // Bytes read from previous streams.
-
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(ConcatenatingInputStream);
-};
-
-// ===================================================================
-
-// A ZeroCopyInputStream which wraps some other stream and limits it to
-// a particular byte count.
-class LIBPROTOBUF_EXPORT LimitingInputStream : public ZeroCopyInputStream {
- public:
- LimitingInputStream(ZeroCopyInputStream* input, int64 limit);
- ~LimitingInputStream();
-
- // implements ZeroCopyInputStream ----------------------------------
- bool Next(const void** data, int* size);
- void BackUp(int count);
- bool Skip(int count);
- int64 ByteCount() const;
-
-
- private:
- ZeroCopyInputStream* input_;
- int64 limit_; // Decreases as we go, becomes negative if we overshoot.
-
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(LimitingInputStream);
-};
-
-// ===================================================================
-
-} // namespace io
-} // namespace protobuf
-
-} // namespace google
-#endif // GOOGLE_PROTOBUF_IO_ZERO_COPY_STREAM_IMPL_H__
diff --git a/contrib/prebuilt/include/google/protobuf/io/zero_copy_stream_impl_lite.h b/contrib/prebuilt/include/google/protobuf/io/zero_copy_stream_impl_lite.h
deleted file mode 100644
index 153f543..0000000
--- a/contrib/prebuilt/include/google/protobuf/io/zero_copy_stream_impl_lite.h
+++ /dev/null
@@ -1,340 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// http://code.google.com/p/protobuf/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Author: kenton@google.com (Kenton Varda)
-// Based on original Protocol Buffers design by
-// Sanjay Ghemawat, Jeff Dean, and others.
-//
-// This file contains common implementations of the interfaces defined in
-// zero_copy_stream.h which are included in the "lite" protobuf library.
-// These implementations cover I/O on raw arrays and strings, as well as
-// adaptors which make it easy to implement streams based on traditional
-// streams. Of course, many users will probably want to write their own
-// implementations of these interfaces specific to the particular I/O
-// abstractions they prefer to use, but these should cover the most common
-// cases.
-
-#ifndef GOOGLE_PROTOBUF_IO_ZERO_COPY_STREAM_IMPL_LITE_H__
-#define GOOGLE_PROTOBUF_IO_ZERO_COPY_STREAM_IMPL_LITE_H__
-
-#include <string>
-#include <iosfwd>
-#include <google/protobuf/io/zero_copy_stream.h>
-#include <google/protobuf/stubs/common.h>
-
-
-namespace google {
-namespace protobuf {
-namespace io {
-
-// ===================================================================
-
-// A ZeroCopyInputStream backed by an in-memory array of bytes.
-class LIBPROTOBUF_EXPORT ArrayInputStream : public ZeroCopyInputStream {
- public:
- // Create an InputStream that returns the bytes pointed to by "data".
- // "data" remains the property of the caller but must remain valid until
- // the stream is destroyed. If a block_size is given, calls to Next()
- // will return data blocks no larger than the given size. Otherwise, the
- // first call to Next() returns the entire array. block_size is mainly
- // useful for testing; in production you would probably never want to set
- // it.
- ArrayInputStream(const void* data, int size, int block_size = -1);
- ~ArrayInputStream();
-
- // implements ZeroCopyInputStream ----------------------------------
- bool Next(const void** data, int* size);
- void BackUp(int count);
- bool Skip(int count);
- int64 ByteCount() const;
-
-
- private:
- const uint8* const data_; // The byte array.
- const int size_; // Total size of the array.
- const int block_size_; // How many bytes to return at a time.
-
- int position_;
- int last_returned_size_; // How many bytes we returned last time Next()
- // was called (used for error checking only).
-
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(ArrayInputStream);
-};
-
-// ===================================================================
-
-// A ZeroCopyOutputStream backed by an in-memory array of bytes.
-class LIBPROTOBUF_EXPORT ArrayOutputStream : public ZeroCopyOutputStream {
- public:
- // Create an OutputStream that writes to the bytes pointed to by "data".
- // "data" remains the property of the caller but must remain valid until
- // the stream is destroyed. If a block_size is given, calls to Next()
- // will return data blocks no larger than the given size. Otherwise, the
- // first call to Next() returns the entire array. block_size is mainly
- // useful for testing; in production you would probably never want to set
- // it.
- ArrayOutputStream(void* data, int size, int block_size = -1);
- ~ArrayOutputStream();
-
- // implements ZeroCopyOutputStream ---------------------------------
- bool Next(void** data, int* size);
- void BackUp(int count);
- int64 ByteCount() const;
-
- private:
- uint8* const data_; // The byte array.
- const int size_; // Total size of the array.
- const int block_size_; // How many bytes to return at a time.
-
- int position_;
- int last_returned_size_; // How many bytes we returned last time Next()
- // was called (used for error checking only).
-
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(ArrayOutputStream);
-};
-
-// ===================================================================
-
-// A ZeroCopyOutputStream which appends bytes to a string.
-class LIBPROTOBUF_EXPORT StringOutputStream : public ZeroCopyOutputStream {
- public:
- // Create a StringOutputStream which appends bytes to the given string.
- // The string remains property of the caller, but it MUST NOT be accessed
- // in any way until the stream is destroyed.
- //
- // Hint: If you call target->reserve(n) before creating the stream,
- // the first call to Next() will return at least n bytes of buffer
- // space.
- explicit StringOutputStream(string* target);
- ~StringOutputStream();
-
- // implements ZeroCopyOutputStream ---------------------------------
- bool Next(void** data, int* size);
- void BackUp(int count);
- int64 ByteCount() const;
-
- private:
- static const int kMinimumSize = 16;
-
- string* target_;
-
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(StringOutputStream);
-};
-
-// Note: There is no StringInputStream. Instead, just create an
-// ArrayInputStream as follows:
-// ArrayInputStream input(str.data(), str.size());
-
-// ===================================================================
-
-// A generic traditional input stream interface.
-//
-// Lots of traditional input streams (e.g. file descriptors, C stdio
-// streams, and C++ iostreams) expose an interface where every read
-// involves copying bytes into a buffer. If you want to take such an
-// interface and make a ZeroCopyInputStream based on it, simply implement
-// CopyingInputStream and then use CopyingInputStreamAdaptor.
-//
-// CopyingInputStream implementations should avoid buffering if possible.
-// CopyingInputStreamAdaptor does its own buffering and will read data
-// in large blocks.
-class LIBPROTOBUF_EXPORT CopyingInputStream {
- public:
- virtual ~CopyingInputStream();
-
- // Reads up to "size" bytes into the given buffer. Returns the number of
- // bytes read. Read() waits until at least one byte is available, or
- // returns zero if no bytes will ever become available (EOF), or -1 if a
- // permanent read error occurred.
- virtual int Read(void* buffer, int size) = 0;
-
- // Skips the next "count" bytes of input. Returns the number of bytes
- // actually skipped. This will always be exactly equal to "count" unless
- // EOF was reached or a permanent read error occurred.
- //
- // The default implementation just repeatedly calls Read() into a scratch
- // buffer.
- virtual int Skip(int count);
-};
-
-// A ZeroCopyInputStream which reads from a CopyingInputStream. This is
-// useful for implementing ZeroCopyInputStreams that read from traditional
-// streams. Note that this class is not really zero-copy.
-//
-// If you want to read from file descriptors or C++ istreams, this is
-// already implemented for you: use FileInputStream or IstreamInputStream
-// respectively.
-class LIBPROTOBUF_EXPORT CopyingInputStreamAdaptor : public ZeroCopyInputStream {
- public:
- // Creates a stream that reads from the given CopyingInputStream.
- // If a block_size is given, it specifies the number of bytes that
- // should be read and returned with each call to Next(). Otherwise,
- // a reasonable default is used. The caller retains ownership of
- // copying_stream unless SetOwnsCopyingStream(true) is called.
- explicit CopyingInputStreamAdaptor(CopyingInputStream* copying_stream,
- int block_size = -1);
- ~CopyingInputStreamAdaptor();
-
- // Call SetOwnsCopyingStream(true) to tell the CopyingInputStreamAdaptor to
- // delete the underlying CopyingInputStream when it is destroyed.
- void SetOwnsCopyingStream(bool value) { owns_copying_stream_ = value; }
-
- // implements ZeroCopyInputStream ----------------------------------
- bool Next(const void** data, int* size);
- void BackUp(int count);
- bool Skip(int count);
- int64 ByteCount() const;
-
- private:
- // Insures that buffer_ is not NULL.
- void AllocateBufferIfNeeded();
- // Frees the buffer and resets buffer_used_.
- void FreeBuffer();
-
- // The underlying copying stream.
- CopyingInputStream* copying_stream_;
- bool owns_copying_stream_;
-
- // True if we have seen a permenant error from the underlying stream.
- bool failed_;
-
- // The current position of copying_stream_, relative to the point where
- // we started reading.
- int64 position_;
-
- // Data is read into this buffer. It may be NULL if no buffer is currently
- // in use. Otherwise, it points to an array of size buffer_size_.
- scoped_array<uint8> buffer_;
- const int buffer_size_;
-
- // Number of valid bytes currently in the buffer (i.e. the size last
- // returned by Next()). 0 <= buffer_used_ <= buffer_size_.
- int buffer_used_;
-
- // Number of bytes in the buffer which were backed up over by a call to
- // BackUp(). These need to be returned again.
- // 0 <= backup_bytes_ <= buffer_used_
- int backup_bytes_;
-
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(CopyingInputStreamAdaptor);
-};
-
-// ===================================================================
-
-// A generic traditional output stream interface.
-//
-// Lots of traditional output streams (e.g. file descriptors, C stdio
-// streams, and C++ iostreams) expose an interface where every write
-// involves copying bytes from a buffer. If you want to take such an
-// interface and make a ZeroCopyOutputStream based on it, simply implement
-// CopyingOutputStream and then use CopyingOutputStreamAdaptor.
-//
-// CopyingOutputStream implementations should avoid buffering if possible.
-// CopyingOutputStreamAdaptor does its own buffering and will write data
-// in large blocks.
-class LIBPROTOBUF_EXPORT CopyingOutputStream {
- public:
- virtual ~CopyingOutputStream();
-
- // Writes "size" bytes from the given buffer to the output. Returns true
- // if successful, false on a write error.
- virtual bool Write(const void* buffer, int size) = 0;
-};
-
-// A ZeroCopyOutputStream which writes to a CopyingOutputStream. This is
-// useful for implementing ZeroCopyOutputStreams that write to traditional
-// streams. Note that this class is not really zero-copy.
-//
-// If you want to write to file descriptors or C++ ostreams, this is
-// already implemented for you: use FileOutputStream or OstreamOutputStream
-// respectively.
-class LIBPROTOBUF_EXPORT CopyingOutputStreamAdaptor : public ZeroCopyOutputStream {
- public:
- // Creates a stream that writes to the given Unix file descriptor.
- // If a block_size is given, it specifies the size of the buffers
- // that should be returned by Next(). Otherwise, a reasonable default
- // is used.
- explicit CopyingOutputStreamAdaptor(CopyingOutputStream* copying_stream,
- int block_size = -1);
- ~CopyingOutputStreamAdaptor();
-
- // Writes all pending data to the underlying stream. Returns false if a
- // write error occurred on the underlying stream. (The underlying
- // stream itself is not necessarily flushed.)
- bool Flush();
-
- // Call SetOwnsCopyingStream(true) to tell the CopyingOutputStreamAdaptor to
- // delete the underlying CopyingOutputStream when it is destroyed.
- void SetOwnsCopyingStream(bool value) { owns_copying_stream_ = value; }
-
- // implements ZeroCopyOutputStream ---------------------------------
- bool Next(void** data, int* size);
- void BackUp(int count);
- int64 ByteCount() const;
-
- private:
- // Write the current buffer, if it is present.
- bool WriteBuffer();
- // Insures that buffer_ is not NULL.
- void AllocateBufferIfNeeded();
- // Frees the buffer.
- void FreeBuffer();
-
- // The underlying copying stream.
- CopyingOutputStream* copying_stream_;
- bool owns_copying_stream_;
-
- // True if we have seen a permenant error from the underlying stream.
- bool failed_;
-
- // The current position of copying_stream_, relative to the point where
- // we started writing.
- int64 position_;
-
- // Data is written from this buffer. It may be NULL if no buffer is
- // currently in use. Otherwise, it points to an array of size buffer_size_.
- scoped_array<uint8> buffer_;
- const int buffer_size_;
-
- // Number of valid bytes currently in the buffer (i.e. the size last
- // returned by Next()). When BackUp() is called, we just reduce this.
- // 0 <= buffer_used_ <= buffer_size_.
- int buffer_used_;
-
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(CopyingOutputStreamAdaptor);
-};
-
-// ===================================================================
-
-} // namespace io
-} // namespace protobuf
-
-} // namespace google
-#endif // GOOGLE_PROTOBUF_IO_ZERO_COPY_STREAM_IMPL_LITE_H__
diff --git a/contrib/prebuilt/include/google/protobuf/message.h b/contrib/prebuilt/include/google/protobuf/message.h
deleted file mode 100644
index 4bbc641..0000000
--- a/contrib/prebuilt/include/google/protobuf/message.h
+++ /dev/null
@@ -1,692 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// http://code.google.com/p/protobuf/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Author: kenton@google.com (Kenton Varda)
-// Based on original Protocol Buffers design by
-// Sanjay Ghemawat, Jeff Dean, and others.
-//
-// Defines Message, the abstract interface implemented by non-lite
-// protocol message objects. Although it's possible to implement this
-// interface manually, most users will use the protocol compiler to
-// generate implementations.
-//
-// Example usage:
-//
-// Say you have a message defined as:
-//
-// message Foo {
-// optional string text = 1;
-// repeated int32 numbers = 2;
-// }
-//
-// Then, if you used the protocol compiler to generate a class from the above
-// definition, you could use it like so:
-//
-// string data; // Will store a serialized version of the message.
-//
-// {
-// // Create a message and serialize it.
-// Foo foo;
-// foo.set_text("Hello World!");
-// foo.add_numbers(1);
-// foo.add_numbers(5);
-// foo.add_numbers(42);
-//
-// foo.SerializeToString(&data);
-// }
-//
-// {
-// // Parse the serialized message and check that it contains the
-// // correct data.
-// Foo foo;
-// foo.ParseFromString(data);
-//
-// assert(foo.text() == "Hello World!");
-// assert(foo.numbers_size() == 3);
-// assert(foo.numbers(0) == 1);
-// assert(foo.numbers(1) == 5);
-// assert(foo.numbers(2) == 42);
-// }
-//
-// {
-// // Same as the last block, but do it dynamically via the Message
-// // reflection interface.
-// Message* foo = new Foo;
-// Descriptor* descriptor = foo->GetDescriptor();
-//
-// // Get the descriptors for the fields we're interested in and verify
-// // their types.
-// FieldDescriptor* text_field = descriptor->FindFieldByName("text");
-// assert(text_field != NULL);
-// assert(text_field->type() == FieldDescriptor::TYPE_STRING);
-// assert(text_field->label() == FieldDescriptor::TYPE_OPTIONAL);
-// FieldDescriptor* numbers_field = descriptor->FindFieldByName("numbers");
-// assert(numbers_field != NULL);
-// assert(numbers_field->type() == FieldDescriptor::TYPE_INT32);
-// assert(numbers_field->label() == FieldDescriptor::TYPE_REPEATED);
-//
-// // Parse the message.
-// foo->ParseFromString(data);
-//
-// // Use the reflection interface to examine the contents.
-// const Reflection* reflection = foo->GetReflection();
-// assert(reflection->GetString(foo, text_field) == "Hello World!");
-// assert(reflection->FieldSize(foo, numbers_field) == 3);
-// assert(reflection->GetRepeatedInt32(foo, numbers_field, 0) == 1);
-// assert(reflection->GetRepeatedInt32(foo, numbers_field, 1) == 5);
-// assert(reflection->GetRepeatedInt32(foo, numbers_field, 2) == 42);
-//
-// delete foo;
-// }
-
-#ifndef GOOGLE_PROTOBUF_MESSAGE_H__
-#define GOOGLE_PROTOBUF_MESSAGE_H__
-
-#include <vector>
-#include <string>
-
-#ifdef __DECCXX
-// HP C++'s iosfwd doesn't work.
-#include <iostream>
-#else
-#include <iosfwd>
-#endif
-
-#include <google/protobuf/message_lite.h>
-
-#include <google/protobuf/stubs/common.h>
-
-
-namespace google {
-namespace protobuf {
-
-// Defined in this file.
-class Message;
-class Reflection;
-class MessageFactory;
-
-// Defined in other files.
-class Descriptor; // descriptor.h
-class FieldDescriptor; // descriptor.h
-class EnumDescriptor; // descriptor.h
-class EnumValueDescriptor; // descriptor.h
-namespace io {
- class ZeroCopyInputStream; // zero_copy_stream.h
- class ZeroCopyOutputStream; // zero_copy_stream.h
- class CodedInputStream; // coded_stream.h
- class CodedOutputStream; // coded_stream.h
-}
-class UnknownFieldSet; // unknown_field_set.h
-
-// A container to hold message metadata.
-struct Metadata {
- const Descriptor* descriptor;
- const Reflection* reflection;
-};
-
-// Returns the EnumDescriptor for enum type E, which must be a
-// proto-declared enum type. Code generated by the protocol compiler
-// will include specializations of this template for each enum type declared.
-template <typename E>
-const EnumDescriptor* GetEnumDescriptor();
-
-// Abstract interface for protocol messages.
-//
-// See also MessageLite, which contains most every-day operations. Message
-// adds descriptors and reflection on top of that.
-//
-// The methods of this class that are virtual but not pure-virtual have
-// default implementations based on reflection. Message classes which are
-// optimized for speed will want to override these with faster implementations,
-// but classes optimized for code size may be happy with keeping them. See
-// the optimize_for option in descriptor.proto.
-class LIBPROTOBUF_EXPORT Message : public MessageLite {
- public:
- inline Message() {}
- virtual ~Message();
-
- // Basic Operations ------------------------------------------------
-
- // Construct a new instance of the same type. Ownership is passed to the
- // caller. (This is also defined in MessageLite, but is defined again here
- // for return-type covariance.)
- virtual Message* New() const = 0;
-
- // Make this message into a copy of the given message. The given message
- // must have the same descriptor, but need not necessarily be the same class.
- // By default this is just implemented as "Clear(); MergeFrom(from);".
- virtual void CopyFrom(const Message& from);
-
- // Merge the fields from the given message into this message. Singular
- // fields will be overwritten, except for embedded messages which will
- // be merged. Repeated fields will be concatenated. The given message
- // must be of the same type as this message (i.e. the exact same class).
- virtual void MergeFrom(const Message& from);
-
- // Verifies that IsInitialized() returns true. GOOGLE_CHECK-fails otherwise, with
- // a nice error message.
- void CheckInitialized() const;
-
- // Slowly build a list of all required fields that are not set.
- // This is much, much slower than IsInitialized() as it is implemented
- // purely via reflection. Generally, you should not call this unless you
- // have already determined that an error exists by calling IsInitialized().
- void FindInitializationErrors(vector<string>* errors) const;
-
- // Like FindInitializationErrors, but joins all the strings, delimited by
- // commas, and returns them.
- string InitializationErrorString() const;
-
- // Clears all unknown fields from this message and all embedded messages.
- // Normally, if unknown tag numbers are encountered when parsing a message,
- // the tag and value are stored in the message's UnknownFieldSet and
- // then written back out when the message is serialized. This allows servers
- // which simply route messages to other servers to pass through messages
- // that have new field definitions which they don't yet know about. However,
- // this behavior can have security implications. To avoid it, call this
- // method after parsing.
- //
- // See Reflection::GetUnknownFields() for more on unknown fields.
- virtual void DiscardUnknownFields();
-
- // Computes (an estimate of) the total number of bytes currently used for
- // storing the message in memory. The default implementation calls the
- // Reflection object's SpaceUsed() method.
- virtual int SpaceUsed() const;
-
- // Debugging & Testing----------------------------------------------
-
- // Generates a human readable form of this message, useful for debugging
- // and other purposes.
- string DebugString() const;
- // Like DebugString(), but with less whitespace.
- string ShortDebugString() const;
- // Like DebugString(), but do not escape UTF-8 byte sequences.
- string Utf8DebugString() const;
- // Convenience function useful in GDB. Prints DebugString() to stdout.
- void PrintDebugString() const;
-
- // Heavy I/O -------------------------------------------------------
- // Additional parsing and serialization methods not implemented by
- // MessageLite because they are not supported by the lite library.
-
- // Parse a protocol buffer from a file descriptor. If successful, the entire
- // input will be consumed.
- bool ParseFromFileDescriptor(int file_descriptor);
- // Like ParseFromFileDescriptor(), but accepts messages that are missing
- // required fields.
- bool ParsePartialFromFileDescriptor(int file_descriptor);
- // Parse a protocol buffer from a C++ istream. If successful, the entire
- // input will be consumed.
- bool ParseFromIstream(istream* input);
- // Like ParseFromIstream(), but accepts messages that are missing
- // required fields.
- bool ParsePartialFromIstream(istream* input);
-
- // Serialize the message and write it to the given file descriptor. All
- // required fields must be set.
- bool SerializeToFileDescriptor(int file_descriptor) const;
- // Like SerializeToFileDescriptor(), but allows missing required fields.
- bool SerializePartialToFileDescriptor(int file_descriptor) const;
- // Serialize the message and write it to the given C++ ostream. All
- // required fields must be set.
- bool SerializeToOstream(ostream* output) const;
- // Like SerializeToOstream(), but allows missing required fields.
- bool SerializePartialToOstream(ostream* output) const;
-
-
- // Reflection-based methods ----------------------------------------
- // These methods are pure-virtual in MessageLite, but Message provides
- // reflection-based default implementations.
-
- virtual string GetTypeName() const;
- virtual void Clear();
- virtual bool IsInitialized() const;
- virtual void CheckTypeAndMergeFrom(const MessageLite& other);
- virtual bool MergePartialFromCodedStream(io::CodedInputStream* input);
- virtual int ByteSize() const;
- virtual void SerializeWithCachedSizes(io::CodedOutputStream* output) const;
-
- private:
- // This is called only by the default implementation of ByteSize(), to
- // update the cached size. If you override ByteSize(), you do not need
- // to override this. If you do not override ByteSize(), you MUST override
- // this; the default implementation will crash.
- //
- // The method is private because subclasses should never call it; only
- // override it. Yes, C++ lets you do that. Crazy, huh?
- virtual void SetCachedSize(int size) const;
-
- public:
-
- // Introspection ---------------------------------------------------
-
- // Typedef for backwards-compatibility.
- typedef google::protobuf::Reflection Reflection;
-
- // Get a Descriptor for this message's type. This describes what
- // fields the message contains, the types of those fields, etc.
- const Descriptor* GetDescriptor() const { return GetMetadata().descriptor; }
-
- // Get the Reflection interface for this Message, which can be used to
- // read and modify the fields of the Message dynamically (in other words,
- // without knowing the message type at compile time). This object remains
- // property of the Message.
- //
- // This method remains virtual in case a subclass does not implement
- // reflection and wants to override the default behavior.
- virtual const Reflection* GetReflection() const {
- return GetMetadata().reflection;
- }
-
- protected:
- // Get a struct containing the metadata for the Message. Most subclasses only
- // need to implement this method, rather than the GetDescriptor() and
- // GetReflection() wrappers.
- virtual Metadata GetMetadata() const = 0;
-
-
- private:
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(Message);
-};
-
-// This interface contains methods that can be used to dynamically access
-// and modify the fields of a protocol message. Their semantics are
-// similar to the accessors the protocol compiler generates.
-//
-// To get the Reflection for a given Message, call Message::GetReflection().
-//
-// This interface is separate from Message only for efficiency reasons;
-// the vast majority of implementations of Message will share the same
-// implementation of Reflection (GeneratedMessageReflection,
-// defined in generated_message.h), and all Messages of a particular class
-// should share the same Reflection object (though you should not rely on
-// the latter fact).
-//
-// There are several ways that these methods can be used incorrectly. For
-// example, any of the following conditions will lead to undefined
-// results (probably assertion failures):
-// - The FieldDescriptor is not a field of this message type.
-// - The method called is not appropriate for the field's type. For
-// each field type in FieldDescriptor::TYPE_*, there is only one
-// Get*() method, one Set*() method, and one Add*() method that is
-// valid for that type. It should be obvious which (except maybe
-// for TYPE_BYTES, which are represented using strings in C++).
-// - A Get*() or Set*() method for singular fields is called on a repeated
-// field.
-// - GetRepeated*(), SetRepeated*(), or Add*() is called on a non-repeated
-// field.
-// - The Message object passed to any method is not of the right type for
-// this Reflection object (i.e. message.GetReflection() != reflection).
-//
-// You might wonder why there is not any abstract representation for a field
-// of arbitrary type. E.g., why isn't there just a "GetField()" method that
-// returns "const Field&", where "Field" is some class with accessors like
-// "GetInt32Value()". The problem is that someone would have to deal with
-// allocating these Field objects. For generated message classes, having to
-// allocate space for an additional object to wrap every field would at least
-// double the message's memory footprint, probably worse. Allocating the
-// objects on-demand, on the other hand, would be expensive and prone to
-// memory leaks. So, instead we ended up with this flat interface.
-//
-// TODO(kenton): Create a utility class which callers can use to read and
-// write fields from a Reflection without paying attention to the type.
-class LIBPROTOBUF_EXPORT Reflection {
- public:
- // TODO(kenton): Remove parameter.
- inline Reflection() {}
- virtual ~Reflection();
-
- // Get the UnknownFieldSet for the message. This contains fields which
- // were seen when the Message was parsed but were not recognized according
- // to the Message's definition.
- virtual const UnknownFieldSet& GetUnknownFields(
- const Message& message) const = 0;
- // Get a mutable pointer to the UnknownFieldSet for the message. This
- // contains fields which were seen when the Message was parsed but were not
- // recognized according to the Message's definition.
- virtual UnknownFieldSet* MutableUnknownFields(Message* message) const = 0;
-
- // Estimate the amount of memory used by the message object.
- virtual int SpaceUsed(const Message& message) const = 0;
-
- // Check if the given non-repeated field is set.
- virtual bool HasField(const Message& message,
- const FieldDescriptor* field) const = 0;
-
- // Get the number of elements of a repeated field.
- virtual int FieldSize(const Message& message,
- const FieldDescriptor* field) const = 0;
-
- // Clear the value of a field, so that HasField() returns false or
- // FieldSize() returns zero.
- virtual void ClearField(Message* message,
- const FieldDescriptor* field) const = 0;
-
- // Remove the last element of a repeated field.
- // We don't provide a way to remove any element other than the last
- // because it invites inefficient use, such as O(n^2) filtering loops
- // that should have been O(n). If you want to remove an element other
- // than the last, the best way to do it is to re-arrange the elements
- // (using Swap()) so that the one you want removed is at the end, then
- // call RemoveLast().
- virtual void RemoveLast(Message* message,
- const FieldDescriptor* field) const = 0;
-
- // Swap the complete contents of two messages.
- virtual void Swap(Message* message1, Message* message2) const = 0;
-
- // Swap two elements of a repeated field.
- virtual void SwapElements(Message* message,
- const FieldDescriptor* field,
- int index1,
- int index2) const = 0;
-
- // List all fields of the message which are currently set. This includes
- // extensions. Singular fields will only be listed if HasField(field) would
- // return true and repeated fields will only be listed if FieldSize(field)
- // would return non-zero. Fields (both normal fields and extension fields)
- // will be listed ordered by field number.
- virtual void ListFields(const Message& message,
- vector<const FieldDescriptor*>* output) const = 0;
-
- // Singular field getters ------------------------------------------
- // These get the value of a non-repeated field. They return the default
- // value for fields that aren't set.
-
- virtual int32 GetInt32 (const Message& message,
- const FieldDescriptor* field) const = 0;
- virtual int64 GetInt64 (const Message& message,
- const FieldDescriptor* field) const = 0;
- virtual uint32 GetUInt32(const Message& message,
- const FieldDescriptor* field) const = 0;
- virtual uint64 GetUInt64(const Message& message,
- const FieldDescriptor* field) const = 0;
- virtual float GetFloat (const Message& message,
- const FieldDescriptor* field) const = 0;
- virtual double GetDouble(const Message& message,
- const FieldDescriptor* field) const = 0;
- virtual bool GetBool (const Message& message,
- const FieldDescriptor* field) const = 0;
- virtual string GetString(const Message& message,
- const FieldDescriptor* field) const = 0;
- virtual const EnumValueDescriptor* GetEnum(
- const Message& message, const FieldDescriptor* field) const = 0;
- // See MutableMessage() for the meaning of the "factory" parameter.
- virtual const Message& GetMessage(const Message& message,
- const FieldDescriptor* field,
- MessageFactory* factory = NULL) const = 0;
-
- // Get a string value without copying, if possible.
- //
- // GetString() necessarily returns a copy of the string. This can be
- // inefficient when the string is already stored in a string object in the
- // underlying message. GetStringReference() will return a reference to the
- // underlying string in this case. Otherwise, it will copy the string into
- // *scratch and return that.
- //
- // Note: It is perfectly reasonable and useful to write code like:
- // str = reflection->GetStringReference(field, &str);
- // This line would ensure that only one copy of the string is made
- // regardless of the field's underlying representation. When initializing
- // a newly-constructed string, though, it's just as fast and more readable
- // to use code like:
- // string str = reflection->GetString(field);
- virtual const string& GetStringReference(const Message& message,
- const FieldDescriptor* field,
- string* scratch) const = 0;
-
-
- // Singular field mutators -----------------------------------------
- // These mutate the value of a non-repeated field.
-
- virtual void SetInt32 (Message* message,
- const FieldDescriptor* field, int32 value) const = 0;
- virtual void SetInt64 (Message* message,
- const FieldDescriptor* field, int64 value) const = 0;
- virtual void SetUInt32(Message* message,
- const FieldDescriptor* field, uint32 value) const = 0;
- virtual void SetUInt64(Message* message,
- const FieldDescriptor* field, uint64 value) const = 0;
- virtual void SetFloat (Message* message,
- const FieldDescriptor* field, float value) const = 0;
- virtual void SetDouble(Message* message,
- const FieldDescriptor* field, double value) const = 0;
- virtual void SetBool (Message* message,
- const FieldDescriptor* field, bool value) const = 0;
- virtual void SetString(Message* message,
- const FieldDescriptor* field,
- const string& value) const = 0;
- virtual void SetEnum (Message* message,
- const FieldDescriptor* field,
- const EnumValueDescriptor* value) const = 0;
- // Get a mutable pointer to a field with a message type. If a MessageFactory
- // is provided, it will be used to construct instances of the sub-message;
- // otherwise, the default factory is used. If the field is an extension that
- // does not live in the same pool as the containing message's descriptor (e.g.
- // it lives in an overlay pool), then a MessageFactory must be provided.
- // If you have no idea what that meant, then you probably don't need to worry
- // about it (don't provide a MessageFactory). WARNING: If the
- // FieldDescriptor is for a compiled-in extension, then
- // factory->GetPrototype(field->message_type() MUST return an instance of the
- // compiled-in class for this type, NOT DynamicMessage.
- virtual Message* MutableMessage(Message* message,
- const FieldDescriptor* field,
- MessageFactory* factory = NULL) const = 0;
-
-
- // Repeated field getters ------------------------------------------
- // These get the value of one element of a repeated field.
-
- virtual int32 GetRepeatedInt32 (const Message& message,
- const FieldDescriptor* field,
- int index) const = 0;
- virtual int64 GetRepeatedInt64 (const Message& message,
- const FieldDescriptor* field,
- int index) const = 0;
- virtual uint32 GetRepeatedUInt32(const Message& message,
- const FieldDescriptor* field,
- int index) const = 0;
- virtual uint64 GetRepeatedUInt64(const Message& message,
- const FieldDescriptor* field,
- int index) const = 0;
- virtual float GetRepeatedFloat (const Message& message,
- const FieldDescriptor* field,
- int index) const = 0;
- virtual double GetRepeatedDouble(const Message& message,
- const FieldDescriptor* field,
- int index) const = 0;
- virtual bool GetRepeatedBool (const Message& message,
- const FieldDescriptor* field,
- int index) const = 0;
- virtual string GetRepeatedString(const Message& message,
- const FieldDescriptor* field,
- int index) const = 0;
- virtual const EnumValueDescriptor* GetRepeatedEnum(
- const Message& message,
- const FieldDescriptor* field, int index) const = 0;
- virtual const Message& GetRepeatedMessage(
- const Message& message,
- const FieldDescriptor* field, int index) const = 0;
-
- // See GetStringReference(), above.
- virtual const string& GetRepeatedStringReference(
- const Message& message, const FieldDescriptor* field,
- int index, string* scratch) const = 0;
-
-
- // Repeated field mutators -----------------------------------------
- // These mutate the value of one element of a repeated field.
-
- virtual void SetRepeatedInt32 (Message* message,
- const FieldDescriptor* field,
- int index, int32 value) const = 0;
- virtual void SetRepeatedInt64 (Message* message,
- const FieldDescriptor* field,
- int index, int64 value) const = 0;
- virtual void SetRepeatedUInt32(Message* message,
- const FieldDescriptor* field,
- int index, uint32 value) const = 0;
- virtual void SetRepeatedUInt64(Message* message,
- const FieldDescriptor* field,
- int index, uint64 value) const = 0;
- virtual void SetRepeatedFloat (Message* message,
- const FieldDescriptor* field,
- int index, float value) const = 0;
- virtual void SetRepeatedDouble(Message* message,
- const FieldDescriptor* field,
- int index, double value) const = 0;
- virtual void SetRepeatedBool (Message* message,
- const FieldDescriptor* field,
- int index, bool value) const = 0;
- virtual void SetRepeatedString(Message* message,
- const FieldDescriptor* field,
- int index, const string& value) const = 0;
- virtual void SetRepeatedEnum(Message* message,
- const FieldDescriptor* field, int index,
- const EnumValueDescriptor* value) const = 0;
- // Get a mutable pointer to an element of a repeated field with a message
- // type.
- virtual Message* MutableRepeatedMessage(
- Message* message, const FieldDescriptor* field, int index) const = 0;
-
-
- // Repeated field adders -------------------------------------------
- // These add an element to a repeated field.
-
- virtual void AddInt32 (Message* message,
- const FieldDescriptor* field, int32 value) const = 0;
- virtual void AddInt64 (Message* message,
- const FieldDescriptor* field, int64 value) const = 0;
- virtual void AddUInt32(Message* message,
- const FieldDescriptor* field, uint32 value) const = 0;
- virtual void AddUInt64(Message* message,
- const FieldDescriptor* field, uint64 value) const = 0;
- virtual void AddFloat (Message* message,
- const FieldDescriptor* field, float value) const = 0;
- virtual void AddDouble(Message* message,
- const FieldDescriptor* field, double value) const = 0;
- virtual void AddBool (Message* message,
- const FieldDescriptor* field, bool value) const = 0;
- virtual void AddString(Message* message,
- const FieldDescriptor* field,
- const string& value) const = 0;
- virtual void AddEnum (Message* message,
- const FieldDescriptor* field,
- const EnumValueDescriptor* value) const = 0;
- // See MutableMessage() for comments on the "factory" parameter.
- virtual Message* AddMessage(Message* message,
- const FieldDescriptor* field,
- MessageFactory* factory = NULL) const = 0;
-
-
- // Extensions ------------------------------------------------------
-
- // Try to find an extension of this message type by fully-qualified field
- // name. Returns NULL if no extension is known for this name or number.
- virtual const FieldDescriptor* FindKnownExtensionByName(
- const string& name) const = 0;
-
- // Try to find an extension of this message type by field number.
- // Returns NULL if no extension is known for this name or number.
- virtual const FieldDescriptor* FindKnownExtensionByNumber(
- int number) const = 0;
-
- private:
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(Reflection);
-};
-
-// Abstract interface for a factory for message objects.
-class LIBPROTOBUF_EXPORT MessageFactory {
- public:
- inline MessageFactory() {}
- virtual ~MessageFactory();
-
- // Given a Descriptor, gets or constructs the default (prototype) Message
- // of that type. You can then call that message's New() method to construct
- // a mutable message of that type.
- //
- // Calling this method twice with the same Descriptor returns the same
- // object. The returned object remains property of the factory. Also, any
- // objects created by calling the prototype's New() method share some data
- // with the prototype, so these must be destoyed before the MessageFactory
- // is destroyed.
- //
- // The given descriptor must outlive the returned message, and hence must
- // outlive the MessageFactory.
- //
- // Some implementations do not support all types. GetPrototype() will
- // return NULL if the descriptor passed in is not supported.
- //
- // This method may or may not be thread-safe depending on the implementation.
- // Each implementation should document its own degree thread-safety.
- virtual const Message* GetPrototype(const Descriptor* type) = 0;
-
- // Gets a MessageFactory which supports all generated, compiled-in messages.
- // In other words, for any compiled-in type FooMessage, the following is true:
- // MessageFactory::generated_factory()->GetPrototype(
- // FooMessage::descriptor()) == FooMessage::default_instance()
- // This factory supports all types which are found in
- // DescriptorPool::generated_pool(). If given a descriptor from any other
- // pool, GetPrototype() will return NULL. (You can also check if a
- // descriptor is for a generated message by checking if
- // descriptor->file()->pool() == DescriptorPool::generated_pool().)
- //
- // This factory is 100% thread-safe; calling GetPrototype() does not modify
- // any shared data.
- //
- // This factory is a singleton. The caller must not delete the object.
- static MessageFactory* generated_factory();
-
- // For internal use only: Registers a .proto file at static initialization
- // time, to be placed in generated_factory. The first time GetPrototype()
- // is called with a descriptor from this file, |register_messages| will be
- // called, with the file name as the parameter. It must call
- // InternalRegisterGeneratedMessage() (below) to register each message type
- // in the file. This strange mechanism is necessary because descriptors are
- // built lazily, so we can't register types by their descriptor until we
- // know that the descriptor exists. |filename| must be a permanent string.
- static void InternalRegisterGeneratedFile(
- const char* filename, void (*register_messages)(const string&));
-
- // For internal use only: Registers a message type. Called only by the
- // functions which are registered with InternalRegisterGeneratedFile(),
- // above.
- static void InternalRegisterGeneratedMessage(const Descriptor* descriptor,
- const Message* prototype);
-
- private:
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(MessageFactory);
-};
-
-} // namespace protobuf
-
-} // namespace google
-#endif // GOOGLE_PROTOBUF_MESSAGE_H__
diff --git a/contrib/prebuilt/include/google/protobuf/message_lite.h b/contrib/prebuilt/include/google/protobuf/message_lite.h
deleted file mode 100644
index ebf4ba3..0000000
--- a/contrib/prebuilt/include/google/protobuf/message_lite.h
+++ /dev/null
@@ -1,239 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// http://code.google.com/p/protobuf/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Authors: wink@google.com (Wink Saville),
-// kenton@google.com (Kenton Varda)
-// Based on original Protocol Buffers design by
-// Sanjay Ghemawat, Jeff Dean, and others.
-//
-// Defines MessageLite, the abstract interface implemented by all (lite
-// and non-lite) protocol message objects.
-
-#ifndef GOOGLE_PROTOBUF_MESSAGE_LITE_H__
-#define GOOGLE_PROTOBUF_MESSAGE_LITE_H__
-
-#include <google/protobuf/stubs/common.h>
-#include <google/protobuf/io/coded_stream.h>
-
-namespace google {
-namespace protobuf {
-
-// Interface to light weight protocol messages.
-//
-// This interface is implemented by all protocol message objects. Non-lite
-// messages additionally implement the Message interface, which is a
-// subclass of MessageLite. Use MessageLite instead when you only need
-// the subset of features which it supports -- namely, nothing that uses
-// descriptors or reflection. You can instruct the protocol compiler
-// to generate classes which implement only MessageLite, not the full
-// Message interface, by adding the following line to the .proto file:
-//
-// option optimize_for = LITE_RUNTIME;
-//
-// This is particularly useful on resource-constrained systems where
-// the full protocol buffers runtime library is too big.
-//
-// Note that on non-constrained systems (e.g. servers) when you need
-// to link in lots of protocol definitions, a better way to reduce
-// total code footprint is to use optimize_for = CODE_SIZE. This
-// will make the generated code smaller while still supporting all the
-// same features (at the expense of speed). optimize_for = LITE_RUNTIME
-// is best when you only have a small number of message types linked
-// into your binary, in which case the size of the protocol buffers
-// runtime itself is the biggest problem.
-class LIBPROTOBUF_EXPORT MessageLite {
- public:
- inline MessageLite() {}
- virtual ~MessageLite();
-
- // Basic Operations ------------------------------------------------
-
- // Get the name of this message type, e.g. "foo.bar.BazProto".
- virtual string GetTypeName() const = 0;
-
- // Construct a new instance of the same type. Ownership is passed to the
- // caller.
- virtual MessageLite* New() const = 0;
-
- // Clear all fields of the message and set them to their default values.
- // Clear() avoids freeing memory, assuming that any memory allocated
- // to hold parts of the message will be needed again to hold the next
- // message. If you actually want to free the memory used by a Message,
- // you must delete it.
- virtual void Clear() = 0;
-
- // Quickly check if all required fields have values set.
- virtual bool IsInitialized() const = 0;
-
- // This is not implemented for Lite messages -- it just returns "(cannot
- // determine missing fields for lite message)". However, it is implemented
- // for full messages. See message.h.
- virtual string InitializationErrorString() const;
-
- // If |other| is the exact same class as this, calls MergeFrom(). Otherwise,
- // results are undefined (probably crash).
- virtual void CheckTypeAndMergeFrom(const MessageLite& other) = 0;
-
- // Parsing ---------------------------------------------------------
- // Methods for parsing in protocol buffer format. Most of these are
- // just simple wrappers around MergeFromCodedStream().
-
- // Fill the message with a protocol buffer parsed from the given input
- // stream. Returns false on a read error or if the input is in the
- // wrong format.
- bool ParseFromCodedStream(io::CodedInputStream* input);
- // Like ParseFromCodedStream(), but accepts messages that are missing
- // required fields.
- bool ParsePartialFromCodedStream(io::CodedInputStream* input);
- // Read a protocol buffer from the given zero-copy input stream. If
- // successful, the entire input will be consumed.
- bool ParseFromZeroCopyStream(io::ZeroCopyInputStream* input);
- // Like ParseFromZeroCopyStream(), but accepts messages that are missing
- // required fields.
- bool ParsePartialFromZeroCopyStream(io::ZeroCopyInputStream* input);
- // Read a protocol buffer from the given zero-copy input stream, expecting
- // the message to be exactly "size" bytes long. If successful, exactly
- // this many bytes will have been consumed from the input.
- bool ParseFromBoundedZeroCopyStream(io::ZeroCopyInputStream* input, int size);
- // Like ParseFromBoundedZeroCopyStream(), but accepts messages that are
- // missing required fields.
- bool ParsePartialFromBoundedZeroCopyStream(io::ZeroCopyInputStream* input,
- int size);
- // Parse a protocol buffer contained in a string.
- bool ParseFromString(const string& data);
- // Like ParseFromString(), but accepts messages that are missing
- // required fields.
- bool ParsePartialFromString(const string& data);
- // Parse a protocol buffer contained in an array of bytes.
- bool ParseFromArray(const void* data, int size);
- // Like ParseFromArray(), but accepts messages that are missing
- // required fields.
- bool ParsePartialFromArray(const void* data, int size);
-
-
- // Reads a protocol buffer from the stream and merges it into this
- // Message. Singular fields read from the input overwrite what is
- // already in the Message and repeated fields are appended to those
- // already present.
- //
- // It is the responsibility of the caller to call input->LastTagWas()
- // (for groups) or input->ConsumedEntireMessage() (for non-groups) after
- // this returns to verify that the message's end was delimited correctly.
- //
- // ParsefromCodedStream() is implemented as Clear() followed by
- // MergeFromCodedStream().
- bool MergeFromCodedStream(io::CodedInputStream* input);
-
- // Like MergeFromCodedStream(), but succeeds even if required fields are
- // missing in the input.
- //
- // MergeFromCodedStream() is just implemented as MergePartialFromCodedStream()
- // followed by IsInitialized().
- virtual bool MergePartialFromCodedStream(io::CodedInputStream* input) = 0;
-
- // Serialization ---------------------------------------------------
- // Methods for serializing in protocol buffer format. Most of these
- // are just simple wrappers around ByteSize() and SerializeWithCachedSizes().
-
- // Write a protocol buffer of this message to the given output. Returns
- // false on a write error. If the message is missing required fields,
- // this may GOOGLE_CHECK-fail.
- bool SerializeToCodedStream(io::CodedOutputStream* output) const;
- // Like SerializeToCodedStream(), but allows missing required fields.
- bool SerializePartialToCodedStream(io::CodedOutputStream* output) const;
- // Write the message to the given zero-copy output stream. All required
- // fields must be set.
- bool SerializeToZeroCopyStream(io::ZeroCopyOutputStream* output) const;
- // Like SerializeToZeroCopyStream(), but allows missing required fields.
- bool SerializePartialToZeroCopyStream(io::ZeroCopyOutputStream* output) const;
- // Serialize the message and store it in the given string. All required
- // fields must be set.
- bool SerializeToString(string* output) const;
- // Like SerializeToString(), but allows missing required fields.
- bool SerializePartialToString(string* output) const;
- // Serialize the message and store it in the given byte array. All required
- // fields must be set.
- bool SerializeToArray(void* data, int size) const;
- // Like SerializeToArray(), but allows missing required fields.
- bool SerializePartialToArray(void* data, int size) const;
-
- // Make a string encoding the message. Is equivalent to calling
- // SerializeToString() on a string and using that. Returns the empty
- // string if SerializeToString() would have returned an error.
- // Note: If you intend to generate many such strings, you may
- // reduce heap fragmentation by instead re-using the same string
- // object with calls to SerializeToString().
- string SerializeAsString() const;
- // Like SerializeAsString(), but allows missing required fields.
- string SerializePartialAsString() const;
-
- // Like SerializeToString(), but appends to the data to the string's existing
- // contents. All required fields must be set.
- bool AppendToString(string* output) const;
- // Like AppendToString(), but allows missing required fields.
- bool AppendPartialToString(string* output) const;
-
- // Computes the serialized size of the message. This recursively calls
- // ByteSize() on all embedded messages. If a subclass does not override
- // this, it MUST override SetCachedSize().
- virtual int ByteSize() const = 0;
-
- // Serializes the message without recomputing the size. The message must
- // not have changed since the last call to ByteSize(); if it has, the results
- // are undefined.
- virtual void SerializeWithCachedSizes(
- io::CodedOutputStream* output) const = 0;
-
- // Like SerializeWithCachedSizes, but writes directly to *target, returning
- // a pointer to the byte immediately after the last byte written. "target"
- // must point at a byte array of at least ByteSize() bytes.
- virtual uint8* SerializeWithCachedSizesToArray(uint8* target) const;
-
- // Returns the result of the last call to ByteSize(). An embedded message's
- // size is needed both to serialize it (because embedded messages are
- // length-delimited) and to compute the outer message's size. Caching
- // the size avoids computing it multiple times.
- //
- // ByteSize() does not automatically use the cached size when available
- // because this would require invalidating it every time the message was
- // modified, which would be too hard and expensive. (E.g. if a deeply-nested
- // sub-message is changed, all of its parents' cached sizes would need to be
- // invalidated, which is too much work for an otherwise inlined setter
- // method.)
- virtual int GetCachedSize() const = 0;
-
- private:
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(MessageLite);
-};
-
-} // namespace protobuf
-
-} // namespace google
-#endif // GOOGLE_PROTOBUF_MESSAGE_LITE_H__
diff --git a/contrib/prebuilt/include/google/protobuf/reflection_ops.h b/contrib/prebuilt/include/google/protobuf/reflection_ops.h
deleted file mode 100644
index 355a0a5..0000000
--- a/contrib/prebuilt/include/google/protobuf/reflection_ops.h
+++ /dev/null
@@ -1,80 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// http://code.google.com/p/protobuf/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Author: kenton@google.com (Kenton Varda)
-// Based on original Protocol Buffers design by
-// Sanjay Ghemawat, Jeff Dean, and others.
-//
-// This header is logically internal, but is made public because it is used
-// from protocol-compiler-generated code, which may reside in other components.
-
-#ifndef GOOGLE_PROTOBUF_REFLECTION_OPS_H__
-#define GOOGLE_PROTOBUF_REFLECTION_OPS_H__
-
-#include <google/protobuf/message.h>
-
-namespace google {
-namespace protobuf {
-namespace internal {
-
-// Basic operations that can be performed using reflection.
-// These can be used as a cheap way to implement the corresponding
-// methods of the Message interface, though they are likely to be
-// slower than implementations tailored for the specific message type.
-//
-// This class should stay limited to operations needed to implement
-// the Message interface.
-//
-// This class is really a namespace that contains only static methods.
-class LIBPROTOBUF_EXPORT ReflectionOps {
- public:
- static void Copy(const Message& from, Message* to);
- static void Merge(const Message& from, Message* to);
- static void Clear(Message* message);
- static bool IsInitialized(const Message& message);
- static void DiscardUnknownFields(Message* message);
-
- // Finds all unset required fields in the message and adds their full
- // paths (e.g. "foo.bar[5].baz") to *names. "prefix" will be attached to
- // the front of each name.
- static void FindInitializationErrors(const Message& message,
- const string& prefix,
- vector<string>* errors);
-
- private:
- // All methods are static. No need to construct.
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(ReflectionOps);
-};
-
-} // namespace internal
-} // namespace protobuf
-
-} // namespace google
-#endif // GOOGLE_PROTOBUF_REFLECTION_OPS_H__
diff --git a/contrib/prebuilt/include/google/protobuf/repeated_field.h b/contrib/prebuilt/include/google/protobuf/repeated_field.h
deleted file mode 100644
index 6080ddc..0000000
--- a/contrib/prebuilt/include/google/protobuf/repeated_field.h
+++ /dev/null
@@ -1,1295 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// http://code.google.com/p/protobuf/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Author: kenton@google.com (Kenton Varda)
-// Based on original Protocol Buffers design by
-// Sanjay Ghemawat, Jeff Dean, and others.
-//
-// RepeatedField and RepeatedPtrField are used by generated protocol message
-// classes to manipulate repeated fields. These classes are very similar to
-// STL's vector, but include a number of optimizations found to be useful
-// specifically in the case of Protocol Buffers. RepeatedPtrField is
-// particularly different from STL vector as it manages ownership of the
-// pointers that it contains.
-//
-// Typically, clients should not need to access RepeatedField objects directly,
-// but should instead use the accessor functions generated automatically by the
-// protocol compiler.
-
-#ifndef GOOGLE_PROTOBUF_REPEATED_FIELD_H__
-#define GOOGLE_PROTOBUF_REPEATED_FIELD_H__
-
-#include <string>
-#include <iterator>
-#include <google/protobuf/stubs/common.h>
-#include <google/protobuf/message_lite.h>
-
-namespace google {
-
-namespace protobuf {
-
-class Message;
-
-namespace internal {
-
-// We need this (from generated_message_reflection.cc).
-LIBPROTOBUF_EXPORT int StringSpaceUsedExcludingSelf(const string& str);
-
-} // namespace internal
-
-// RepeatedField is used to represent repeated fields of a primitive type (in
-// other words, everything except strings and nested Messages). Most users will
-// not ever use a RepeatedField directly; they will use the get-by-index,
-// set-by-index, and add accessors that are generated for all repeated fields.
-template <typename Element>
-class RepeatedField {
- public:
- RepeatedField();
- RepeatedField(const RepeatedField& other);
- ~RepeatedField();
-
- RepeatedField& operator=(const RepeatedField& other);
-
- int size() const;
-
- const Element& Get(int index) const;
- Element* Mutable(int index);
- void Set(int index, const Element& value);
- void Add(const Element& value);
- Element* Add();
- // Remove the last element in the array.
- // We don't provide a way to remove any element other than the last
- // because it invites inefficient use, such as O(n^2) filtering loops
- // that should have been O(n). If you want to remove an element other
- // than the last, the best way to do it is to re-arrange the elements
- // so that the one you want removed is at the end, then call RemoveLast().
- void RemoveLast();
- void Clear();
- void MergeFrom(const RepeatedField& other);
- void CopyFrom(const RepeatedField& other);
-
- // Reserve space to expand the field to at least the given size. If the
- // array is grown, it will always be at least doubled in size.
- void Reserve(int new_size);
-
- // Resize the RepeatedField to a new, smaller size. This is O(1).
- void Truncate(int new_size);
-
- void AddAlreadyReserved(const Element& value);
- Element* AddAlreadyReserved();
- int Capacity() const;
-
- // Gets the underlying array. This pointer is possibly invalidated by
- // any add or remove operation.
- Element* mutable_data();
- const Element* data() const;
-
- // Swap entire contents with "other".
- void Swap(RepeatedField* other);
-
- // Swap two elements.
- void SwapElements(int index1, int index2);
-
- // STL-like iterator support
- typedef Element* iterator;
- typedef const Element* const_iterator;
- typedef Element value_type;
-
- iterator begin();
- const_iterator begin() const;
- iterator end();
- const_iterator end() const;
-
- // Returns the number of bytes used by the repeated field, excluding
- // sizeof(*this)
- int SpaceUsedExcludingSelf() const;
-
- private:
- static const int kInitialSize = 4;
-
- Element* elements_;
- int current_size_;
- int total_size_;
-
- Element initial_space_[kInitialSize];
-
- // Move the contents of |from| into |to|, possibly clobbering |from| in the
- // process. For primitive types this is just a memcpy(), but it could be
- // specialized for non-primitive types to, say, swap each element instead.
- void MoveArray(Element to[], Element from[], int size);
-
- // Copy the elements of |from| into |to|.
- void CopyArray(Element to[], const Element from[], int size);
-};
-
-namespace internal {
-template <typename It> class RepeatedPtrIterator;
-template <typename It> class RepeatedPtrOverPtrsIterator;
-} // namespace internal
-
-namespace internal {
-
-// This is the common base class for RepeatedPtrFields. It deals only in void*
-// pointers. Users should not use this interface directly.
-//
-// The methods of this interface correspond to the methods of RepeatedPtrField,
-// but may have a template argument called TypeHandler. Its signature is:
-// class TypeHandler {
-// public:
-// typedef MyType Type;
-// static Type* New();
-// static void Delete(Type*);
-// static void Clear(Type*);
-// static void Merge(const Type& from, Type* to);
-//
-// // Only needs to be implemented if SpaceUsedExcludingSelf() is called.
-// static int SpaceUsed(const Type&);
-// };
-class LIBPROTOBUF_EXPORT RepeatedPtrFieldBase {
- protected:
- // The reflection implementation needs to call protected methods directly,
- // reinterpreting pointers as being to Message instead of a specific Message
- // subclass.
- friend class GeneratedMessageReflection;
-
- // ExtensionSet stores repeated message extensions as
- // RepeatedPtrField<MessageLite>, but non-lite ExtensionSets need to
- // implement SpaceUsed(), and thus need to call SpaceUsedExcludingSelf()
- // reinterpreting MessageLite as Message. ExtensionSet also needs to make
- // use of AddFromCleared(), which is not part of the public interface.
- friend class ExtensionSet;
-
- RepeatedPtrFieldBase();
-
- // Must be called from destructor.
- template <typename TypeHandler>
- void Destroy();
-
- int size() const;
-
- template <typename TypeHandler>
- const typename TypeHandler::Type& Get(int index) const;
- template <typename TypeHandler>
- typename TypeHandler::Type* Mutable(int index);
- template <typename TypeHandler>
- typename TypeHandler::Type* Add();
- template <typename TypeHandler>
- void RemoveLast();
- template <typename TypeHandler>
- void Clear();
- template <typename TypeHandler>
- void MergeFrom(const RepeatedPtrFieldBase& other);
- template <typename TypeHandler>
- void CopyFrom(const RepeatedPtrFieldBase& other);
-
- void Reserve(int new_size);
-
- int Capacity() const;
-
- // Used for constructing iterators.
- void* const* raw_data() const;
- void** raw_mutable_data() const;
-
- template <typename TypeHandler>
- typename TypeHandler::Type** mutable_data();
- template <typename TypeHandler>
- const typename TypeHandler::Type* const* data() const;
-
- void Swap(RepeatedPtrFieldBase* other);
-
- void SwapElements(int index1, int index2);
-
- template <typename TypeHandler>
- int SpaceUsedExcludingSelf() const;
-
-
- // Advanced memory management --------------------------------------
-
- // Like Add(), but if there are no cleared objects to use, returns NULL.
- template <typename TypeHandler>
- typename TypeHandler::Type* AddFromCleared();
-
- template <typename TypeHandler>
- void AddAllocated(typename TypeHandler::Type* value);
- template <typename TypeHandler>
- typename TypeHandler::Type* ReleaseLast();
-
- int ClearedCount() const;
- template <typename TypeHandler>
- void AddCleared(typename TypeHandler::Type* value);
- template <typename TypeHandler>
- typename TypeHandler::Type* ReleaseCleared();
-
- private:
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(RepeatedPtrFieldBase);
-
- static const int kInitialSize = 4;
-
- void** elements_;
- int current_size_;
- int allocated_size_;
- int total_size_;
-
- void* initial_space_[kInitialSize];
-
- template <typename TypeHandler>
- static inline typename TypeHandler::Type* cast(void* element) {
- return reinterpret_cast<typename TypeHandler::Type*>(element);
- }
- template <typename TypeHandler>
- static inline const typename TypeHandler::Type* cast(const void* element) {
- return reinterpret_cast<const typename TypeHandler::Type*>(element);
- }
-};
-
-template <typename GenericType>
-class GenericTypeHandler {
- public:
- typedef GenericType Type;
- static GenericType* New() { return new GenericType; }
- static void Delete(GenericType* value) { delete value; }
- static void Clear(GenericType* value) { value->Clear(); }
- static void Merge(const GenericType& from, GenericType* to) {
- to->MergeFrom(from);
- }
- static int SpaceUsed(const GenericType& value) { return value.SpaceUsed(); }
-};
-
-template <>
-inline void GenericTypeHandler<MessageLite>::Merge(
- const MessageLite& from, MessageLite* to) {
- to->CheckTypeAndMergeFrom(from);
-}
-
-// HACK: If a class is declared as DLL-exported in MSVC, it insists on
-// generating copies of all its methods -- even inline ones -- to include
-// in the DLL. But SpaceUsed() calls StringSpaceUsedExcludingSelf() which
-// isn't in the lite library, therefore the lite library cannot link if
-// StringTypeHandler is exported. So, we factor out StringTypeHandlerBase,
-// export that, then make StringTypeHandler be a subclass which is NOT
-// exported.
-// TODO(kenton): There has to be a better way.
-class LIBPROTOBUF_EXPORT StringTypeHandlerBase {
- public:
- typedef string Type;
- static string* New();
- static void Delete(string* value);
- static void Clear(string* value) { value->clear(); }
- static void Merge(const string& from, string* to) { *to = from; }
-};
-
-class LIBPROTOBUF_EXPORT StringTypeHandler : public StringTypeHandlerBase {
- public:
- static int SpaceUsed(const string& value) {
- return sizeof(value) + StringSpaceUsedExcludingSelf(value);
- }
-};
-
-
-} // namespace internal
-
-// RepeatedPtrField is like RepeatedField, but used for repeated strings or
-// Messages.
-template <typename Element>
-class RepeatedPtrField : public internal::RepeatedPtrFieldBase {
- public:
- RepeatedPtrField();
- RepeatedPtrField(const RepeatedPtrField& other);
- ~RepeatedPtrField();
-
- RepeatedPtrField& operator=(const RepeatedPtrField& other);
-
- int size() const;
-
- const Element& Get(int index) const;
- Element* Mutable(int index);
- Element* Add();
- void RemoveLast(); // Remove the last element in the array.
- void Clear();
- void MergeFrom(const RepeatedPtrField& other);
- void CopyFrom(const RepeatedPtrField& other);
-
- // Reserve space to expand the field to at least the given size. This only
- // resizes the pointer array; it doesn't allocate any objects. If the
- // array is grown, it will always be at least doubled in size.
- void Reserve(int new_size);
-
- int Capacity() const;
-
- // Gets the underlying array. This pointer is possibly invalidated by
- // any add or remove operation.
- Element** mutable_data();
- const Element* const* data() const;
-
- // Swap entire contents with "other".
- void Swap(RepeatedPtrField* other);
-
- // Swap two elements.
- void SwapElements(int index1, int index2);
-
- // STL-like iterator support
- typedef internal::RepeatedPtrIterator<Element> iterator;
- typedef internal::RepeatedPtrIterator<const Element> const_iterator;
- typedef Element value_type;
-
- iterator begin();
- const_iterator begin() const;
- iterator end();
- const_iterator end() const;
-
- // Custom STL-like iterator that iterates over and returns the underlying
- // pointers to Element rather than Element itself.
- typedef internal::RepeatedPtrOverPtrsIterator<Element> pointer_iterator;
- pointer_iterator pointer_begin();
- pointer_iterator pointer_end();
-
- // Returns (an estimate of) the number of bytes used by the repeated field,
- // excluding sizeof(*this).
- int SpaceUsedExcludingSelf() const;
-
- // Advanced memory management --------------------------------------
- // When hardcore memory management becomes necessary -- as it often
- // does here at Google -- the following methods may be useful.
-
- // Add an already-allocated object, passing ownership to the
- // RepeatedPtrField.
- void AddAllocated(Element* value);
- // Remove the last element and return it, passing ownership to the
- // caller.
- // Requires: size() > 0
- Element* ReleaseLast();
-
- // When elements are removed by calls to RemoveLast() or Clear(), they
- // are not actually freed. Instead, they are cleared and kept so that
- // they can be reused later. This can save lots of CPU time when
- // repeatedly reusing a protocol message for similar purposes.
- //
- // Really, extremely hardcore programs may actually want to manipulate
- // these objects to better-optimize memory management. These methods
- // allow that.
-
- // Get the number of cleared objects that are currently being kept
- // around for reuse.
- int ClearedCount() const;
- // Add an element to the pool of cleared objects, passing ownership to
- // the RepeatedPtrField. The element must be cleared prior to calling
- // this method.
- void AddCleared(Element* value);
- // Remove a single element from the cleared pool and return it, passing
- // ownership to the caller. The element is guaranteed to be cleared.
- // Requires: ClearedCount() > 0
- Element* ReleaseCleared();
-
- protected:
- // Note: RepeatedPtrField SHOULD NOT be subclassed by users. We only
- // subclass it in one place as a hack for compatibility with proto1. The
- // subclass needs to know about TypeHandler in order to call protected
- // methods on RepeatedPtrFieldBase.
- class TypeHandler;
-
-};
-
-// implementation ====================================================
-
-template <typename Element>
-inline RepeatedField<Element>::RepeatedField()
- : elements_(initial_space_),
- current_size_(0),
- total_size_(kInitialSize) {
-}
-
-template <typename Element>
-inline RepeatedField<Element>::RepeatedField(const RepeatedField& other)
- : elements_(initial_space_),
- current_size_(0),
- total_size_(kInitialSize) {
- CopyFrom(other);
-}
-
-template <typename Element>
-RepeatedField<Element>::~RepeatedField() {
- if (elements_ != initial_space_) {
- delete [] elements_;
- }
-}
-
-template <typename Element>
-inline RepeatedField<Element>&
-RepeatedField<Element>::operator=(const RepeatedField& other) {
- CopyFrom(other);
- return *this;
-}
-
-template <typename Element>
-inline int RepeatedField<Element>::size() const {
- return current_size_;
-}
-
-template <typename Element>
-inline int RepeatedField<Element>::Capacity() const {
- return total_size_;
-}
-
-template<typename Element>
-inline void RepeatedField<Element>::AddAlreadyReserved(const Element& value) {
- GOOGLE_DCHECK_LT(size(), Capacity());
- elements_[current_size_++] = value;
-}
-
-template<typename Element>
-inline Element* RepeatedField<Element>::AddAlreadyReserved() {
- GOOGLE_DCHECK_LT(size(), Capacity());
- return &elements_[current_size_++];
-}
-
-template <typename Element>
-inline const Element& RepeatedField<Element>::Get(int index) const {
- GOOGLE_DCHECK_LT(index, size());
- return elements_[index];
-}
-
-template <typename Element>
-inline Element* RepeatedField<Element>::Mutable(int index) {
- GOOGLE_DCHECK_LT(index, size());
- return elements_ + index;
-}
-
-template <typename Element>
-inline void RepeatedField<Element>::Set(int index, const Element& value) {
- GOOGLE_DCHECK_LT(index, size());
- elements_[index] = value;
-}
-
-template <typename Element>
-inline void RepeatedField<Element>::Add(const Element& value) {
- if (current_size_ == total_size_) Reserve(total_size_ + 1);
- elements_[current_size_++] = value;
-}
-
-template <typename Element>
-inline Element* RepeatedField<Element>::Add() {
- if (current_size_ == total_size_) Reserve(total_size_ + 1);
- return &elements_[current_size_++];
-}
-
-template <typename Element>
-inline void RepeatedField<Element>::RemoveLast() {
- GOOGLE_DCHECK_GT(current_size_, 0);
- --current_size_;
-}
-
-template <typename Element>
-inline void RepeatedField<Element>::Clear() {
- current_size_ = 0;
-}
-
-template <typename Element>
-inline void RepeatedField<Element>::MergeFrom(const RepeatedField& other) {
- Reserve(current_size_ + other.current_size_);
- CopyArray(elements_ + current_size_, other.elements_, other.current_size_);
- current_size_ += other.current_size_;
-}
-
-template <typename Element>
-inline void RepeatedField<Element>::CopyFrom(const RepeatedField& other) {
- Clear();
- MergeFrom(other);
-}
-
-template <typename Element>
-inline Element* RepeatedField<Element>::mutable_data() {
- return elements_;
-}
-
-template <typename Element>
-inline const Element* RepeatedField<Element>::data() const {
- return elements_;
-}
-
-
-template <typename Element>
-void RepeatedField<Element>::Swap(RepeatedField* other) {
- Element* swap_elements = elements_;
- int swap_current_size = current_size_;
- int swap_total_size = total_size_;
- // We may not be using initial_space_ but it's not worth checking. Just
- // copy it anyway.
- Element swap_initial_space[kInitialSize];
- MoveArray(swap_initial_space, initial_space_, kInitialSize);
-
- elements_ = other->elements_;
- current_size_ = other->current_size_;
- total_size_ = other->total_size_;
- MoveArray(initial_space_, other->initial_space_, kInitialSize);
-
- other->elements_ = swap_elements;
- other->current_size_ = swap_current_size;
- other->total_size_ = swap_total_size;
- MoveArray(other->initial_space_, swap_initial_space, kInitialSize);
-
- if (elements_ == other->initial_space_) {
- elements_ = initial_space_;
- }
- if (other->elements_ == initial_space_) {
- other->elements_ = other->initial_space_;
- }
-}
-
-template <typename Element>
-void RepeatedField<Element>::SwapElements(int index1, int index2) {
- std::swap(elements_[index1], elements_[index2]);
-}
-
-template <typename Element>
-inline typename RepeatedField<Element>::iterator
-RepeatedField<Element>::begin() {
- return elements_;
-}
-template <typename Element>
-inline typename RepeatedField<Element>::const_iterator
-RepeatedField<Element>::begin() const {
- return elements_;
-}
-template <typename Element>
-inline typename RepeatedField<Element>::iterator
-RepeatedField<Element>::end() {
- return elements_ + current_size_;
-}
-template <typename Element>
-inline typename RepeatedField<Element>::const_iterator
-RepeatedField<Element>::end() const {
- return elements_ + current_size_;
-}
-
-template <typename Element>
-inline int RepeatedField<Element>::SpaceUsedExcludingSelf() const {
- return (elements_ != initial_space_) ? total_size_ * sizeof(elements_[0]) : 0;
-}
-
-// Avoid inlining of Reserve(): new, memcpy, and delete[] lead to a significant
-// amount of code bloat.
-template <typename Element>
-void RepeatedField<Element>::Reserve(int new_size) {
- if (total_size_ >= new_size) return;
-
- Element* old_elements = elements_;
- total_size_ = max(total_size_ * 2, new_size);
- elements_ = new Element[total_size_];
- MoveArray(elements_, old_elements, current_size_);
- if (old_elements != initial_space_) {
- delete [] old_elements;
- }
-}
-
-template <typename Element>
-inline void RepeatedField<Element>::Truncate(int new_size) {
- GOOGLE_DCHECK_LE(new_size, current_size_);
- current_size_ = new_size;
-}
-
-template <typename Element>
-inline void RepeatedField<Element>::MoveArray(
- Element to[], Element from[], int array_size) {
- memcpy(to, from, array_size * sizeof(Element));
-}
-
-template <typename Element>
-inline void RepeatedField<Element>::CopyArray(
- Element to[], const Element from[], int array_size) {
- memcpy(to, from, array_size * sizeof(Element));
-}
-
-
-// -------------------------------------------------------------------
-
-namespace internal {
-
-inline RepeatedPtrFieldBase::RepeatedPtrFieldBase()
- : elements_(initial_space_),
- current_size_(0),
- allocated_size_(0),
- total_size_(kInitialSize) {
-}
-
-template <typename TypeHandler>
-void RepeatedPtrFieldBase::Destroy() {
- for (int i = 0; i < allocated_size_; i++) {
- TypeHandler::Delete(cast<TypeHandler>(elements_[i]));
- }
- if (elements_ != initial_space_) {
- delete [] elements_;
- }
-}
-
-inline int RepeatedPtrFieldBase::size() const {
- return current_size_;
-}
-
-
-template <typename TypeHandler>
-inline const typename TypeHandler::Type&
-RepeatedPtrFieldBase::Get(int index) const {
- GOOGLE_DCHECK_LT(index, size());
- return *cast<TypeHandler>(elements_[index]);
-}
-
-template <typename TypeHandler>
-inline typename TypeHandler::Type*
-RepeatedPtrFieldBase::Mutable(int index) {
- GOOGLE_DCHECK_LT(index, size());
- return cast<TypeHandler>(elements_[index]);
-}
-
-template <typename TypeHandler>
-inline typename TypeHandler::Type* RepeatedPtrFieldBase::Add() {
- if (current_size_ < allocated_size_) {
- return cast<TypeHandler>(elements_[current_size_++]);
- }
- if (allocated_size_ == total_size_) Reserve(total_size_ + 1);
- ++allocated_size_;
- typename TypeHandler::Type* result = TypeHandler::New();
- elements_[current_size_++] = result;
- return result;
-}
-
-template <typename TypeHandler>
-inline void RepeatedPtrFieldBase::RemoveLast() {
- GOOGLE_DCHECK_GT(current_size_, 0);
- TypeHandler::Clear(cast<TypeHandler>(elements_[--current_size_]));
-}
-
-template <typename TypeHandler>
-void RepeatedPtrFieldBase::Clear() {
- for (int i = 0; i < current_size_; i++) {
- TypeHandler::Clear(cast<TypeHandler>(elements_[i]));
- }
- current_size_ = 0;
-}
-
-template <typename TypeHandler>
-inline void RepeatedPtrFieldBase::MergeFrom(const RepeatedPtrFieldBase& other) {
- Reserve(current_size_ + other.current_size_);
- for (int i = 0; i < other.current_size_; i++) {
- TypeHandler::Merge(other.template Get<TypeHandler>(i), Add<TypeHandler>());
- }
-}
-
-template <typename TypeHandler>
-inline void RepeatedPtrFieldBase::CopyFrom(const RepeatedPtrFieldBase& other) {
- RepeatedPtrFieldBase::Clear<TypeHandler>();
- RepeatedPtrFieldBase::MergeFrom<TypeHandler>(other);
-}
-
-inline int RepeatedPtrFieldBase::Capacity() const {
- return total_size_;
-}
-
-inline void* const* RepeatedPtrFieldBase::raw_data() const {
- return elements_;
-}
-
-inline void** RepeatedPtrFieldBase::raw_mutable_data() const {
- return elements_;
-}
-
-template <typename TypeHandler>
-inline typename TypeHandler::Type** RepeatedPtrFieldBase::mutable_data() {
- // TODO(kenton): Breaks C++ aliasing rules. We should probably remove this
- // method entirely.
- return reinterpret_cast<typename TypeHandler::Type**>(elements_);
-}
-
-template <typename TypeHandler>
-inline const typename TypeHandler::Type* const*
-RepeatedPtrFieldBase::data() const {
- // TODO(kenton): Breaks C++ aliasing rules. We should probably remove this
- // method entirely.
- return reinterpret_cast<const typename TypeHandler::Type* const*>(elements_);
-}
-
-inline void RepeatedPtrFieldBase::SwapElements(int index1, int index2) {
- std::swap(elements_[index1], elements_[index2]);
-}
-
-template <typename TypeHandler>
-inline int RepeatedPtrFieldBase::SpaceUsedExcludingSelf() const {
- int allocated_bytes =
- (elements_ != initial_space_) ? total_size_ * sizeof(elements_[0]) : 0;
- for (int i = 0; i < allocated_size_; ++i) {
- allocated_bytes += TypeHandler::SpaceUsed(*cast<TypeHandler>(elements_[i]));
- }
- return allocated_bytes;
-}
-
-template <typename TypeHandler>
-inline typename TypeHandler::Type* RepeatedPtrFieldBase::AddFromCleared() {
- if (current_size_ < allocated_size_) {
- return cast<TypeHandler>(elements_[current_size_++]);
- } else {
- return NULL;
- }
-}
-
-template <typename TypeHandler>
-void RepeatedPtrFieldBase::AddAllocated(
- typename TypeHandler::Type* value) {
- // Make room for the new pointer.
- if (current_size_ == total_size_) {
- // The array is completely full with no cleared objects, so grow it.
- Reserve(total_size_ + 1);
- ++allocated_size_;
- } else if (allocated_size_ == total_size_) {
- // There is no more space in the pointer array because it contains some
- // cleared objects awaiting reuse. We don't want to grow the array in this
- // case because otherwise a loop calling AddAllocated() followed by Clear()
- // would leak memory.
- TypeHandler::Delete(cast<TypeHandler>(elements_[current_size_]));
- } else if (current_size_ < allocated_size_) {
- // We have some cleared objects. We don't care about their order, so we
- // can just move the first one to the end to make space.
- elements_[allocated_size_] = elements_[current_size_];
- ++allocated_size_;
- } else {
- // There are no cleared objects.
- ++allocated_size_;
- }
-
- elements_[current_size_++] = value;
-}
-
-template <typename TypeHandler>
-inline typename TypeHandler::Type* RepeatedPtrFieldBase::ReleaseLast() {
- GOOGLE_DCHECK_GT(current_size_, 0);
- typename TypeHandler::Type* result =
- cast<TypeHandler>(elements_[--current_size_]);
- --allocated_size_;
- if (current_size_ < allocated_size_) {
- // There are cleared elements on the end; replace the removed element
- // with the last allocated element.
- elements_[current_size_] = elements_[allocated_size_];
- }
- return result;
-}
-
-
-inline int RepeatedPtrFieldBase::ClearedCount() const {
- return allocated_size_ - current_size_;
-}
-
-template <typename TypeHandler>
-inline void RepeatedPtrFieldBase::AddCleared(
- typename TypeHandler::Type* value) {
- if (allocated_size_ == total_size_) Reserve(total_size_ + 1);
- elements_[allocated_size_++] = value;
-}
-
-template <typename TypeHandler>
-inline typename TypeHandler::Type* RepeatedPtrFieldBase::ReleaseCleared() {
- GOOGLE_DCHECK_GT(allocated_size_, current_size_);
- return cast<TypeHandler>(elements_[--allocated_size_]);
-}
-
-} // namespace internal
-
-// -------------------------------------------------------------------
-
-template <typename Element>
-class RepeatedPtrField<Element>::TypeHandler
- : public internal::GenericTypeHandler<Element> {};
-
-template <>
-class RepeatedPtrField<string>::TypeHandler
- : public internal::StringTypeHandler {};
-
-
-template <typename Element>
-inline RepeatedPtrField<Element>::RepeatedPtrField() {}
-
-template <typename Element>
-inline RepeatedPtrField<Element>::RepeatedPtrField(
- const RepeatedPtrField& other) {
- CopyFrom(other);
-}
-
-template <typename Element>
-RepeatedPtrField<Element>::~RepeatedPtrField() {
- Destroy<TypeHandler>();
-}
-
-template <typename Element>
-inline RepeatedPtrField<Element>& RepeatedPtrField<Element>::operator=(
- const RepeatedPtrField& other) {
- CopyFrom(other);
- return *this;
-}
-
-template <typename Element>
-inline int RepeatedPtrField<Element>::size() const {
- return RepeatedPtrFieldBase::size();
-}
-
-template <typename Element>
-inline const Element& RepeatedPtrField<Element>::Get(int index) const {
- return RepeatedPtrFieldBase::Get<TypeHandler>(index);
-}
-
-template <typename Element>
-inline Element* RepeatedPtrField<Element>::Mutable(int index) {
- return RepeatedPtrFieldBase::Mutable<TypeHandler>(index);
-}
-
-template <typename Element>
-inline Element* RepeatedPtrField<Element>::Add() {
- return RepeatedPtrFieldBase::Add<TypeHandler>();
-}
-
-template <typename Element>
-inline void RepeatedPtrField<Element>::RemoveLast() {
- RepeatedPtrFieldBase::RemoveLast<TypeHandler>();
-}
-
-template <typename Element>
-inline void RepeatedPtrField<Element>::Clear() {
- RepeatedPtrFieldBase::Clear<TypeHandler>();
-}
-
-template <typename Element>
-inline void RepeatedPtrField<Element>::MergeFrom(
- const RepeatedPtrField& other) {
- RepeatedPtrFieldBase::MergeFrom<TypeHandler>(other);
-}
-
-template <typename Element>
-inline void RepeatedPtrField<Element>::CopyFrom(
- const RepeatedPtrField& other) {
- RepeatedPtrFieldBase::CopyFrom<TypeHandler>(other);
-}
-
-template <typename Element>
-inline Element** RepeatedPtrField<Element>::mutable_data() {
- return RepeatedPtrFieldBase::mutable_data<TypeHandler>();
-}
-
-template <typename Element>
-inline const Element* const* RepeatedPtrField<Element>::data() const {
- return RepeatedPtrFieldBase::data<TypeHandler>();
-}
-
-template <typename Element>
-void RepeatedPtrField<Element>::Swap(RepeatedPtrField* other) {
- RepeatedPtrFieldBase::Swap(other);
-}
-
-template <typename Element>
-void RepeatedPtrField<Element>::SwapElements(int index1, int index2) {
- RepeatedPtrFieldBase::SwapElements(index1, index2);
-}
-
-template <typename Element>
-inline int RepeatedPtrField<Element>::SpaceUsedExcludingSelf() const {
- return RepeatedPtrFieldBase::SpaceUsedExcludingSelf<TypeHandler>();
-}
-
-template <typename Element>
-inline void RepeatedPtrField<Element>::AddAllocated(Element* value) {
- RepeatedPtrFieldBase::AddAllocated<TypeHandler>(value);
-}
-
-template <typename Element>
-inline Element* RepeatedPtrField<Element>::ReleaseLast() {
- return RepeatedPtrFieldBase::ReleaseLast<TypeHandler>();
-}
-
-
-template <typename Element>
-inline int RepeatedPtrField<Element>::ClearedCount() const {
- return RepeatedPtrFieldBase::ClearedCount();
-}
-
-template <typename Element>
-inline void RepeatedPtrField<Element>::AddCleared(Element* value) {
- return RepeatedPtrFieldBase::AddCleared<TypeHandler>(value);
-}
-
-template <typename Element>
-inline Element* RepeatedPtrField<Element>::ReleaseCleared() {
- return RepeatedPtrFieldBase::ReleaseCleared<TypeHandler>();
-}
-
-template <typename Element>
-inline void RepeatedPtrField<Element>::Reserve(int new_size) {
- return RepeatedPtrFieldBase::Reserve(new_size);
-}
-
-template <typename Element>
-inline int RepeatedPtrField<Element>::Capacity() const {
- return RepeatedPtrFieldBase::Capacity();
-}
-
-// -------------------------------------------------------------------
-
-namespace internal {
-
-// STL-like iterator implementation for RepeatedPtrField. You should not
-// refer to this class directly; use RepeatedPtrField<T>::iterator instead.
-//
-// The iterator for RepeatedPtrField<T>, RepeatedPtrIterator<T>, is
-// very similar to iterator_ptr<T**> in util/gtl/iterator_adaptors-inl.h,
-// but adds random-access operators and is modified to wrap a void** base
-// iterator (since RepeatedPtrField stores its array as a void* array and
-// casting void** to T** would violate C++ aliasing rules).
-//
-// This code based on net/proto/proto-array-internal.h by Jeffrey Yasskin
-// (jyasskin@google.com).
-template<typename Element>
-class RepeatedPtrIterator
- : public std::iterator<
- std::random_access_iterator_tag, Element> {
- public:
- typedef RepeatedPtrIterator<Element> iterator;
- typedef std::iterator<
- std::random_access_iterator_tag, Element> superclass;
-
- // Let the compiler know that these are type names, so we don't have to
- // write "typename" in front of them everywhere.
- typedef typename superclass::reference reference;
- typedef typename superclass::pointer pointer;
- typedef typename superclass::difference_type difference_type;
-
- RepeatedPtrIterator() : it_(NULL) {}
- explicit RepeatedPtrIterator(void* const* it) : it_(it) {}
-
- // Allow "upcasting" from RepeatedPtrIterator<T**> to
- // RepeatedPtrIterator<const T*const*>.
- template<typename OtherElement>
- RepeatedPtrIterator(const RepeatedPtrIterator<OtherElement>& other)
- : it_(other.it_) {
- // Force a compiler error if the other type is not convertible to ours.
- if (false) {
- implicit_cast<Element*, OtherElement*>(0);
- }
- }
-
- // dereferenceable
- reference operator*() const { return *reinterpret_cast<Element*>(*it_); }
- pointer operator->() const { return &(operator*()); }
-
- // {inc,dec}rementable
- iterator& operator++() { ++it_; return *this; }
- iterator operator++(int) { return iterator(it_++); }
- iterator& operator--() { --it_; return *this; }
- iterator operator--(int) { return iterator(it_--); }
-
- // equality_comparable
- bool operator==(const iterator& x) const { return it_ == x.it_; }
- bool operator!=(const iterator& x) const { return it_ != x.it_; }
-
- // less_than_comparable
- bool operator<(const iterator& x) const { return it_ < x.it_; }
- bool operator<=(const iterator& x) const { return it_ <= x.it_; }
- bool operator>(const iterator& x) const { return it_ > x.it_; }
- bool operator>=(const iterator& x) const { return it_ >= x.it_; }
-
- // addable, subtractable
- iterator& operator+=(difference_type d) {
- it_ += d;
- return *this;
- }
- friend iterator operator+(iterator it, difference_type d) {
- it += d;
- return it;
- }
- friend iterator operator+(difference_type d, iterator it) {
- it += d;
- return it;
- }
- iterator& operator-=(difference_type d) {
- it_ -= d;
- return *this;
- }
- friend iterator operator-(iterator it, difference_type d) {
- it -= d;
- return it;
- }
-
- // indexable
- reference operator[](difference_type d) const { return *(*this + d); }
-
- // random access iterator
- difference_type operator-(const iterator& x) const { return it_ - x.it_; }
-
- private:
- template<typename OtherElement>
- friend class RepeatedPtrIterator;
-
- // The internal iterator.
- void* const* it_;
-};
-
-// Provide an iterator that operates on pointers to the underlying objects
-// rather than the objects themselves as RepeatedPtrIterator does.
-// Consider using this when working with stl algorithms that change
-// the array.
-template<typename Element>
-class RepeatedPtrOverPtrsIterator
- : public std::iterator<std::random_access_iterator_tag, Element*> {
- public:
- typedef RepeatedPtrOverPtrsIterator<Element> iterator;
- typedef std::iterator<
- std::random_access_iterator_tag, Element*> superclass;
-
- // Let the compiler know that these are type names, so we don't have to
- // write "typename" in front of them everywhere.
- typedef typename superclass::reference reference;
- typedef typename superclass::pointer pointer;
- typedef typename superclass::difference_type difference_type;
-
- RepeatedPtrOverPtrsIterator() : it_(NULL) {}
- explicit RepeatedPtrOverPtrsIterator(void** it) : it_(it) {}
-
- // dereferenceable
- reference operator*() const { return *reinterpret_cast<Element**>(it_); }
- pointer operator->() const { return &(operator*()); }
-
- // {inc,dec}rementable
- iterator& operator++() { ++it_; return *this; }
- iterator operator++(int) { return iterator(it_++); }
- iterator& operator--() { --it_; return *this; }
- iterator operator--(int) { return iterator(it_--); }
-
- // equality_comparable
- bool operator==(const iterator& x) const { return it_ == x.it_; }
- bool operator!=(const iterator& x) const { return it_ != x.it_; }
-
- // less_than_comparable
- bool operator<(const iterator& x) const { return it_ < x.it_; }
- bool operator<=(const iterator& x) const { return it_ <= x.it_; }
- bool operator>(const iterator& x) const { return it_ > x.it_; }
- bool operator>=(const iterator& x) const { return it_ >= x.it_; }
-
- // addable, subtractable
- iterator& operator+=(difference_type d) {
- it_ += d;
- return *this;
- }
- friend iterator operator+(iterator it, difference_type d) {
- it += d;
- return it;
- }
- friend iterator operator+(difference_type d, iterator it) {
- it += d;
- return it;
- }
- iterator& operator-=(difference_type d) {
- it_ -= d;
- return *this;
- }
- friend iterator operator-(iterator it, difference_type d) {
- it -= d;
- return it;
- }
-
- // indexable
- reference operator[](difference_type d) const { return *(*this + d); }
-
- // random access iterator
- difference_type operator-(const iterator& x) const { return it_ - x.it_; }
-
- private:
- template<typename OtherElement>
- friend class RepeatedPtrIterator;
-
- // The internal iterator.
- void** it_;
-};
-
-
-} // namespace internal
-
-template <typename Element>
-inline typename RepeatedPtrField<Element>::iterator
-RepeatedPtrField<Element>::begin() {
- return iterator(raw_data());
-}
-template <typename Element>
-inline typename RepeatedPtrField<Element>::const_iterator
-RepeatedPtrField<Element>::begin() const {
- return iterator(raw_data());
-}
-template <typename Element>
-inline typename RepeatedPtrField<Element>::iterator
-RepeatedPtrField<Element>::end() {
- return iterator(raw_data() + size());
-}
-template <typename Element>
-inline typename RepeatedPtrField<Element>::const_iterator
-RepeatedPtrField<Element>::end() const {
- return iterator(raw_data() + size());
-}
-
-template <typename Element>
-inline typename RepeatedPtrField<Element>::pointer_iterator
-RepeatedPtrField<Element>::pointer_begin() {
- return pointer_iterator(raw_mutable_data());
-}
-template <typename Element>
-inline typename RepeatedPtrField<Element>::pointer_iterator
-RepeatedPtrField<Element>::pointer_end() {
- return pointer_iterator(raw_mutable_data() + size());
-}
-
-
-// Iterators and helper functions that follow the spirit of the STL
-// std::back_insert_iterator and std::back_inserter but are tailor-made
-// for RepeatedField and RepatedPtrField. Typical usage would be:
-//
-// std::copy(some_sequence.begin(), some_sequence.end(),
-// google::protobuf::RepeatedFieldBackInserter(proto.mutable_sequence()));
-//
-// Ported by johannes from util/gtl/proto-array-iterators-inl.h
-
-namespace internal {
-// A back inserter for RepeatedField objects.
-template<typename T> class RepeatedFieldBackInsertIterator
- : public std::iterator<std::output_iterator_tag, T> {
- public:
- explicit RepeatedFieldBackInsertIterator(
- RepeatedField<T>* const mutable_field)
- : field_(mutable_field) {
- }
- RepeatedFieldBackInsertIterator<T>& operator=(const T& value) {
- field_->Add(value);
- return *this;
- }
- RepeatedFieldBackInsertIterator<T>& operator*() {
- return *this;
- }
- RepeatedFieldBackInsertIterator<T>& operator++() {
- return *this;
- }
- RepeatedFieldBackInsertIterator<T>& operator++(int ignores_parameter) {
- return *this;
- }
-
- private:
- RepeatedField<T>* field_;
-};
-
-// A back inserter for RepeatedPtrField objects.
-template<typename T> class RepeatedPtrFieldBackInsertIterator
- : public std::iterator<std::output_iterator_tag, T> {
- public:
- RepeatedPtrFieldBackInsertIterator(
- RepeatedPtrField<T>* const mutable_field)
- : field_(mutable_field) {
- }
- RepeatedPtrFieldBackInsertIterator<T>& operator=(const T& value) {
- *field_->Add() = value;
- return *this;
- }
- RepeatedPtrFieldBackInsertIterator<T>& operator=(
- const T* const ptr_to_value) {
- *field_->Add() = *ptr_to_value;
- return *this;
- }
- RepeatedPtrFieldBackInsertIterator<T>& operator*() {
- return *this;
- }
- RepeatedPtrFieldBackInsertIterator<T>& operator++() {
- return *this;
- }
- RepeatedPtrFieldBackInsertIterator<T>& operator++(int ignores_parameter) {
- return *this;
- }
-
- private:
- RepeatedPtrField<T>* field_;
-};
-
-// A back inserter for RepeatedPtrFields that inserts by transfering ownership
-// of a pointer.
-template<typename T> class AllocatedRepeatedPtrFieldBackInsertIterator
- : public std::iterator<std::output_iterator_tag, T> {
- public:
- explicit AllocatedRepeatedPtrFieldBackInsertIterator(
- RepeatedPtrField<T>* const mutable_field)
- : field_(mutable_field) {
- }
- AllocatedRepeatedPtrFieldBackInsertIterator<T>& operator=(
- T* const ptr_to_value) {
- field_->AddAllocated(ptr_to_value);
- return *this;
- }
- AllocatedRepeatedPtrFieldBackInsertIterator<T>& operator*() {
- return *this;
- }
- AllocatedRepeatedPtrFieldBackInsertIterator<T>& operator++() {
- return *this;
- }
- AllocatedRepeatedPtrFieldBackInsertIterator<T>& operator++(
- int ignores_parameter) {
- return *this;
- }
-
- private:
- RepeatedPtrField<T>* field_;
-};
-} // namespace internal
-
-// Provides a back insert iterator for RepeatedField instances,
-// similar to std::back_inserter(). Note the identically named
-// function for RepeatedPtrField instances.
-template<typename T> internal::RepeatedFieldBackInsertIterator<T>
-RepeatedFieldBackInserter(RepeatedField<T>* const mutable_field) {
- return internal::RepeatedFieldBackInsertIterator<T>(mutable_field);
-}
-
-// Provides a back insert iterator for RepeatedPtrField instances,
-// similar to std::back_inserter(). Note the identically named
-// function for RepeatedField instances.
-template<typename T> internal::RepeatedPtrFieldBackInsertIterator<T>
-RepeatedFieldBackInserter(RepeatedPtrField<T>* const mutable_field) {
- return internal::RepeatedPtrFieldBackInsertIterator<T>(mutable_field);
-}
-
-// Provides a back insert iterator for RepeatedPtrField instances
-// similar to std::back_inserter() which transfers the ownership while
-// copying elements.
-template<typename T> internal::AllocatedRepeatedPtrFieldBackInsertIterator<T>
-AllocatedRepeatedPtrFieldBackInserter(
- RepeatedPtrField<T>* const mutable_field) {
- return internal::AllocatedRepeatedPtrFieldBackInsertIterator<T>(
- mutable_field);
-}
-
-} // namespace protobuf
-
-} // namespace google
-#endif // GOOGLE_PROTOBUF_REPEATED_FIELD_H__
diff --git a/contrib/prebuilt/include/google/protobuf/service.h b/contrib/prebuilt/include/google/protobuf/service.h
deleted file mode 100644
index a6a7d16..0000000
--- a/contrib/prebuilt/include/google/protobuf/service.h
+++ /dev/null
@@ -1,291 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// http://code.google.com/p/protobuf/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Author: kenton@google.com (Kenton Varda)
-// Based on original Protocol Buffers design by
-// Sanjay Ghemawat, Jeff Dean, and others.
-//
-// DEPRECATED: This module declares the abstract interfaces underlying proto2
-// RPC services. These are intented to be independent of any particular RPC
-// implementation, so that proto2 services can be used on top of a variety
-// of implementations. Starting with version 2.3.0, RPC implementations should
-// not try to build on these, but should instead provide code generator plugins
-// which generate code specific to the particular RPC implementation. This way
-// the generated code can be more appropriate for the implementation in use
-// and can avoid unnecessary layers of indirection.
-//
-//
-// When you use the protocol compiler to compile a service definition, it
-// generates two classes: An abstract interface for the service (with
-// methods matching the service definition) and a "stub" implementation.
-// A stub is just a type-safe wrapper around an RpcChannel which emulates a
-// local implementation of the service.
-//
-// For example, the service definition:
-// service MyService {
-// rpc Foo(MyRequest) returns(MyResponse);
-// }
-// will generate abstract interface "MyService" and class "MyService::Stub".
-// You could implement a MyService as follows:
-// class MyServiceImpl : public MyService {
-// public:
-// MyServiceImpl() {}
-// ~MyServiceImpl() {}
-//
-// // implements MyService ---------------------------------------
-//
-// void Foo(google::protobuf::RpcController* controller,
-// const MyRequest* request,
-// MyResponse* response,
-// Closure* done) {
-// // ... read request and fill in response ...
-// done->Run();
-// }
-// };
-// You would then register an instance of MyServiceImpl with your RPC server
-// implementation. (How to do that depends on the implementation.)
-//
-// To call a remote MyServiceImpl, first you need an RpcChannel connected to it.
-// How to construct a channel depends, again, on your RPC implementation.
-// Here we use a hypothentical "MyRpcChannel" as an example:
-// MyRpcChannel channel("rpc:hostname:1234/myservice");
-// MyRpcController controller;
-// MyServiceImpl::Stub stub(&channel);
-// FooRequest request;
-// FooRespnose response;
-//
-// // ... fill in request ...
-//
-// stub.Foo(&controller, request, &response, NewCallback(HandleResponse));
-//
-// On Thread-Safety:
-//
-// Different RPC implementations may make different guarantees about what
-// threads they may run callbacks on, and what threads the application is
-// allowed to use to call the RPC system. Portable software should be ready
-// for callbacks to be called on any thread, but should not try to call the
-// RPC system from any thread except for the ones on which it received the
-// callbacks. Realistically, though, simple software will probably want to
-// use a single-threaded RPC system while high-end software will want to
-// use multiple threads. RPC implementations should provide multiple
-// choices.
-
-#ifndef GOOGLE_PROTOBUF_SERVICE_H__
-#define GOOGLE_PROTOBUF_SERVICE_H__
-
-#include <string>
-#include <google/protobuf/stubs/common.h>
-
-namespace google {
-namespace protobuf {
-
-// Defined in this file.
-class Service;
-class RpcController;
-class RpcChannel;
-
-// Defined in other files.
-class Descriptor; // descriptor.h
-class ServiceDescriptor; // descriptor.h
-class MethodDescriptor; // descriptor.h
-class Message; // message.h
-
-// Abstract base interface for protocol-buffer-based RPC services. Services
-// themselves are abstract interfaces (implemented either by servers or as
-// stubs), but they subclass this base interface. The methods of this
-// interface can be used to call the methods of the Service without knowing
-// its exact type at compile time (analogous to Reflection).
-class LIBPROTOBUF_EXPORT Service {
- public:
- inline Service() {}
- virtual ~Service();
-
- // When constructing a stub, you may pass STUB_OWNS_CHANNEL as the second
- // parameter to the constructor to tell it to delete its RpcChannel when
- // destroyed.
- enum ChannelOwnership {
- STUB_OWNS_CHANNEL,
- STUB_DOESNT_OWN_CHANNEL
- };
-
- // Get the ServiceDescriptor describing this service and its methods.
- virtual const ServiceDescriptor* GetDescriptor() = 0;
-
- // Call a method of the service specified by MethodDescriptor. This is
- // normally implemented as a simple switch() that calls the standard
- // definitions of the service's methods.
- //
- // Preconditions:
- // * method->service() == GetDescriptor()
- // * request and response are of the exact same classes as the objects
- // returned by GetRequestPrototype(method) and
- // GetResponsePrototype(method).
- // * After the call has started, the request must not be modified and the
- // response must not be accessed at all until "done" is called.
- // * "controller" is of the correct type for the RPC implementation being
- // used by this Service. For stubs, the "correct type" depends on the
- // RpcChannel which the stub is using. Server-side Service
- // implementations are expected to accept whatever type of RpcController
- // the server-side RPC implementation uses.
- //
- // Postconditions:
- // * "done" will be called when the method is complete. This may be
- // before CallMethod() returns or it may be at some point in the future.
- // * If the RPC succeeded, "response" contains the response returned by
- // the server.
- // * If the RPC failed, "response"'s contents are undefined. The
- // RpcController can be queried to determine if an error occurred and
- // possibly to get more information about the error.
- virtual void CallMethod(const MethodDescriptor* method,
- RpcController* controller,
- const Message* request,
- Message* response,
- Closure* done) = 0;
-
- // CallMethod() requires that the request and response passed in are of a
- // particular subclass of Message. GetRequestPrototype() and
- // GetResponsePrototype() get the default instances of these required types.
- // You can then call Message::New() on these instances to construct mutable
- // objects which you can then pass to CallMethod().
- //
- // Example:
- // const MethodDescriptor* method =
- // service->GetDescriptor()->FindMethodByName("Foo");
- // Message* request = stub->GetRequestPrototype (method)->New();
- // Message* response = stub->GetResponsePrototype(method)->New();
- // request->ParseFromString(input);
- // service->CallMethod(method, *request, response, callback);
- virtual const Message& GetRequestPrototype(
- const MethodDescriptor* method) const = 0;
- virtual const Message& GetResponsePrototype(
- const MethodDescriptor* method) const = 0;
-
- private:
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(Service);
-};
-
-// An RpcController mediates a single method call. The primary purpose of
-// the controller is to provide a way to manipulate settings specific to the
-// RPC implementation and to find out about RPC-level errors.
-//
-// The methods provided by the RpcController interface are intended to be a
-// "least common denominator" set of features which we expect all
-// implementations to support. Specific implementations may provide more
-// advanced features (e.g. deadline propagation).
-class LIBPROTOBUF_EXPORT RpcController {
- public:
- inline RpcController() {}
- virtual ~RpcController();
-
- // Client-side methods ---------------------------------------------
- // These calls may be made from the client side only. Their results
- // are undefined on the server side (may crash).
-
- // Resets the RpcController to its initial state so that it may be reused in
- // a new call. Must not be called while an RPC is in progress.
- virtual void Reset() = 0;
-
- // After a call has finished, returns true if the call failed. The possible
- // reasons for failure depend on the RPC implementation. Failed() must not
- // be called before a call has finished. If Failed() returns true, the
- // contents of the response message are undefined.
- virtual bool Failed() const = 0;
-
- // If Failed() is true, returns a human-readable description of the error.
- virtual string ErrorText() const = 0;
-
- // Advises the RPC system that the caller desires that the RPC call be
- // canceled. The RPC system may cancel it immediately, may wait awhile and
- // then cancel it, or may not even cancel the call at all. If the call is
- // canceled, the "done" callback will still be called and the RpcController
- // will indicate that the call failed at that time.
- virtual void StartCancel() = 0;
-
- // Server-side methods ---------------------------------------------
- // These calls may be made from the server side only. Their results
- // are undefined on the client side (may crash).
-
- // Causes Failed() to return true on the client side. "reason" will be
- // incorporated into the message returned by ErrorText(). If you find
- // you need to return machine-readable information about failures, you
- // should incorporate it into your response protocol buffer and should
- // NOT call SetFailed().
- virtual void SetFailed(const string& reason) = 0;
-
- // If true, indicates that the client canceled the RPC, so the server may
- // as well give up on replying to it. The server should still call the
- // final "done" callback.
- virtual bool IsCanceled() const = 0;
-
- // Asks that the given callback be called when the RPC is canceled. The
- // callback will always be called exactly once. If the RPC completes without
- // being canceled, the callback will be called after completion. If the RPC
- // has already been canceled when NotifyOnCancel() is called, the callback
- // will be called immediately.
- //
- // NotifyOnCancel() must be called no more than once per request.
- virtual void NotifyOnCancel(Closure* callback) = 0;
-
- private:
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(RpcController);
-};
-
-// Abstract interface for an RPC channel. An RpcChannel represents a
-// communication line to a Service which can be used to call that Service's
-// methods. The Service may be running on another machine. Normally, you
-// should not call an RpcChannel directly, but instead construct a stub Service
-// wrapping it. Example:
-// RpcChannel* channel = new MyRpcChannel("remotehost.example.com:1234");
-// MyService* service = new MyService::Stub(channel);
-// service->MyMethod(request, &response, callback);
-class LIBPROTOBUF_EXPORT RpcChannel {
- public:
- inline RpcChannel() {}
- virtual ~RpcChannel();
-
- // Call the given method of the remote service. The signature of this
- // procedure looks the same as Service::CallMethod(), but the requirements
- // are less strict in one important way: the request and response objects
- // need not be of any specific class as long as their descriptors are
- // method->input_type() and method->output_type().
- virtual void CallMethod(const MethodDescriptor* method,
- RpcController* controller,
- const Message* request,
- Message* response,
- Closure* done) = 0;
-
- private:
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(RpcChannel);
-};
-
-} // namespace protobuf
-
-} // namespace google
-#endif // GOOGLE_PROTOBUF_SERVICE_H__
diff --git a/contrib/prebuilt/include/google/protobuf/stubs/common.h b/contrib/prebuilt/include/google/protobuf/stubs/common.h
deleted file mode 100644
index 7173a84..0000000
--- a/contrib/prebuilt/include/google/protobuf/stubs/common.h
+++ /dev/null
@@ -1,1211 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// http://code.google.com/p/protobuf/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Author: kenton@google.com (Kenton Varda) and others
-//
-// Contains basic types and utilities used by the rest of the library.
-
-#ifndef GOOGLE_PROTOBUF_COMMON_H__
-#define GOOGLE_PROTOBUF_COMMON_H__
-
-#include <assert.h>
-#include <stdlib.h>
-#include <cstddef>
-#include <string>
-#include <string.h>
-#if defined(__osf__)
-// Tru64 lacks stdint.h, but has inttypes.h which defines a superset of
-// what stdint.h would define.
-#include <inttypes.h>
-#elif !defined(_MSC_VER)
-#include <stdint.h>
-#endif
-
-#if defined(_MSC_VER) && defined(_CPPUNWIND)
- #define PROTOBUF_USE_EXCEPTIONS
-#elif defined(__EXCEPTIONS)
- #define PROTOBUF_USE_EXCEPTIONS
-#endif
-#ifdef PROTOBUF_USE_EXCEPTIONS
-#include <exception>
-#endif
-
-#if defined(_WIN32) && defined(GetMessage)
-// Allow GetMessage to be used as a valid method name in protobuf classes.
-// windows.h defines GetMessage() as a macro. Let's re-define it as an inline
-// function. The inline function should be equivalent for C++ users.
-inline BOOL GetMessage_Win32(
- LPMSG lpMsg, HWND hWnd,
- UINT wMsgFilterMin, UINT wMsgFilterMax) {
- return GetMessage(lpMsg, hWnd, wMsgFilterMin, wMsgFilterMax);
-}
-#undef GetMessage
-inline BOOL GetMessage(
- LPMSG lpMsg, HWND hWnd,
- UINT wMsgFilterMin, UINT wMsgFilterMax) {
- return GetMessage_Win32(lpMsg, hWnd, wMsgFilterMin, wMsgFilterMax);
-}
-#endif
-
-
-namespace std {}
-
-namespace google {
-namespace protobuf {
-
-#undef GOOGLE_DISALLOW_EVIL_CONSTRUCTORS
-#define GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(TypeName) \
- TypeName(const TypeName&); \
- void operator=(const TypeName&)
-
-#if defined(_MSC_VER) && defined(PROTOBUF_USE_DLLS)
- #ifdef LIBPROTOBUF_EXPORTS
- #define LIBPROTOBUF_EXPORT __declspec(dllexport)
- #else
- #define LIBPROTOBUF_EXPORT __declspec(dllimport)
- #endif
- #ifdef LIBPROTOC_EXPORTS
- #define LIBPROTOC_EXPORT __declspec(dllexport)
- #else
- #define LIBPROTOC_EXPORT __declspec(dllimport)
- #endif
-#else
- #define LIBPROTOBUF_EXPORT
- #define LIBPROTOC_EXPORT
-#endif
-
-namespace internal {
-
-// Some of these constants are macros rather than const ints so that they can
-// be used in #if directives.
-
-// The current version, represented as a single integer to make comparison
-// easier: major * 10^6 + minor * 10^3 + micro
-#define GOOGLE_PROTOBUF_VERSION 2004001
-
-// The minimum library version which works with the current version of the
-// headers.
-#define GOOGLE_PROTOBUF_MIN_LIBRARY_VERSION 2004000
-
-// The minimum header version which works with the current version of
-// the library. This constant should only be used by protoc's C++ code
-// generator.
-static const int kMinHeaderVersionForLibrary = 2004000;
-
-// The minimum protoc version which works with the current version of the
-// headers.
-#define GOOGLE_PROTOBUF_MIN_PROTOC_VERSION 2004000
-
-// The minimum header version which works with the current version of
-// protoc. This constant should only be used in VerifyVersion().
-static const int kMinHeaderVersionForProtoc = 2004000;
-
-// Verifies that the headers and libraries are compatible. Use the macro
-// below to call this.
-void LIBPROTOBUF_EXPORT VerifyVersion(int headerVersion, int minLibraryVersion,
- const char* filename);
-
-// Converts a numeric version number to a string.
-std::string LIBPROTOBUF_EXPORT VersionString(int version);
-
-} // namespace internal
-
-// Place this macro in your main() function (or somewhere before you attempt
-// to use the protobuf library) to verify that the version you link against
-// matches the headers you compiled against. If a version mismatch is
-// detected, the process will abort.
-#define GOOGLE_PROTOBUF_VERIFY_VERSION \
- ::google::protobuf::internal::VerifyVersion( \
- GOOGLE_PROTOBUF_VERSION, GOOGLE_PROTOBUF_MIN_LIBRARY_VERSION, \
- __FILE__)
-
-// ===================================================================
-// from google3/base/port.h
-
-typedef unsigned int uint;
-
-#ifdef _MSC_VER
-typedef __int8 int8;
-typedef __int16 int16;
-typedef __int32 int32;
-typedef __int64 int64;
-
-typedef unsigned __int8 uint8;
-typedef unsigned __int16 uint16;
-typedef unsigned __int32 uint32;
-typedef unsigned __int64 uint64;
-#else
-typedef int8_t int8;
-typedef int16_t int16;
-typedef int32_t int32;
-typedef int64_t int64;
-
-typedef uint8_t uint8;
-typedef uint16_t uint16;
-typedef uint32_t uint32;
-typedef uint64_t uint64;
-#endif
-
-// long long macros to be used because gcc and vc++ use different suffixes,
-// and different size specifiers in format strings
-#undef GOOGLE_LONGLONG
-#undef GOOGLE_ULONGLONG
-#undef GOOGLE_LL_FORMAT
-
-#ifdef _MSC_VER
-#define GOOGLE_LONGLONG(x) x##I64
-#define GOOGLE_ULONGLONG(x) x##UI64
-#define GOOGLE_LL_FORMAT "I64" // As in printf("%I64d", ...)
-#else
-#define GOOGLE_LONGLONG(x) x##LL
-#define GOOGLE_ULONGLONG(x) x##ULL
-#define GOOGLE_LL_FORMAT "ll" // As in "%lld". Note that "q" is poor form also.
-#endif
-
-static const int32 kint32max = 0x7FFFFFFF;
-static const int32 kint32min = -kint32max - 1;
-static const int64 kint64max = GOOGLE_LONGLONG(0x7FFFFFFFFFFFFFFF);
-static const int64 kint64min = -kint64max - 1;
-static const uint32 kuint32max = 0xFFFFFFFFu;
-static const uint64 kuint64max = GOOGLE_ULONGLONG(0xFFFFFFFFFFFFFFFF);
-
-// -------------------------------------------------------------------
-// Annotations: Some parts of the code have been annotated in ways that might
-// be useful to some compilers or tools, but are not supported universally.
-// You can #define these annotations yourself if the default implementation
-// is not right for you.
-
-#ifndef GOOGLE_ATTRIBUTE_ALWAYS_INLINE
-#if defined(__GNUC__) && (__GNUC__ > 3 ||(__GNUC__ == 3 && __GNUC_MINOR__ >= 1))
-// For functions we want to force inline.
-// Introduced in gcc 3.1.
-#define GOOGLE_ATTRIBUTE_ALWAYS_INLINE __attribute__ ((always_inline))
-#else
-// Other compilers will have to figure it out for themselves.
-#define GOOGLE_ATTRIBUTE_ALWAYS_INLINE
-#endif
-#endif
-
-#ifndef GOOGLE_ATTRIBUTE_DEPRECATED
-#ifdef __GNUC__
-// If the method/variable/type is used anywhere, produce a warning.
-#define GOOGLE_ATTRIBUTE_DEPRECATED __attribute__((deprecated))
-#else
-#define GOOGLE_ATTRIBUTE_DEPRECATED
-#endif
-#endif
-
-#ifndef GOOGLE_PREDICT_TRUE
-#ifdef __GNUC__
-// Provided at least since GCC 3.0.
-#define GOOGLE_PREDICT_TRUE(x) (__builtin_expect(!!(x), 1))
-#else
-#define GOOGLE_PREDICT_TRUE
-#endif
-#endif
-
-// Delimits a block of code which may write to memory which is simultaneously
-// written by other threads, but which has been determined to be thread-safe
-// (e.g. because it is an idempotent write).
-#ifndef GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN
-#define GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN()
-#endif
-#ifndef GOOGLE_SAFE_CONCURRENT_WRITES_END
-#define GOOGLE_SAFE_CONCURRENT_WRITES_END()
-#endif
-
-// ===================================================================
-// from google3/base/basictypes.h
-
-// The GOOGLE_ARRAYSIZE(arr) macro returns the # of elements in an array arr.
-// The expression is a compile-time constant, and therefore can be
-// used in defining new arrays, for example.
-//
-// GOOGLE_ARRAYSIZE catches a few type errors. If you see a compiler error
-//
-// "warning: division by zero in ..."
-//
-// when using GOOGLE_ARRAYSIZE, you are (wrongfully) giving it a pointer.
-// You should only use GOOGLE_ARRAYSIZE on statically allocated arrays.
-//
-// The following comments are on the implementation details, and can
-// be ignored by the users.
-//
-// ARRAYSIZE(arr) works by inspecting sizeof(arr) (the # of bytes in
-// the array) and sizeof(*(arr)) (the # of bytes in one array
-// element). If the former is divisible by the latter, perhaps arr is
-// indeed an array, in which case the division result is the # of
-// elements in the array. Otherwise, arr cannot possibly be an array,
-// and we generate a compiler error to prevent the code from
-// compiling.
-//
-// Since the size of bool is implementation-defined, we need to cast
-// !(sizeof(a) & sizeof(*(a))) to size_t in order to ensure the final
-// result has type size_t.
-//
-// This macro is not perfect as it wrongfully accepts certain
-// pointers, namely where the pointer size is divisible by the pointee
-// size. Since all our code has to go through a 32-bit compiler,
-// where a pointer is 4 bytes, this means all pointers to a type whose
-// size is 3 or greater than 4 will be (righteously) rejected.
-//
-// Kudos to Jorg Brown for this simple and elegant implementation.
-
-#undef GOOGLE_ARRAYSIZE
-#define GOOGLE_ARRAYSIZE(a) \
- ((sizeof(a) / sizeof(*(a))) / \
- static_cast<size_t>(!(sizeof(a) % sizeof(*(a)))))
-
-namespace internal {
-
-// Use implicit_cast as a safe version of static_cast or const_cast
-// for upcasting in the type hierarchy (i.e. casting a pointer to Foo
-// to a pointer to SuperclassOfFoo or casting a pointer to Foo to
-// a const pointer to Foo).
-// When you use implicit_cast, the compiler checks that the cast is safe.
-// Such explicit implicit_casts are necessary in surprisingly many
-// situations where C++ demands an exact type match instead of an
-// argument type convertable to a target type.
-//
-// The From type can be inferred, so the preferred syntax for using
-// implicit_cast is the same as for static_cast etc.:
-//
-// implicit_cast<ToType>(expr)
-//
-// implicit_cast would have been part of the C++ standard library,
-// but the proposal was submitted too late. It will probably make
-// its way into the language in the future.
-template<typename To, typename From>
-inline To implicit_cast(From const &f) {
- return f;
-}
-
-// When you upcast (that is, cast a pointer from type Foo to type
-// SuperclassOfFoo), it's fine to use implicit_cast<>, since upcasts
-// always succeed. When you downcast (that is, cast a pointer from
-// type Foo to type SubclassOfFoo), static_cast<> isn't safe, because
-// how do you know the pointer is really of type SubclassOfFoo? It
-// could be a bare Foo, or of type DifferentSubclassOfFoo. Thus,
-// when you downcast, you should use this macro. In debug mode, we
-// use dynamic_cast<> to double-check the downcast is legal (we die
-// if it's not). In normal mode, we do the efficient static_cast<>
-// instead. Thus, it's important to test in debug mode to make sure
-// the cast is legal!
-// This is the only place in the code we should use dynamic_cast<>.
-// In particular, you SHOULDN'T be using dynamic_cast<> in order to
-// do RTTI (eg code like this:
-// if (dynamic_cast<Subclass1>(foo)) HandleASubclass1Object(foo);
-// if (dynamic_cast<Subclass2>(foo)) HandleASubclass2Object(foo);
-// You should design the code some other way not to need this.
-
-template<typename To, typename From> // use like this: down_cast<T*>(foo);
-inline To down_cast(From* f) { // so we only accept pointers
- // Ensures that To is a sub-type of From *. This test is here only
- // for compile-time type checking, and has no overhead in an
- // optimized build at run-time, as it will be optimized away
- // completely.
- if (false) {
- implicit_cast<From*, To>(0);
- }
-
-#if !defined(NDEBUG) && !defined(GOOGLE_PROTOBUF_NO_RTTI)
- assert(f == NULL || dynamic_cast<To>(f) != NULL); // RTTI: debug mode only!
-#endif
- return static_cast<To>(f);
-}
-
-} // namespace internal
-
-// We made these internal so that they would show up as such in the docs,
-// but we don't want to stick "internal::" in front of them everywhere.
-using internal::implicit_cast;
-using internal::down_cast;
-
-// The COMPILE_ASSERT macro can be used to verify that a compile time
-// expression is true. For example, you could use it to verify the
-// size of a static array:
-//
-// COMPILE_ASSERT(ARRAYSIZE(content_type_names) == CONTENT_NUM_TYPES,
-// content_type_names_incorrect_size);
-//
-// or to make sure a struct is smaller than a certain size:
-//
-// COMPILE_ASSERT(sizeof(foo) < 128, foo_too_large);
-//
-// The second argument to the macro is the name of the variable. If
-// the expression is false, most compilers will issue a warning/error
-// containing the name of the variable.
-
-namespace internal {
-
-template <bool>
-struct CompileAssert {
-};
-
-} // namespace internal
-
-#undef GOOGLE_COMPILE_ASSERT
-#define GOOGLE_COMPILE_ASSERT(expr, msg) \
- typedef ::google::protobuf::internal::CompileAssert<(bool(expr))> \
- msg[bool(expr) ? 1 : -1]
-
-
-// Implementation details of COMPILE_ASSERT:
-//
-// - COMPILE_ASSERT works by defining an array type that has -1
-// elements (and thus is invalid) when the expression is false.
-//
-// - The simpler definition
-//
-// #define COMPILE_ASSERT(expr, msg) typedef char msg[(expr) ? 1 : -1]
-//
-// does not work, as gcc supports variable-length arrays whose sizes
-// are determined at run-time (this is gcc's extension and not part
-// of the C++ standard). As a result, gcc fails to reject the
-// following code with the simple definition:
-//
-// int foo;
-// COMPILE_ASSERT(foo, msg); // not supposed to compile as foo is
-// // not a compile-time constant.
-//
-// - By using the type CompileAssert<(bool(expr))>, we ensures that
-// expr is a compile-time constant. (Template arguments must be
-// determined at compile-time.)
-//
-// - The outter parentheses in CompileAssert<(bool(expr))> are necessary
-// to work around a bug in gcc 3.4.4 and 4.0.1. If we had written
-//
-// CompileAssert<bool(expr)>
-//
-// instead, these compilers will refuse to compile
-//
-// COMPILE_ASSERT(5 > 0, some_message);
-//
-// (They seem to think the ">" in "5 > 0" marks the end of the
-// template argument list.)
-//
-// - The array size is (bool(expr) ? 1 : -1), instead of simply
-//
-// ((expr) ? 1 : -1).
-//
-// This is to avoid running into a bug in MS VC 7.1, which
-// causes ((0.0) ? 1 : -1) to incorrectly evaluate to 1.
-
-// ===================================================================
-// from google3/base/scoped_ptr.h
-
-namespace internal {
-
-// This is an implementation designed to match the anticipated future TR2
-// implementation of the scoped_ptr class, and its closely-related brethren,
-// scoped_array, scoped_ptr_malloc, and make_scoped_ptr.
-
-template <class C> class scoped_ptr;
-template <class C> class scoped_array;
-
-// A scoped_ptr<T> is like a T*, except that the destructor of scoped_ptr<T>
-// automatically deletes the pointer it holds (if any).
-// That is, scoped_ptr<T> owns the T object that it points to.
-// Like a T*, a scoped_ptr<T> may hold either NULL or a pointer to a T object.
-//
-// The size of a scoped_ptr is small:
-// sizeof(scoped_ptr<C>) == sizeof(C*)
-template <class C>
-class scoped_ptr {
- public:
-
- // The element type
- typedef C element_type;
-
- // Constructor. Defaults to intializing with NULL.
- // There is no way to create an uninitialized scoped_ptr.
- // The input parameter must be allocated with new.
- explicit scoped_ptr(C* p = NULL) : ptr_(p) { }
-
- // Destructor. If there is a C object, delete it.
- // We don't need to test ptr_ == NULL because C++ does that for us.
- ~scoped_ptr() {
- enum { type_must_be_complete = sizeof(C) };
- delete ptr_;
- }
-
- // Reset. Deletes the current owned object, if any.
- // Then takes ownership of a new object, if given.
- // this->reset(this->get()) works.
- void reset(C* p = NULL) {
- if (p != ptr_) {
- enum { type_must_be_complete = sizeof(C) };
- delete ptr_;
- ptr_ = p;
- }
- }
-
- // Accessors to get the owned object.
- // operator* and operator-> will assert() if there is no current object.
- C& operator*() const {
- assert(ptr_ != NULL);
- return *ptr_;
- }
- C* operator->() const {
- assert(ptr_ != NULL);
- return ptr_;
- }
- C* get() const { return ptr_; }
-
- // Comparison operators.
- // These return whether two scoped_ptr refer to the same object, not just to
- // two different but equal objects.
- bool operator==(C* p) const { return ptr_ == p; }
- bool operator!=(C* p) const { return ptr_ != p; }
-
- // Swap two scoped pointers.
- void swap(scoped_ptr& p2) {
- C* tmp = ptr_;
- ptr_ = p2.ptr_;
- p2.ptr_ = tmp;
- }
-
- // Release a pointer.
- // The return value is the current pointer held by this object.
- // If this object holds a NULL pointer, the return value is NULL.
- // After this operation, this object will hold a NULL pointer,
- // and will not own the object any more.
- C* release() {
- C* retVal = ptr_;
- ptr_ = NULL;
- return retVal;
- }
-
- private:
- C* ptr_;
-
- // Forbid comparison of scoped_ptr types. If C2 != C, it totally doesn't
- // make sense, and if C2 == C, it still doesn't make sense because you should
- // never have the same object owned by two different scoped_ptrs.
- template <class C2> bool operator==(scoped_ptr<C2> const& p2) const;
- template <class C2> bool operator!=(scoped_ptr<C2> const& p2) const;
-
- // Disallow evil constructors
- scoped_ptr(const scoped_ptr&);
- void operator=(const scoped_ptr&);
-};
-
-// scoped_array<C> is like scoped_ptr<C>, except that the caller must allocate
-// with new [] and the destructor deletes objects with delete [].
-//
-// As with scoped_ptr<C>, a scoped_array<C> either points to an object
-// or is NULL. A scoped_array<C> owns the object that it points to.
-//
-// Size: sizeof(scoped_array<C>) == sizeof(C*)
-template <class C>
-class scoped_array {
- public:
-
- // The element type
- typedef C element_type;
-
- // Constructor. Defaults to intializing with NULL.
- // There is no way to create an uninitialized scoped_array.
- // The input parameter must be allocated with new [].
- explicit scoped_array(C* p = NULL) : array_(p) { }
-
- // Destructor. If there is a C object, delete it.
- // We don't need to test ptr_ == NULL because C++ does that for us.
- ~scoped_array() {
- enum { type_must_be_complete = sizeof(C) };
- delete[] array_;
- }
-
- // Reset. Deletes the current owned object, if any.
- // Then takes ownership of a new object, if given.
- // this->reset(this->get()) works.
- void reset(C* p = NULL) {
- if (p != array_) {
- enum { type_must_be_complete = sizeof(C) };
- delete[] array_;
- array_ = p;
- }
- }
-
- // Get one element of the current object.
- // Will assert() if there is no current object, or index i is negative.
- C& operator[](std::ptrdiff_t i) const {
- assert(i >= 0);
- assert(array_ != NULL);
- return array_[i];
- }
-
- // Get a pointer to the zeroth element of the current object.
- // If there is no current object, return NULL.
- C* get() const {
- return array_;
- }
-
- // Comparison operators.
- // These return whether two scoped_array refer to the same object, not just to
- // two different but equal objects.
- bool operator==(C* p) const { return array_ == p; }
- bool operator!=(C* p) const { return array_ != p; }
-
- // Swap two scoped arrays.
- void swap(scoped_array& p2) {
- C* tmp = array_;
- array_ = p2.array_;
- p2.array_ = tmp;
- }
-
- // Release an array.
- // The return value is the current pointer held by this object.
- // If this object holds a NULL pointer, the return value is NULL.
- // After this operation, this object will hold a NULL pointer,
- // and will not own the object any more.
- C* release() {
- C* retVal = array_;
- array_ = NULL;
- return retVal;
- }
-
- private:
- C* array_;
-
- // Forbid comparison of different scoped_array types.
- template <class C2> bool operator==(scoped_array<C2> const& p2) const;
- template <class C2> bool operator!=(scoped_array<C2> const& p2) const;
-
- // Disallow evil constructors
- scoped_array(const scoped_array&);
- void operator=(const scoped_array&);
-};
-
-} // namespace internal
-
-// We made these internal so that they would show up as such in the docs,
-// but we don't want to stick "internal::" in front of them everywhere.
-using internal::scoped_ptr;
-using internal::scoped_array;
-
-// ===================================================================
-// emulates google3/base/logging.h
-
-enum LogLevel {
- LOGLEVEL_INFO, // Informational. This is never actually used by
- // libprotobuf.
- LOGLEVEL_WARNING, // Warns about issues that, although not technically a
- // problem now, could cause problems in the future. For
- // example, a // warning will be printed when parsing a
- // message that is near the message size limit.
- LOGLEVEL_ERROR, // An error occurred which should never happen during
- // normal use.
- LOGLEVEL_FATAL, // An error occurred from which the library cannot
- // recover. This usually indicates a programming error
- // in the code which calls the library, especially when
- // compiled in debug mode.
-
-#ifdef NDEBUG
- LOGLEVEL_DFATAL = LOGLEVEL_ERROR
-#else
- LOGLEVEL_DFATAL = LOGLEVEL_FATAL
-#endif
-};
-
-namespace internal {
-
-class LogFinisher;
-
-class LIBPROTOBUF_EXPORT LogMessage {
- public:
- LogMessage(LogLevel level, const char* filename, int line);
- ~LogMessage();
-
- LogMessage& operator<<(const std::string& value);
- LogMessage& operator<<(const char* value);
- LogMessage& operator<<(char value);
- LogMessage& operator<<(int value);
- LogMessage& operator<<(uint value);
- LogMessage& operator<<(long value);
- LogMessage& operator<<(unsigned long value);
- LogMessage& operator<<(double value);
-
- private:
- friend class LogFinisher;
- void Finish();
-
- LogLevel level_;
- const char* filename_;
- int line_;
- std::string message_;
-};
-
-// Used to make the entire "LOG(BLAH) << etc." expression have a void return
-// type and print a newline after each message.
-class LIBPROTOBUF_EXPORT LogFinisher {
- public:
- void operator=(LogMessage& other);
-};
-
-} // namespace internal
-
-// Undef everything in case we're being mixed with some other Google library
-// which already defined them itself. Presumably all Google libraries will
-// support the same syntax for these so it should not be a big deal if they
-// end up using our definitions instead.
-#undef GOOGLE_LOG
-#undef GOOGLE_LOG_IF
-
-#undef GOOGLE_CHECK
-#undef GOOGLE_CHECK_EQ
-#undef GOOGLE_CHECK_NE
-#undef GOOGLE_CHECK_LT
-#undef GOOGLE_CHECK_LE
-#undef GOOGLE_CHECK_GT
-#undef GOOGLE_CHECK_GE
-
-#undef GOOGLE_DLOG
-#undef GOOGLE_DCHECK
-#undef GOOGLE_DCHECK_EQ
-#undef GOOGLE_DCHECK_NE
-#undef GOOGLE_DCHECK_LT
-#undef GOOGLE_DCHECK_LE
-#undef GOOGLE_DCHECK_GT
-#undef GOOGLE_DCHECK_GE
-
-#define GOOGLE_LOG(LEVEL) \
- ::google::protobuf::internal::LogFinisher() = \
- ::google::protobuf::internal::LogMessage( \
- ::google::protobuf::LOGLEVEL_##LEVEL, __FILE__, __LINE__)
-#define GOOGLE_LOG_IF(LEVEL, CONDITION) \
- !(CONDITION) ? (void)0 : GOOGLE_LOG(LEVEL)
-
-#define GOOGLE_CHECK(EXPRESSION) \
- GOOGLE_LOG_IF(FATAL, !(EXPRESSION)) << "CHECK failed: " #EXPRESSION ": "
-#define GOOGLE_CHECK_EQ(A, B) GOOGLE_CHECK((A) == (B))
-#define GOOGLE_CHECK_NE(A, B) GOOGLE_CHECK((A) != (B))
-#define GOOGLE_CHECK_LT(A, B) GOOGLE_CHECK((A) < (B))
-#define GOOGLE_CHECK_LE(A, B) GOOGLE_CHECK((A) <= (B))
-#define GOOGLE_CHECK_GT(A, B) GOOGLE_CHECK((A) > (B))
-#define GOOGLE_CHECK_GE(A, B) GOOGLE_CHECK((A) >= (B))
-
-#ifdef NDEBUG
-
-#define GOOGLE_DLOG GOOGLE_LOG_IF(INFO, false)
-
-#define GOOGLE_DCHECK(EXPRESSION) while(false) GOOGLE_CHECK(EXPRESSION)
-#define GOOGLE_DCHECK_EQ(A, B) GOOGLE_DCHECK((A) == (B))
-#define GOOGLE_DCHECK_NE(A, B) GOOGLE_DCHECK((A) != (B))
-#define GOOGLE_DCHECK_LT(A, B) GOOGLE_DCHECK((A) < (B))
-#define GOOGLE_DCHECK_LE(A, B) GOOGLE_DCHECK((A) <= (B))
-#define GOOGLE_DCHECK_GT(A, B) GOOGLE_DCHECK((A) > (B))
-#define GOOGLE_DCHECK_GE(A, B) GOOGLE_DCHECK((A) >= (B))
-
-#else // NDEBUG
-
-#define GOOGLE_DLOG GOOGLE_LOG
-
-#define GOOGLE_DCHECK GOOGLE_CHECK
-#define GOOGLE_DCHECK_EQ GOOGLE_CHECK_EQ
-#define GOOGLE_DCHECK_NE GOOGLE_CHECK_NE
-#define GOOGLE_DCHECK_LT GOOGLE_CHECK_LT
-#define GOOGLE_DCHECK_LE GOOGLE_CHECK_LE
-#define GOOGLE_DCHECK_GT GOOGLE_CHECK_GT
-#define GOOGLE_DCHECK_GE GOOGLE_CHECK_GE
-
-#endif // !NDEBUG
-
-typedef void LogHandler(LogLevel level, const char* filename, int line,
- const std::string& message);
-
-// The protobuf library sometimes writes warning and error messages to
-// stderr. These messages are primarily useful for developers, but may
-// also help end users figure out a problem. If you would prefer that
-// these messages be sent somewhere other than stderr, call SetLogHandler()
-// to set your own handler. This returns the old handler. Set the handler
-// to NULL to ignore log messages (but see also LogSilencer, below).
-//
-// Obviously, SetLogHandler is not thread-safe. You should only call it
-// at initialization time, and probably not from library code. If you
-// simply want to suppress log messages temporarily (e.g. because you
-// have some code that tends to trigger them frequently and you know
-// the warnings are not important to you), use the LogSilencer class
-// below.
-LIBPROTOBUF_EXPORT LogHandler* SetLogHandler(LogHandler* new_func);
-
-// Create a LogSilencer if you want to temporarily suppress all log
-// messages. As long as any LogSilencer objects exist, non-fatal
-// log messages will be discarded (the current LogHandler will *not*
-// be called). Constructing a LogSilencer is thread-safe. You may
-// accidentally suppress log messages occurring in another thread, but
-// since messages are generally for debugging purposes only, this isn't
-// a big deal. If you want to intercept log messages, use SetLogHandler().
-class LIBPROTOBUF_EXPORT LogSilencer {
- public:
- LogSilencer();
- ~LogSilencer();
-};
-
-// ===================================================================
-// emulates google3/base/callback.h
-
-// Abstract interface for a callback. When calling an RPC, you must provide
-// a Closure to call when the procedure completes. See the Service interface
-// in service.h.
-//
-// To automatically construct a Closure which calls a particular function or
-// method with a particular set of parameters, use the NewCallback() function.
-// Example:
-// void FooDone(const FooResponse* response) {
-// ...
-// }
-//
-// void CallFoo() {
-// ...
-// // When done, call FooDone() and pass it a pointer to the response.
-// Closure* callback = NewCallback(&FooDone, response);
-// // Make the call.
-// service->Foo(controller, request, response, callback);
-// }
-//
-// Example that calls a method:
-// class Handler {
-// public:
-// ...
-//
-// void FooDone(const FooResponse* response) {
-// ...
-// }
-//
-// void CallFoo() {
-// ...
-// // When done, call FooDone() and pass it a pointer to the response.
-// Closure* callback = NewCallback(this, &Handler::FooDone, response);
-// // Make the call.
-// service->Foo(controller, request, response, callback);
-// }
-// };
-//
-// Currently NewCallback() supports binding zero, one, or two arguments.
-//
-// Callbacks created with NewCallback() automatically delete themselves when
-// executed. They should be used when a callback is to be called exactly
-// once (usually the case with RPC callbacks). If a callback may be called
-// a different number of times (including zero), create it with
-// NewPermanentCallback() instead. You are then responsible for deleting the
-// callback (using the "delete" keyword as normal).
-//
-// Note that NewCallback() is a bit touchy regarding argument types. Generally,
-// the values you provide for the parameter bindings must exactly match the
-// types accepted by the callback function. For example:
-// void Foo(string s);
-// NewCallback(&Foo, "foo"); // WON'T WORK: const char* != string
-// NewCallback(&Foo, string("foo")); // WORKS
-// Also note that the arguments cannot be references:
-// void Foo(const string& s);
-// string my_str;
-// NewCallback(&Foo, my_str); // WON'T WORK: Can't use referecnes.
-// However, correctly-typed pointers will work just fine.
-class LIBPROTOBUF_EXPORT Closure {
- public:
- Closure() {}
- virtual ~Closure();
-
- virtual void Run() = 0;
-
- private:
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(Closure);
-};
-
-namespace internal {
-
-class LIBPROTOBUF_EXPORT FunctionClosure0 : public Closure {
- public:
- typedef void (*FunctionType)();
-
- FunctionClosure0(FunctionType function, bool self_deleting)
- : function_(function), self_deleting_(self_deleting) {}
- ~FunctionClosure0();
-
- void Run() {
- bool needs_delete = self_deleting_; // read in case callback deletes
- function_();
- if (needs_delete) delete this;
- }
-
- private:
- FunctionType function_;
- bool self_deleting_;
-};
-
-template <typename Class>
-class MethodClosure0 : public Closure {
- public:
- typedef void (Class::*MethodType)();
-
- MethodClosure0(Class* object, MethodType method, bool self_deleting)
- : object_(object), method_(method), self_deleting_(self_deleting) {}
- ~MethodClosure0() {}
-
- void Run() {
- bool needs_delete = self_deleting_; // read in case callback deletes
- (object_->*method_)();
- if (needs_delete) delete this;
- }
-
- private:
- Class* object_;
- MethodType method_;
- bool self_deleting_;
-};
-
-template <typename Arg1>
-class FunctionClosure1 : public Closure {
- public:
- typedef void (*FunctionType)(Arg1 arg1);
-
- FunctionClosure1(FunctionType function, bool self_deleting,
- Arg1 arg1)
- : function_(function), self_deleting_(self_deleting),
- arg1_(arg1) {}
- ~FunctionClosure1() {}
-
- void Run() {
- bool needs_delete = self_deleting_; // read in case callback deletes
- function_(arg1_);
- if (needs_delete) delete this;
- }
-
- private:
- FunctionType function_;
- bool self_deleting_;
- Arg1 arg1_;
-};
-
-template <typename Class, typename Arg1>
-class MethodClosure1 : public Closure {
- public:
- typedef void (Class::*MethodType)(Arg1 arg1);
-
- MethodClosure1(Class* object, MethodType method, bool self_deleting,
- Arg1 arg1)
- : object_(object), method_(method), self_deleting_(self_deleting),
- arg1_(arg1) {}
- ~MethodClosure1() {}
-
- void Run() {
- bool needs_delete = self_deleting_; // read in case callback deletes
- (object_->*method_)(arg1_);
- if (needs_delete) delete this;
- }
-
- private:
- Class* object_;
- MethodType method_;
- bool self_deleting_;
- Arg1 arg1_;
-};
-
-template <typename Arg1, typename Arg2>
-class FunctionClosure2 : public Closure {
- public:
- typedef void (*FunctionType)(Arg1 arg1, Arg2 arg2);
-
- FunctionClosure2(FunctionType function, bool self_deleting,
- Arg1 arg1, Arg2 arg2)
- : function_(function), self_deleting_(self_deleting),
- arg1_(arg1), arg2_(arg2) {}
- ~FunctionClosure2() {}
-
- void Run() {
- bool needs_delete = self_deleting_; // read in case callback deletes
- function_(arg1_, arg2_);
- if (needs_delete) delete this;
- }
-
- private:
- FunctionType function_;
- bool self_deleting_;
- Arg1 arg1_;
- Arg2 arg2_;
-};
-
-template <typename Class, typename Arg1, typename Arg2>
-class MethodClosure2 : public Closure {
- public:
- typedef void (Class::*MethodType)(Arg1 arg1, Arg2 arg2);
-
- MethodClosure2(Class* object, MethodType method, bool self_deleting,
- Arg1 arg1, Arg2 arg2)
- : object_(object), method_(method), self_deleting_(self_deleting),
- arg1_(arg1), arg2_(arg2) {}
- ~MethodClosure2() {}
-
- void Run() {
- bool needs_delete = self_deleting_; // read in case callback deletes
- (object_->*method_)(arg1_, arg2_);
- if (needs_delete) delete this;
- }
-
- private:
- Class* object_;
- MethodType method_;
- bool self_deleting_;
- Arg1 arg1_;
- Arg2 arg2_;
-};
-
-} // namespace internal
-
-// See Closure.
-inline Closure* NewCallback(void (*function)()) {
- return new internal::FunctionClosure0(function, true);
-}
-
-// See Closure.
-inline Closure* NewPermanentCallback(void (*function)()) {
- return new internal::FunctionClosure0(function, false);
-}
-
-// See Closure.
-template <typename Class>
-inline Closure* NewCallback(Class* object, void (Class::*method)()) {
- return new internal::MethodClosure0<Class>(object, method, true);
-}
-
-// See Closure.
-template <typename Class>
-inline Closure* NewPermanentCallback(Class* object, void (Class::*method)()) {
- return new internal::MethodClosure0<Class>(object, method, false);
-}
-
-// See Closure.
-template <typename Arg1>
-inline Closure* NewCallback(void (*function)(Arg1),
- Arg1 arg1) {
- return new internal::FunctionClosure1<Arg1>(function, true, arg1);
-}
-
-// See Closure.
-template <typename Arg1>
-inline Closure* NewPermanentCallback(void (*function)(Arg1),
- Arg1 arg1) {
- return new internal::FunctionClosure1<Arg1>(function, false, arg1);
-}
-
-// See Closure.
-template <typename Class, typename Arg1>
-inline Closure* NewCallback(Class* object, void (Class::*method)(Arg1),
- Arg1 arg1) {
- return new internal::MethodClosure1<Class, Arg1>(object, method, true, arg1);
-}
-
-// See Closure.
-template <typename Class, typename Arg1>
-inline Closure* NewPermanentCallback(Class* object, void (Class::*method)(Arg1),
- Arg1 arg1) {
- return new internal::MethodClosure1<Class, Arg1>(object, method, false, arg1);
-}
-
-// See Closure.
-template <typename Arg1, typename Arg2>
-inline Closure* NewCallback(void (*function)(Arg1, Arg2),
- Arg1 arg1, Arg2 arg2) {
- return new internal::FunctionClosure2<Arg1, Arg2>(
- function, true, arg1, arg2);
-}
-
-// See Closure.
-template <typename Arg1, typename Arg2>
-inline Closure* NewPermanentCallback(void (*function)(Arg1, Arg2),
- Arg1 arg1, Arg2 arg2) {
- return new internal::FunctionClosure2<Arg1, Arg2>(
- function, false, arg1, arg2);
-}
-
-// See Closure.
-template <typename Class, typename Arg1, typename Arg2>
-inline Closure* NewCallback(Class* object, void (Class::*method)(Arg1, Arg2),
- Arg1 arg1, Arg2 arg2) {
- return new internal::MethodClosure2<Class, Arg1, Arg2>(
- object, method, true, arg1, arg2);
-}
-
-// See Closure.
-template <typename Class, typename Arg1, typename Arg2>
-inline Closure* NewPermanentCallback(
- Class* object, void (Class::*method)(Arg1, Arg2),
- Arg1 arg1, Arg2 arg2) {
- return new internal::MethodClosure2<Class, Arg1, Arg2>(
- object, method, false, arg1, arg2);
-}
-
-// A function which does nothing. Useful for creating no-op callbacks, e.g.:
-// Closure* nothing = NewCallback(&DoNothing);
-void LIBPROTOBUF_EXPORT DoNothing();
-
-// ===================================================================
-// emulates google3/base/mutex.h
-
-namespace internal {
-
-// A Mutex is a non-reentrant (aka non-recursive) mutex. At most one thread T
-// may hold a mutex at a given time. If T attempts to Lock() the same Mutex
-// while holding it, T will deadlock.
-class LIBPROTOBUF_EXPORT Mutex {
- public:
- // Create a Mutex that is not held by anybody.
- Mutex();
-
- // Destructor
- ~Mutex();
-
- // Block if necessary until this Mutex is free, then acquire it exclusively.
- void Lock();
-
- // Release this Mutex. Caller must hold it exclusively.
- void Unlock();
-
- // Crash if this Mutex is not held exclusively by this thread.
- // May fail to crash when it should; will never crash when it should not.
- void AssertHeld();
-
- private:
- struct Internal;
- Internal* mInternal;
-
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(Mutex);
-};
-
-// MutexLock(mu) acquires mu when constructed and releases it when destroyed.
-class LIBPROTOBUF_EXPORT MutexLock {
- public:
- explicit MutexLock(Mutex *mu) : mu_(mu) { this->mu_->Lock(); }
- ~MutexLock() { this->mu_->Unlock(); }
- private:
- Mutex *const mu_;
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(MutexLock);
-};
-
-// TODO(kenton): Implement these? Hard to implement portably.
-typedef MutexLock ReaderMutexLock;
-typedef MutexLock WriterMutexLock;
-
-// MutexLockMaybe is like MutexLock, but is a no-op when mu is NULL.
-class LIBPROTOBUF_EXPORT MutexLockMaybe {
- public:
- explicit MutexLockMaybe(Mutex *mu) :
- mu_(mu) { if (this->mu_ != NULL) { this->mu_->Lock(); } }
- ~MutexLockMaybe() { if (this->mu_ != NULL) { this->mu_->Unlock(); } }
- private:
- Mutex *const mu_;
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(MutexLockMaybe);
-};
-
-} // namespace internal
-
-// We made these internal so that they would show up as such in the docs,
-// but we don't want to stick "internal::" in front of them everywhere.
-using internal::Mutex;
-using internal::MutexLock;
-using internal::ReaderMutexLock;
-using internal::WriterMutexLock;
-using internal::MutexLockMaybe;
-
-// ===================================================================
-// from google3/base/type_traits.h
-
-namespace internal {
-
-// Specified by TR1 [4.7.4] Pointer modifications.
-template<typename T> struct remove_pointer { typedef T type; };
-template<typename T> struct remove_pointer<T*> { typedef T type; };
-template<typename T> struct remove_pointer<T* const> { typedef T type; };
-template<typename T> struct remove_pointer<T* volatile> { typedef T type; };
-template<typename T> struct remove_pointer<T* const volatile> {
- typedef T type; };
-
-// ===================================================================
-
-// Checks if the buffer contains structurally-valid UTF-8. Implemented in
-// structurally_valid.cc.
-LIBPROTOBUF_EXPORT bool IsStructurallyValidUTF8(const char* buf, int len);
-
-} // namespace internal
-
-// ===================================================================
-// Shutdown support.
-
-// Shut down the entire protocol buffers library, deleting all static-duration
-// objects allocated by the library or by generated .pb.cc files.
-//
-// There are two reasons you might want to call this:
-// * You use a draconian definition of "memory leak" in which you expect
-// every single malloc() to have a corresponding free(), even for objects
-// which live until program exit.
-// * You are writing a dynamically-loaded library which needs to clean up
-// after itself when the library is unloaded.
-//
-// It is safe to call this multiple times. However, it is not safe to use
-// any other part of the protocol buffers library after
-// ShutdownProtobufLibrary() has been called.
-LIBPROTOBUF_EXPORT void ShutdownProtobufLibrary();
-
-namespace internal {
-
-// Register a function to be called when ShutdownProtocolBuffers() is called.
-LIBPROTOBUF_EXPORT void OnShutdown(void (*func)());
-
-} // namespace internal
-
-#ifdef PROTOBUF_USE_EXCEPTIONS
-class FatalException : public std::exception {
- public:
- FatalException(const char* filename, int line, const std::string& message)
- : filename_(filename), line_(line), message_(message) {}
- virtual ~FatalException() throw();
-
- virtual const char* what() const throw();
-
- const char* filename() const { return filename_; }
- int line() const { return line_; }
- const std::string& message() const { return message_; }
-
- private:
- const char* filename_;
- const int line_;
- const std::string message_;
-};
-#endif
-
-// This is at the end of the file instead of the beginning to work around a bug
-// in some versions of MSVC.
-using namespace std; // Don't do this at home, kids.
-
-} // namespace protobuf
-} // namespace google
-
-#endif // GOOGLE_PROTOBUF_COMMON_H__
diff --git a/contrib/prebuilt/include/google/protobuf/stubs/once.h b/contrib/prebuilt/include/google/protobuf/stubs/once.h
deleted file mode 100644
index 0dee407..0000000
--- a/contrib/prebuilt/include/google/protobuf/stubs/once.h
+++ /dev/null
@@ -1,123 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// http://code.google.com/p/protobuf/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Author: kenton@google.com (Kenton Varda)
-//
-// emulates google3/base/once.h
-//
-// This header is intended to be included only by internal .cc files and
-// generated .pb.cc files. Users should not use this directly.
-//
-// This is basically a portable version of pthread_once().
-//
-// This header declares three things:
-// * A type called ProtobufOnceType.
-// * A macro GOOGLE_PROTOBUF_DECLARE_ONCE() which declares a variable of type
-// ProtobufOnceType. This is the only legal way to declare such a variable.
-// The macro may only be used at the global scope (you cannot create local
-// or class member variables of this type).
-// * A function GogoleOnceInit(ProtobufOnceType* once, void (*init_func)()).
-// This function, when invoked multiple times given the same ProtobufOnceType
-// object, will invoke init_func on the first call only, and will make sure
-// none of the calls return before that first call to init_func has finished.
-//
-// This implements a way to perform lazy initialization. It's more efficient
-// than using mutexes as no lock is needed if initialization has already
-// happened.
-//
-// Example usage:
-// void Init();
-// GOOGLE_PROTOBUF_DECLARE_ONCE(once_init);
-//
-// // Calls Init() exactly once.
-// void InitOnce() {
-// GoogleOnceInit(&once_init, &Init);
-// }
-//
-// Note that if GoogleOnceInit() is called before main() has begun, it must
-// only be called by the thread that will eventually call main() -- that is,
-// the thread that performs dynamic initialization. In general this is a safe
-// assumption since people don't usually construct threads before main() starts,
-// but it is technically not guaranteed. Unfortunately, Win32 provides no way
-// whatsoever to statically-initialize its synchronization primitives, so our
-// only choice is to assume that dynamic initialization is single-threaded.
-
-#ifndef GOOGLE_PROTOBUF_STUBS_ONCE_H__
-#define GOOGLE_PROTOBUF_STUBS_ONCE_H__
-
-#include <google/protobuf/stubs/common.h>
-
-#ifndef _WIN32
-#include <pthread.h>
-#endif
-
-namespace google {
-namespace protobuf {
-
-#ifdef _WIN32
-
-struct ProtobufOnceInternal;
-
-struct LIBPROTOBUF_EXPORT ProtobufOnceType {
- ProtobufOnceType();
- ~ProtobufOnceType();
- void Init(void (*init_func)());
-
- volatile bool initialized_;
- ProtobufOnceInternal* internal_;
-};
-
-#define GOOGLE_PROTOBUF_DECLARE_ONCE(NAME) \
- ::google::protobuf::ProtobufOnceType NAME
-
-inline void GoogleOnceInit(ProtobufOnceType* once, void (*init_func)()) {
- // Note: Double-checked locking is safe on x86.
- if (!once->initialized_) {
- once->Init(init_func);
- }
-}
-
-#else
-
-typedef pthread_once_t ProtobufOnceType;
-
-#define GOOGLE_PROTOBUF_DECLARE_ONCE(NAME) \
- pthread_once_t NAME = PTHREAD_ONCE_INIT
-
-inline void GoogleOnceInit(ProtobufOnceType* once, void (*init_func)()) {
- pthread_once(once, init_func);
-}
-
-#endif
-
-} // namespace protobuf
-} // namespace google
-
-#endif // GOOGLE_PROTOBUF_STUBS_ONCE_H__
diff --git a/contrib/prebuilt/include/google/protobuf/text_format.h b/contrib/prebuilt/include/google/protobuf/text_format.h
deleted file mode 100644
index 03c0491..0000000
--- a/contrib/prebuilt/include/google/protobuf/text_format.h
+++ /dev/null
@@ -1,285 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// http://code.google.com/p/protobuf/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Author: jschorr@google.com (Joseph Schorr)
-// Based on original Protocol Buffers design by
-// Sanjay Ghemawat, Jeff Dean, and others.
-//
-// Utilities for printing and parsing protocol messages in a human-readable,
-// text-based format.
-
-#ifndef GOOGLE_PROTOBUF_TEXT_FORMAT_H__
-#define GOOGLE_PROTOBUF_TEXT_FORMAT_H__
-
-#include <string>
-#include <google/protobuf/message.h>
-#include <google/protobuf/descriptor.h>
-
-namespace google {
-namespace protobuf {
-
-namespace io {
- class ErrorCollector; // tokenizer.h
-}
-
-// This class implements protocol buffer text format. Printing and parsing
-// protocol messages in text format is useful for debugging and human editing
-// of messages.
-//
-// This class is really a namespace that contains only static methods.
-class LIBPROTOBUF_EXPORT TextFormat {
- public:
- // Outputs a textual representation of the given message to the given
- // output stream.
- static bool Print(const Message& message, io::ZeroCopyOutputStream* output);
-
- // Print the fields in an UnknownFieldSet. They are printed by tag number
- // only. Embedded messages are heuristically identified by attempting to
- // parse them.
- static bool PrintUnknownFields(const UnknownFieldSet& unknown_fields,
- io::ZeroCopyOutputStream* output);
-
- // Like Print(), but outputs directly to a string.
- static bool PrintToString(const Message& message, string* output);
-
- // Like PrintUnknownFields(), but outputs directly to a string.
- static bool PrintUnknownFieldsToString(const UnknownFieldSet& unknown_fields,
- string* output);
-
- // Outputs a textual representation of the value of the field supplied on
- // the message supplied. For non-repeated fields, an index of -1 must
- // be supplied. Note that this method will print the default value for a
- // field if it is not set.
- static void PrintFieldValueToString(const Message& message,
- const FieldDescriptor* field,
- int index,
- string* output);
-
- // Class for those users which require more fine-grained control over how
- // a protobuffer message is printed out.
- class LIBPROTOBUF_EXPORT Printer {
- public:
- Printer();
- ~Printer();
-
- // Like TextFormat::Print
- bool Print(const Message& message, io::ZeroCopyOutputStream* output) const;
- // Like TextFormat::PrintUnknownFields
- bool PrintUnknownFields(const UnknownFieldSet& unknown_fields,
- io::ZeroCopyOutputStream* output) const;
- // Like TextFormat::PrintToString
- bool PrintToString(const Message& message, string* output) const;
- // Like TextFormat::PrintUnknownFieldsToString
- bool PrintUnknownFieldsToString(const UnknownFieldSet& unknown_fields,
- string* output) const;
- // Like TextFormat::PrintFieldValueToString
- void PrintFieldValueToString(const Message& message,
- const FieldDescriptor* field,
- int index,
- string* output) const;
-
- // Adjust the initial indent level of all output. Each indent level is
- // equal to two spaces.
- void SetInitialIndentLevel(int indent_level) {
- initial_indent_level_ = indent_level;
- }
-
- // If printing in single line mode, then the entire message will be output
- // on a single line with no line breaks.
- void SetSingleLineMode(bool single_line_mode) {
- single_line_mode_ = single_line_mode;
- }
-
- // Set true to print repeated primitives in a format like:
- // field_name: [1, 2, 3, 4]
- // instead of printing each value on its own line. Short format applies
- // only to primitive values -- i.e. everything except strings and
- // sub-messages/groups.
- void SetUseShortRepeatedPrimitives(bool use_short_repeated_primitives) {
- use_short_repeated_primitives_ = use_short_repeated_primitives;
- }
-
- // Set true to output UTF-8 instead of ASCII. The only difference
- // is that bytes >= 0x80 in string fields will not be escaped,
- // because they are assumed to be part of UTF-8 multi-byte
- // sequences.
- void SetUseUtf8StringEscaping(bool as_utf8) {
- utf8_string_escaping_ = as_utf8;
- }
-
- private:
- // Forward declaration of an internal class used to print the text
- // output to the OutputStream (see text_format.cc for implementation).
- class TextGenerator;
-
- // Internal Print method, used for writing to the OutputStream via
- // the TextGenerator class.
- void Print(const Message& message,
- TextGenerator& generator) const;
-
- // Print a single field.
- void PrintField(const Message& message,
- const Reflection* reflection,
- const FieldDescriptor* field,
- TextGenerator& generator) const;
-
- // Print a repeated primitive field in short form.
- void PrintShortRepeatedField(const Message& message,
- const Reflection* reflection,
- const FieldDescriptor* field,
- TextGenerator& generator) const;
-
- // Print the name of a field -- i.e. everything that comes before the
- // ':' for a single name/value pair.
- void PrintFieldName(const Message& message,
- const Reflection* reflection,
- const FieldDescriptor* field,
- TextGenerator& generator) const;
-
- // Outputs a textual representation of the value of the field supplied on
- // the message supplied or the default value if not set.
- void PrintFieldValue(const Message& message,
- const Reflection* reflection,
- const FieldDescriptor* field,
- int index,
- TextGenerator& generator) const;
-
- // Print the fields in an UnknownFieldSet. They are printed by tag number
- // only. Embedded messages are heuristically identified by attempting to
- // parse them.
- void PrintUnknownFields(const UnknownFieldSet& unknown_fields,
- TextGenerator& generator) const;
-
- int initial_indent_level_;
-
- bool single_line_mode_;
-
- bool use_short_repeated_primitives_;
-
- bool utf8_string_escaping_;
- };
-
- // Parses a text-format protocol message from the given input stream to
- // the given message object. This function parses the format written
- // by Print().
- static bool Parse(io::ZeroCopyInputStream* input, Message* output);
- // Like Parse(), but reads directly from a string.
- static bool ParseFromString(const string& input, Message* output);
-
- // Like Parse(), but the data is merged into the given message, as if
- // using Message::MergeFrom().
- static bool Merge(io::ZeroCopyInputStream* input, Message* output);
- // Like Merge(), but reads directly from a string.
- static bool MergeFromString(const string& input, Message* output);
-
- // Parse the given text as a single field value and store it into the
- // given field of the given message. If the field is a repeated field,
- // the new value will be added to the end
- static bool ParseFieldValueFromString(const string& input,
- const FieldDescriptor* field,
- Message* message);
-
- // Interface that TextFormat::Parser can use to find extensions.
- // This class may be extended in the future to find more information
- // like fields, etc.
- class LIBPROTOBUF_EXPORT Finder {
- public:
- virtual ~Finder();
-
- // Try to find an extension of *message by fully-qualified field
- // name. Returns NULL if no extension is known for this name or number.
- virtual const FieldDescriptor* FindExtension(
- Message* message,
- const string& name) const = 0;
- };
-
- // For more control over parsing, use this class.
- class LIBPROTOBUF_EXPORT Parser {
- public:
- Parser();
- ~Parser();
-
- // Like TextFormat::Parse().
- bool Parse(io::ZeroCopyInputStream* input, Message* output);
- // Like TextFormat::ParseFromString().
- bool ParseFromString(const string& input, Message* output);
- // Like TextFormat::Merge().
- bool Merge(io::ZeroCopyInputStream* input, Message* output);
- // Like TextFormat::MergeFromString().
- bool MergeFromString(const string& input, Message* output);
-
- // Set where to report parse errors. If NULL (the default), errors will
- // be printed to stderr.
- void RecordErrorsTo(io::ErrorCollector* error_collector) {
- error_collector_ = error_collector;
- }
-
- // Set how parser finds extensions. If NULL (the default), the
- // parser will use the standard Reflection object associated with
- // the message being parsed.
- void SetFinder(Finder* finder) {
- finder_ = finder;
- }
-
- // Normally parsing fails if, after parsing, output->IsInitialized()
- // returns false. Call AllowPartialMessage(true) to skip this check.
- void AllowPartialMessage(bool allow) {
- allow_partial_ = allow;
- }
-
- // Like TextFormat::ParseFieldValueFromString
- bool ParseFieldValueFromString(const string& input,
- const FieldDescriptor* field,
- Message* output);
-
- private:
- // Forward declaration of an internal class used to parse text
- // representations (see text_format.cc for implementation).
- class ParserImpl;
-
- // Like TextFormat::Merge(). The provided implementation is used
- // to do the parsing.
- bool MergeUsingImpl(io::ZeroCopyInputStream* input,
- Message* output,
- ParserImpl* parser_impl);
-
- io::ErrorCollector* error_collector_;
- Finder* finder_;
- bool allow_partial_;
- };
-
- private:
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(TextFormat);
-};
-
-} // namespace protobuf
-
-} // namespace google
-#endif // GOOGLE_PROTOBUF_TEXT_FORMAT_H__
diff --git a/contrib/prebuilt/include/google/protobuf/unknown_field_set.h b/contrib/prebuilt/include/google/protobuf/unknown_field_set.h
deleted file mode 100644
index 84c2e2b..0000000
--- a/contrib/prebuilt/include/google/protobuf/unknown_field_set.h
+++ /dev/null
@@ -1,268 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// http://code.google.com/p/protobuf/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Author: kenton@google.com (Kenton Varda)
-// Based on original Protocol Buffers design by
-// Sanjay Ghemawat, Jeff Dean, and others.
-//
-// Contains classes used to keep track of unrecognized fields seen while
-// parsing a protocol message.
-
-#ifndef GOOGLE_PROTOBUF_UNKNOWN_FIELD_SET_H__
-#define GOOGLE_PROTOBUF_UNKNOWN_FIELD_SET_H__
-
-#include <string>
-#include <vector>
-#include <google/protobuf/repeated_field.h>
-
-namespace google {
-namespace protobuf {
-
-class Message; // message.h
-class UnknownField; // below
-
-// An UnknownFieldSet contains fields that were encountered while parsing a
-// message but were not defined by its type. Keeping track of these can be
-// useful, especially in that they may be written if the message is serialized
-// again without being cleared in between. This means that software which
-// simply receives messages and forwards them to other servers does not need
-// to be updated every time a new field is added to the message definition.
-//
-// To get the UnknownFieldSet attached to any message, call
-// Reflection::GetUnknownFields().
-//
-// This class is necessarily tied to the protocol buffer wire format, unlike
-// the Reflection interface which is independent of any serialization scheme.
-class LIBPROTOBUF_EXPORT UnknownFieldSet {
- public:
- UnknownFieldSet();
- ~UnknownFieldSet();
-
- // Remove all fields.
- inline void Clear();
-
- // Is this set empty?
- inline bool empty() const;
-
- // Merge the contents of some other UnknownFieldSet with this one.
- void MergeFrom(const UnknownFieldSet& other);
-
- // Swaps the contents of some other UnknownFieldSet with this one.
- inline void Swap(UnknownFieldSet* x);
-
- // Computes (an estimate of) the total number of bytes currently used for
- // storing the unknown fields in memory. Does NOT include
- // sizeof(*this) in the calculation.
- int SpaceUsedExcludingSelf() const;
-
- // Version of SpaceUsed() including sizeof(*this).
- int SpaceUsed() const;
-
- // Returns the number of fields present in the UnknownFieldSet.
- inline int field_count() const;
- // Get a field in the set, where 0 <= index < field_count(). The fields
- // appear in the order in which they were added.
- inline const UnknownField& field(int index) const;
- // Get a mutable pointer to a field in the set, where
- // 0 <= index < field_count(). The fields appear in the order in which
- // they were added.
- inline UnknownField* mutable_field(int index);
-
- // Adding fields ---------------------------------------------------
-
- void AddVarint(int number, uint64 value);
- void AddFixed32(int number, uint32 value);
- void AddFixed64(int number, uint64 value);
- void AddLengthDelimited(int number, const string& value);
- string* AddLengthDelimited(int number);
- UnknownFieldSet* AddGroup(int number);
-
- // Adds an unknown field from another set.
- void AddField(const UnknownField& field);
-
- // Parsing helpers -------------------------------------------------
- // These work exactly like the similarly-named methods of Message.
-
- bool MergeFromCodedStream(io::CodedInputStream* input);
- bool ParseFromCodedStream(io::CodedInputStream* input);
- bool ParseFromZeroCopyStream(io::ZeroCopyInputStream* input);
- bool ParseFromArray(const void* data, int size);
- inline bool ParseFromString(const string& data) {
- return ParseFromArray(data.data(), data.size());
- }
-
- private:
- void ClearFallback();
-
- vector<UnknownField>* fields_;
-
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(UnknownFieldSet);
-};
-
-// Represents one field in an UnknownFieldSet.
-class LIBPROTOBUF_EXPORT UnknownField {
- public:
- enum Type {
- TYPE_VARINT,
- TYPE_FIXED32,
- TYPE_FIXED64,
- TYPE_LENGTH_DELIMITED,
- TYPE_GROUP
- };
-
- // The field's tag number, as seen on the wire.
- inline int number() const;
-
- // The field type.
- inline Type type() const;
-
- // Accessors -------------------------------------------------------
- // Each method works only for UnknownFields of the corresponding type.
-
- inline uint64 varint() const;
- inline uint32 fixed32() const;
- inline uint64 fixed64() const;
- inline const string& length_delimited() const;
- inline const UnknownFieldSet& group() const;
-
- inline void set_varint(uint64 value);
- inline void set_fixed32(uint32 value);
- inline void set_fixed64(uint64 value);
- inline void set_length_delimited(const string& value);
- inline string* mutable_length_delimited();
- inline UnknownFieldSet* mutable_group();
-
- private:
- friend class UnknownFieldSet;
-
- // If this UnknownField contains a pointer, delete it.
- void Delete();
-
- // Make a deep copy of any pointers in this UnknownField.
- void DeepCopy();
-
- unsigned int number_ : 29;
- unsigned int type_ : 3;
- union {
- uint64 varint_;
- uint32 fixed32_;
- uint64 fixed64_;
- string* length_delimited_;
- UnknownFieldSet* group_;
- };
-};
-
-// ===================================================================
-// inline implementations
-
-inline void UnknownFieldSet::Clear() {
- if (fields_ != NULL) {
- ClearFallback();
- }
-}
-
-inline bool UnknownFieldSet::empty() const {
- return fields_ == NULL || fields_->empty();
-}
-
-inline void UnknownFieldSet::Swap(UnknownFieldSet* x) {
- std::swap(fields_, x->fields_);
-}
-
-inline int UnknownFieldSet::field_count() const {
- return (fields_ == NULL) ? 0 : fields_->size();
-}
-inline const UnknownField& UnknownFieldSet::field(int index) const {
- return (*fields_)[index];
-}
-inline UnknownField* UnknownFieldSet::mutable_field(int index) {
- return &(*fields_)[index];
-}
-
-inline void UnknownFieldSet::AddLengthDelimited(
- int number, const string& value) {
- AddLengthDelimited(number)->assign(value);
-}
-
-inline int UnknownField::number() const { return number_; }
-inline UnknownField::Type UnknownField::type() const {
- return static_cast<Type>(type_);
-}
-
-inline uint64 UnknownField::varint () const {
- GOOGLE_DCHECK_EQ(type_, TYPE_VARINT);
- return varint_;
-}
-inline uint32 UnknownField::fixed32() const {
- GOOGLE_DCHECK_EQ(type_, TYPE_FIXED32);
- return fixed32_;
-}
-inline uint64 UnknownField::fixed64() const {
- GOOGLE_DCHECK_EQ(type_, TYPE_FIXED64);
- return fixed64_;
-}
-inline const string& UnknownField::length_delimited() const {
- GOOGLE_DCHECK_EQ(type_, TYPE_LENGTH_DELIMITED);
- return *length_delimited_;
-}
-inline const UnknownFieldSet& UnknownField::group() const {
- GOOGLE_DCHECK_EQ(type_, TYPE_GROUP);
- return *group_;
-}
-
-inline void UnknownField::set_varint(uint64 value) {
- GOOGLE_DCHECK_EQ(type_, TYPE_VARINT);
- varint_ = value;
-}
-inline void UnknownField::set_fixed32(uint32 value) {
- GOOGLE_DCHECK_EQ(type_, TYPE_FIXED32);
- fixed32_ = value;
-}
-inline void UnknownField::set_fixed64(uint64 value) {
- GOOGLE_DCHECK_EQ(type_, TYPE_FIXED64);
- fixed64_ = value;
-}
-inline void UnknownField::set_length_delimited(const string& value) {
- GOOGLE_DCHECK_EQ(type_, TYPE_LENGTH_DELIMITED);
- length_delimited_->assign(value);
-}
-inline string* UnknownField::mutable_length_delimited() {
- GOOGLE_DCHECK_EQ(type_, TYPE_LENGTH_DELIMITED);
- return length_delimited_;
-}
-inline UnknownFieldSet* UnknownField::mutable_group() {
- GOOGLE_DCHECK_EQ(type_, TYPE_GROUP);
- return group_;
-}
-
-} // namespace protobuf
-
-} // namespace google
-#endif // GOOGLE_PROTOBUF_UNKNOWN_FIELD_SET_H__
diff --git a/contrib/prebuilt/include/google/protobuf/wire_format.h b/contrib/prebuilt/include/google/protobuf/wire_format.h
deleted file mode 100644
index c753925..0000000
--- a/contrib/prebuilt/include/google/protobuf/wire_format.h
+++ /dev/null
@@ -1,304 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// http://code.google.com/p/protobuf/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Author: kenton@google.com (Kenton Varda)
-// atenasio@google.com (Chris Atenasio) (ZigZag transform)
-// Based on original Protocol Buffers design by
-// Sanjay Ghemawat, Jeff Dean, and others.
-//
-// This header is logically internal, but is made public because it is used
-// from protocol-compiler-generated code, which may reside in other components.
-
-#ifndef GOOGLE_PROTOBUF_WIRE_FORMAT_H__
-#define GOOGLE_PROTOBUF_WIRE_FORMAT_H__
-
-#include <string>
-#include <google/protobuf/descriptor.pb.h>
-#include <google/protobuf/descriptor.h>
-#include <google/protobuf/message.h>
-#include <google/protobuf/wire_format_lite.h>
-
-// Do UTF-8 validation on string type in Debug build only
-#ifndef NDEBUG
-#define GOOGLE_PROTOBUF_UTF8_VALIDATION_ENABLED
-#endif
-
-namespace google {
-namespace protobuf {
- namespace io {
- class CodedInputStream; // coded_stream.h
- class CodedOutputStream; // coded_stream.h
- }
- class UnknownFieldSet; // unknown_field_set.h
-}
-
-namespace protobuf {
-namespace internal {
-
-// This class is for internal use by the protocol buffer library and by
-// protocol-complier-generated message classes. It must not be called
-// directly by clients.
-//
-// This class contains code for implementing the binary protocol buffer
-// wire format via reflection. The WireFormatLite class implements the
-// non-reflection based routines.
-//
-// This class is really a namespace that contains only static methods
-class LIBPROTOBUF_EXPORT WireFormat {
- public:
-
- // Given a field return its WireType
- static inline WireFormatLite::WireType WireTypeForField(
- const FieldDescriptor* field);
-
- // Given a FieldSescriptor::Type return its WireType
- static inline WireFormatLite::WireType WireTypeForFieldType(
- FieldDescriptor::Type type);
-
- // Compute the byte size of a tag. For groups, this includes both the start
- // and end tags.
- static inline int TagSize(int field_number, FieldDescriptor::Type type);
-
- // These procedures can be used to implement the methods of Message which
- // handle parsing and serialization of the protocol buffer wire format
- // using only the Reflection interface. When you ask the protocol
- // compiler to optimize for code size rather than speed, it will implement
- // those methods in terms of these procedures. Of course, these are much
- // slower than the specialized implementations which the protocol compiler
- // generates when told to optimize for speed.
-
- // Read a message in protocol buffer wire format.
- //
- // This procedure reads either to the end of the input stream or through
- // a WIRETYPE_END_GROUP tag ending the message, whichever comes first.
- // It returns false if the input is invalid.
- //
- // Required fields are NOT checked by this method. You must call
- // IsInitialized() on the resulting message yourself.
- static bool ParseAndMergePartial(io::CodedInputStream* input,
- Message* message);
-
- // Serialize a message in protocol buffer wire format.
- //
- // Any embedded messages within the message must have their correct sizes
- // cached. However, the top-level message need not; its size is passed as
- // a parameter to this procedure.
- //
- // These return false iff the underlying stream returns a write error.
- static void SerializeWithCachedSizes(
- const Message& message,
- int size, io::CodedOutputStream* output);
-
- // Implements Message::ByteSize() via reflection. WARNING: The result
- // of this method is *not* cached anywhere. However, all embedded messages
- // will have their ByteSize() methods called, so their sizes will be cached.
- // Therefore, calling this method is sufficient to allow you to call
- // WireFormat::SerializeWithCachedSizes() on the same object.
- static int ByteSize(const Message& message);
-
- // -----------------------------------------------------------------
- // Helpers for dealing with unknown fields
-
- // Skips a field value of the given WireType. The input should start
- // positioned immediately after the tag. If unknown_fields is non-NULL,
- // the contents of the field will be added to it.
- static bool SkipField(io::CodedInputStream* input, uint32 tag,
- UnknownFieldSet* unknown_fields);
-
- // Reads and ignores a message from the input. If unknown_fields is non-NULL,
- // the contents will be added to it.
- static bool SkipMessage(io::CodedInputStream* input,
- UnknownFieldSet* unknown_fields);
-
- // Write the contents of an UnknownFieldSet to the output.
- static void SerializeUnknownFields(const UnknownFieldSet& unknown_fields,
- io::CodedOutputStream* output);
- // Same as above, except writing directly to the provided buffer.
- // Requires that the buffer have sufficient capacity for
- // ComputeUnknownFieldsSize(unknown_fields).
- //
- // Returns a pointer past the last written byte.
- static uint8* SerializeUnknownFieldsToArray(
- const UnknownFieldSet& unknown_fields,
- uint8* target);
-
- // Same thing except for messages that have the message_set_wire_format
- // option.
- static void SerializeUnknownMessageSetItems(
- const UnknownFieldSet& unknown_fields,
- io::CodedOutputStream* output);
- // Same as above, except writing directly to the provided buffer.
- // Requires that the buffer have sufficient capacity for
- // ComputeUnknownMessageSetItemsSize(unknown_fields).
- //
- // Returns a pointer past the last written byte.
- static uint8* SerializeUnknownMessageSetItemsToArray(
- const UnknownFieldSet& unknown_fields,
- uint8* target);
-
- // Compute the size of the UnknownFieldSet on the wire.
- static int ComputeUnknownFieldsSize(const UnknownFieldSet& unknown_fields);
-
- // Same thing except for messages that have the message_set_wire_format
- // option.
- static int ComputeUnknownMessageSetItemsSize(
- const UnknownFieldSet& unknown_fields);
-
-
- // Helper functions for encoding and decoding tags. (Inlined below and in
- // _inl.h)
- //
- // This is different from MakeTag(field->number(), field->type()) in the case
- // of packed repeated fields.
- static uint32 MakeTag(const FieldDescriptor* field);
-
- // Parse a single field. The input should start out positioned immidately
- // after the tag.
- static bool ParseAndMergeField(
- uint32 tag,
- const FieldDescriptor* field, // May be NULL for unknown
- Message* message,
- io::CodedInputStream* input);
-
- // Serialize a single field.
- static void SerializeFieldWithCachedSizes(
- const FieldDescriptor* field, // Cannot be NULL
- const Message& message,
- io::CodedOutputStream* output);
-
- // Compute size of a single field. If the field is a message type, this
- // will call ByteSize() for the embedded message, insuring that it caches
- // its size.
- static int FieldByteSize(
- const FieldDescriptor* field, // Cannot be NULL
- const Message& message);
-
- // Parse/serialize a MessageSet::Item group. Used with messages that use
- // opion message_set_wire_format = true.
- static bool ParseAndMergeMessageSetItem(
- io::CodedInputStream* input,
- Message* message);
- static void SerializeMessageSetItemWithCachedSizes(
- const FieldDescriptor* field,
- const Message& message,
- io::CodedOutputStream* output);
- static int MessageSetItemByteSize(
- const FieldDescriptor* field,
- const Message& message);
-
- // Computes the byte size of a field, excluding tags. For packed fields, it
- // only includes the size of the raw data, and not the size of the total
- // length, but for other length-delimited types, the size of the length is
- // included.
- static int FieldDataOnlyByteSize(
- const FieldDescriptor* field, // Cannot be NULL
- const Message& message);
-
- enum Operation {
- PARSE,
- SERIALIZE,
- };
-
- // Verifies that a string field is valid UTF8, logging an error if not.
- static void VerifyUTF8String(const char* data, int size, Operation op);
-
- private:
- // Verifies that a string field is valid UTF8, logging an error if not.
- static void VerifyUTF8StringFallback(
- const char* data,
- int size,
- Operation op);
-
-
-
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(WireFormat);
-};
-
-// Subclass of FieldSkipper which saves skipped fields to an UnknownFieldSet.
-class LIBPROTOBUF_EXPORT UnknownFieldSetFieldSkipper : public FieldSkipper {
- public:
- UnknownFieldSetFieldSkipper(UnknownFieldSet* unknown_fields)
- : unknown_fields_(unknown_fields) {}
- virtual ~UnknownFieldSetFieldSkipper() {}
-
- // implements FieldSkipper -----------------------------------------
- virtual bool SkipField(io::CodedInputStream* input, uint32 tag);
- virtual bool SkipMessage(io::CodedInputStream* input);
- virtual void SkipUnknownEnum(int field_number, int value);
-
- private:
- UnknownFieldSet* unknown_fields_;
-};
-
-// inline methods ====================================================
-
-inline WireFormatLite::WireType WireFormat::WireTypeForField(
- const FieldDescriptor* field) {
- if (field->options().packed()) {
- return WireFormatLite::WIRETYPE_LENGTH_DELIMITED;
- } else {
- return WireTypeForFieldType(field->type());
- }
-}
-
-inline WireFormatLite::WireType WireFormat::WireTypeForFieldType(
- FieldDescriptor::Type type) {
- // Some compilers don't like enum -> enum casts, so we implicit_cast to
- // int first.
- return WireFormatLite::WireTypeForFieldType(
- static_cast<WireFormatLite::FieldType>(
- implicit_cast<int>(type)));
-}
-
-inline uint32 WireFormat::MakeTag(const FieldDescriptor* field) {
- return WireFormatLite::MakeTag(field->number(), WireTypeForField(field));
-}
-
-inline int WireFormat::TagSize(int field_number, FieldDescriptor::Type type) {
- // Some compilers don't like enum -> enum casts, so we implicit_cast to
- // int first.
- return WireFormatLite::TagSize(field_number,
- static_cast<WireFormatLite::FieldType>(
- implicit_cast<int>(type)));
-}
-
-inline void WireFormat::VerifyUTF8String(const char* data, int size,
- WireFormat::Operation op) {
-#ifdef GOOGLE_PROTOBUF_UTF8_VALIDATION_ENABLED
- WireFormat::VerifyUTF8StringFallback(data, size, op);
-#endif
-}
-
-
-} // namespace internal
-} // namespace protobuf
-
-} // namespace google
-#endif // GOOGLE_PROTOBUF_WIRE_FORMAT_H__
diff --git a/contrib/prebuilt/include/google/protobuf/wire_format_lite.h b/contrib/prebuilt/include/google/protobuf/wire_format_lite.h
deleted file mode 100644
index e3d5b2d..0000000
--- a/contrib/prebuilt/include/google/protobuf/wire_format_lite.h
+++ /dev/null
@@ -1,620 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// http://code.google.com/p/protobuf/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Author: kenton@google.com (Kenton Varda)
-// atenasio@google.com (Chris Atenasio) (ZigZag transform)
-// wink@google.com (Wink Saville) (refactored from wire_format.h)
-// Based on original Protocol Buffers design by
-// Sanjay Ghemawat, Jeff Dean, and others.
-//
-// This header is logically internal, but is made public because it is used
-// from protocol-compiler-generated code, which may reside in other components.
-
-#ifndef GOOGLE_PROTOBUF_WIRE_FORMAT_LITE_H__
-#define GOOGLE_PROTOBUF_WIRE_FORMAT_LITE_H__
-
-#include <string>
-#include <google/protobuf/message_lite.h>
-
-namespace google {
-
-namespace protobuf {
- template <typename T> class RepeatedField; // repeated_field.h
- namespace io {
- class CodedInputStream; // coded_stream.h
- class CodedOutputStream; // coded_stream.h
- }
-}
-
-namespace protobuf {
-namespace internal {
-
-class StringPieceField;
-
-// This class is for internal use by the protocol buffer library and by
-// protocol-complier-generated message classes. It must not be called
-// directly by clients.
-//
-// This class contains helpers for implementing the binary protocol buffer
-// wire format without the need for reflection. Use WireFormat when using
-// reflection.
-//
-// This class is really a namespace that contains only static methods.
-class LIBPROTOBUF_EXPORT WireFormatLite {
- public:
-
- // -----------------------------------------------------------------
- // Helper constants and functions related to the format. These are
- // mostly meant for internal and generated code to use.
-
- // The wire format is composed of a sequence of tag/value pairs, each
- // of which contains the value of one field (or one element of a repeated
- // field). Each tag is encoded as a varint. The lower bits of the tag
- // identify its wire type, which specifies the format of the data to follow.
- // The rest of the bits contain the field number. Each type of field (as
- // declared by FieldDescriptor::Type, in descriptor.h) maps to one of
- // these wire types. Immediately following each tag is the field's value,
- // encoded in the format specified by the wire type. Because the tag
- // identifies the encoding of this data, it is possible to skip
- // unrecognized fields for forwards compatibility.
-
- enum WireType {
- WIRETYPE_VARINT = 0,
- WIRETYPE_FIXED64 = 1,
- WIRETYPE_LENGTH_DELIMITED = 2,
- WIRETYPE_START_GROUP = 3,
- WIRETYPE_END_GROUP = 4,
- WIRETYPE_FIXED32 = 5,
- };
-
- // Lite alternative to FieldDescriptor::Type. Must be kept in sync.
- enum FieldType {
- TYPE_DOUBLE = 1,
- TYPE_FLOAT = 2,
- TYPE_INT64 = 3,
- TYPE_UINT64 = 4,
- TYPE_INT32 = 5,
- TYPE_FIXED64 = 6,
- TYPE_FIXED32 = 7,
- TYPE_BOOL = 8,
- TYPE_STRING = 9,
- TYPE_GROUP = 10,
- TYPE_MESSAGE = 11,
- TYPE_BYTES = 12,
- TYPE_UINT32 = 13,
- TYPE_ENUM = 14,
- TYPE_SFIXED32 = 15,
- TYPE_SFIXED64 = 16,
- TYPE_SINT32 = 17,
- TYPE_SINT64 = 18,
- MAX_FIELD_TYPE = 18,
- };
-
- // Lite alternative to FieldDescriptor::CppType. Must be kept in sync.
- enum CppType {
- CPPTYPE_INT32 = 1,
- CPPTYPE_INT64 = 2,
- CPPTYPE_UINT32 = 3,
- CPPTYPE_UINT64 = 4,
- CPPTYPE_DOUBLE = 5,
- CPPTYPE_FLOAT = 6,
- CPPTYPE_BOOL = 7,
- CPPTYPE_ENUM = 8,
- CPPTYPE_STRING = 9,
- CPPTYPE_MESSAGE = 10,
- MAX_CPPTYPE = 10,
- };
-
- // Helper method to get the CppType for a particular Type.
- static CppType FieldTypeToCppType(FieldType type);
-
- // Given a FieldSescriptor::Type return its WireType
- static inline WireFormatLite::WireType WireTypeForFieldType(
- WireFormatLite::FieldType type) {
- return kWireTypeForFieldType[type];
- }
-
- // Number of bits in a tag which identify the wire type.
- static const int kTagTypeBits = 3;
- // Mask for those bits.
- static const uint32 kTagTypeMask = (1 << kTagTypeBits) - 1;
-
- // Helper functions for encoding and decoding tags. (Inlined below and in
- // _inl.h)
- //
- // This is different from MakeTag(field->number(), field->type()) in the case
- // of packed repeated fields.
- static uint32 MakeTag(int field_number, WireType type);
- static WireType GetTagWireType(uint32 tag);
- static int GetTagFieldNumber(uint32 tag);
-
- // Compute the byte size of a tag. For groups, this includes both the start
- // and end tags.
- static inline int TagSize(int field_number, WireFormatLite::FieldType type);
-
- // Skips a field value with the given tag. The input should start
- // positioned immediately after the tag. Skipped values are simply discarded,
- // not recorded anywhere. See WireFormat::SkipField() for a version that
- // records to an UnknownFieldSet.
- static bool SkipField(io::CodedInputStream* input, uint32 tag);
-
- // Reads and ignores a message from the input. Skipped values are simply
- // discarded, not recorded anywhere. See WireFormat::SkipMessage() for a
- // version that records to an UnknownFieldSet.
- static bool SkipMessage(io::CodedInputStream* input);
-
-// This macro does the same thing as WireFormatLite::MakeTag(), but the
-// result is usable as a compile-time constant, which makes it usable
-// as a switch case or a template input. WireFormatLite::MakeTag() is more
-// type-safe, though, so prefer it if possible.
-#define GOOGLE_PROTOBUF_WIRE_FORMAT_MAKE_TAG(FIELD_NUMBER, TYPE) \
- static_cast<uint32>( \
- ((FIELD_NUMBER) << ::google::protobuf::internal::WireFormatLite::kTagTypeBits) \
- | (TYPE))
-
- // These are the tags for the old MessageSet format, which was defined as:
- // message MessageSet {
- // repeated group Item = 1 {
- // required int32 type_id = 2;
- // required string message = 3;
- // }
- // }
- static const int kMessageSetItemNumber = 1;
- static const int kMessageSetTypeIdNumber = 2;
- static const int kMessageSetMessageNumber = 3;
- static const int kMessageSetItemStartTag =
- GOOGLE_PROTOBUF_WIRE_FORMAT_MAKE_TAG(kMessageSetItemNumber,
- WireFormatLite::WIRETYPE_START_GROUP);
- static const int kMessageSetItemEndTag =
- GOOGLE_PROTOBUF_WIRE_FORMAT_MAKE_TAG(kMessageSetItemNumber,
- WireFormatLite::WIRETYPE_END_GROUP);
- static const int kMessageSetTypeIdTag =
- GOOGLE_PROTOBUF_WIRE_FORMAT_MAKE_TAG(kMessageSetTypeIdNumber,
- WireFormatLite::WIRETYPE_VARINT);
- static const int kMessageSetMessageTag =
- GOOGLE_PROTOBUF_WIRE_FORMAT_MAKE_TAG(kMessageSetMessageNumber,
- WireFormatLite::WIRETYPE_LENGTH_DELIMITED);
-
- // Byte size of all tags of a MessageSet::Item combined.
- static const int kMessageSetItemTagsSize;
-
- // Helper functions for converting between floats/doubles and IEEE-754
- // uint32s/uint64s so that they can be written. (Assumes your platform
- // uses IEEE-754 floats.)
- static uint32 EncodeFloat(float value);
- static float DecodeFloat(uint32 value);
- static uint64 EncodeDouble(double value);
- static double DecodeDouble(uint64 value);
-
- // Helper functions for mapping signed integers to unsigned integers in
- // such a way that numbers with small magnitudes will encode to smaller
- // varints. If you simply static_cast a negative number to an unsigned
- // number and varint-encode it, it will always take 10 bytes, defeating
- // the purpose of varint. So, for the "sint32" and "sint64" field types,
- // we ZigZag-encode the values.
- static uint32 ZigZagEncode32(int32 n);
- static int32 ZigZagDecode32(uint32 n);
- static uint64 ZigZagEncode64(int64 n);
- static int64 ZigZagDecode64(uint64 n);
-
- // =================================================================
- // Methods for reading/writing individual field. The implementations
- // of these methods are defined in wire_format_lite_inl.h; you must #include
- // that file to use these.
-
-// Avoid ugly line wrapping
-#define input io::CodedInputStream* input
-#define output io::CodedOutputStream* output
-#define field_number int field_number
-#define INL GOOGLE_ATTRIBUTE_ALWAYS_INLINE
-
- // Read fields, not including tags. The assumption is that you already
- // read the tag to determine what field to read.
-
- // For primitive fields, we just use a templatized routine parameterized by
- // the represented type and the FieldType. These are specialized with the
- // appropriate definition for each declared type.
- template <typename CType, enum FieldType DeclaredType>
- static inline bool ReadPrimitive(input, CType* value) INL;
-
- // Reads repeated primitive values, with optimizations for repeats.
- // tag_size and tag should both be compile-time constants provided by the
- // protocol compiler.
- template <typename CType, enum FieldType DeclaredType>
- static inline bool ReadRepeatedPrimitive(int tag_size,
- uint32 tag,
- input,
- RepeatedField<CType>* value) INL;
-
- // Identical to ReadRepeatedPrimitive, except will not inline the
- // implementation.
- template <typename CType, enum FieldType DeclaredType>
- static bool ReadRepeatedPrimitiveNoInline(int tag_size,
- uint32 tag,
- input,
- RepeatedField<CType>* value);
-
- // Reads a primitive value directly from the provided buffer. It returns a
- // pointer past the segment of data that was read.
- //
- // This is only implemented for the types with fixed wire size, e.g.
- // float, double, and the (s)fixed* types.
- template <typename CType, enum FieldType DeclaredType>
- static inline const uint8* ReadPrimitiveFromArray(const uint8* buffer,
- CType* value) INL;
-
- // Reads a primitive packed field.
- //
- // This is only implemented for packable types.
- template <typename CType, enum FieldType DeclaredType>
- static inline bool ReadPackedPrimitive(input,
- RepeatedField<CType>* value) INL;
-
- // Identical to ReadPackedPrimitive, except will not inline the
- // implementation.
- template <typename CType, enum FieldType DeclaredType>
- static bool ReadPackedPrimitiveNoInline(input, RepeatedField<CType>* value);
-
- // Read a packed enum field. Values for which is_valid() returns false are
- // dropped.
- static bool ReadPackedEnumNoInline(input,
- bool (*is_valid)(int),
- RepeatedField<int>* value);
-
- static bool ReadString(input, string* value);
- static bool ReadBytes (input, string* value);
-
- static inline bool ReadGroup (field_number, input, MessageLite* value);
- static inline bool ReadMessage(input, MessageLite* value);
-
- // Like above, but de-virtualize the call to MergePartialFromCodedStream().
- // The pointer must point at an instance of MessageType, *not* a subclass (or
- // the subclass must not override MergePartialFromCodedStream()).
- template<typename MessageType>
- static inline bool ReadGroupNoVirtual(field_number, input,
- MessageType* value);
- template<typename MessageType>
- static inline bool ReadMessageNoVirtual(input, MessageType* value);
-
- // Write a tag. The Write*() functions typically include the tag, so
- // normally there's no need to call this unless using the Write*NoTag()
- // variants.
- static inline void WriteTag(field_number, WireType type, output) INL;
-
- // Write fields, without tags.
- static inline void WriteInt32NoTag (int32 value, output) INL;
- static inline void WriteInt64NoTag (int64 value, output) INL;
- static inline void WriteUInt32NoTag (uint32 value, output) INL;
- static inline void WriteUInt64NoTag (uint64 value, output) INL;
- static inline void WriteSInt32NoTag (int32 value, output) INL;
- static inline void WriteSInt64NoTag (int64 value, output) INL;
- static inline void WriteFixed32NoTag (uint32 value, output) INL;
- static inline void WriteFixed64NoTag (uint64 value, output) INL;
- static inline void WriteSFixed32NoTag(int32 value, output) INL;
- static inline void WriteSFixed64NoTag(int64 value, output) INL;
- static inline void WriteFloatNoTag (float value, output) INL;
- static inline void WriteDoubleNoTag (double value, output) INL;
- static inline void WriteBoolNoTag (bool value, output) INL;
- static inline void WriteEnumNoTag (int value, output) INL;
-
- // Write fields, including tags.
- static void WriteInt32 (field_number, int32 value, output);
- static void WriteInt64 (field_number, int64 value, output);
- static void WriteUInt32 (field_number, uint32 value, output);
- static void WriteUInt64 (field_number, uint64 value, output);
- static void WriteSInt32 (field_number, int32 value, output);
- static void WriteSInt64 (field_number, int64 value, output);
- static void WriteFixed32 (field_number, uint32 value, output);
- static void WriteFixed64 (field_number, uint64 value, output);
- static void WriteSFixed32(field_number, int32 value, output);
- static void WriteSFixed64(field_number, int64 value, output);
- static void WriteFloat (field_number, float value, output);
- static void WriteDouble (field_number, double value, output);
- static void WriteBool (field_number, bool value, output);
- static void WriteEnum (field_number, int value, output);
-
- static void WriteString(field_number, const string& value, output);
- static void WriteBytes (field_number, const string& value, output);
-
- static void WriteGroup(
- field_number, const MessageLite& value, output);
- static void WriteMessage(
- field_number, const MessageLite& value, output);
- // Like above, but these will check if the output stream has enough
- // space to write directly to a flat array.
- static void WriteGroupMaybeToArray(
- field_number, const MessageLite& value, output);
- static void WriteMessageMaybeToArray(
- field_number, const MessageLite& value, output);
-
- // Like above, but de-virtualize the call to SerializeWithCachedSizes(). The
- // pointer must point at an instance of MessageType, *not* a subclass (or
- // the subclass must not override SerializeWithCachedSizes()).
- template<typename MessageType>
- static inline void WriteGroupNoVirtual(
- field_number, const MessageType& value, output);
- template<typename MessageType>
- static inline void WriteMessageNoVirtual(
- field_number, const MessageType& value, output);
-
-#undef output
-#define output uint8* target
-
- // Like above, but use only *ToArray methods of CodedOutputStream.
- static inline uint8* WriteTagToArray(field_number, WireType type, output) INL;
-
- // Write fields, without tags.
- static inline uint8* WriteInt32NoTagToArray (int32 value, output) INL;
- static inline uint8* WriteInt64NoTagToArray (int64 value, output) INL;
- static inline uint8* WriteUInt32NoTagToArray (uint32 value, output) INL;
- static inline uint8* WriteUInt64NoTagToArray (uint64 value, output) INL;
- static inline uint8* WriteSInt32NoTagToArray (int32 value, output) INL;
- static inline uint8* WriteSInt64NoTagToArray (int64 value, output) INL;
- static inline uint8* WriteFixed32NoTagToArray (uint32 value, output) INL;
- static inline uint8* WriteFixed64NoTagToArray (uint64 value, output) INL;
- static inline uint8* WriteSFixed32NoTagToArray(int32 value, output) INL;
- static inline uint8* WriteSFixed64NoTagToArray(int64 value, output) INL;
- static inline uint8* WriteFloatNoTagToArray (float value, output) INL;
- static inline uint8* WriteDoubleNoTagToArray (double value, output) INL;
- static inline uint8* WriteBoolNoTagToArray (bool value, output) INL;
- static inline uint8* WriteEnumNoTagToArray (int value, output) INL;
-
- // Write fields, including tags.
- static inline uint8* WriteInt32ToArray(
- field_number, int32 value, output) INL;
- static inline uint8* WriteInt64ToArray(
- field_number, int64 value, output) INL;
- static inline uint8* WriteUInt32ToArray(
- field_number, uint32 value, output) INL;
- static inline uint8* WriteUInt64ToArray(
- field_number, uint64 value, output) INL;
- static inline uint8* WriteSInt32ToArray(
- field_number, int32 value, output) INL;
- static inline uint8* WriteSInt64ToArray(
- field_number, int64 value, output) INL;
- static inline uint8* WriteFixed32ToArray(
- field_number, uint32 value, output) INL;
- static inline uint8* WriteFixed64ToArray(
- field_number, uint64 value, output) INL;
- static inline uint8* WriteSFixed32ToArray(
- field_number, int32 value, output) INL;
- static inline uint8* WriteSFixed64ToArray(
- field_number, int64 value, output) INL;
- static inline uint8* WriteFloatToArray(
- field_number, float value, output) INL;
- static inline uint8* WriteDoubleToArray(
- field_number, double value, output) INL;
- static inline uint8* WriteBoolToArray(
- field_number, bool value, output) INL;
- static inline uint8* WriteEnumToArray(
- field_number, int value, output) INL;
-
- static inline uint8* WriteStringToArray(
- field_number, const string& value, output) INL;
- static inline uint8* WriteBytesToArray(
- field_number, const string& value, output) INL;
-
- static inline uint8* WriteGroupToArray(
- field_number, const MessageLite& value, output) INL;
- static inline uint8* WriteMessageToArray(
- field_number, const MessageLite& value, output) INL;
-
- // Like above, but de-virtualize the call to SerializeWithCachedSizes(). The
- // pointer must point at an instance of MessageType, *not* a subclass (or
- // the subclass must not override SerializeWithCachedSizes()).
- template<typename MessageType>
- static inline uint8* WriteGroupNoVirtualToArray(
- field_number, const MessageType& value, output) INL;
- template<typename MessageType>
- static inline uint8* WriteMessageNoVirtualToArray(
- field_number, const MessageType& value, output) INL;
-
-#undef output
-#undef input
-#undef INL
-
-#undef field_number
-
- // Compute the byte size of a field. The XxSize() functions do NOT include
- // the tag, so you must also call TagSize(). (This is because, for repeated
- // fields, you should only call TagSize() once and multiply it by the element
- // count, but you may have to call XxSize() for each individual element.)
- static inline int Int32Size ( int32 value);
- static inline int Int64Size ( int64 value);
- static inline int UInt32Size (uint32 value);
- static inline int UInt64Size (uint64 value);
- static inline int SInt32Size ( int32 value);
- static inline int SInt64Size ( int64 value);
- static inline int EnumSize ( int value);
-
- // These types always have the same size.
- static const int kFixed32Size = 4;
- static const int kFixed64Size = 8;
- static const int kSFixed32Size = 4;
- static const int kSFixed64Size = 8;
- static const int kFloatSize = 4;
- static const int kDoubleSize = 8;
- static const int kBoolSize = 1;
-
- static inline int StringSize(const string& value);
- static inline int BytesSize (const string& value);
-
- static inline int GroupSize (const MessageLite& value);
- static inline int MessageSize(const MessageLite& value);
-
- // Like above, but de-virtualize the call to ByteSize(). The
- // pointer must point at an instance of MessageType, *not* a subclass (or
- // the subclass must not override ByteSize()).
- template<typename MessageType>
- static inline int GroupSizeNoVirtual (const MessageType& value);
- template<typename MessageType>
- static inline int MessageSizeNoVirtual(const MessageType& value);
-
- private:
- // A helper method for the repeated primitive reader. This method has
- // optimizations for primitive types that have fixed size on the wire, and
- // can be read using potentially faster paths.
- template <typename CType, enum FieldType DeclaredType>
- static inline bool ReadRepeatedFixedSizePrimitive(
- int tag_size,
- uint32 tag,
- google::protobuf::io::CodedInputStream* input,
- RepeatedField<CType>* value) GOOGLE_ATTRIBUTE_ALWAYS_INLINE;
-
- static const CppType kFieldTypeToCppTypeMap[];
- static const WireFormatLite::WireType kWireTypeForFieldType[];
-
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(WireFormatLite);
-};
-
-// A class which deals with unknown values. The default implementation just
-// discards them. WireFormat defines a subclass which writes to an
-// UnknownFieldSet. This class is used by ExtensionSet::ParseField(), since
-// ExtensionSet is part of the lite library but UnknownFieldSet is not.
-class LIBPROTOBUF_EXPORT FieldSkipper {
- public:
- FieldSkipper() {}
- virtual ~FieldSkipper() {}
-
- // Skip a field whose tag has already been consumed.
- virtual bool SkipField(io::CodedInputStream* input, uint32 tag);
-
- // Skip an entire message or group, up to an end-group tag (which is consumed)
- // or end-of-stream.
- virtual bool SkipMessage(io::CodedInputStream* input);
-
- // Deal with an already-parsed unrecognized enum value. The default
- // implementation does nothing, but the UnknownFieldSet-based implementation
- // saves it as an unknown varint.
- virtual void SkipUnknownEnum(int field_number, int value);
-};
-
-// inline methods ====================================================
-
-inline WireFormatLite::CppType
-WireFormatLite::FieldTypeToCppType(FieldType type) {
- return kFieldTypeToCppTypeMap[type];
-}
-
-inline uint32 WireFormatLite::MakeTag(int field_number, WireType type) {
- return GOOGLE_PROTOBUF_WIRE_FORMAT_MAKE_TAG(field_number, type);
-}
-
-inline WireFormatLite::WireType WireFormatLite::GetTagWireType(uint32 tag) {
- return static_cast<WireType>(tag & kTagTypeMask);
-}
-
-inline int WireFormatLite::GetTagFieldNumber(uint32 tag) {
- return static_cast<int>(tag >> kTagTypeBits);
-}
-
-inline int WireFormatLite::TagSize(int field_number,
- WireFormatLite::FieldType type) {
- int result = io::CodedOutputStream::VarintSize32(
- field_number << kTagTypeBits);
- if (type == TYPE_GROUP) {
- // Groups have both a start and an end tag.
- return result * 2;
- } else {
- return result;
- }
-}
-
-inline uint32 WireFormatLite::EncodeFloat(float value) {
- union {float f; uint32 i;};
- f = value;
- return i;
-}
-
-inline float WireFormatLite::DecodeFloat(uint32 value) {
- union {float f; uint32 i;};
- i = value;
- return f;
-}
-
-inline uint64 WireFormatLite::EncodeDouble(double value) {
- union {double f; uint64 i;};
- f = value;
- return i;
-}
-
-inline double WireFormatLite::DecodeDouble(uint64 value) {
- union {double f; uint64 i;};
- i = value;
- return f;
-}
-
-// ZigZag Transform: Encodes signed integers so that they can be
-// effectively used with varint encoding.
-//
-// varint operates on unsigned integers, encoding smaller numbers into
-// fewer bytes. If you try to use it on a signed integer, it will treat
-// this number as a very large unsigned integer, which means that even
-// small signed numbers like -1 will take the maximum number of bytes
-// (10) to encode. ZigZagEncode() maps signed integers to unsigned
-// in such a way that those with a small absolute value will have smaller
-// encoded values, making them appropriate for encoding using varint.
-//
-// int32 -> uint32
-// -------------------------
-// 0 -> 0
-// -1 -> 1
-// 1 -> 2
-// -2 -> 3
-// ... -> ...
-// 2147483647 -> 4294967294
-// -2147483648 -> 4294967295
-//
-// >> encode >>
-// << decode <<
-
-inline uint32 WireFormatLite::ZigZagEncode32(int32 n) {
- // Note: the right-shift must be arithmetic
- return (n << 1) ^ (n >> 31);
-}
-
-inline int32 WireFormatLite::ZigZagDecode32(uint32 n) {
- return (n >> 1) ^ -static_cast<int32>(n & 1);
-}
-
-inline uint64 WireFormatLite::ZigZagEncode64(int64 n) {
- // Note: the right-shift must be arithmetic
- return (n << 1) ^ (n >> 63);
-}
-
-inline int64 WireFormatLite::ZigZagDecode64(uint64 n) {
- return (n >> 1) ^ -static_cast<int64>(n & 1);
-}
-
-} // namespace internal
-} // namespace protobuf
-
-} // namespace google
-#endif // GOOGLE_PROTOBUF_WIRE_FORMAT_LITE_H__
diff --git a/contrib/prebuilt/include/google/protobuf/wire_format_lite_inl.h b/contrib/prebuilt/include/google/protobuf/wire_format_lite_inl.h
deleted file mode 100644
index 103b0bd..0000000
--- a/contrib/prebuilt/include/google/protobuf/wire_format_lite_inl.h
+++ /dev/null
@@ -1,774 +0,0 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc. All rights reserved.
-// http://code.google.com/p/protobuf/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Author: kenton@google.com (Kenton Varda)
-// wink@google.com (Wink Saville) (refactored from wire_format.h)
-// Based on original Protocol Buffers design by
-// Sanjay Ghemawat, Jeff Dean, and others.
-
-#ifndef GOOGLE_PROTOBUF_WIRE_FORMAT_LITE_INL_H__
-#define GOOGLE_PROTOBUF_WIRE_FORMAT_LITE_INL_H__
-
-#include <string>
-#include <google/protobuf/stubs/common.h>
-#include <google/protobuf/message_lite.h>
-#include <google/protobuf/repeated_field.h>
-#include <google/protobuf/wire_format_lite.h>
-#include <google/protobuf/generated_message_util.h>
-#include <google/protobuf/io/coded_stream.h>
-
-
-namespace google {
-namespace protobuf {
-namespace internal {
-
-// Implementation details of ReadPrimitive.
-
-template <>
-inline bool WireFormatLite::ReadPrimitive<int32, WireFormatLite::TYPE_INT32>(
- io::CodedInputStream* input,
- int32* value) {
- uint32 temp;
- if (!input->ReadVarint32(&temp)) return false;
- *value = static_cast<int32>(temp);
- return true;
-}
-template <>
-inline bool WireFormatLite::ReadPrimitive<int64, WireFormatLite::TYPE_INT64>(
- io::CodedInputStream* input,
- int64* value) {
- uint64 temp;
- if (!input->ReadVarint64(&temp)) return false;
- *value = static_cast<int64>(temp);
- return true;
-}
-template <>
-inline bool WireFormatLite::ReadPrimitive<uint32, WireFormatLite::TYPE_UINT32>(
- io::CodedInputStream* input,
- uint32* value) {
- return input->ReadVarint32(value);
-}
-template <>
-inline bool WireFormatLite::ReadPrimitive<uint64, WireFormatLite::TYPE_UINT64>(
- io::CodedInputStream* input,
- uint64* value) {
- return input->ReadVarint64(value);
-}
-template <>
-inline bool WireFormatLite::ReadPrimitive<int32, WireFormatLite::TYPE_SINT32>(
- io::CodedInputStream* input,
- int32* value) {
- uint32 temp;
- if (!input->ReadVarint32(&temp)) return false;
- *value = ZigZagDecode32(temp);
- return true;
-}
-template <>
-inline bool WireFormatLite::ReadPrimitive<int64, WireFormatLite::TYPE_SINT64>(
- io::CodedInputStream* input,
- int64* value) {
- uint64 temp;
- if (!input->ReadVarint64(&temp)) return false;
- *value = ZigZagDecode64(temp);
- return true;
-}
-template <>
-inline bool WireFormatLite::ReadPrimitive<uint32, WireFormatLite::TYPE_FIXED32>(
- io::CodedInputStream* input,
- uint32* value) {
- return input->ReadLittleEndian32(value);
-}
-template <>
-inline bool WireFormatLite::ReadPrimitive<uint64, WireFormatLite::TYPE_FIXED64>(
- io::CodedInputStream* input,
- uint64* value) {
- return input->ReadLittleEndian64(value);
-}
-template <>
-inline bool WireFormatLite::ReadPrimitive<int32, WireFormatLite::TYPE_SFIXED32>(
- io::CodedInputStream* input,
- int32* value) {
- uint32 temp;
- if (!input->ReadLittleEndian32(&temp)) return false;
- *value = static_cast<int32>(temp);
- return true;
-}
-template <>
-inline bool WireFormatLite::ReadPrimitive<int64, WireFormatLite::TYPE_SFIXED64>(
- io::CodedInputStream* input,
- int64* value) {
- uint64 temp;
- if (!input->ReadLittleEndian64(&temp)) return false;
- *value = static_cast<int64>(temp);
- return true;
-}
-template <>
-inline bool WireFormatLite::ReadPrimitive<float, WireFormatLite::TYPE_FLOAT>(
- io::CodedInputStream* input,
- float* value) {
- uint32 temp;
- if (!input->ReadLittleEndian32(&temp)) return false;
- *value = DecodeFloat(temp);
- return true;
-}
-template <>
-inline bool WireFormatLite::ReadPrimitive<double, WireFormatLite::TYPE_DOUBLE>(
- io::CodedInputStream* input,
- double* value) {
- uint64 temp;
- if (!input->ReadLittleEndian64(&temp)) return false;
- *value = DecodeDouble(temp);
- return true;
-}
-template <>
-inline bool WireFormatLite::ReadPrimitive<bool, WireFormatLite::TYPE_BOOL>(
- io::CodedInputStream* input,
- bool* value) {
- uint32 temp;
- if (!input->ReadVarint32(&temp)) return false;
- *value = temp != 0;
- return true;
-}
-template <>
-inline bool WireFormatLite::ReadPrimitive<int, WireFormatLite::TYPE_ENUM>(
- io::CodedInputStream* input,
- int* value) {
- uint32 temp;
- if (!input->ReadVarint32(&temp)) return false;
- *value = static_cast<int>(temp);
- return true;
-}
-
-template <>
-inline const uint8* WireFormatLite::ReadPrimitiveFromArray<
- uint32, WireFormatLite::TYPE_FIXED32>(
- const uint8* buffer,
- uint32* value) {
- return io::CodedInputStream::ReadLittleEndian32FromArray(buffer, value);
-}
-template <>
-inline const uint8* WireFormatLite::ReadPrimitiveFromArray<
- uint64, WireFormatLite::TYPE_FIXED64>(
- const uint8* buffer,
- uint64* value) {
- return io::CodedInputStream::ReadLittleEndian64FromArray(buffer, value);
-}
-template <>
-inline const uint8* WireFormatLite::ReadPrimitiveFromArray<
- int32, WireFormatLite::TYPE_SFIXED32>(
- const uint8* buffer,
- int32* value) {
- uint32 temp;
- buffer = io::CodedInputStream::ReadLittleEndian32FromArray(buffer, &temp);
- *value = static_cast<int32>(temp);
- return buffer;
-}
-template <>
-inline const uint8* WireFormatLite::ReadPrimitiveFromArray<
- int64, WireFormatLite::TYPE_SFIXED64>(
- const uint8* buffer,
- int64* value) {
- uint64 temp;
- buffer = io::CodedInputStream::ReadLittleEndian64FromArray(buffer, &temp);
- *value = static_cast<int64>(temp);
- return buffer;
-}
-template <>
-inline const uint8* WireFormatLite::ReadPrimitiveFromArray<
- float, WireFormatLite::TYPE_FLOAT>(
- const uint8* buffer,
- float* value) {
- uint32 temp;
- buffer = io::CodedInputStream::ReadLittleEndian32FromArray(buffer, &temp);
- *value = DecodeFloat(temp);
- return buffer;
-}
-template <>
-inline const uint8* WireFormatLite::ReadPrimitiveFromArray<
- double, WireFormatLite::TYPE_DOUBLE>(
- const uint8* buffer,
- double* value) {
- uint64 temp;
- buffer = io::CodedInputStream::ReadLittleEndian64FromArray(buffer, &temp);
- *value = DecodeDouble(temp);
- return buffer;
-}
-
-template <typename CType, enum WireFormatLite::FieldType DeclaredType>
-inline bool WireFormatLite::ReadRepeatedPrimitive(int, // tag_size, unused.
- uint32 tag,
- io::CodedInputStream* input,
- RepeatedField<CType>* values) {
- CType value;
- if (!ReadPrimitive<CType, DeclaredType>(input, &value)) return false;
- values->Add(value);
- int elements_already_reserved = values->Capacity() - values->size();
- while (elements_already_reserved > 0 && input->ExpectTag(tag)) {
- if (!ReadPrimitive<CType, DeclaredType>(input, &value)) return false;
- values->AddAlreadyReserved(value);
- elements_already_reserved--;
- }
- return true;
-}
-
-template <typename CType, enum WireFormatLite::FieldType DeclaredType>
-inline bool WireFormatLite::ReadRepeatedFixedSizePrimitive(
- int tag_size,
- uint32 tag,
- io::CodedInputStream* input,
- RepeatedField<CType>* values) {
- GOOGLE_DCHECK_EQ(UInt32Size(tag), tag_size);
- CType value;
- if (!ReadPrimitive<CType, DeclaredType>(input, &value))
- return false;
- values->Add(value);
-
- // For fixed size values, repeated values can be read more quickly by
- // reading directly from a raw array.
- //
- // We can get a tight loop by only reading as many elements as can be
- // added to the RepeatedField without having to do any resizing. Additionally,
- // we only try to read as many elements as are available from the current
- // buffer space. Doing so avoids having to perform boundary checks when
- // reading the value: the maximum number of elements that can be read is
- // known outside of the loop.
- const void* void_pointer;
- int size;
- input->GetDirectBufferPointerInline(&void_pointer, &size);
- if (size > 0) {
- const uint8* buffer = reinterpret_cast<const uint8*>(void_pointer);
- // The number of bytes each type occupies on the wire.
- const int per_value_size = tag_size + sizeof(value);
-
- int elements_available = min(values->Capacity() - values->size(),
- size / per_value_size);
- int num_read = 0;
- while (num_read < elements_available &&
- (buffer = io::CodedInputStream::ExpectTagFromArray(
- buffer, tag)) != NULL) {
- buffer = ReadPrimitiveFromArray<CType, DeclaredType>(buffer, &value);
- values->AddAlreadyReserved(value);
- ++num_read;
- }
- const int read_bytes = num_read * per_value_size;
- if (read_bytes > 0) {
- input->Skip(read_bytes);
- }
- }
- return true;
-}
-
-// Specializations of ReadRepeatedPrimitive for the fixed size types, which use
-// the optimized code path.
-#define READ_REPEATED_FIXED_SIZE_PRIMITIVE(CPPTYPE, DECLARED_TYPE) \
-template <> \
-inline bool WireFormatLite::ReadRepeatedPrimitive< \
- CPPTYPE, WireFormatLite::DECLARED_TYPE>( \
- int tag_size, \
- uint32 tag, \
- io::CodedInputStream* input, \
- RepeatedField<CPPTYPE>* values) { \
- return ReadRepeatedFixedSizePrimitive< \
- CPPTYPE, WireFormatLite::DECLARED_TYPE>( \
- tag_size, tag, input, values); \
-}
-
-READ_REPEATED_FIXED_SIZE_PRIMITIVE(uint32, TYPE_FIXED32);
-READ_REPEATED_FIXED_SIZE_PRIMITIVE(uint64, TYPE_FIXED64);
-READ_REPEATED_FIXED_SIZE_PRIMITIVE(int32, TYPE_SFIXED32);
-READ_REPEATED_FIXED_SIZE_PRIMITIVE(int64, TYPE_SFIXED64);
-READ_REPEATED_FIXED_SIZE_PRIMITIVE(float, TYPE_FLOAT);
-READ_REPEATED_FIXED_SIZE_PRIMITIVE(double, TYPE_DOUBLE);
-
-#undef READ_REPEATED_FIXED_SIZE_PRIMITIVE
-
-template <typename CType, enum WireFormatLite::FieldType DeclaredType>
-bool WireFormatLite::ReadRepeatedPrimitiveNoInline(
- int tag_size,
- uint32 tag,
- io::CodedInputStream* input,
- RepeatedField<CType>* value) {
- return ReadRepeatedPrimitive<CType, DeclaredType>(
- tag_size, tag, input, value);
-}
-
-template <typename CType, enum WireFormatLite::FieldType DeclaredType>
-inline bool WireFormatLite::ReadPackedPrimitive(io::CodedInputStream* input,
- RepeatedField<CType>* values) {
- uint32 length;
- if (!input->ReadVarint32(&length)) return false;
- io::CodedInputStream::Limit limit = input->PushLimit(length);
- while (input->BytesUntilLimit() > 0) {
- CType value;
- if (!ReadPrimitive<CType, DeclaredType>(input, &value)) return false;
- values->Add(value);
- }
- input->PopLimit(limit);
- return true;
-}
-
-template <typename CType, enum WireFormatLite::FieldType DeclaredType>
-bool WireFormatLite::ReadPackedPrimitiveNoInline(io::CodedInputStream* input,
- RepeatedField<CType>* values) {
- return ReadPackedPrimitive<CType, DeclaredType>(input, values);
-}
-
-
-inline bool WireFormatLite::ReadGroup(int field_number,
- io::CodedInputStream* input,
- MessageLite* value) {
- if (!input->IncrementRecursionDepth()) return false;
- if (!value->MergePartialFromCodedStream(input)) return false;
- input->DecrementRecursionDepth();
- // Make sure the last thing read was an end tag for this group.
- if (!input->LastTagWas(MakeTag(field_number, WIRETYPE_END_GROUP))) {
- return false;
- }
- return true;
-}
-inline bool WireFormatLite::ReadMessage(io::CodedInputStream* input,
- MessageLite* value) {
- uint32 length;
- if (!input->ReadVarint32(&length)) return false;
- if (!input->IncrementRecursionDepth()) return false;
- io::CodedInputStream::Limit limit = input->PushLimit(length);
- if (!value->MergePartialFromCodedStream(input)) return false;
- // Make sure that parsing stopped when the limit was hit, not at an endgroup
- // tag.
- if (!input->ConsumedEntireMessage()) return false;
- input->PopLimit(limit);
- input->DecrementRecursionDepth();
- return true;
-}
-
-// We name the template parameter something long and extremely unlikely to occur
-// elsewhere because a *qualified* member access expression designed to avoid
-// virtual dispatch, C++03 [basic.lookup.classref] 3.4.5/4 requires that the
-// name of the qualifying class to be looked up both in the context of the full
-// expression (finding the template parameter) and in the context of the object
-// whose member we are accessing. This could potentially find a nested type
-// within that object. The standard goes on to require these names to refer to
-// the same entity, which this collision would violate. The lack of a safe way
-// to avoid this collision appears to be a defect in the standard, but until it
-// is corrected, we choose the name to avoid accidental collisions.
-template<typename MessageType_WorkAroundCppLookupDefect>
-inline bool WireFormatLite::ReadGroupNoVirtual(
- int field_number, io::CodedInputStream* input,
- MessageType_WorkAroundCppLookupDefect* value) {
- if (!input->IncrementRecursionDepth()) return false;
- if (!value->
- MessageType_WorkAroundCppLookupDefect::MergePartialFromCodedStream(input))
- return false;
- input->DecrementRecursionDepth();
- // Make sure the last thing read was an end tag for this group.
- if (!input->LastTagWas(MakeTag(field_number, WIRETYPE_END_GROUP))) {
- return false;
- }
- return true;
-}
-template<typename MessageType_WorkAroundCppLookupDefect>
-inline bool WireFormatLite::ReadMessageNoVirtual(
- io::CodedInputStream* input, MessageType_WorkAroundCppLookupDefect* value) {
- uint32 length;
- if (!input->ReadVarint32(&length)) return false;
- if (!input->IncrementRecursionDepth()) return false;
- io::CodedInputStream::Limit limit = input->PushLimit(length);
- if (!value->
- MessageType_WorkAroundCppLookupDefect::MergePartialFromCodedStream(input))
- return false;
- // Make sure that parsing stopped when the limit was hit, not at an endgroup
- // tag.
- if (!input->ConsumedEntireMessage()) return false;
- input->PopLimit(limit);
- input->DecrementRecursionDepth();
- return true;
-}
-
-// ===================================================================
-
-inline void WireFormatLite::WriteTag(int field_number, WireType type,
- io::CodedOutputStream* output) {
- output->WriteTag(MakeTag(field_number, type));
-}
-
-inline void WireFormatLite::WriteInt32NoTag(int32 value,
- io::CodedOutputStream* output) {
- output->WriteVarint32SignExtended(value);
-}
-inline void WireFormatLite::WriteInt64NoTag(int64 value,
- io::CodedOutputStream* output) {
- output->WriteVarint64(static_cast<uint64>(value));
-}
-inline void WireFormatLite::WriteUInt32NoTag(uint32 value,
- io::CodedOutputStream* output) {
- output->WriteVarint32(value);
-}
-inline void WireFormatLite::WriteUInt64NoTag(uint64 value,
- io::CodedOutputStream* output) {
- output->WriteVarint64(value);
-}
-inline void WireFormatLite::WriteSInt32NoTag(int32 value,
- io::CodedOutputStream* output) {
- output->WriteVarint32(ZigZagEncode32(value));
-}
-inline void WireFormatLite::WriteSInt64NoTag(int64 value,
- io::CodedOutputStream* output) {
- output->WriteVarint64(ZigZagEncode64(value));
-}
-inline void WireFormatLite::WriteFixed32NoTag(uint32 value,
- io::CodedOutputStream* output) {
- output->WriteLittleEndian32(value);
-}
-inline void WireFormatLite::WriteFixed64NoTag(uint64 value,
- io::CodedOutputStream* output) {
- output->WriteLittleEndian64(value);
-}
-inline void WireFormatLite::WriteSFixed32NoTag(int32 value,
- io::CodedOutputStream* output) {
- output->WriteLittleEndian32(static_cast<uint32>(value));
-}
-inline void WireFormatLite::WriteSFixed64NoTag(int64 value,
- io::CodedOutputStream* output) {
- output->WriteLittleEndian64(static_cast<uint64>(value));
-}
-inline void WireFormatLite::WriteFloatNoTag(float value,
- io::CodedOutputStream* output) {
- output->WriteLittleEndian32(EncodeFloat(value));
-}
-inline void WireFormatLite::WriteDoubleNoTag(double value,
- io::CodedOutputStream* output) {
- output->WriteLittleEndian64(EncodeDouble(value));
-}
-inline void WireFormatLite::WriteBoolNoTag(bool value,
- io::CodedOutputStream* output) {
- output->WriteVarint32(value ? 1 : 0);
-}
-inline void WireFormatLite::WriteEnumNoTag(int value,
- io::CodedOutputStream* output) {
- output->WriteVarint32SignExtended(value);
-}
-
-// See comment on ReadGroupNoVirtual to understand the need for this template
-// parameter name.
-template<typename MessageType_WorkAroundCppLookupDefect>
-inline void WireFormatLite::WriteGroupNoVirtual(
- int field_number, const MessageType_WorkAroundCppLookupDefect& value,
- io::CodedOutputStream* output) {
- WriteTag(field_number, WIRETYPE_START_GROUP, output);
- value.MessageType_WorkAroundCppLookupDefect::SerializeWithCachedSizes(output);
- WriteTag(field_number, WIRETYPE_END_GROUP, output);
-}
-template<typename MessageType_WorkAroundCppLookupDefect>
-inline void WireFormatLite::WriteMessageNoVirtual(
- int field_number, const MessageType_WorkAroundCppLookupDefect& value,
- io::CodedOutputStream* output) {
- WriteTag(field_number, WIRETYPE_LENGTH_DELIMITED, output);
- output->WriteVarint32(
- value.MessageType_WorkAroundCppLookupDefect::GetCachedSize());
- value.MessageType_WorkAroundCppLookupDefect::SerializeWithCachedSizes(output);
-}
-
-// ===================================================================
-
-inline uint8* WireFormatLite::WriteTagToArray(int field_number,
- WireType type,
- uint8* target) {
- return io::CodedOutputStream::WriteTagToArray(MakeTag(field_number, type),
- target);
-}
-
-inline uint8* WireFormatLite::WriteInt32NoTagToArray(int32 value,
- uint8* target) {
- return io::CodedOutputStream::WriteVarint32SignExtendedToArray(value, target);
-}
-inline uint8* WireFormatLite::WriteInt64NoTagToArray(int64 value,
- uint8* target) {
- return io::CodedOutputStream::WriteVarint64ToArray(
- static_cast<uint64>(value), target);
-}
-inline uint8* WireFormatLite::WriteUInt32NoTagToArray(uint32 value,
- uint8* target) {
- return io::CodedOutputStream::WriteVarint32ToArray(value, target);
-}
-inline uint8* WireFormatLite::WriteUInt64NoTagToArray(uint64 value,
- uint8* target) {
- return io::CodedOutputStream::WriteVarint64ToArray(value, target);
-}
-inline uint8* WireFormatLite::WriteSInt32NoTagToArray(int32 value,
- uint8* target) {
- return io::CodedOutputStream::WriteVarint32ToArray(ZigZagEncode32(value),
- target);
-}
-inline uint8* WireFormatLite::WriteSInt64NoTagToArray(int64 value,
- uint8* target) {
- return io::CodedOutputStream::WriteVarint64ToArray(ZigZagEncode64(value),
- target);
-}
-inline uint8* WireFormatLite::WriteFixed32NoTagToArray(uint32 value,
- uint8* target) {
- return io::CodedOutputStream::WriteLittleEndian32ToArray(value, target);
-}
-inline uint8* WireFormatLite::WriteFixed64NoTagToArray(uint64 value,
- uint8* target) {
- return io::CodedOutputStream::WriteLittleEndian64ToArray(value, target);
-}
-inline uint8* WireFormatLite::WriteSFixed32NoTagToArray(int32 value,
- uint8* target) {
- return io::CodedOutputStream::WriteLittleEndian32ToArray(
- static_cast<uint32>(value), target);
-}
-inline uint8* WireFormatLite::WriteSFixed64NoTagToArray(int64 value,
- uint8* target) {
- return io::CodedOutputStream::WriteLittleEndian64ToArray(
- static_cast<uint64>(value), target);
-}
-inline uint8* WireFormatLite::WriteFloatNoTagToArray(float value,
- uint8* target) {
- return io::CodedOutputStream::WriteLittleEndian32ToArray(EncodeFloat(value),
- target);
-}
-inline uint8* WireFormatLite::WriteDoubleNoTagToArray(double value,
- uint8* target) {
- return io::CodedOutputStream::WriteLittleEndian64ToArray(EncodeDouble(value),
- target);
-}
-inline uint8* WireFormatLite::WriteBoolNoTagToArray(bool value,
- uint8* target) {
- return io::CodedOutputStream::WriteVarint32ToArray(value ? 1 : 0, target);
-}
-inline uint8* WireFormatLite::WriteEnumNoTagToArray(int value,
- uint8* target) {
- return io::CodedOutputStream::WriteVarint32SignExtendedToArray(value, target);
-}
-
-inline uint8* WireFormatLite::WriteInt32ToArray(int field_number,
- int32 value,
- uint8* target) {
- target = WriteTagToArray(field_number, WIRETYPE_VARINT, target);
- return WriteInt32NoTagToArray(value, target);
-}
-inline uint8* WireFormatLite::WriteInt64ToArray(int field_number,
- int64 value,
- uint8* target) {
- target = WriteTagToArray(field_number, WIRETYPE_VARINT, target);
- return WriteInt64NoTagToArray(value, target);
-}
-inline uint8* WireFormatLite::WriteUInt32ToArray(int field_number,
- uint32 value,
- uint8* target) {
- target = WriteTagToArray(field_number, WIRETYPE_VARINT, target);
- return WriteUInt32NoTagToArray(value, target);
-}
-inline uint8* WireFormatLite::WriteUInt64ToArray(int field_number,
- uint64 value,
- uint8* target) {
- target = WriteTagToArray(field_number, WIRETYPE_VARINT, target);
- return WriteUInt64NoTagToArray(value, target);
-}
-inline uint8* WireFormatLite::WriteSInt32ToArray(int field_number,
- int32 value,
- uint8* target) {
- target = WriteTagToArray(field_number, WIRETYPE_VARINT, target);
- return WriteSInt32NoTagToArray(value, target);
-}
-inline uint8* WireFormatLite::WriteSInt64ToArray(int field_number,
- int64 value,
- uint8* target) {
- target = WriteTagToArray(field_number, WIRETYPE_VARINT, target);
- return WriteSInt64NoTagToArray(value, target);
-}
-inline uint8* WireFormatLite::WriteFixed32ToArray(int field_number,
- uint32 value,
- uint8* target) {
- target = WriteTagToArray(field_number, WIRETYPE_FIXED32, target);
- return WriteFixed32NoTagToArray(value, target);
-}
-inline uint8* WireFormatLite::WriteFixed64ToArray(int field_number,
- uint64 value,
- uint8* target) {
- target = WriteTagToArray(field_number, WIRETYPE_FIXED64, target);
- return WriteFixed64NoTagToArray(value, target);
-}
-inline uint8* WireFormatLite::WriteSFixed32ToArray(int field_number,
- int32 value,
- uint8* target) {
- target = WriteTagToArray(field_number, WIRETYPE_FIXED32, target);
- return WriteSFixed32NoTagToArray(value, target);
-}
-inline uint8* WireFormatLite::WriteSFixed64ToArray(int field_number,
- int64 value,
- uint8* target) {
- target = WriteTagToArray(field_number, WIRETYPE_FIXED64, target);
- return WriteSFixed64NoTagToArray(value, target);
-}
-inline uint8* WireFormatLite::WriteFloatToArray(int field_number,
- float value,
- uint8* target) {
- target = WriteTagToArray(field_number, WIRETYPE_FIXED32, target);
- return WriteFloatNoTagToArray(value, target);
-}
-inline uint8* WireFormatLite::WriteDoubleToArray(int field_number,
- double value,
- uint8* target) {
- target = WriteTagToArray(field_number, WIRETYPE_FIXED64, target);
- return WriteDoubleNoTagToArray(value, target);
-}
-inline uint8* WireFormatLite::WriteBoolToArray(int field_number,
- bool value,
- uint8* target) {
- target = WriteTagToArray(field_number, WIRETYPE_VARINT, target);
- return WriteBoolNoTagToArray(value, target);
-}
-inline uint8* WireFormatLite::WriteEnumToArray(int field_number,
- int value,
- uint8* target) {
- target = WriteTagToArray(field_number, WIRETYPE_VARINT, target);
- return WriteEnumNoTagToArray(value, target);
-}
-
-inline uint8* WireFormatLite::WriteStringToArray(int field_number,
- const string& value,
- uint8* target) {
- // String is for UTF-8 text only
- // WARNING: In wire_format.cc, both strings and bytes are handled by
- // WriteString() to avoid code duplication. If the implementations become
- // different, you will need to update that usage.
- target = WriteTagToArray(field_number, WIRETYPE_LENGTH_DELIMITED, target);
- target = io::CodedOutputStream::WriteVarint32ToArray(value.size(), target);
- return io::CodedOutputStream::WriteStringToArray(value, target);
-}
-inline uint8* WireFormatLite::WriteBytesToArray(int field_number,
- const string& value,
- uint8* target) {
- target = WriteTagToArray(field_number, WIRETYPE_LENGTH_DELIMITED, target);
- target = io::CodedOutputStream::WriteVarint32ToArray(value.size(), target);
- return io::CodedOutputStream::WriteStringToArray(value, target);
-}
-
-
-inline uint8* WireFormatLite::WriteGroupToArray(int field_number,
- const MessageLite& value,
- uint8* target) {
- target = WriteTagToArray(field_number, WIRETYPE_START_GROUP, target);
- target = value.SerializeWithCachedSizesToArray(target);
- return WriteTagToArray(field_number, WIRETYPE_END_GROUP, target);
-}
-inline uint8* WireFormatLite::WriteMessageToArray(int field_number,
- const MessageLite& value,
- uint8* target) {
- target = WriteTagToArray(field_number, WIRETYPE_LENGTH_DELIMITED, target);
- target = io::CodedOutputStream::WriteVarint32ToArray(
- value.GetCachedSize(), target);
- return value.SerializeWithCachedSizesToArray(target);
-}
-
-// See comment on ReadGroupNoVirtual to understand the need for this template
-// parameter name.
-template<typename MessageType_WorkAroundCppLookupDefect>
-inline uint8* WireFormatLite::WriteGroupNoVirtualToArray(
- int field_number, const MessageType_WorkAroundCppLookupDefect& value,
- uint8* target) {
- target = WriteTagToArray(field_number, WIRETYPE_START_GROUP, target);
- target = value.MessageType_WorkAroundCppLookupDefect
- ::SerializeWithCachedSizesToArray(target);
- return WriteTagToArray(field_number, WIRETYPE_END_GROUP, target);
-}
-template<typename MessageType_WorkAroundCppLookupDefect>
-inline uint8* WireFormatLite::WriteMessageNoVirtualToArray(
- int field_number, const MessageType_WorkAroundCppLookupDefect& value,
- uint8* target) {
- target = WriteTagToArray(field_number, WIRETYPE_LENGTH_DELIMITED, target);
- target = io::CodedOutputStream::WriteVarint32ToArray(
- value.MessageType_WorkAroundCppLookupDefect::GetCachedSize(), target);
- return value.MessageType_WorkAroundCppLookupDefect
- ::SerializeWithCachedSizesToArray(target);
-}
-
-// ===================================================================
-
-inline int WireFormatLite::Int32Size(int32 value) {
- return io::CodedOutputStream::VarintSize32SignExtended(value);
-}
-inline int WireFormatLite::Int64Size(int64 value) {
- return io::CodedOutputStream::VarintSize64(static_cast<uint64>(value));
-}
-inline int WireFormatLite::UInt32Size(uint32 value) {
- return io::CodedOutputStream::VarintSize32(value);
-}
-inline int WireFormatLite::UInt64Size(uint64 value) {
- return io::CodedOutputStream::VarintSize64(value);
-}
-inline int WireFormatLite::SInt32Size(int32 value) {
- return io::CodedOutputStream::VarintSize32(ZigZagEncode32(value));
-}
-inline int WireFormatLite::SInt64Size(int64 value) {
- return io::CodedOutputStream::VarintSize64(ZigZagEncode64(value));
-}
-inline int WireFormatLite::EnumSize(int value) {
- return io::CodedOutputStream::VarintSize32SignExtended(value);
-}
-
-inline int WireFormatLite::StringSize(const string& value) {
- return io::CodedOutputStream::VarintSize32(value.size()) +
- value.size();
-}
-inline int WireFormatLite::BytesSize(const string& value) {
- return io::CodedOutputStream::VarintSize32(value.size()) +
- value.size();
-}
-
-
-inline int WireFormatLite::GroupSize(const MessageLite& value) {
- return value.ByteSize();
-}
-inline int WireFormatLite::MessageSize(const MessageLite& value) {
- int size = value.ByteSize();
- return io::CodedOutputStream::VarintSize32(size) + size;
-}
-
-// See comment on ReadGroupNoVirtual to understand the need for this template
-// parameter name.
-template<typename MessageType_WorkAroundCppLookupDefect>
-inline int WireFormatLite::GroupSizeNoVirtual(
- const MessageType_WorkAroundCppLookupDefect& value) {
- return value.MessageType_WorkAroundCppLookupDefect::ByteSize();
-}
-template<typename MessageType_WorkAroundCppLookupDefect>
-inline int WireFormatLite::MessageSizeNoVirtual(
- const MessageType_WorkAroundCppLookupDefect& value) {
- int size = value.MessageType_WorkAroundCppLookupDefect::ByteSize();
- return io::CodedOutputStream::VarintSize32(size) + size;
-}
-
-} // namespace internal
-} // namespace protobuf
-
-} // namespace google
-#endif // GOOGLE_PROTOBUF_WIRE_FORMAT_LITE_INL_H__
diff --git a/src/bindings/swig/php/uscxmlNativePHP.php b/src/bindings/swig/php/uscxmlNativePHP.php
index a47e76f..7ca2e84 100644
--- a/src/bindings/swig/php/uscxmlNativePHP.php
+++ b/src/bindings/swig/php/uscxmlNativePHP.php
@@ -415,12 +415,12 @@ class Event {
Event_setDOM($this->_cPtr,$dom);
}
- function getFirstDOMElement() {
- return Event_getFirstDOMElement($this->_cPtr);
+ static function getFirstDOMElement($self_or_dom) {
+ return Event_getFirstDOMElement($self_or_dom);
}
- function getStrippedDOM() {
- return Event_getStrippedDOM($this->_cPtr);
+ static function getStrippedDOM($self_or_dom) {
+ return Event_getStrippedDOM($self_or_dom);
}
function getRaw() {
diff --git a/src/uscxml/CMakeLists.txt b/src/uscxml/CMakeLists.txt
index 3167405..d96895e 100644
--- a/src/uscxml/CMakeLists.txt
+++ b/src/uscxml/CMakeLists.txt
@@ -3,56 +3,59 @@
############################################################
file(GLOB_RECURSE USCXML_SERVER
- src/uscxml/server/*.cpp
- src/uscxml/server/*.h
+ server/*.cpp
+ server/*.h
)
source_group("Interpreter" FILES ${USCXML_SERVER})
list (APPEND USCXML_FILES ${USCXML_SERVER})
file(GLOB_RECURSE USCXML_CONCURRENCY
- src/uscxml/concurrency/*.cpp
- src/uscxml/concurrency/*.h
+ concurrency/*.cpp
+ concurrency/*.h
)
source_group("Interpreter" FILES ${USCXML_CONCURRENCY})
list (APPEND USCXML_FILES ${USCXML_CONCURRENCY})
file(GLOB_RECURSE USCXML_DEBUG
- src/uscxml/debug/*.cpp
- src/uscxml/debug/*.h
+ debug/*.cpp
+ debug/*.h
)
source_group("Interpreter" FILES ${USCXML_DEBUG})
list (APPEND USCXML_FILES ${USCXML_DEBUG})
file(GLOB_RECURSE USCXML_INTERPRETERS
- src/uscxml/interpreter/*.cpp
- src/uscxml/interpreter/*.h
+ interpreter/*.cpp
+ interpreter/*.h
)
source_group("Interpreter" FILES ${USCXML_INTERPRETERS})
list (APPEND USCXML_FILES ${USCXML_INTERPRETERS})
file(GLOB USCXML_CORE
${CMAKE_SOURCE_DIR}/contrib/src/jsmn/jsmn.c
- src/uscxml/*.cpp
- src/uscxml/*.h
+ *.cpp
+ *.h
)
source_group("Interpreter" FILES ${USCXML_CORE})
list (APPEND USCXML_FILES ${USCXML_CORE})
if (BUILD_AS_PLUGINS)
- list (APPEND USCXML_INCLUDE_DIRS ${PROJECT_SOURCE_DIR}/src/uscxml/plugins)
+ list (APPEND USCXML_INCLUDE_DIRS ${PROJECT_SOURCE_DIR}/plugins)
file(GLOB PLUMA
- src/uscxml/plugins/Pluma/*.cpp
- src/uscxml/plugins/Pluma/*.h
- src/uscxml/plugins/*.cpp
- src/uscxml/plugins/*.h
+ plugins/Pluma/*.cpp
+ plugins/Pluma/*.h
+ plugins/*.cpp
+ plugins/*.h
)
source_group("Interpreter" FILES ${PLUMA})
list (APPEND USCXML_FILES ${PLUMA})
add_definitions("-DBUILD_AS_PLUGINS")
endif()
-include(src/uscxml/plugins/datamodel/CMakeLists.txt)
-include(src/uscxml/plugins/element/CMakeLists.txt)
-include(src/uscxml/plugins/invoker/CMakeLists.txt)
-include(src/uscxml/plugins/ioprocessor/CMakeLists.txt)
+add_subdirectory(plugins/datamodel)
+add_subdirectory(plugins/element)
+add_subdirectory(plugins/ioprocessor)
+add_subdirectory(plugins/invoker)
+set(USCXML_INCLUDE_DIRS ${USCXML_INCLUDE_DIRS} PARENT_SCOPE)
+set(USCXML_OPT_LIBS ${USCXML_OPT_LIBS} PARENT_SCOPE)
+set(USCXML_FILES ${USCXML_FILES} PARENT_SCOPE)
diff --git a/src/uscxml/Factory.cpp b/src/uscxml/Factory.cpp
index 5c9b206..9c59259 100644
--- a/src/uscxml/Factory.cpp
+++ b/src/uscxml/Factory.cpp
@@ -20,6 +20,7 @@
# ifdef UMUNDO_FOUND
# include "uscxml/plugins/invoker/umundo/UmundoInvoker.h"
+# include "uscxml/plugins/invoker/vxml/VoiceXMLInvoker.h"
# endif
# ifdef OPENSCENEGRAPH_FOUND
@@ -100,6 +101,10 @@ Factory::Factory() {
UmundoInvoker* invoker = new UmundoInvoker();
registerInvoker(invoker);
}
+ {
+ VoiceXMLInvoker* invoker = new VoiceXMLInvoker();
+ registerInvoker(invoker);
+ }
#endif
#ifdef MILES_FOUND
diff --git a/src/uscxml/Message.cpp b/src/uscxml/Message.cpp
index 8a65ed2..dbcf976 100644
--- a/src/uscxml/Message.cpp
+++ b/src/uscxml/Message.cpp
@@ -239,12 +239,12 @@ Data Data::fromJSON(const std::string& jsonString) {
free(t);
// LOG(INFO) << "Increasing JSON length to token ratio to 1/" << frac;
}
- t = (jsmntok_t*)malloc(nrTokens * sizeof(jsmntok_t) + 1);
+ t = (jsmntok_t*)malloc((nrTokens + 1) * sizeof(jsmntok_t));
if (t == NULL) {
LOG(ERROR) << "Cannot parse JSON, ran out of memory!";
return data;
}
- memset(t, 0, nrTokens * sizeof(jsmntok_t) + 1);
+ memset(t, 0, (nrTokens + 1) * sizeof(jsmntok_t));
rv = jsmn_parse(&p, trimmed.c_str(), t, nrTokens);
} while (rv == JSMN_ERROR_NOMEM && frac > 1);
@@ -276,6 +276,7 @@ Data Data::fromJSON(const std::string& jsonString) {
size_t currTok = 0;
do {
+ jsmntok_t t2 = t[currTok];
switch (t[currTok].type) {
case JSMN_STRING:
dataStack.back()->type = Data::VERBATIM;
diff --git a/src/uscxml/plugins/datamodel/CMakeLists.txt b/src/uscxml/plugins/datamodel/CMakeLists.txt
index 0634984..8acbcf7 100644
--- a/src/uscxml/plugins/datamodel/CMakeLists.txt
+++ b/src/uscxml/plugins/datamodel/CMakeLists.txt
@@ -3,13 +3,13 @@ if (APPLE AND IOS AND OFF)
FIND_LIBRARY(JSC_LIBRARY JavaScriptCore)
set(JSC_FOUND ON)
file(GLOB JSC_DATAMODEL
- src/uscxml/plugins/datamodel/ecmascript/JavaScriptCore/*.cpp
- src/uscxml/plugins/datamodel/ecmascript/JavaScriptCore/*.h
+ ecmascript/JavaScriptCore/*.cpp
+ ecmascript/JavaScriptCore/*.h
)
source_group("Datamodel\\jsc" FILES ${JSC_DATAMODEL})
file(GLOB_RECURSE JSC_DOM
- src/uscxml/plugins/datamodel/ecmascript/JavaScriptCore/dom/*.cpp
- src/uscxml/plugins/datamodel/ecmascript/JavaScriptCore/dom/*.h
+ ecmascript/JavaScriptCore/dom/*.cpp
+ ecmascript/JavaScriptCore/dom/*.h
)
source_group("Datamodel\\DOM" FILES ${JSC_DOM})
if (BUILD_AS_PLUGINS)
@@ -33,8 +33,8 @@ endif()
# NULL datamodel
file(GLOB NULL_DATAMODEL
- src/uscxml/plugins/datamodel/null/*.cpp
- src/uscxml/plugins/datamodel/null/*.h
+ null/*.cpp
+ null/*.h
)
source_group("Datamodel\\null" FILES ${NULL_DATAMODEL})
if (BUILD_AS_PLUGINS)
@@ -49,8 +49,8 @@ endif()
# XPath datamodel
file(GLOB XPATH_DATAMODEL
- src/uscxml/plugins/datamodel/xpath/*.cpp
- src/uscxml/plugins/datamodel/xpath/*.h
+ xpath/*.cpp
+ xpath/*.h
)
source_group("Datamodel\\xpath" FILES ${XPATH_DATAMODEL})
if (BUILD_AS_PLUGINS)
@@ -66,17 +66,15 @@ endif()
#if (NOT APPLE OR IOS)
# set(ENV{V8_SRC} ${CMAKE_SOURCE_DIR}/../v8)
- find_package(V8)
if (V8_FOUND)
- list (APPEND USCXML_INCLUDE_DIRS ${V8_INCLUDE_DIR})
file(GLOB V8_DATAMODEL
- src/uscxml/plugins/datamodel/ecmascript/v8/*.cpp
- src/uscxml/plugins/datamodel/ecmascript/v8/*.h
+ ecmascript/v8/*.cpp
+ ecmascript/v8/*.h
)
source_group("Datamodel\\v8" FILES ${V8_DATAMODEL})
file(GLOB_RECURSE V8_DOM
- src/uscxml/plugins/datamodel/ecmascript/v8/dom/*.cpp
- src/uscxml/plugins/datamodel/ecmascript/v8/dom/*.h
+ ecmascript/v8/dom/*.cpp
+ ecmascript/v8/dom/*.h
)
source_group("Datamodel\\v8\\DOM" FILES ${V8_DOM})
@@ -92,7 +90,6 @@ endif()
else()
list (APPEND USCXML_FILES ${V8_DATAMODEL})
list (APPEND USCXML_FILES ${V8_DOM})
- list (APPEND USCXML_OPT_LIBS ${V8_LIBRARY})
endif()
endif()
#endif()
@@ -100,19 +97,18 @@ endif()
# SWI PROLOG datamodel
-#set(SWI_INCLUDE_HINT ${CMAKE_SOURCE_DIR}/../pl-devel/include)
-#set(SWI_LIBRARY_HINT ${CMAKE_SOURCE_DIR}/../pl-devel/lib/x86_64-darwin12.2.0)
-find_package(SWI)
-#find_package(GMP)
-#find_package(CURSES)
if (SWI_FOUND)
- list (APPEND USCXML_INCLUDE_DIRS ${SWI_INCLUDE_DIR})
# message(FATAL_ERROR "SWI_INCLUDE_DIR: ${SWI_INCLUDE_DIR}")
-# include_directories(${GMP_INCLUDE_DIR})
-# include_directories(${CURSES_INCLUDE_DIR})
+
+ # if(${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang")
+ # set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -read_only_relocs suppress")
+ # set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -read_only_relocs suppress")
+ # set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -read_only_relocs suppress")
+ # set(CMAKE_LINKER_FLAGS "${CMAKE_LINKER_FLAGS} -read_only_relocs suppress")
+ # endif()
file(GLOB_RECURSE SWI_DATAMODEL
- src/uscxml/plugins/datamodel/prolog/swi/*.cpp
- src/uscxml/plugins/datamodel/prolog/swi/*.h
+ prolog/swi/*.cpp
+ prolog/swi/*.h
)
source_group("Datamodel\\swi" FILES ${SWI_DATAMODEL})
if (BUILD_AS_PLUGINS)
@@ -121,12 +117,14 @@ if (SWI_FOUND)
${SWI_DATAMODEL})
target_link_libraries(datamodel_swi
uscxml
-# ${GMP_LIBRARY}
-# ${CURSES_LIBRARIES}
+ ${GMP_LIBRARY}
+ ${CURSES_LIBRARIES}
${SWI_LIBRARY})
set_target_properties(datamodel_swi PROPERTIES FOLDER "Plugin DataModel")
else()
list (APPEND USCXML_FILES ${SWI_DATAMODEL})
- list (APPEND USCXML_OPT_LIBS ${SWI_LIBRARY}) # ${GMP_LIBRARY} ${CURSES_LIBRARIES})
endif()
endif()
+
+set(USCXML_INCLUDE_DIRS ${USCXML_INCLUDE_DIRS} PARENT_SCOPE)
+set(USCXML_FILES ${USCXML_FILES} PARENT_SCOPE) \ No newline at end of file
diff --git a/src/uscxml/plugins/datamodel/xpath/XPathDataModel.cpp b/src/uscxml/plugins/datamodel/xpath/XPathDataModel.cpp
index 1af56b5..6b2f039 100644
--- a/src/uscxml/plugins/datamodel/xpath/XPathDataModel.cpp
+++ b/src/uscxml/plugins/datamodel/xpath/XPathDataModel.cpp
@@ -338,7 +338,7 @@ std::string XPathDataModel::evalAsString(const std::string& expr) {
case STRING:
return result.asString();
break;
- case BOOL:
+ case Arabica::XPath::BOOL: // MSVC croaks with ambiguous symbol without qualified name
return (result.asBool() ? "true" : "false");
break;
case NUMBER:
@@ -482,10 +482,11 @@ void XPathDataModel::init(const Element<std::string>& dataElem,
case STRING:
container.appendChild(_doc.createTextNode(expr.asString()));
break;
- case NUMBER:
+ case NUMBER: {
container.appendChild(_doc.createTextNode(toStr(expr.asNumber())));
break;
- case BOOL:
+ }
+ case Arabica::XPath::BOOL:
case ANY:
throw Event("error.execution", Event::PLATFORM);
}
@@ -531,7 +532,7 @@ void XPathDataModel::assign(const XPathValue<std::string>& key,
case STRING:
assign(key.asNodeSet(), value.asString(), assignElem);
break;
- case BOOL:
+ case Arabica::XPath::BOOL:
assign(key.asNodeSet(), value.asBool(), assignElem);
break;
case NUMBER:
@@ -546,7 +547,7 @@ void XPathDataModel::assign(const XPathValue<std::string>& key,
break;
}
case STRING:
- case BOOL:
+ case Arabica::XPath::BOOL:
case NUMBER:
case ANY:
throw Event("error.execution", Event::PLATFORM);
@@ -564,7 +565,7 @@ void XPathDataModel::assign(const XPathValue<std::string>& key,
break;
}
case STRING:
- case BOOL:
+ case Arabica::XPath::BOOL:
case NUMBER:
case ANY:
throw Event("error.execution", Event::PLATFORM);
diff --git a/src/uscxml/plugins/element/CMakeLists.txt b/src/uscxml/plugins/element/CMakeLists.txt
index fa54fc3..0c9cbda 100644
--- a/src/uscxml/plugins/element/CMakeLists.txt
+++ b/src/uscxml/plugins/element/CMakeLists.txt
@@ -1,8 +1,8 @@
# Fetch element
file(GLOB_RECURSE FETCH_ELEMENT
- src/uscxml/plugins/element/fetch/*.cpp
- src/uscxml/plugins/element/fetch/*.h
+ fetch/*.cpp
+ fetch/*.h
)
source_group("Element\\fetch" FILES ${FETCH_ELEMENT})
if (BUILD_AS_PLUGINS)
@@ -19,8 +19,8 @@ endif()
# Postpone element
file(GLOB_RECURSE POSTPONE_ELEMENT
- src/uscxml/plugins/element/postpone/*.cpp
- src/uscxml/plugins/element/postpone/*.h
+ postpone/*.cpp
+ postpone/*.h
)
source_group("Element\\postpone" FILES ${POSTPONE_ELEMENT})
if (BUILD_AS_PLUGINS)
@@ -37,8 +37,8 @@ endif()
# Respond element
file(GLOB_RECURSE RESPOND_ELEMENT
- src/uscxml/plugins/element/respond/*.cpp
- src/uscxml/plugins/element/respond/*.h
+ respond/*.cpp
+ respond/*.h
)
source_group("Element\\respond" FILES ${RESPOND_ELEMENT})
if (BUILD_AS_PLUGINS)
@@ -51,3 +51,5 @@ else()
list (APPEND USCXML_FILES ${RESPOND_ELEMENT})
endif()
+set(USCXML_INCLUDE_DIRS ${USCXML_INCLUDE_DIRS} PARENT_SCOPE)
+set(USCXML_FILES ${USCXML_FILES} PARENT_SCOPE) \ No newline at end of file
diff --git a/src/uscxml/plugins/invoker/CMakeLists.txt b/src/uscxml/plugins/invoker/CMakeLists.txt
index 4d38199..3f43acb 100644
--- a/src/uscxml/plugins/invoker/CMakeLists.txt
+++ b/src/uscxml/plugins/invoker/CMakeLists.txt
@@ -1,7 +1,7 @@
# sample invoker - include to make sure it compiles
file(GLOB_RECURSE SAMPLE_INVOKER
- src/uscxml/plugins/invoker/sample/*.cpp
- src/uscxml/plugins/invoker/sample/*.h
+ sample/*.cpp
+ sample/*.h
)
source_group("Invoker\\sample" FILES ${SAMPLE_INVOKER})
if (BUILD_AS_PLUGINS)
@@ -18,8 +18,8 @@ endif()
# DirMon invoker to watch for filesystem changes
file(GLOB_RECURSE DIRMON_INVOKER
- src/uscxml/plugins/invoker/filesystem/dirmon/*.cpp
- src/uscxml/plugins/invoker/filesystem/dirmon/*.h
+ filesystem/dirmon/*.cpp
+ filesystem/dirmon/*.h
)
source_group("Invoker\\dirmon" FILES ${DIRMON_INVOKER})
if (BUILD_AS_PLUGINS)
@@ -36,8 +36,8 @@ endif()
# System invoker to open a native command
file(GLOB_RECURSE SYSTEM_INVOKER
- src/uscxml/plugins/invoker/system/*.cpp
- src/uscxml/plugins/invoker/system/*.h
+ system/*.cpp
+ system/*.h
)
source_group("Invoker\\system" FILES ${SYSTEM_INVOKER})
if (BUILD_AS_PLUGINS)
@@ -53,11 +53,10 @@ endif()
# SQLite3 SQL Invoker
-find_package(Sqlite3)
if (SQLITE3_FOUND)
file(GLOB_RECURSE SQLITE3_INVOKER
- src/uscxml/plugins/invoker/sqlite3/*.cpp
- src/uscxml/plugins/invoker/sqlite3/*.h
+ sqlite3/*.cpp
+ sqlite3/*.h
)
source_group("Invoker\\sqlite" FILES ${SQLITE3_INVOKER})
if (BUILD_AS_PLUGINS)
@@ -74,12 +73,10 @@ endif()
# ffmpeg invoker
-find_package(FFMPEG)
if (FFMPEG_FOUND)
- list (APPEND USCXML_INCLUDE_DIRS ${FFMPEG_INCLUDE_DIR})
file(GLOB_RECURSE FFMPEG_INVOKER
- src/uscxml/plugins/invoker/ffmpeg/*.cpp
- src/uscxml/plugins/invoker/ffmpeg/*.h
+ ffmpeg/*.cpp
+ ffmpeg/*.h
)
source_group("Invoker\\ffmpeg" FILES ${FFMPEG_INVOKER})
if (BUILD_AS_PLUGINS)
@@ -96,16 +93,10 @@ endif()
# UMUNDO invoker
-if (WIN32)
- find_package(UMUNDO COMPONENTS convenience)
-else()
- find_package(UMUNDO COMPONENTS rpc serial core)
-endif()
if (UMUNDO_FOUND)
- list (APPEND USCXML_INCLUDE_DIRS ${UMUNDO_INCLUDE_DIR})
file(GLOB_RECURSE UMUNDO_INVOKER
- src/uscxml/plugins/invoker/umundo/*.cpp
- src/uscxml/plugins/invoker/umundo/*.h)
+ umundo/*.cpp
+ umundo/*.h)
source_group("Invoker\\umundo" FILES ${UMUNDO_INVOKER})
if (BUILD_AS_PLUGINS)
add_library(
@@ -117,17 +108,15 @@ if (UMUNDO_FOUND)
set_target_properties(invoker_umundo PROPERTIES FOLDER "Plugin Invoker")
else()
list (APPEND USCXML_FILES ${UMUNDO_INVOKER})
- list (APPEND USCXML_OPT_LIBS ${UMUNDO_LIBRARIES})
endif()
- add_definitions("-DUMUNDO_STATIC")
endif()
# USCXML invoker
file(GLOB_RECURSE USCXML_INVOKER
- src/uscxml/plugins/invoker/scxml/*.cpp
- src/uscxml/plugins/invoker/scxml/*.h)
+ scxml/*.cpp
+ scxml/*.h)
source_group("Invoker\\uscxml" FILES ${USCXML_INVOKER})
if (BUILD_AS_PLUGINS)
add_library(
@@ -144,8 +133,8 @@ endif()
# HTTP server invoker
file(GLOB_RECURSE HTTPSERVLET_INVOKER
- src/uscxml/plugins/invoker/http/*.cpp
- src/uscxml/plugins/invoker/http/*.h)
+ http/*.cpp
+ http/*.h)
source_group("Invoker\\httpservlet" FILES ${HTTPSERVLET_INVOKER})
if (BUILD_AS_PLUGINS)
add_library(
@@ -162,8 +151,8 @@ endif()
# Heartbeat invoker
file(GLOB_RECURSE HEARTBEAT_INVOKER
- src/uscxml/plugins/invoker/heartbeat/*.cpp
- src/uscxml/plugins/invoker/heartbeat/*.h
+ heartbeat/*.cpp
+ heartbeat/*.h
)
source_group("Invoker\\heartbeat" FILES ${HEARTBEAT_INVOKER})
if (BUILD_AS_PLUGINS)
@@ -178,22 +167,10 @@ endif()
# OpenSceneGraph invoker
-if (UNIX)
- set(CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES_ORIG}) # link dynamically!
-elseif(WIN32)
- if (ENV{OSG_ROOT} STREQUAL "")
- set(ENV{OSG_ROOT} "C:/Program Files/OpenSceneGraph-3.0.1")
- endif()
-endif()
-find_package(OpenSceneGraph COMPONENTS osgViewer osgGA osgText osgFX osgManipulator osgDB osgUtil OpenThreads)
-find_package(OpenGL)
if (OPENSCENEGRAPH_FOUND AND OPENGL_FOUND)
- list (APPEND USCXML_INCLUDE_DIRS ${OPENSCENEGRAPH_INCLUDE_DIRS})
- list (APPEND USCXML_INCLUDE_DIRS ${OPENGL_INCLUDE_DIR})
-
file(GLOB OPENSCENEGRAPH_INVOKER
- src/uscxml/plugins/invoker/graphics/openscenegraph/*.cpp
- src/uscxml/plugins/invoker/graphics/openscenegraph/*.h)
+ graphics/openscenegraph/*.cpp
+ graphics/openscenegraph/*.h)
source_group("Invoker\\scenegraph" FILES ${OPENSCENEGRAPH_INVOKER})
if (BUILD_AS_PLUGINS)
@@ -207,12 +184,11 @@ if (OPENSCENEGRAPH_FOUND AND OPENGL_FOUND)
set_target_properties(invoker_openscenegraph PROPERTIES FOLDER "Plugin Invoker")
else()
list (APPEND USCXML_FILES ${OPENSCENEGRAPH_INVOKER})
- list (APPEND USCXML_OPT_LIBS ${OPENSCENEGRAPH_LIBRARIES} ${OPENGL_LIBRARIES})
endif()
file(GLOB OPENSCENEGRAPH_CONVERTER_INVOKER
- src/uscxml/plugins/invoker/graphics/openscenegraph/converter/*.cpp
- src/uscxml/plugins/invoker/graphics/openscenegraph/converter/*.h)
+ graphics/openscenegraph/converter/*.cpp
+ graphics/openscenegraph/converter/*.h)
source_group("Invoker\\scenegraph\\convert" FILES ${OPENSCENEGRAPH_CONVERTER_INVOKER})
if (BUILD_AS_PLUGINS)
@@ -226,21 +202,14 @@ if (OPENSCENEGRAPH_FOUND AND OPENGL_FOUND)
set_target_properties(invoker_openscenegraph_convert PROPERTIES FOLDER "Plugin Invoker")
else()
list (APPEND USCXML_FILES ${OPENSCENEGRAPH_CONVERTER_INVOKER})
- list (APPEND USCXML_OPT_LIBS ${OPENSCENEGRAPH_LIBRARIES} ${OPENGL_LIBRARIES})
endif()
endif()
-if (UNIX)
- set(CMAKE_FIND_LIBRARY_SUFFIXES .lib .a ${CMAKE_FIND_LIBRARY_SUFFIXES})
-endif()
# MILES modality components
-find_package(MILES)
if (MILES_FOUND AND OFF)
- list (APPEND USCXML_INCLUDE_DIRS ${MILES_INCLUDE_DIR})
-
# openal is only needed for miles
find_package(OpenAL REQUIRED)
# find_package(JPEG REQUIRED)
@@ -249,8 +218,8 @@ if (MILES_FOUND AND OFF)
list (APPEND USCXML_INCLUDE_DIRS ${OPENAL_INCLUDE_DIR})
file(GLOB_RECURSE MILES_INVOKER
- src/uscxml/plugins/invoker/miles/*.cpp
- src/uscxml/plugins/invoker/miles/*.h)
+ miles/*.cpp
+ miles/*.h)
source_group("Invoker\\miles" FILES ${MILES_INVOKER})
# message("MILES_INVOKER ${MILES_INVOKER}")
@@ -265,8 +234,27 @@ if (MILES_FOUND AND OFF)
set_target_properties(invoker_miles PROPERTIES FOLDER "Plugin Invoker")
else()
list (APPEND USCXML_FILES ${MILES_INVOKER})
- list (APPEND USCXML_OPT_LIBS ${MILES_LIBRARIES})
- list (APPEND USCXML_OPT_LIBS ${OPENAL_LIBRARY})
endif()
endif()
+# VoiceXML modality components
+
+if (UMUNDO_FOUND)
+ file(GLOB_RECURSE VXML_INVOKER
+ vxml/*.cpp
+ vxml/*.h
+ )
+ source_group("Invoker\\voicexml" FILES ${VXML_INVOKER})
+ if (BUILD_AS_PLUGINS)
+ add_library(
+ invoker_voicexml SHARED
+ ${VXML_INVOKER})
+ target_link_libraries(invoker_voicexml uscxml)
+ set_target_properties(invoker_voicexml PROPERTIES FOLDER "Plugin Invoker")
+ else()
+ list (APPEND USCXML_FILES ${VXML_INVOKER})
+ endif()
+endif()
+
+set(USCXML_INCLUDE_DIRS ${USCXML_INCLUDE_DIRS} PARENT_SCOPE)
+set(USCXML_FILES ${USCXML_FILES} PARENT_SCOPE) \ No newline at end of file
diff --git a/src/uscxml/plugins/invoker/vxml/VoiceXMLInvoker.cpp b/src/uscxml/plugins/invoker/vxml/VoiceXMLInvoker.cpp
new file mode 100644
index 0000000..e7d1440
--- /dev/null
+++ b/src/uscxml/plugins/invoker/vxml/VoiceXMLInvoker.cpp
@@ -0,0 +1,67 @@
+#include "VoiceXMLInvoker.h"
+#include <glog/logging.h>
+
+#ifdef BUILD_AS_PLUGINS
+#include <Pluma/Connector.hpp>
+#endif
+
+namespace uscxml {
+
+#ifdef BUILD_AS_PLUGINS
+PLUMA_CONNECTOR
+bool connect(pluma::Host& host) {
+ host.add( new VoiceXMLInvokerProvider() );
+ return true;
+}
+#endif
+
+VoiceXMLInvoker::VoiceXMLInvoker() {
+}
+
+VoiceXMLInvoker::~VoiceXMLInvoker() {
+};
+
+boost::shared_ptr<IOProcessorImpl> VoiceXMLInvoker::create(InterpreterImpl* interpreter) {
+ boost::shared_ptr<VoiceXMLInvoker> invoker = boost::shared_ptr<VoiceXMLInvoker>(new VoiceXMLInvoker());
+ invoker->_interpreter = interpreter;
+ invoker->_pub = umundo::TypedPublisher("mmi:jvoicexml");
+ invoker->_sub = umundo::TypedSubscriber("mmi:jvoicexml");
+
+ invoker->_pub.registerType("LifeCycleEvent", new ::LifeCycleEvent());
+
+
+ invoker->_node.addPublisher(invoker->_pub);
+ invoker->_node.addSubscriber(invoker->_sub);
+
+ return invoker;
+}
+
+void VoiceXMLInvoker::receive(void* object, umundo::Message* msg) {
+ std::cout << msg->getMeta("um.s11n.type") << std::endl;
+}
+
+Data VoiceXMLInvoker::getDataModelVariables() {
+ Data data;
+ return data;
+}
+
+void VoiceXMLInvoker::send(const SendRequest& req) {
+ StartRequest start;
+ std::stringstream domSS;
+ domSS << req.getFirstDOMElement();
+ start.content = domSS.str();
+
+ start.contentURL.href = "http://localhost/~sradomski/hello.vxml";
+ start.requestId = "asdf";
+ start.source = "asdf";
+ start.target = "umundo://mmi/jvoicexml";
+ ::LifeCycleEvent lce = MMIProtoBridge::toProto(start);
+ _pub.sendObj("LifeCycleEvent", &lce);
+}
+
+void VoiceXMLInvoker::invoke(const InvokeRequest& req) {
+ _pub.waitForSubscribers(1);
+
+}
+
+} \ No newline at end of file
diff --git a/src/uscxml/plugins/invoker/vxml/VoiceXMLInvoker.h b/src/uscxml/plugins/invoker/vxml/VoiceXMLInvoker.h
new file mode 100644
index 0000000..450af5d
--- /dev/null
+++ b/src/uscxml/plugins/invoker/vxml/VoiceXMLInvoker.h
@@ -0,0 +1,51 @@
+#ifndef VOICEXMLINVOKER_H_W09J90F0
+#define VOICEXMLINVOKER_H_W09J90F0
+
+#include <uscxml/Interpreter.h>
+#include <uscxml/plugins/ioprocessor/modality/MMIComponent.h>
+#include <uscxml/plugins/ioprocessor/modality/MMIProtoBridge.h>
+
+#include <umundo/core.h>
+#include <umundo/s11n.h>
+
+#ifdef BUILD_AS_PLUGINS
+#include "uscxml/plugins/Plugins.h"
+#endif
+
+namespace uscxml {
+
+class VoiceXMLInvoker : public InvokerImpl, public umundo::TypedReceiver {
+public:
+ VoiceXMLInvoker();
+ virtual ~VoiceXMLInvoker();
+ virtual boost::shared_ptr<IOProcessorImpl> create(InterpreterImpl* interpreter);
+
+ virtual std::set<std::string> getNames() {
+ std::set<std::string> names;
+ names.insert("vxml");
+ names.insert("voicexml");
+ names.insert("http://www.w3.org/TR/voicexml21/");
+ return names;
+ }
+
+ virtual void receive(void* object, umundo::Message* msg);
+
+ virtual Data getDataModelVariables();
+ virtual void send(const SendRequest& req);
+ virtual void invoke(const InvokeRequest& req);
+
+
+protected:
+ umundo::Node _node;
+ umundo::TypedPublisher _pub;
+ umundo::TypedSubscriber _sub;
+};
+
+#ifdef BUILD_AS_PLUGINS
+PLUMA_INHERIT_PROVIDER(VoiceXMLInvoker, InvokerImpl);
+#endif
+
+}
+
+
+#endif /* end of include guard: VOICEXMLINVOKER_H_W09J90F0 */
diff --git a/src/uscxml/plugins/ioprocessor/CMakeLists.txt b/src/uscxml/plugins/ioprocessor/CMakeLists.txt
index c5f46e8..0fab6a4 100644
--- a/src/uscxml/plugins/ioprocessor/CMakeLists.txt
+++ b/src/uscxml/plugins/ioprocessor/CMakeLists.txt
@@ -1,8 +1,8 @@
# LIBEVENT basichttp ioprocessor - this one is already required above
file(GLOB_RECURSE BASICHTTP_IOPROCESSOR
- src/uscxml/plugins/ioprocessor/basichttp/*.cpp
- src/uscxml/plugins/ioprocessor/basichttp/*.h
+ basichttp/*.cpp
+ basichttp/*.h
)
source_group("IOProcessor\\basichttp" FILES ${BASICHTTP_IOPROCESSOR})
if (BUILD_AS_PLUGINS)
@@ -19,8 +19,8 @@ endif()
# scxml ioprocessor - this one is already required above
file(GLOB_RECURSE SCXML_IOPROCESSOR
- src/uscxml/plugins/ioprocessor/scxml/*.cpp
- src/uscxml/plugins/ioprocessor/scxml/*.h
+ scxml/*.cpp
+ scxml/*.h
)
source_group("IOProcessor\\scxml" FILES ${SCXML_IOPROCESSOR})
if (BUILD_AS_PLUGINS)
@@ -36,18 +36,41 @@ endif()
# mmi ioprocessor
-file(GLOB_RECURSE MMI_IOPROCESSOR
- src/uscxml/plugins/ioprocessor/modality/*.cpp
- src/uscxml/plugins/ioprocessor/modality/*.h
-)
-source_group("IOProcessor\\modality" FILES ${MMI_IOPROCESSOR})
-if (BUILD_AS_PLUGINS)
- add_library(
- ioprocessor_mmi SHARED
- ${MMI_IOPROCESSOR})
- target_link_libraries(ioprocessor_mmi uscxml)
- set_target_properties(ioprocessor_mmi PROPERTIES FOLDER "Plugin IOProcessor")
-else()
- list (APPEND USCXML_FILES ${MMI_IOPROCESSOR})
+if (PROTOBUF_FOUND)
+
+ if (NOT PROTOBUF_PROTOC_EXECUTABLE)
+ message(FATAL_ERROR "protoc binary required for serialization")
+ endif()
+
+ file(GLOB_RECURSE MMI_IOPROCESSOR
+ modality/*.cpp
+ modality/*.h
+ )
+
+ # process .proto files
+ file(GLOB_RECURSE PROTOBUF_INTERFACES ${PROJECT_SOURCE_DIR}/contrib/proto/*.proto)
+ list (APPEND USCXML_INCLUDE_DIRS ${CMAKE_CURRENT_BINARY_DIR})
+
+ PROTOBUF_GENERATE_CPP(PROTO_SRCS PROTO_HDRS ${PROTOBUF_INTERFACES})
+# set_source_files_properties(${PROTO_SRCS} ${PROTO_HDRS} PROPERTIES GENERATED TRUE)
+
+ # this needs to be here for dependencies on the generated proto files
+ add_library(mmi_proto STATIC ${PROTO_SRCS})
+ set_target_properties(mmi_proto PROPERTIES FOLDER "Generated")
+
+ source_group("IOProcessor\\modality" FILES ${MMI_IOPROCESSOR})
+ if (BUILD_AS_PLUGINS)
+ add_library(
+ ioprocessor_mmi SHARED
+ ${MMI_IOPROCESSOR})
+ target_link_libraries(ioprocessor_mmi uscxml mmi_proto)
+ set_target_properties(ioprocessor_mmi PROPERTIES FOLDER "Plugin IOProcessor")
+ else()
+ list (APPEND USCXML_FILES ${MMI_IOPROCESSOR})
+ list (APPEND USCXML_OPT_LIBS mmi_proto)
+ endif()
endif()
+set(USCXML_INCLUDE_DIRS ${USCXML_INCLUDE_DIRS} PARENT_SCOPE)
+set(USCXML_OPT_LIBS ${USCXML_OPT_LIBS} PARENT_SCOPE)
+set(USCXML_FILES ${USCXML_FILES} PARENT_SCOPE)
diff --git a/src/uscxml/plugins/ioprocessor/modality/MMIComponent.cpp b/src/uscxml/plugins/ioprocessor/modality/MMIComponent.cpp
index a38e275..c1e973b 100644
--- a/src/uscxml/plugins/ioprocessor/modality/MMIComponent.cpp
+++ b/src/uscxml/plugins/ioprocessor/modality/MMIComponent.cpp
@@ -1,30 +1,12 @@
#include "MMIComponent.h"
//#include <glog/logging.h>
-#ifdef BUILD_AS_PLUGINS
-#include <Pluma/Connector.hpp>
-#endif
-
namespace uscxml {
-MMIIOProcessor::MMIIOProcessor() {
-}
-
-MMIIOProcessor::~MMIIOProcessor() {
-}
-
-boost::shared_ptr<IOProcessorImpl> MMIIOProcessor::create(InterpreterImpl* interpreter) {
- boost::shared_ptr<MMIIOProcessor> invoker = boost::shared_ptr<MMIIOProcessor>(new MMIIOProcessor());
- invoker->_interpreter = interpreter;
- return invoker;
-}
-
-Data MMIIOProcessor::getDataModelVariables() {
- Data data;
- return data;
+MMIComponent::MMIComponent() {
}
-void MMIIOProcessor::send(const SendRequest& req) {
+MMIComponent::~MMIComponent() {
}
} \ No newline at end of file
diff --git a/src/uscxml/plugins/ioprocessor/modality/MMIComponent.h b/src/uscxml/plugins/ioprocessor/modality/MMIComponent.h
index ba3f2c8..990222f 100644
--- a/src/uscxml/plugins/ioprocessor/modality/MMIComponent.h
+++ b/src/uscxml/plugins/ioprocessor/modality/MMIComponent.h
@@ -1,50 +1,33 @@
#ifndef MMIIOPROCESSOR_H_W09J90F0
#define MMIIOPROCESSOR_H_W09J90F0
-#include <uscxml/Interpreter.h>
#include "MMIMessages.h"
-#ifdef BUILD_AS_PLUGINS
-#include "uscxml/plugins/Plugins.h"
-#endif
-
namespace uscxml {
-class MMIIOProcessor : public IOProcessorImpl {
+class MMIComponent {
public:
- MMIIOProcessor();
- virtual ~MMIIOProcessor();
- virtual boost::shared_ptr<IOProcessorImpl> create(InterpreterImpl* interpreter);
-
- virtual std::set<std::string> getNames() {
- return std::set<std::string>();
- };
-
- virtual Data getDataModelVariables();
- virtual void send(const SendRequest& req);
+ MMIComponent();
+ virtual ~MMIComponent();
/** Modality component */
- virtual PrepareResponse prepare(const PrepareRequest&);
- virtual StartResponse start(const StartRequest&);
- virtual CancelResponse cancel(const CancelRequest&);
- virtual PauseResponse pause(const PauseRequest&);
- virtual ResumeResponse resume(const ResumeRequest&);
- virtual ExtensionNotification extension(const ExtensionNotification&);
- virtual ClearContextRequest clearContext(const ClearContextRequest&);
- virtual StatusResponse status(const StatusRequest&);
+ virtual PrepareResponse prepare(const PrepareRequest&) = 0;
+ virtual StartResponse start(const StartRequest&) = 0;
+ virtual CancelResponse cancel(const CancelRequest&) = 0;
+ virtual PauseResponse pause(const PauseRequest&) = 0;
+ virtual ResumeResponse resume(const ResumeRequest&) = 0;
+ virtual ExtensionNotification extension(const ExtensionNotification&) = 0;
+ virtual ClearContextRequest clearContext(const ClearContextRequest&) = 0;
+ virtual StatusResponse status(const StatusRequest&) = 0;
/** Interaction Manager */
- virtual NewContextResponse newContext(const NewContextRequest&);
- virtual DoneNotification done(const DoneNotification&);
+ virtual NewContextResponse newContext(const NewContextRequest&) = 0;
+ virtual DoneNotification done(const DoneNotification&) = 0;
// virtual ExtensionNotification extension(const ExtensionNotification&);
};
-#ifdef BUILD_AS_PLUGINS
-PLUMA_INHERIT_PROVIDER(MMIIOProcessor, IOProcessorImpl);
-#endif
-
}
diff --git a/src/uscxml/plugins/ioprocessor/modality/MMIInvokerImpl.h b/src/uscxml/plugins/ioprocessor/modality/MMIInvokerImpl.h
new file mode 100644
index 0000000..45e316f
--- /dev/null
+++ b/src/uscxml/plugins/ioprocessor/modality/MMIInvokerImpl.h
@@ -0,0 +1,12 @@
+#ifndef MMIINVOKER_H_612CXWUU
+#define MMIINVOKER_H_612CXWUU
+
+#include "MMIComponent.h"
+
+namespace uscxml {
+
+class MMIInvokerImpl : public virtual InvokerImpl, public MMIIOProcessor {
+};
+
+}
+#endif /* end of include guard: MMIINVOKER_H_612CXWUU */
diff --git a/src/uscxml/plugins/ioprocessor/modality/MMIProtoBridge.cpp b/src/uscxml/plugins/ioprocessor/modality/MMIProtoBridge.cpp
new file mode 100644
index 0000000..55ee9fe
--- /dev/null
+++ b/src/uscxml/plugins/ioprocessor/modality/MMIProtoBridge.cpp
@@ -0,0 +1,113 @@
+#include "MMIProtoBridge.h"
+
+#define INIT_PROTO_LIFE_CYCLE_EVENT(type) \
+::LifeCycleEvent lifeCycleEvent; \
+lifeCycleEvent.set_type(type); \
+lifeCycleEvent.set_requestid(mmiEvent.requestId); \
+lifeCycleEvent.set_source(mmiEvent.source); \
+lifeCycleEvent.set_target(mmiEvent.target);
+
+namespace uscxml {
+
+::LifeCycleEvent MMIProtoBridge::toProto(const NewContextRequest& mmiEvent) {
+ INIT_PROTO_LIFE_CYCLE_EVENT(::LifeCycleEvent_LifeCycleEventType_NEW_CONTEXT_REQUEST);
+ return lifeCycleEvent;
+}
+
+::LifeCycleEvent MMIProtoBridge::toProto(const NewContextResponse& mmiEvent) {
+ INIT_PROTO_LIFE_CYCLE_EVENT(::LifeCycleEvent_LifeCycleEventType_NEW_CONTEXT_RESPONSE);
+ return lifeCycleEvent;
+}
+
+::LifeCycleEvent MMIProtoBridge::toProto(const PrepareRequest& mmiEvent) {
+ INIT_PROTO_LIFE_CYCLE_EVENT(::LifeCycleEvent_LifeCycleEventType_PREPARE_REQUEST);
+ return lifeCycleEvent;
+}
+
+::LifeCycleEvent MMIProtoBridge::toProto(const PrepareResponse& mmiEvent) {
+ INIT_PROTO_LIFE_CYCLE_EVENT(::LifeCycleEvent_LifeCycleEventType_PREPARE_RESPONSE);
+ return lifeCycleEvent;
+}
+
+::LifeCycleEvent MMIProtoBridge::toProto(const StartRequest& mmiEvent) {
+ INIT_PROTO_LIFE_CYCLE_EVENT(::LifeCycleEvent_LifeCycleEventType_START_REQUEST);
+
+ ::LifeCycleRequest* lifeCycleRequest = lifeCycleEvent.MutableExtension(::LifeCycleRequest::Request);
+ lifeCycleRequest->set_context(mmiEvent.context);
+
+ ::StartRequest* startRequest = lifeCycleRequest->MutableExtension(::StartRequest::Request);
+ startRequest->set_content(mmiEvent.content);
+ startRequest->set_contenturl(mmiEvent.contentURL.href);
+
+ ::StartRequestData* startRequestData = startRequest->MutableExtension(::StartRequestData::Request);
+ startRequestData->set_data(mmiEvent.data);
+
+ return lifeCycleEvent;
+}
+
+::LifeCycleEvent MMIProtoBridge::toProto(const StartResponse& mmiEvent) {
+ INIT_PROTO_LIFE_CYCLE_EVENT(::LifeCycleEvent_LifeCycleEventType_START_RESPONSE);
+ return lifeCycleEvent;
+}
+
+::LifeCycleEvent MMIProtoBridge::toProto(const DoneNotification& mmiEvent) {
+ INIT_PROTO_LIFE_CYCLE_EVENT(::LifeCycleEvent_LifeCycleEventType_DONE_NOTIFICATION);
+ return lifeCycleEvent;
+}
+
+::LifeCycleEvent MMIProtoBridge::toProto(const CancelRequest& mmiEvent) {
+ INIT_PROTO_LIFE_CYCLE_EVENT(::LifeCycleEvent_LifeCycleEventType_CANCEL_REQUEST);
+ return lifeCycleEvent;
+}
+
+::LifeCycleEvent MMIProtoBridge::toProto(const CancelResponse& mmiEvent) {
+ INIT_PROTO_LIFE_CYCLE_EVENT(::LifeCycleEvent_LifeCycleEventType_CANCEL_RESPONSE);
+ return lifeCycleEvent;
+}
+
+::LifeCycleEvent MMIProtoBridge::toProto(const PauseRequest& mmiEvent) {
+ INIT_PROTO_LIFE_CYCLE_EVENT(::LifeCycleEvent_LifeCycleEventType_PAUSE_REQUEST);
+ return lifeCycleEvent;
+}
+
+::LifeCycleEvent MMIProtoBridge::toProto(const PauseResponse& mmiEvent) {
+ INIT_PROTO_LIFE_CYCLE_EVENT(::LifeCycleEvent_LifeCycleEventType_PAUSE_RESPONSE);
+ return lifeCycleEvent;
+}
+
+::LifeCycleEvent MMIProtoBridge::toProto(const ResumeRequest& mmiEvent) {
+ INIT_PROTO_LIFE_CYCLE_EVENT(::LifeCycleEvent_LifeCycleEventType_RESUME_REQUEST);
+ return lifeCycleEvent;
+}
+
+::LifeCycleEvent MMIProtoBridge::toProto(const ResumeResponse& mmiEvent) {
+ INIT_PROTO_LIFE_CYCLE_EVENT(::LifeCycleEvent_LifeCycleEventType_RESUME_RESPONSE);
+ return lifeCycleEvent;
+}
+
+::LifeCycleEvent MMIProtoBridge::toProto(const ExtensionNotification& mmiEvent) {
+ INIT_PROTO_LIFE_CYCLE_EVENT(::LifeCycleEvent_LifeCycleEventType_EXTENSION_NOTIFICATION);
+ return lifeCycleEvent;
+}
+
+::LifeCycleEvent MMIProtoBridge::toProto(const ClearContextRequest& mmiEvent) {
+ INIT_PROTO_LIFE_CYCLE_EVENT(::LifeCycleEvent_LifeCycleEventType_CLEAR_CONTEXT_REQUEST);
+ return lifeCycleEvent;
+}
+
+::LifeCycleEvent MMIProtoBridge::toProto(const ClearContextResponse& mmiEvent) {
+ INIT_PROTO_LIFE_CYCLE_EVENT(::LifeCycleEvent_LifeCycleEventType_CLEAR_CONTEXT_RESPONSE);
+ return lifeCycleEvent;
+}
+
+::LifeCycleEvent MMIProtoBridge::toProto(const StatusRequest& mmiEvent) {
+ INIT_PROTO_LIFE_CYCLE_EVENT(::LifeCycleEvent_LifeCycleEventType_STATUS_REQUEST);
+ return lifeCycleEvent;
+}
+
+::LifeCycleEvent MMIProtoBridge::toProto(const StatusResponse& mmiEvent) {
+ INIT_PROTO_LIFE_CYCLE_EVENT(::LifeCycleEvent_LifeCycleEventType_STATUS_RESPONSE);
+ return lifeCycleEvent;
+}
+
+} \ No newline at end of file
diff --git a/src/uscxml/plugins/ioprocessor/modality/MMIProtoBridge.h b/src/uscxml/plugins/ioprocessor/modality/MMIProtoBridge.h
new file mode 100644
index 0000000..32a69f6
--- /dev/null
+++ b/src/uscxml/plugins/ioprocessor/modality/MMIProtoBridge.h
@@ -0,0 +1,34 @@
+#ifndef MMIPROTOBRIDGE_H_T6VXUX69
+#define MMIPROTOBRIDGE_H_T6VXUX69
+
+#include "LifeCycleEvents.pb.h"
+#include "StringDataExtension.pb.h"
+#include "MMIMessages.h"
+
+namespace uscxml {
+
+class MMIProtoBridge {
+public:
+ static ::LifeCycleEvent toProto(const NewContextRequest&);
+ static ::LifeCycleEvent toProto(const NewContextResponse&);
+ static ::LifeCycleEvent toProto(const PrepareRequest&);
+ static ::LifeCycleEvent toProto(const PrepareResponse&);
+ static ::LifeCycleEvent toProto(const StartRequest&);
+ static ::LifeCycleEvent toProto(const StartResponse&);
+ static ::LifeCycleEvent toProto(const DoneNotification&);
+ static ::LifeCycleEvent toProto(const CancelRequest&);
+ static ::LifeCycleEvent toProto(const CancelResponse&);
+ static ::LifeCycleEvent toProto(const PauseRequest&);
+ static ::LifeCycleEvent toProto(const PauseResponse&);
+ static ::LifeCycleEvent toProto(const ResumeRequest&);
+ static ::LifeCycleEvent toProto(const ResumeResponse&);
+ static ::LifeCycleEvent toProto(const ExtensionNotification&);
+ static ::LifeCycleEvent toProto(const ClearContextRequest&);
+ static ::LifeCycleEvent toProto(const ClearContextResponse&);
+ static ::LifeCycleEvent toProto(const StatusRequest&);
+ static ::LifeCycleEvent toProto(const StatusResponse&);
+};
+
+}
+
+#endif /* end of include guard: MMIPROTOBRIDGE_H_T6VXUX69 */
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
index 4f803e7..9bfe9da 100644
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -58,10 +58,12 @@ target_link_libraries(test-url uscxml)
add_test(test-url ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/test-url)
set_target_properties(test-url PROPERTIES FOLDER "Tests")
-add_executable(test-mmi src/test-mmi.cpp)
-target_link_libraries(test-mmi uscxml)
-add_test(test-url ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/test-mmi)
-set_target_properties(test-mmi PROPERTIES FOLDER "Tests")
+if (NOT WIN32)
+ add_executable(test-mmi src/test-mmi.cpp)
+ target_link_libraries(test-mmi uscxml)
+ add_test(test-url ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/test-mmi)
+ set_target_properties(test-mmi PROPERTIES FOLDER "Tests")
+endif()
add_executable(scxml-test-framework-client
src/scxml-test-framework-client.cpp)
diff --git a/test/samples/uscxml/test-jvoicexml.scxml b/test/samples/uscxml/test-jvoicexml.scxml
new file mode 100644
index 0000000..691a951
--- /dev/null
+++ b/test/samples/uscxml/test-jvoicexml.scxml
@@ -0,0 +1,57 @@
+<scxml xmlns="http://www.w3.org/2005/07/scxml"
+ xmlns:vxml="http://www.w3.org/2001/vxml"
+ datamodel="ecmascript">
+ <script src="http://uscxml.tk.informatik.tu-darmstadt.de/scripts/dump.js" />
+ <state id="start">
+ <invoke type="heartbeat">
+ <param name="interval" expr="'4s'" />
+ </invoke>
+
+ <invoke type="vxml" id="vxml">
+ <finalize>
+ <script>
+ dump(_event);
+ </script>
+ </finalize>
+ </invoke>
+
+ <onentry>
+ <log expr="'Starting!!'" />
+ </onentry>
+
+ <state id="idle">
+ <onentry>
+ <log expr="'Idling!'" />
+ </onentry>
+
+ <transition event="heartbeat.4s" target="vxmlHello">
+ <log expr="'Foo!'" />
+ </transition>
+ </state>
+
+ <state id="vxmlHello">
+ <onentry>
+ <send target="#_vxml">
+ <content>
+ <vxml:vxml version="2.1" xml:lang="en"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schematicLocation="http://www.w3.org/2001/vxml http://www.w3.org/TR/voicexml20/vxml.xsd">
+ <vxml:form id="say_hello">
+ <vxml:block>
+ Hello World!
+ <vxml:goto next="#say_goodbye" />
+ </vxml:block>
+ </vxml:form>
+ <vxml:form id="say_goodbye">
+ <vxml:block>
+ <vxml:prompt>Goodbye!</vxml:prompt>
+ </vxml:block>
+ </vxml:form>
+ </vxml:vxml>
+ </content>
+ </send>
+ </onentry>
+ <transition target="idle" />
+ </state>
+ </state>
+</scxml> \ No newline at end of file
diff --git a/test/src/test-mmi.cpp b/test/src/test-mmi.cpp
index 2b34a82..0b9f5f9 100644
--- a/test/src/test-mmi.cpp
+++ b/test/src/test-mmi.cpp
@@ -1,3 +1,6 @@
+#include <iostream>
+#include <string>
+
#include "uscxml/plugins/ioprocessor/modality/MMIMessages.h"
#include <SAX/helpers/InputSourceResolver.hpp>
@@ -6,7 +9,6 @@
#include <assert.h>
#include <boost/algorithm/string.hpp>
-#include <iostream>
using namespace uscxml;
using namespace boost;
diff --git a/test/src/test-url.cpp b/test/src/test-url.cpp
index 19257d6..69951e4 100644
--- a/test/src/test-url.cpp
+++ b/test/src/test-url.cpp
@@ -1,177 +1,183 @@
-#include "uscxml/URL.h"
-#include "uscxml/Message.h"
-#include "uscxml/Interpreter.h"
-#include "uscxml/server/HTTPServer.h"
-
-#include <SAX/helpers/InputSourceResolver.hpp>
-
-#include <assert.h>
-#include <boost/algorithm/string.hpp>
-#include <iostream>
-
-using namespace uscxml;
-using namespace boost;
-
-class TestServlet : public HTTPServlet {
-public:
- TestServlet(bool adaptPath) : _canAdaptPath(adaptPath) {}
-
- void httpRecvRequest(const HTTPServer::Request& request) {};
- bool canAdaptPath() {
- return _canAdaptPath;
- }
- void setURL(const std::string& url) {
- _actualUrl = url;
- }
-
- std::string _actualUrl;
- bool _canAdaptPath;
-};
-
-bool canResolve(const std::string& url) {
- Arabica::SAX::InputSource<std::string> is(url);
- Arabica::SAX::InputSourceResolver res1(is, Arabica::default_string_adaptor<std::string>());
- if(res1.resolve()) {
- std::cout << "good: " << url << std::endl;
- return true;
- } else {
- std::cout << "bad: " << url << std::endl;
- return false;
- }
-}
-
-int main(int argc, char** argv) {
-
- std::string exeName = argv[0];
- exeName = exeName.substr(exeName.find_last_of("\\/") + 1);
-
- {
- Interpreter interpreter = Interpreter::fromURI("/Users/sradomski/Desktop/application_small.scxml");
- assert(interpreter);
- std::vector<std::string> states;
- states.push_back("b");
- interpreter.setConfiguration(states);
- interpreter.interpret();
- }
-
- {
- URL url(argv[0]);
- assert(canResolve(argv[0]));
- assert(canResolve(url.asString()));
-
- URL baseUrl = URL::asBaseURL(url);
- URL exeUrl(exeName);
- exeUrl.toAbsolute(baseUrl);
- assert(canResolve(exeUrl.asString()));
- }
-
- {
- TestServlet* testServlet1 = new TestServlet(false);
- TestServlet* testServlet2 = new TestServlet(false);
-
- assert(HTTPServer::registerServlet("/foo", testServlet1));
- assert(!HTTPServer::registerServlet("/foo", testServlet2));
- HTTPServer::unregisterServlet(testServlet1);
- assert(HTTPServer::registerServlet("/foo", testServlet2));
- HTTPServer::unregisterServlet(testServlet1);
-
- assert(HTTPServer::registerServlet("/foo/bar/", testServlet1));
- assert(!HTTPServer::registerServlet("/foo/bar/", testServlet2));
- HTTPServer::unregisterServlet(testServlet1);
- HTTPServer::unregisterServlet(testServlet2);
- }
-
- {
- TestServlet* testServlet1 = new TestServlet(true);
- TestServlet* testServlet2 = new TestServlet(true);
- TestServlet* testServlet3 = new TestServlet(true);
-
- assert(HTTPServer::registerServlet("/foo", testServlet1));
- assert(HTTPServer::registerServlet("/foo", testServlet2));
- assert(HTTPServer::registerServlet("/foo", testServlet3));
- assert(boost::ends_with(testServlet1->_actualUrl, "foo"));
- assert(boost::ends_with(testServlet2->_actualUrl, "foo2"));
- assert(boost::ends_with(testServlet3->_actualUrl, "foo3"));
-
- HTTPServer::unregisterServlet(testServlet1);
- HTTPServer::unregisterServlet(testServlet2);
- HTTPServer::unregisterServlet(testServlet3);
- }
-
- {
- Data data = Data::fromJSON("asdf");
- std::cout << data << std::endl;
- }
- {
- Data data = Data::fromJSON("[ '1', '2', '3', '4' ]");
- std::cout << data << std::endl;
- }
- {
- Data data = Data::fromJSON("{'foo1': 'bar2', 'foo3': { 'foo4': 'bar5' }, 'foo6': 'bar7', 'foo8': { 'foo9': 'foo10': { 'foo11': 'bar12' } } }");
- std::cout << data << std::endl;
- }
- {
- Data data = Data::fromJSON("{\"firstName\": \"John\", \"lastName\": \"Smith\", \"age\": 25, \"address\": { \"streetAddress\": \"21 2nd Street\", \"city\": \"New York\",\"state\": \"NY\",\"postalCode\": 10021},\"phoneNumber\": [{\"type\": \"home\",\"number\": \"212 555-1234\"},{ \"type\": \"fax\",\"number\": \"646 555-4567\"}]}");
- std::cout << data << std::endl;
- }
-
- {
- URL url("http://www.heise.de/index.html");
- std::cout << url.asString() << std::endl;
- assert(url.isAbsolute());
- assert(iequals(url.scheme(), "http"));
- assert(iequals(url.host(), "www.heise.de"));
- assert(iequals(url.port(), "80"));
- assert(iequals(url.path(), "/index.html"));
- assert(iequals(url.asString(), "http://www.heise.de/index.html"));
- std::stringstream content;
- content << url;
- }
-
- {
- URL url("https://raw.github.com/tklab-tud/uscxml/master/test/samples/uscxml/test-ecmascript.scxml");
- std::cout << url.asString() << std::endl;
- assert(url.isAbsolute());
- assert(iequals(url.scheme(), "https"));
- std::stringstream content;
- content << url;
- }
-
- {
- URL url("file:Document/Text.foo");
- std::cout << url.asString() << std::endl;
- assert(!url.isAbsolute());
- assert(iequals(url.scheme(), "file"));
- assert(iequals(url.host(), ""));
- assert(iequals(url.port(), "0"));
- assert(iequals(url.path(), "Document/Text.foo"));
- assert(iequals(url.asString(), "file:Document/Text.foo"));
- }
- {
- URL url("test/index.html");
- assert(iequals(url.scheme(), ""));
- url.toAbsoluteCwd();
- assert(iequals(url.scheme(), "file"));
- std::cout << url.asString() << std::endl;
- }
- {
- URL url("C:\\Document\\Some Spaces\\index.txt");
- assert(url.isAbsolute());
- assert(iequals(url.scheme(), "file"));
- std::cout << url.asString() << std::endl;
- }
- {
- URL url = URL::toLocalFile("this is quite some content!", "txt");
- std::cout << url.asLocalFile("txt");
- assert(url.isAbsolute());
- assert(iequals(url.scheme(), "file"));
- }
- {
- URL url("C:\\Document\\Some Spaces\\index.txt");
- assert(iequals(url.pathComponents()[0], "C:"));
- assert(iequals(url.pathComponents()[1], "Document"));
- assert(iequals(url.pathComponents()[2], "Some Spaces"));
- assert(iequals(url.pathComponents()[3], "index.txt"));
- }
-
+#include "uscxml/URL.h"
+#include "uscxml/Message.h"
+#include "uscxml/Interpreter.h"
+#include "uscxml/server/HTTPServer.h"
+
+#include <SAX/helpers/InputSourceResolver.hpp>
+
+#include <assert.h>
+#include <boost/algorithm/string.hpp>
+#include <iostream>
+
+using namespace uscxml;
+using namespace boost;
+
+class TestServlet : public HTTPServlet {
+public:
+ TestServlet(bool adaptPath) : _canAdaptPath(adaptPath) {}
+
+ void httpRecvRequest(const HTTPServer::Request& request) {};
+ bool canAdaptPath() {
+ return _canAdaptPath;
+ }
+ void setURL(const std::string& url) {
+ _actualUrl = url;
+ }
+
+ std::string _actualUrl;
+ bool _canAdaptPath;
+};
+
+bool canResolve(const std::string& url) {
+ Arabica::SAX::InputSource<std::string> is(url);
+ Arabica::SAX::InputSourceResolver res1(is, Arabica::default_string_adaptor<std::string>());
+ if(res1.resolve()) {
+ std::cout << "good: " << url << std::endl;
+ return true;
+ } else {
+ std::cout << "bad: " << url << std::endl;
+ return false;
+ }
+}
+
+int main(int argc, char** argv) {
+#ifdef _WIN32
+ WSADATA wsaData;
+ WSAStartup(MAKEWORD(2, 2), &wsaData);
+#endif
+
+ std::string exeName = argv[0];
+ exeName = exeName.substr(exeName.find_last_of("\\/") + 1);
+
+#if 0
+ {
+ Interpreter interpreter = Interpreter::fromURI("/Users/sradomski/Desktop/application_small.scxml");
+ assert(interpreter);
+ std::vector<std::string> states;
+ states.push_back("b");
+ interpreter.setConfiguration(states);
+ interpreter.interpret();
+ }
+#endif
+
+ {
+ URL url(argv[0]);
+ assert(canResolve(argv[0]));
+ assert(canResolve(url.asString()));
+
+ URL baseUrl = URL::asBaseURL(url);
+ URL exeUrl(exeName);
+ exeUrl.toAbsolute(baseUrl);
+ assert(canResolve(exeUrl.asString()));
+ }
+
+ {
+ TestServlet* testServlet1 = new TestServlet(false);
+ TestServlet* testServlet2 = new TestServlet(false);
+
+ assert(HTTPServer::registerServlet("/foo", testServlet1));
+ assert(!HTTPServer::registerServlet("/foo", testServlet2));
+ HTTPServer::unregisterServlet(testServlet1);
+ assert(HTTPServer::registerServlet("/foo", testServlet2));
+ HTTPServer::unregisterServlet(testServlet1);
+
+ assert(HTTPServer::registerServlet("/foo/bar/", testServlet1));
+ assert(!HTTPServer::registerServlet("/foo/bar/", testServlet2));
+ HTTPServer::unregisterServlet(testServlet1);
+ HTTPServer::unregisterServlet(testServlet2);
+ }
+
+ {
+ TestServlet* testServlet1 = new TestServlet(true);
+ TestServlet* testServlet2 = new TestServlet(true);
+ TestServlet* testServlet3 = new TestServlet(true);
+
+ assert(HTTPServer::registerServlet("/foo", testServlet1));
+ assert(HTTPServer::registerServlet("/foo", testServlet2));
+ assert(HTTPServer::registerServlet("/foo", testServlet3));
+ assert(boost::ends_with(testServlet1->_actualUrl, "foo"));
+ assert(boost::ends_with(testServlet2->_actualUrl, "foo2"));
+ assert(boost::ends_with(testServlet3->_actualUrl, "foo3"));
+
+ HTTPServer::unregisterServlet(testServlet1);
+ HTTPServer::unregisterServlet(testServlet2);
+ HTTPServer::unregisterServlet(testServlet3);
+ }
+
+ {
+ Data data = Data::fromJSON("asdf");
+ std::cout << data << std::endl;
+ }
+ {
+ Data data = Data::fromJSON("[ '1', '2', '3', '4' ]");
+ std::cout << data << std::endl;
+ }
+ {
+ Data data = Data::fromJSON("{'foo1': 'bar2', 'foo3': { 'foo4': 'bar5' }, 'foo6': 'bar7', 'foo8': { 'foo9': 'foo10': { 'foo11': 'bar12' } } }");
+ std::cout << data << std::endl;
+ }
+ {
+ Data data = Data::fromJSON("{\"firstName\": \"John\", \"lastName\": \"Smith\", \"age\": 25, \"address\": { \"streetAddress\": \"21 2nd Street\", \"city\": \"New York\",\"state\": \"NY\",\"postalCode\": 10021},\"phoneNumber\": [{\"type\": \"home\",\"number\": \"212 555-1234\"},{ \"type\": \"fax\",\"number\": \"646 555-4567\"}]}");
+ std::cout << data << std::endl;
+ }
+
+ {
+ URL url("http://www.heise.de/index.html");
+ std::cout << url.asString() << std::endl;
+ assert(url.isAbsolute());
+ assert(iequals(url.scheme(), "http"));
+ assert(iequals(url.host(), "www.heise.de"));
+ assert(iequals(url.port(), "80"));
+ assert(iequals(url.path(), "/index.html"));
+ assert(iequals(url.asString(), "http://www.heise.de/index.html"));
+ std::stringstream content;
+ content << url;
+ }
+
+ {
+ URL url("https://raw.github.com/tklab-tud/uscxml/master/test/samples/uscxml/test-ecmascript.scxml");
+ std::cout << url.asString() << std::endl;
+ assert(url.isAbsolute());
+ assert(iequals(url.scheme(), "https"));
+ std::stringstream content;
+ content << url;
+ }
+
+ {
+ URL url("file:Document/Text.foo");
+ std::cout << url.asString() << std::endl;
+ assert(!url.isAbsolute());
+ assert(iequals(url.scheme(), "file"));
+ assert(iequals(url.host(), ""));
+ assert(iequals(url.port(), "0"));
+ assert(iequals(url.path(), "Document/Text.foo"));
+ assert(iequals(url.asString(), "file:Document/Text.foo"));
+ }
+ {
+ URL url("test/index.html");
+ assert(iequals(url.scheme(), ""));
+ url.toAbsoluteCwd();
+ assert(iequals(url.scheme(), "file"));
+ std::cout << url.asString() << std::endl;
+ }
+ {
+ URL url("C:\\Document\\Some Spaces\\index.txt");
+ assert(url.isAbsolute());
+ assert(iequals(url.scheme(), "file"));
+ std::cout << url.asString() << std::endl;
+ }
+ {
+ URL url = URL::toLocalFile("this is quite some content!", "txt");
+ std::cout << url.asLocalFile("txt");
+ assert(url.isAbsolute());
+ assert(iequals(url.scheme(), "file"));
+ }
+ {
+ URL url("C:\\Document\\Some Spaces\\index.txt");
+ assert(iequals(url.pathComponents()[0], "C:"));
+ assert(iequals(url.pathComponents()[1], "Document"));
+ assert(iequals(url.pathComponents()[2], "Some Spaces"));
+ assert(iequals(url.pathComponents()[3], "index.txt"));
+ }
+
} \ No newline at end of file