diff --git a/.gitignore b/.gitignore index ce0f5f867be4c632ab2915eafb736c5150937637..fccfd589a1729b5b0556a0ceb3c65141fde675d2 100644 --- a/.gitignore +++ b/.gitignore @@ -6,4 +6,11 @@ vendor/ temp/ yarn-error.log /.project -cmake-build-debug/ + +/cpp/cmake-build* +/cpp/cmake-install* +/cpp/compile_commands.json +/cpp/.clangd +/cpp/tags + +/cpp/docs/doxy diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000000000000000000000000000000000000..b52960bb010d7200a201b0d35e5f8b4c1c5a616b --- /dev/null +++ b/.gitmodules @@ -0,0 +1,6 @@ +[submodule "cpp/src/vereign/proto/code.vereign.com/code/viam-apis"] + path = cpp/src/vereign/proto/code.vereign.com/code/viam-apis + url = git@code.vereign.com:code/viam-apis.git +[submodule "cpp/src/vereign/proto/googleapis"] + path = cpp/src/vereign/proto/googleapis + url = git@github.com:googleapis/googleapis.git diff --git a/cpp/.ctagsignore b/cpp/.ctagsignore new file mode 100644 index 0000000000000000000000000000000000000000..008fe4b62e7589b66f2f2c36d7d4bc189502eda3 --- /dev/null +++ b/cpp/.ctagsignore @@ -0,0 +1,3 @@ +cmake-* +compile_commands.json +.clangd diff --git a/cpp/CMakeLists.txt b/cpp/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..a07568a7288588e6d3664098812f19354f4bef7c --- /dev/null +++ b/cpp/CMakeLists.txt @@ -0,0 +1,158 @@ +cmake_minimum_required (VERSION 3.16.5) + +if(WIN32) + set(CMAKE_IGNORE_PATH "C:/Strawberry/c/bin") +endif() + +project (vereign) + +if (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") + if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS "19.0.24215.1") + message(FATAL_ERROR "Microsoft Visual C++ version MSVC 19.0.24215.1 required") + endif() +elseif(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") + if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS "9.0") + message(FATAL_ERROR "Insufficient clang version - clang 9.0+ required") + endif() +elseif(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") + if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS "7.5") + message(FATAL_ERROR "Insufficient GNU compiler version - 7.5+ required") + endif() +else() + message(WARNING "Unknown compiler...") +endif() + +if (CMAKE_CXX_COMPILER_ID MATCHES "MSVC") + add_definitions(-D_WIN32_WINNT=0x0601) + set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Release>:Release>") + set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>") + + set(CMAKE_C_FLAGS "/DNDEBUG /DWIN32 /D_WINDOWS /W3") + set(CMAKE_CXX_FLAGS "/DNDEBUG /DWIN32 /D_WINDOWS /W3 /GR /EHsc") + + set(CMAKE_C_FLAGS_DEBUG "/MTd /Zi /Ob0 /Od /RTC1") + set(CMAKE_CXX_FLAGS_DEBUG "/MTd /Zi /Ob0 /Od /RTC1") + + set(CMAKE_CXX_FLAGS_RELEASE "/Gd /MT /O2 /Oi /Ot /Gy /Zi /GL") + set(CMAKE_C_FLAGS_RELEASE "/Gd /MT /O2 /Oi /Ot /Gy /Zi /GL") + + if (CMAKE_BUILD_TYPE STREQUAL "Release") + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /DEBUG /OPT:REF /OPT:ICF /LTCG") + set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /DEBUG /OPT:REF /OPT:ICF /LTCG") + set(CMAKE_STATIC_LINKER_FLAGS "${CMAKE_STATIC_LINKER_FLAGS} /LTCG") + endif() +endif() + +if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang") + set(CMAKE_CXX_FLAGS_RELEASE "-g -O3 -Wall -Wextra -pedantic") + set(CMAKE_CXX_FLAGS_DEBUG "-g -O0 -Wall -Wextra -pedantic") +endif() + +if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU") + set(CMAKE_CXX_FLAGS_RELEASE "-g -O3 -Wall -Wextra -pedantic") + set(CMAKE_CXX_FLAGS_DEBUG "-g -O0 -Wall -Wextra -pedantic") +endif() + +set(CMAKE_EXPORT_COMPILE_COMMANDS ON) + +set(CMAKE_CXX_STANDARD 14) +set(CMAKE_CXX_EXTENSIONS OFF) + +message("Generator: " "${CMAKE_GENERATOR}") +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin/${CMAKE_BUILD_TYPE}") + +set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake") + +message("Build type: " "${CMAKE_BUILD_TYPE}") +message("CXX Flags: " "${CMAKE_CXX_FLAGS}") +message("CXX debug flags: " "${CMAKE_CXX_FLAGS_DEBUG}") +message("CXX release flags: " "${CMAKE_CXX_FLAGS_RELEASE}") +message("CXX linker flags: " "${CMAKE_EXE_LINKER_FLAGS}") +message("CXX dll linker flags: " "${CMAKE_SHARED_LINKER_FLAGS}") +message("CXX static linker flags: " "${CMAKE_STATIC_LINKER_FLAGS}") + +string(TOLOWER "${CMAKE_BUILD_TYPE}" _build_type) +set(VENDOR_INSTALL_DIR ${CMAKE_SOURCE_DIR}/cmake-install-vendor-${_build_type} CACHE STRING "vendor directory") +message(STATUS "Using vendor install dir: ${VENDOR_INSTALL_DIR}") +#set(VENDOR_INSTALL_DIR /home/daniel/workspace/local) +set(_cmake_prefix_paths + ${VENDOR_INSTALL_DIR} + ${VENDOR_INSTALL_DIR}/grpc +) +set(CMAKE_PREFIX_PATH ${_cmake_prefix_paths} CACHE STRING "") + +include(CMakeToolsHelpers OPTIONAL) +include(Helpers) +include(ProtoGenerate) + +enable_testing() + +find_package(fmt 6.2.0 REQUIRED) + +set(OPENSSL_USE_STATIC_LIBS ON) +set(OPENSSL_ROOT_DIR ${VENDOR_INSTALL_DIR}/boringssl) +find_package(OpenSSL) + +set(Boost_USE_STATIC_LIBS ON) +find_package( + Boost + 1.72.0 + EXACT + REQUIRED + COMPONENTS regex thread system +) + +find_package(Protobuf CONFIG REQUIRED) +message(STATUS "Using protobuf ${protobuf_VERSION}") +if(CMAKE_CROSSCOMPILING) + find_program(PROTOBUF_PROTOC protoc) +else() + set(PROTOBUF_PROTOC $<TARGET_FILE:protobuf::protoc>) +endif() + +# Find gRPC installation +# Looks for gRPCConfig.cmake file installed by gRPC's cmake installation. +find_package(gRPC CONFIG REQUIRED) +message(STATUS "Using gRPC ${gRPC_VERSION}") +if(CMAKE_CROSSCOMPILING) + find_program(GRPC_CPP_PLUGIN_EXECUTABLE grpc_cpp_plugin) +else() + set(GRPC_CPP_PLUGIN_EXECUTABLE $<TARGET_FILE:gRPC::grpc_cpp_plugin>) +endif() + +add_subdirectory("src") +add_subdirectory("tests") + +get_target_property(_protobuflib_location protobuf::libprotobuf LOCATION) +get_target_property(_grpclib_location gRPC::grpc++ LOCATION) +get_target_property(_grpclib_reflection_location gRPC::grpc++_reflection LOCATION) +set( + _grpc_libs + ${_protobuflib_location} + ${_grpclib_location} + ${_grpclib_reflection_location} +) + +string(TOUPPER "${CMAKE_BUILD_TYPE}" _build_type) +message(STATUS "summary of build options: + + Package version: ${VERSION} + Library version: ${LT_CURRENT}:${LT_REVISION}:${LT_AGE} + Install prefix: ${CMAKE_INSTALL_PREFIX} + Target system: ${CMAKE_SYSTEM_NAME} + Compiler: + Build type: ${CMAKE_BUILD_TYPE} + C compiler: ${CMAKE_C_COMPILER} + CFLAGS: ${CMAKE_C_FLAGS_${_build_type}} ${CMAKE_C_FLAGS} + C++ compiler: ${CMAKE_CXX_COMPILER} + CXXFLAGS: ${CMAKE_CXX_FLAGS_${_build_type}} ${CMAKE_CXX_FLAGS} + WARNCFLAGS: ${WARNCFLAGS} + CXX1XCXXFLAGS: ${CXX1XCXXFLAGS} + Libs: + fmt: ${fmt_FOUND} [${fmt_VERSION}] (DIR='${fmt_DIR}') + OpenSSL: ${OpenSSL_FOUND} [${OPENSSL_VERSION}] (LIBS='${OPENSSL_LIBRARIES}') + Zlib: ${ZLIB_FOUND} [${ZLIB_VERSION_STRING}] (LIBS='${ZLIB_LIBRARIES}') + Boost ${Boost_FOUND} [${Boost_VERSION_STRING}] (DIR='${Boost_DIR}') + Boost libs ${Boost_LIBRARIES} + gRPC ${gRPC_FOUND} [${gRPC_VERSION}] (LIBS='${_grpc_libs}') +") diff --git a/cpp/cmake/Helpers.cmake b/cpp/cmake/Helpers.cmake new file mode 100644 index 0000000000000000000000000000000000000000..53421019a2e82ed27516e5d753b6886739f472e3 --- /dev/null +++ b/cpp/cmake/Helpers.cmake @@ -0,0 +1,8 @@ + +function(dump_vars) + get_cmake_property(_variableNames VARIABLES) + list (SORT _variableNames) + foreach (_variableName ${_variableNames}) + message(STATUS "${_variableName}=${${_variableName}}") + endforeach() +endfunction() diff --git a/cpp/cmake/ProtoGenerate.cmake b/cpp/cmake/ProtoGenerate.cmake new file mode 100644 index 0000000000000000000000000000000000000000..89adc18d08049f8a7e98e9cfb8afdf97d42e459e --- /dev/null +++ b/cpp/cmake/ProtoGenerate.cmake @@ -0,0 +1,82 @@ + +function(target_proto_generate) + cmake_parse_arguments( + PROTO + "" + "TARGET;GEN_DIR;SRC_DIR" + "DEFINITIONS" + ${ARGN} + ) + + message(STATUS "proto target: ${PROTO_TARGET}") + message(STATUS " proto output dir: ${PROTO_GEN_DIR}") + message(STATUS " proto src dir: ${PROTO_SRC_DIR}") + + # FIXME: remove hardcoded googleapis include below + foreach (proto ${PROTO_DEFINITIONS}) + get_filename_component(_proto ${proto} ABSOLUTE) + get_filename_component(_proto_path "${_proto}" PATH) + get_filename_component(_proto_name ${proto} NAME_WLE) + string(REPLACE ${PROTO_SRC_DIR} ${PROTO_GEN_DIR} _proto_gen_path ${_proto_path}) + + message(STATUS " proto generate [${_proto_name}] from ${_proto} to ${_proto_gen_path}") + + # Generated sources + set(_proto_src "${_proto_gen_path}/${_proto_name}.pb.cc") + set(_proto_hdr "${_proto_gen_path}/${_proto_name}.pb.h") + add_custom_command( + OUTPUT "${_proto_src}" "${_proto_hdr}" + COMMAND ${PROTOBUF_PROTOC} + ARGS + --cpp_out "${PROTO_GEN_DIR}" + --proto_path "${PROTO_SRC_DIR}" + -I "${_proto_path}" + -I "${CMAKE_SOURCE_DIR}/src/vereign/proto/googleapis" + "${_proto}" + DEPENDS "${_proto}") + + target_sources(${PROTO_TARGET} PRIVATE ${_proto_src}) + endforeach() +endfunction() + +function(target_grpc_generate) + cmake_parse_arguments( + PROTO + "" + "TARGET;GEN_DIR;SRC_DIR" + "DEFINITIONS" + ${ARGN} + ) + + message(STATUS "grpc target: ${PROTO_TARGET}") + message(STATUS " grpc output dir: ${PROTO_GEN_DIR}") + message(STATUS " grpc src dir: ${PROTO_SRC_DIR}") + + # FIXME: remove hardcoded googleapis include below + foreach (proto ${PROTO_DEFINITIONS}) + get_filename_component(_proto ${proto} ABSOLUTE) + get_filename_component(_proto_path "${_proto}" PATH) + get_filename_component(_proto_name ${proto} NAME_WLE) + string(REPLACE ${PROTO_SRC_DIR} ${PROTO_GEN_DIR} _proto_gen_path ${_proto_path}) + + message(STATUS " grpc generate [${_proto_name}] from ${_proto} to ${_proto_gen_path}") + + # Generated sources + set(_proto_src "${_proto_gen_path}/${_proto_name}.grpc.pb.cc") + set(_proto_hdr "${_proto_gen_path}/${_proto_name}.grpc.pb.h") + add_custom_command( + OUTPUT "${_proto_src}" "${_proto_hdr}" + COMMAND ${PROTOBUF_PROTOC} + ARGS + --grpc_out "${PROTO_GEN_DIR}" + --cpp_out "${PROTO_GEN_DIR}" + --proto_path "${PROTO_SRC_DIR}" + -I "${_proto_path}" + -I "${CMAKE_SOURCE_DIR}/src/vereign/proto/googleapis" + --plugin=protoc-gen-grpc="${GRPC_CPP_PLUGIN_EXECUTABLE}" + "${_proto}" + DEPENDS "${_proto}") + + target_sources(${PROTO_TARGET} PRIVATE ${_proto_src}) + endforeach() +endfunction() diff --git a/cpp/cmake/sanitize_blacklist.txt b/cpp/cmake/sanitize_blacklist.txt new file mode 100644 index 0000000000000000000000000000000000000000..a71463c25ba5b5f8834bfc065b8e1e77ee95bde5 --- /dev/null +++ b/cpp/cmake/sanitize_blacklist.txt @@ -0,0 +1,8 @@ +# fun:*main* +# fun:*foo* +# src:*csandbox.cc +fun:*registerReporter* +fun:_ZN5Catch16ReporterRegistry16registerReporterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt10shared_ptrINS_16IReporterFactoryEE +fun:_ZN5Catch12_GLOBAL__N_111RegistryHub16registerReporterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt10shared_ptrINS_16IReporterFactoryEE +fun:_ZThn8_N5Catch12_GLOBAL__N_111RegistryHub16registerReporterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt10shared_ptrINS_16IReporterFactoryEE +# src:../tests/init_tests.cc diff --git a/cpp/docs/doxygen.config b/cpp/docs/doxygen.config new file mode 100644 index 0000000000000000000000000000000000000000..89459d394d80b5b0cca47920370d319c67baa7ec --- /dev/null +++ b/cpp/docs/doxygen.config @@ -0,0 +1,2496 @@ +# Doxyfile 1.8.13 + +# This file describes the settings to be used by the documentation system +# doxygen (www.doxygen.org) for a project. +# +# All text after a double hash (##) is considered a comment and is placed in +# front of the TAG it is preceding. +# +# All text after a single hash (#) is considered a comment and will be ignored. +# The format is: +# TAG = value [value, ...] +# For lists, items can also be appended using: +# TAG += value [value, ...] +# Values that contain spaces should be placed between quotes (\" \"). + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- + +# This tag specifies the encoding used for all characters in the config file +# that follow. The default is UTF-8 which is also the encoding used for all text +# before the first occurrence of this tag. Doxygen uses libiconv (or the iconv +# built into libc) for the transcoding. See http://www.gnu.org/software/libiconv +# for the list of possible encodings. +# The default value is: UTF-8. + +DOXYFILE_ENCODING = UTF-8 + +# The PROJECT_NAME tag is a single word (or a sequence of words surrounded by +# double-quotes, unless you are using Doxywizard) that should identify the +# project for which the documentation is generated. This name is used in the +# title of most generated pages and in a few other places. +# The default value is: My Project. + +PROJECT_NAME = "Vereign C++ Client Library" + +# The PROJECT_NUMBER tag can be used to enter a project or revision number. This +# could be handy for archiving the generated documentation or if some version +# control system is used. + +PROJECT_NUMBER = + +# Using the PROJECT_BRIEF tag one can provide an optional one line description +# for a project that appears at the top of each page and should give viewer a +# quick idea about the purpose of the project. Keep the description short. + +PROJECT_BRIEF = + +# With the PROJECT_LOGO tag one can specify a logo or an icon that is included +# in the documentation. The maximum height of the logo should not exceed 55 +# pixels and the maximum width should not exceed 200 pixels. Doxygen will copy +# the logo to the output directory. + +PROJECT_LOGO = + +# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path +# into which the generated documentation will be written. If a relative path is +# entered, it will be relative to the location where doxygen was started. If +# left blank the current directory will be used. + +OUTPUT_DIRECTORY = docs/doxy + +# If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub- +# directories (in 2 levels) under the output directory of each output format and +# will distribute the generated files over these directories. Enabling this +# option can be useful when feeding doxygen a huge amount of source files, where +# putting all generated files in the same directory would otherwise causes +# performance problems for the file system. +# The default value is: NO. + +CREATE_SUBDIRS = NO + +# If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII +# characters to appear in the names of generated files. If set to NO, non-ASCII +# characters will be escaped, for example _xE3_x81_x84 will be used for Unicode +# U+3044. +# The default value is: NO. + +ALLOW_UNICODE_NAMES = NO + +# The OUTPUT_LANGUAGE tag is used to specify the language in which all +# documentation generated by doxygen is written. Doxygen will use this +# information to generate all constant output in the proper language. +# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese, +# Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States), +# Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian, +# Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages), +# Korean, Korean-en (Korean with English messages), Latvian, Lithuanian, +# Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian, +# Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish, +# Ukrainian and Vietnamese. +# The default value is: English. + +OUTPUT_LANGUAGE = English + +# If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member +# descriptions after the members that are listed in the file and class +# documentation (similar to Javadoc). Set to NO to disable this. +# The default value is: YES. + +BRIEF_MEMBER_DESC = YES + +# If the REPEAT_BRIEF tag is set to YES, doxygen will prepend the brief +# description of a member or function before the detailed description +# +# Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the +# brief descriptions will be completely suppressed. +# The default value is: YES. + +REPEAT_BRIEF = YES + +# This tag implements a quasi-intelligent brief description abbreviator that is +# used to form the text in various listings. Each string in this list, if found +# as the leading text of the brief description, will be stripped from the text +# and the result, after processing the whole list, is used as the annotated +# text. Otherwise, the brief description is used as-is. If left blank, the +# following values are used ($name is automatically replaced with the name of +# the entity):The $name class, The $name widget, The $name file, is, provides, +# specifies, contains, represents, a, an and the. + +ABBREVIATE_BRIEF = "The $name class" \ + "The $name widget" \ + "The $name file" \ + is \ + provides \ + specifies \ + contains \ + represents \ + a \ + an \ + the + +# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then +# doxygen will generate a detailed section even if there is only a brief +# description. +# The default value is: NO. + +ALWAYS_DETAILED_SEC = NO + +# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all +# inherited members of a class in the documentation of that class as if those +# members were ordinary class members. Constructors, destructors and assignment +# operators of the base classes will not be shown. +# The default value is: NO. + +INLINE_INHERITED_MEMB = NO + +# If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path +# before files name in the file list and in the header files. If set to NO the +# shortest path that makes the file name unique will be used +# The default value is: YES. + +FULL_PATH_NAMES = YES + +# The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path. +# Stripping is only done if one of the specified strings matches the left-hand +# part of the path. The tag can be used to show relative paths in the file list. +# If left blank the directory from which doxygen is run is used as the path to +# strip. +# +# Note that you can specify absolute paths here, but also relative paths, which +# will be relative from the directory where doxygen is started. +# This tag requires that the tag FULL_PATH_NAMES is set to YES. + +STRIP_FROM_PATH = + +# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the +# path mentioned in the documentation of a class, which tells the reader which +# header file to include in order to use a class. If left blank only the name of +# the header file containing the class definition is used. Otherwise one should +# specify the list of include paths that are normally passed to the compiler +# using the -I flag. + +STRIP_FROM_INC_PATH = + +# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but +# less readable) file names. This can be useful is your file systems doesn't +# support long names like on DOS, Mac, or CD-ROM. +# The default value is: NO. + +SHORT_NAMES = NO + +# If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the +# first line (until the first dot) of a Javadoc-style comment as the brief +# description. If set to NO, the Javadoc-style will behave just like regular Qt- +# style comments (thus requiring an explicit @brief command for a brief +# description.) +# The default value is: NO. + +JAVADOC_AUTOBRIEF = NO + +# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first +# line (until the first dot) of a Qt-style comment as the brief description. If +# set to NO, the Qt-style will behave just like regular Qt-style comments (thus +# requiring an explicit \brief command for a brief description.) +# The default value is: NO. + +QT_AUTOBRIEF = NO + +# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a +# multi-line C++ special comment block (i.e. a block of //! or /// comments) as +# a brief description. This used to be the default behavior. The new default is +# to treat a multi-line C++ comment block as a detailed description. Set this +# tag to YES if you prefer the old behavior instead. +# +# Note that setting this tag to YES also means that rational rose comments are +# not recognized any more. +# The default value is: NO. + +MULTILINE_CPP_IS_BRIEF = NO + +# If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the +# documentation from any documented member that it re-implements. +# The default value is: YES. + +INHERIT_DOCS = YES + +# If the SEPARATE_MEMBER_PAGES tag is set to YES then doxygen will produce a new +# page for each member. If set to NO, the documentation of a member will be part +# of the file/class/namespace that contains it. +# The default value is: NO. + +SEPARATE_MEMBER_PAGES = NO + +# The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen +# uses this value to replace tabs by spaces in code fragments. +# Minimum value: 1, maximum value: 16, default value: 4. + +TAB_SIZE = 4 + +# This tag can be used to specify a number of aliases that act as commands in +# the documentation. An alias has the form: +# name=value +# For example adding +# "sideeffect=@par Side Effects:\n" +# will allow you to put the command \sideeffect (or @sideeffect) in the +# documentation, which will result in a user-defined paragraph with heading +# "Side Effects:". You can put \n's in the value part of an alias to insert +# newlines. + +ALIASES = +ALIASES += boostlib="https://www.boost.org/doc/libs/1_73_0" + +# This tag can be used to specify a number of word-keyword mappings (TCL only). +# A mapping has the form "name=value". For example adding "class=itcl::class" +# will allow you to use the command class in the itcl::class meaning. + +TCL_SUBST = + +# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources +# only. Doxygen will then generate output that is more tailored for C. For +# instance, some of the names that are used will be different. The list of all +# members will be omitted, etc. +# The default value is: NO. + +OPTIMIZE_OUTPUT_FOR_C = NO + +# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or +# Python sources only. Doxygen will then generate output that is more tailored +# for that language. For instance, namespaces will be presented as packages, +# qualified scopes will look different, etc. +# The default value is: NO. + +OPTIMIZE_OUTPUT_JAVA = NO + +# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran +# sources. Doxygen will then generate output that is tailored for Fortran. +# The default value is: NO. + +OPTIMIZE_FOR_FORTRAN = NO + +# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL +# sources. Doxygen will then generate output that is tailored for VHDL. +# The default value is: NO. + +OPTIMIZE_OUTPUT_VHDL = NO + +# Doxygen selects the parser to use depending on the extension of the files it +# parses. With this tag you can assign which parser to use for a given +# extension. Doxygen has a built-in mapping, but you can override or extend it +# using this tag. The format is ext=language, where ext is a file extension, and +# language is one of the parsers supported by doxygen: IDL, Java, Javascript, +# C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran: +# FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran: +# Fortran. In the later case the parser tries to guess whether the code is fixed +# or free formatted code, this is the default for Fortran type files), VHDL. For +# instance to make doxygen treat .inc files as Fortran files (default is PHP), +# and .f files as C (default is Fortran), use: inc=Fortran f=C. +# +# Note: For files without extension you can use no_extension as a placeholder. +# +# Note that for custom extensions you also need to set FILE_PATTERNS otherwise +# the files are not read by doxygen. + +EXTENSION_MAPPING = + +# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments +# according to the Markdown format, which allows for more readable +# documentation. See http://daringfireball.net/projects/markdown/ for details. +# The output of markdown processing is further processed by doxygen, so you can +# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in +# case of backward compatibilities issues. +# The default value is: YES. + +MARKDOWN_SUPPORT = YES + +# When the TOC_INCLUDE_HEADINGS tag is set to a non-zero value, all headings up +# to that level are automatically included in the table of contents, even if +# they do not have an id attribute. +# Note: This feature currently applies only to Markdown headings. +# Minimum value: 0, maximum value: 99, default value: 0. +# This tag requires that the tag MARKDOWN_SUPPORT is set to YES. + +TOC_INCLUDE_HEADINGS = 0 + +# When enabled doxygen tries to link words that correspond to documented +# classes, or namespaces to their corresponding documentation. Such a link can +# be prevented in individual cases by putting a % sign in front of the word or +# globally by setting AUTOLINK_SUPPORT to NO. +# The default value is: YES. + +AUTOLINK_SUPPORT = YES + +# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want +# to include (a tag file for) the STL sources as input, then you should set this +# tag to YES in order to let doxygen match functions declarations and +# definitions whose arguments contain STL classes (e.g. func(std::string); +# versus func(std::string) {}). This also make the inheritance and collaboration +# diagrams that involve STL classes more complete and accurate. +# The default value is: NO. + +BUILTIN_STL_SUPPORT = NO + +# If you use Microsoft's C++/CLI language, you should set this option to YES to +# enable parsing support. +# The default value is: NO. + +CPP_CLI_SUPPORT = NO + +# Set the SIP_SUPPORT tag to YES if your project consists of sip (see: +# http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen +# will parse them like normal C++ but will assume all classes use public instead +# of private inheritance when no explicit protection keyword is present. +# The default value is: NO. + +SIP_SUPPORT = NO + +# For Microsoft's IDL there are propget and propput attributes to indicate +# getter and setter methods for a property. Setting this option to YES will make +# doxygen to replace the get and set methods by a property in the documentation. +# This will only work if the methods are indeed getting or setting a simple +# type. If this is not the case, or you want to show the methods anyway, you +# should set this option to NO. +# The default value is: YES. + +IDL_PROPERTY_SUPPORT = YES + +# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC +# tag is set to YES then doxygen will reuse the documentation of the first +# member in the group (if any) for the other members of the group. By default +# all members of a group must be documented explicitly. +# The default value is: NO. + +DISTRIBUTE_GROUP_DOC = NO + +# If one adds a struct or class to a group and this option is enabled, then also +# any nested class or struct is added to the same group. By default this option +# is disabled and one has to add nested compounds explicitly via \ingroup. +# The default value is: NO. + +GROUP_NESTED_COMPOUNDS = NO + +# Set the SUBGROUPING tag to YES to allow class member groups of the same type +# (for instance a group of public functions) to be put as a subgroup of that +# type (e.g. under the Public Functions section). Set it to NO to prevent +# subgrouping. Alternatively, this can be done per class using the +# \nosubgrouping command. +# The default value is: YES. + +SUBGROUPING = YES + +# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions +# are shown inside the group in which they are included (e.g. using \ingroup) +# instead of on a separate page (for HTML and Man pages) or section (for LaTeX +# and RTF). +# +# Note that this feature does not work in combination with +# SEPARATE_MEMBER_PAGES. +# The default value is: NO. + +INLINE_GROUPED_CLASSES = NO + +# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions +# with only public data fields or simple typedef fields will be shown inline in +# the documentation of the scope in which they are defined (i.e. file, +# namespace, or group documentation), provided this scope is documented. If set +# to NO, structs, classes, and unions are shown on a separate page (for HTML and +# Man pages) or section (for LaTeX and RTF). +# The default value is: NO. + +INLINE_SIMPLE_STRUCTS = NO + +# When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or +# enum is documented as struct, union, or enum with the name of the typedef. So +# typedef struct TypeS {} TypeT, will appear in the documentation as a struct +# with name TypeT. When disabled the typedef will appear as a member of a file, +# namespace, or class. And the struct will be named TypeS. This can typically be +# useful for C code in case the coding convention dictates that all compound +# types are typedef'ed and only the typedef is referenced, never the tag name. +# The default value is: NO. + +TYPEDEF_HIDES_STRUCT = NO + +# The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This +# cache is used to resolve symbols given their name and scope. Since this can be +# an expensive process and often the same symbol appears multiple times in the +# code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small +# doxygen will become slower. If the cache is too large, memory is wasted. The +# cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range +# is 0..9, the default is 0, corresponding to a cache size of 2^16=65536 +# symbols. At the end of a run doxygen will report the cache usage and suggest +# the optimal cache size from a speed point of view. +# Minimum value: 0, maximum value: 9, default value: 0. + +LOOKUP_CACHE_SIZE = 0 + +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- + +# If the EXTRACT_ALL tag is set to YES, doxygen will assume all entities in +# documentation are documented, even if no documentation was available. Private +# class members and static file members will be hidden unless the +# EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES. +# Note: This will also disable the warnings about undocumented members that are +# normally produced when WARNINGS is set to YES. +# The default value is: NO. + +EXTRACT_ALL = YES + +# If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will +# be included in the documentation. +# The default value is: NO. + +EXTRACT_PRIVATE = NO + +# If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal +# scope will be included in the documentation. +# The default value is: NO. + +EXTRACT_PACKAGE = NO + +# If the EXTRACT_STATIC tag is set to YES, all static members of a file will be +# included in the documentation. +# The default value is: NO. + +EXTRACT_STATIC = NO + +# If the EXTRACT_LOCAL_CLASSES tag is set to YES, classes (and structs) defined +# locally in source files will be included in the documentation. If set to NO, +# only classes defined in header files are included. Does not have any effect +# for Java sources. +# The default value is: YES. + +EXTRACT_LOCAL_CLASSES = YES + +# This flag is only useful for Objective-C code. If set to YES, local methods, +# which are defined in the implementation section but not in the interface are +# included in the documentation. If set to NO, only methods in the interface are +# included. +# The default value is: NO. + +EXTRACT_LOCAL_METHODS = NO + +# If this flag is set to YES, the members of anonymous namespaces will be +# extracted and appear in the documentation as a namespace called +# 'anonymous_namespace{file}', where file will be replaced with the base name of +# the file that contains the anonymous namespace. By default anonymous namespace +# are hidden. +# The default value is: NO. + +EXTRACT_ANON_NSPACES = NO + +# If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all +# undocumented members inside documented classes or files. If set to NO these +# members will be included in the various overviews, but no documentation +# section is generated. This option has no effect if EXTRACT_ALL is enabled. +# The default value is: NO. + +HIDE_UNDOC_MEMBERS = NO + +# If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all +# undocumented classes that are normally visible in the class hierarchy. If set +# to NO, these classes will be included in the various overviews. This option +# has no effect if EXTRACT_ALL is enabled. +# The default value is: NO. + +HIDE_UNDOC_CLASSES = NO + +# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend +# (class|struct|union) declarations. If set to NO, these declarations will be +# included in the documentation. +# The default value is: NO. + +HIDE_FRIEND_COMPOUNDS = NO + +# If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any +# documentation blocks found inside the body of a function. If set to NO, these +# blocks will be appended to the function's detailed documentation block. +# The default value is: NO. + +HIDE_IN_BODY_DOCS = NO + +# The INTERNAL_DOCS tag determines if documentation that is typed after a +# \internal command is included. If the tag is set to NO then the documentation +# will be excluded. Set it to YES to include the internal documentation. +# The default value is: NO. + +INTERNAL_DOCS = NO + +# If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file +# names in lower-case letters. If set to YES, upper-case letters are also +# allowed. This is useful if you have classes or files whose names only differ +# in case and if your file system supports case sensitive file names. Windows +# and Mac users are advised to set this option to NO. +# The default value is: system dependent. + +CASE_SENSE_NAMES = YES + +# If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with +# their full class and namespace scopes in the documentation. If set to YES, the +# scope will be hidden. +# The default value is: NO. + +HIDE_SCOPE_NAMES = NO + +# If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then doxygen will +# append additional text to a page's title, such as Class Reference. If set to +# YES the compound reference will be hidden. +# The default value is: NO. + +HIDE_COMPOUND_REFERENCE= NO + +# If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of +# the files that are included by a file in the documentation of that file. +# The default value is: YES. + +SHOW_INCLUDE_FILES = YES + +# If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each +# grouped member an include statement to the documentation, telling the reader +# which file to include in order to use the member. +# The default value is: NO. + +SHOW_GROUPED_MEMB_INC = NO + +# If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include +# files with double quotes in the documentation rather than with sharp brackets. +# The default value is: NO. + +FORCE_LOCAL_INCLUDES = NO + +# If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the +# documentation for inline members. +# The default value is: YES. + +INLINE_INFO = YES + +# If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the +# (detailed) documentation of file and class members alphabetically by member +# name. If set to NO, the members will appear in declaration order. +# The default value is: YES. + +SORT_MEMBER_DOCS = YES + +# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief +# descriptions of file, namespace and class members alphabetically by member +# name. If set to NO, the members will appear in declaration order. Note that +# this will also influence the order of the classes in the class list. +# The default value is: NO. + +SORT_BRIEF_DOCS = NO + +# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the +# (brief and detailed) documentation of class members so that constructors and +# destructors are listed first. If set to NO the constructors will appear in the +# respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS. +# Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief +# member documentation. +# Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting +# detailed member documentation. +# The default value is: NO. + +SORT_MEMBERS_CTORS_1ST = NO + +# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy +# of group names into alphabetical order. If set to NO the group names will +# appear in their defined order. +# The default value is: NO. + +SORT_GROUP_NAMES = NO + +# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by +# fully-qualified names, including namespaces. If set to NO, the class list will +# be sorted only by class name, not including the namespace part. +# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. +# Note: This option applies only to the class list, not to the alphabetical +# list. +# The default value is: NO. + +SORT_BY_SCOPE_NAME = NO + +# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper +# type resolution of all parameters of a function it will reject a match between +# the prototype and the implementation of a member function even if there is +# only one candidate or it is obvious which candidate to choose by doing a +# simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still +# accept a match between prototype and implementation in such cases. +# The default value is: NO. + +STRICT_PROTO_MATCHING = NO + +# The GENERATE_TODOLIST tag can be used to enable (YES) or disable (NO) the todo +# list. This list is created by putting \todo commands in the documentation. +# The default value is: YES. + +GENERATE_TODOLIST = YES + +# The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test +# list. This list is created by putting \test commands in the documentation. +# The default value is: YES. + +GENERATE_TESTLIST = YES + +# The GENERATE_BUGLIST tag can be used to enable (YES) or disable (NO) the bug +# list. This list is created by putting \bug commands in the documentation. +# The default value is: YES. + +GENERATE_BUGLIST = YES + +# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or disable (NO) +# the deprecated list. This list is created by putting \deprecated commands in +# the documentation. +# The default value is: YES. + +GENERATE_DEPRECATEDLIST= YES + +# The ENABLED_SECTIONS tag can be used to enable conditional documentation +# sections, marked by \if <section_label> ... \endif and \cond <section_label> +# ... \endcond blocks. + +ENABLED_SECTIONS = + +# The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the +# initial value of a variable or macro / define can have for it to appear in the +# documentation. If the initializer consists of more lines than specified here +# it will be hidden. Use a value of 0 to hide initializers completely. The +# appearance of the value of individual variables and macros / defines can be +# controlled using \showinitializer or \hideinitializer command in the +# documentation regardless of this setting. +# Minimum value: 0, maximum value: 10000, default value: 30. + +MAX_INITIALIZER_LINES = 30 + +# Set the SHOW_USED_FILES tag to NO to disable the list of files generated at +# the bottom of the documentation of classes and structs. If set to YES, the +# list will mention the files that were used to generate the documentation. +# The default value is: YES. + +SHOW_USED_FILES = YES + +# Set the SHOW_FILES tag to NO to disable the generation of the Files page. This +# will remove the Files entry from the Quick Index and from the Folder Tree View +# (if specified). +# The default value is: YES. + +SHOW_FILES = YES + +# Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces +# page. This will remove the Namespaces entry from the Quick Index and from the +# Folder Tree View (if specified). +# The default value is: YES. + +SHOW_NAMESPACES = YES + +# The FILE_VERSION_FILTER tag can be used to specify a program or script that +# doxygen should invoke to get the current version for each file (typically from +# the version control system). Doxygen will invoke the program by executing (via +# popen()) the command command input-file, where command is the value of the +# FILE_VERSION_FILTER tag, and input-file is the name of an input file provided +# by doxygen. Whatever the program writes to standard output is used as the file +# version. For an example see the documentation. + +FILE_VERSION_FILTER = + +# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed +# by doxygen. The layout file controls the global structure of the generated +# output files in an output format independent way. To create the layout file +# that represents doxygen's defaults, run doxygen with the -l option. You can +# optionally specify a file name after the option, if omitted DoxygenLayout.xml +# will be used as the name of the layout file. +# +# Note that if you run doxygen from a directory containing a file called +# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE +# tag is left empty. + +LAYOUT_FILE = + +# The CITE_BIB_FILES tag can be used to specify one or more bib files containing +# the reference definitions. This must be a list of .bib files. The .bib +# extension is automatically appended if omitted. This requires the bibtex tool +# to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info. +# For LaTeX the style of the bibliography can be controlled using +# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the +# search path. See also \cite for info how to create references. + +CITE_BIB_FILES = + +#--------------------------------------------------------------------------- +# Configuration options related to warning and progress messages +#--------------------------------------------------------------------------- + +# The QUIET tag can be used to turn on/off the messages that are generated to +# standard output by doxygen. If QUIET is set to YES this implies that the +# messages are off. +# The default value is: NO. + +QUIET = NO + +# The WARNINGS tag can be used to turn on/off the warning messages that are +# generated to standard error (stderr) by doxygen. If WARNINGS is set to YES +# this implies that the warnings are on. +# +# Tip: Turn warnings on while writing the documentation. +# The default value is: YES. + +WARNINGS = YES + +# If the WARN_IF_UNDOCUMENTED tag is set to YES then doxygen will generate +# warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag +# will automatically be disabled. +# The default value is: YES. + +WARN_IF_UNDOCUMENTED = YES + +# If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for +# potential errors in the documentation, such as not documenting some parameters +# in a documented function, or documenting parameters that don't exist or using +# markup commands wrongly. +# The default value is: YES. + +WARN_IF_DOC_ERROR = YES + +# This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that +# are documented, but have no documentation for their parameters or return +# value. If set to NO, doxygen will only warn about wrong or incomplete +# parameter documentation, but not about the absence of documentation. +# The default value is: NO. + +WARN_NO_PARAMDOC = NO + +# If the WARN_AS_ERROR tag is set to YES then doxygen will immediately stop when +# a warning is encountered. +# The default value is: NO. + +WARN_AS_ERROR = NO + +# The WARN_FORMAT tag determines the format of the warning messages that doxygen +# can produce. The string should contain the $file, $line, and $text tags, which +# will be replaced by the file and line number from which the warning originated +# and the warning text. Optionally the format may contain $version, which will +# be replaced by the version of the file (if it could be obtained via +# FILE_VERSION_FILTER) +# The default value is: $file:$line: $text. + +WARN_FORMAT = "$file:$line: $text" + +# The WARN_LOGFILE tag can be used to specify a file to which warning and error +# messages should be written. If left blank the output is written to standard +# error (stderr). + +WARN_LOGFILE = + +#--------------------------------------------------------------------------- +# Configuration options related to the input files +#--------------------------------------------------------------------------- + +# The INPUT tag is used to specify the files and/or directories that contain +# documented source files. You may enter file names like myfile.cpp or +# directories like /usr/src/myproject. Separate the files or directories with +# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING +# Note: If this tag is empty the current directory is searched. + +INPUT = src + +# This tag can be used to specify the character encoding of the source files +# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses +# libiconv (or the iconv built into libc) for the transcoding. See the libiconv +# documentation (see: http://www.gnu.org/software/libiconv) for the list of +# possible encodings. +# The default value is: UTF-8. + +INPUT_ENCODING = UTF-8 + +# If the value of the INPUT tag contains directories, you can use the +# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and +# *.h) to filter out the source-files in the directories. +# +# Note that for custom extensions or not directly supported extensions you also +# need to set EXTENSION_MAPPING for the extension otherwise the files are not +# read by doxygen. +# +# If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp, +# *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, +# *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, +# *.m, *.markdown, *.md, *.mm, *.dox, *.py, *.pyw, *.f90, *.f95, *.f03, *.f08, +# *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf and *.qsf. + +FILE_PATTERNS = *.c \ + *.cc \ + *.cxx \ + *.cpp \ + *.c++ \ + *.java \ + *.ii \ + *.ixx \ + *.ipp \ + *.i++ \ + *.inl \ + *.idl \ + *.ddl \ + *.odl \ + *.h \ + *.hh \ + *.hxx \ + *.hpp \ + *.h++ \ + *.cs \ + *.d \ + *.php \ + *.php4 \ + *.php5 \ + *.phtml \ + *.inc \ + *.m \ + *.markdown \ + *.md \ + *.mm \ + *.dox \ + *.py \ + *.pyw \ + *.f90 \ + *.f95 \ + *.f03 \ + *.f08 \ + *.f \ + *.for \ + *.tcl \ + *.vhd \ + *.vhdl \ + *.ucf \ + *.qsf + +# The RECURSIVE tag can be used to specify whether or not subdirectories should +# be searched for input files as well. +# The default value is: NO. + +RECURSIVE = YES + +# The EXCLUDE tag can be used to specify files and/or directories that should be +# excluded from the INPUT source files. This way you can easily exclude a +# subdirectory from a directory tree whose root is specified with the INPUT tag. +# +# Note that relative paths are relative to the directory from which doxygen is +# run. + +EXCLUDE = src/vereign/proto/googleapis +EXCLUDE += src/vereign/proto/code.vereign.com + +# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or +# directories that are symbolic links (a Unix file system feature) are excluded +# from the input. +# The default value is: NO. + +EXCLUDE_SYMLINKS = NO + +# If the value of the INPUT tag contains directories, you can use the +# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude +# certain files from those directories. +# +# Note that the wildcards are matched against the file with absolute path, so to +# exclude all test directories for example use the pattern */test/* + +EXCLUDE_PATTERNS = + +# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names +# (namespaces, classes, functions, etc.) that should be excluded from the +# output. The symbol name can be a fully qualified name, a word, or if the +# wildcard * is used, a substring. Examples: ANamespace, AClass, +# AClass::ANamespace, ANamespace::*Test +# +# Note that the wildcards are matched against the file with absolute path, so to +# exclude all test directories use the pattern */test/* + +EXCLUDE_SYMBOLS = + +# The EXAMPLE_PATH tag can be used to specify one or more files or directories +# that contain example code fragments that are included (see the \include +# command). + +EXAMPLE_PATH = + +# If the value of the EXAMPLE_PATH tag contains directories, you can use the +# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and +# *.h) to filter out the source-files in the directories. If left blank all +# files are included. + +EXAMPLE_PATTERNS = * + +# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be +# searched for input files to be used with the \include or \dontinclude commands +# irrespective of the value of the RECURSIVE tag. +# The default value is: NO. + +EXAMPLE_RECURSIVE = NO + +# The IMAGE_PATH tag can be used to specify one or more files or directories +# that contain images that are to be included in the documentation (see the +# \image command). + +IMAGE_PATH = + +# The INPUT_FILTER tag can be used to specify a program that doxygen should +# invoke to filter for each input file. Doxygen will invoke the filter program +# by executing (via popen()) the command: +# +# <filter> <input-file> +# +# where <filter> is the value of the INPUT_FILTER tag, and <input-file> is the +# name of an input file. Doxygen will then use the output that the filter +# program writes to standard output. If FILTER_PATTERNS is specified, this tag +# will be ignored. +# +# Note that the filter must not add or remove lines; it is applied before the +# code is scanned, but not when the output code is generated. If lines are added +# or removed, the anchors will not be placed correctly. +# +# Note that for custom extensions or not directly supported extensions you also +# need to set EXTENSION_MAPPING for the extension otherwise the files are not +# properly processed by doxygen. + +INPUT_FILTER = + +# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern +# basis. Doxygen will compare the file name with each pattern and apply the +# filter if there is a match. The filters are a list of the form: pattern=filter +# (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how +# filters are used. If the FILTER_PATTERNS tag is empty or if none of the +# patterns match the file name, INPUT_FILTER is applied. +# +# Note that for custom extensions or not directly supported extensions you also +# need to set EXTENSION_MAPPING for the extension otherwise the files are not +# properly processed by doxygen. + +FILTER_PATTERNS = + +# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using +# INPUT_FILTER) will also be used to filter the input files that are used for +# producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES). +# The default value is: NO. + +FILTER_SOURCE_FILES = NO + +# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file +# pattern. A pattern will override the setting for FILTER_PATTERN (if any) and +# it is also possible to disable source filtering for a specific pattern using +# *.ext= (so without naming a filter). +# This tag requires that the tag FILTER_SOURCE_FILES is set to YES. + +FILTER_SOURCE_PATTERNS = + +# If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that +# is part of the input, its contents will be placed on the main page +# (index.html). This can be useful if you have a project on for instance GitHub +# and want to reuse the introduction page also for the doxygen output. + +USE_MDFILE_AS_MAINPAGE = + +#--------------------------------------------------------------------------- +# Configuration options related to source browsing +#--------------------------------------------------------------------------- + +# If the SOURCE_BROWSER tag is set to YES then a list of source files will be +# generated. Documented entities will be cross-referenced with these sources. +# +# Note: To get rid of all source code in the generated output, make sure that +# also VERBATIM_HEADERS is set to NO. +# The default value is: NO. + +SOURCE_BROWSER = NO + +# Setting the INLINE_SOURCES tag to YES will include the body of functions, +# classes and enums directly into the documentation. +# The default value is: NO. + +INLINE_SOURCES = NO + +# Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any +# special comment blocks from generated source code fragments. Normal C, C++ and +# Fortran comments will always remain visible. +# The default value is: YES. + +STRIP_CODE_COMMENTS = YES + +# If the REFERENCED_BY_RELATION tag is set to YES then for each documented +# function all documented functions referencing it will be listed. +# The default value is: NO. + +REFERENCED_BY_RELATION = NO + +# If the REFERENCES_RELATION tag is set to YES then for each documented function +# all documented entities called/used by that function will be listed. +# The default value is: NO. + +REFERENCES_RELATION = NO + +# If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set +# to YES then the hyperlinks from functions in REFERENCES_RELATION and +# REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will +# link to the documentation. +# The default value is: YES. + +REFERENCES_LINK_SOURCE = YES + +# If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the +# source code will show a tooltip with additional information such as prototype, +# brief description and links to the definition and documentation. Since this +# will make the HTML file larger and loading of large files a bit slower, you +# can opt to disable this feature. +# The default value is: YES. +# This tag requires that the tag SOURCE_BROWSER is set to YES. + +SOURCE_TOOLTIPS = YES + +# If the USE_HTAGS tag is set to YES then the references to source code will +# point to the HTML generated by the htags(1) tool instead of doxygen built-in +# source browser. The htags tool is part of GNU's global source tagging system +# (see http://www.gnu.org/software/global/global.html). You will need version +# 4.8.6 or higher. +# +# To use it do the following: +# - Install the latest version of global +# - Enable SOURCE_BROWSER and USE_HTAGS in the config file +# - Make sure the INPUT points to the root of the source tree +# - Run doxygen as normal +# +# Doxygen will invoke htags (and that will in turn invoke gtags), so these +# tools must be available from the command line (i.e. in the search path). +# +# The result: instead of the source browser generated by doxygen, the links to +# source code will now point to the output of htags. +# The default value is: NO. +# This tag requires that the tag SOURCE_BROWSER is set to YES. + +USE_HTAGS = NO + +# If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a +# verbatim copy of the header file for each class for which an include is +# specified. Set to NO to disable this. +# See also: Section \class. +# The default value is: YES. + +VERBATIM_HEADERS = YES + +# If the CLANG_ASSISTED_PARSING tag is set to YES then doxygen will use the +# clang parser (see: http://clang.llvm.org/) for more accurate parsing at the +# cost of reduced performance. This can be particularly helpful with template +# rich C++ code for which doxygen's built-in parser lacks the necessary type +# information. +# Note: The availability of this option depends on whether or not doxygen was +# generated with the -Duse-libclang=ON option for CMake. +# The default value is: NO. + +CLANG_ASSISTED_PARSING = NO + +# If clang assisted parsing is enabled you can provide the compiler with command +# line options that you would normally use when invoking the compiler. Note that +# the include paths will already be set by doxygen for the files and directories +# specified with INPUT and INCLUDE_PATH. +# This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES. + +CLANG_OPTIONS = + +#--------------------------------------------------------------------------- +# Configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- + +# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all +# compounds will be generated. Enable this if the project contains a lot of +# classes, structs, unions or interfaces. +# The default value is: YES. + +ALPHABETICAL_INDEX = YES + +# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in +# which the alphabetical index list will be split. +# Minimum value: 1, maximum value: 20, default value: 5. +# This tag requires that the tag ALPHABETICAL_INDEX is set to YES. + +COLS_IN_ALPHA_INDEX = 5 + +# In case all classes in a project start with a common prefix, all classes will +# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag +# can be used to specify a prefix (or a list of prefixes) that should be ignored +# while generating the index headers. +# This tag requires that the tag ALPHABETICAL_INDEX is set to YES. + +IGNORE_PREFIX = + +#--------------------------------------------------------------------------- +# Configuration options related to the HTML output +#--------------------------------------------------------------------------- + +# If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output +# The default value is: YES. + +GENERATE_HTML = YES + +# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a +# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of +# it. +# The default directory is: html. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_OUTPUT = html + +# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each +# generated HTML page (for example: .htm, .php, .asp). +# The default value is: .html. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_FILE_EXTENSION = .html + +# The HTML_HEADER tag can be used to specify a user-defined HTML header file for +# each generated HTML page. If the tag is left blank doxygen will generate a +# standard header. +# +# To get valid HTML the header file that includes any scripts and style sheets +# that doxygen needs, which is dependent on the configuration options used (e.g. +# the setting GENERATE_TREEVIEW). It is highly recommended to start with a +# default header using +# doxygen -w html new_header.html new_footer.html new_stylesheet.css +# YourConfigFile +# and then modify the file new_header.html. See also section "Doxygen usage" +# for information on how to generate the default header that doxygen normally +# uses. +# Note: The header is subject to change so you typically have to regenerate the +# default header when upgrading to a newer version of doxygen. For a description +# of the possible markers and block names see the documentation. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_HEADER = + +# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each +# generated HTML page. If the tag is left blank doxygen will generate a standard +# footer. See HTML_HEADER for more information on how to generate a default +# footer and what special commands can be used inside the footer. See also +# section "Doxygen usage" for information on how to generate the default footer +# that doxygen normally uses. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_FOOTER = + +# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style +# sheet that is used by each HTML page. It can be used to fine-tune the look of +# the HTML output. If left blank doxygen will generate a default style sheet. +# See also section "Doxygen usage" for information on how to generate the style +# sheet that doxygen normally uses. +# Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as +# it is more robust and this tag (HTML_STYLESHEET) will in the future become +# obsolete. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_STYLESHEET = + +# The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined +# cascading style sheets that are included after the standard style sheets +# created by doxygen. Using this option one can overrule certain style aspects. +# This is preferred over using HTML_STYLESHEET since it does not replace the +# standard style sheet and is therefore more robust against future updates. +# Doxygen will copy the style sheet files to the output directory. +# Note: The order of the extra style sheet files is of importance (e.g. the last +# style sheet in the list overrules the setting of the previous ones in the +# list). For an example see the documentation. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_EXTRA_STYLESHEET = + +# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or +# other source files which should be copied to the HTML output directory. Note +# that these files will be copied to the base HTML output directory. Use the +# $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these +# files. In the HTML_STYLESHEET file, use the file name only. Also note that the +# files will be copied as-is; there are no commands or markers available. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_EXTRA_FILES = + +# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen +# will adjust the colors in the style sheet and background images according to +# this color. Hue is specified as an angle on a colorwheel, see +# http://en.wikipedia.org/wiki/Hue for more information. For instance the value +# 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300 +# purple, and 360 is red again. +# Minimum value: 0, maximum value: 359, default value: 220. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_COLORSTYLE_HUE = 220 + +# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors +# in the HTML output. For a value of 0 the output will use grayscales only. A +# value of 255 will produce the most vivid colors. +# Minimum value: 0, maximum value: 255, default value: 100. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_COLORSTYLE_SAT = 100 + +# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the +# luminance component of the colors in the HTML output. Values below 100 +# gradually make the output lighter, whereas values above 100 make the output +# darker. The value divided by 100 is the actual gamma applied, so 80 represents +# a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not +# change the gamma. +# Minimum value: 40, maximum value: 240, default value: 80. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_COLORSTYLE_GAMMA = 80 + +# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML +# page will contain the date and time when the page was generated. Setting this +# to YES can help to show when doxygen was last run and thus if the +# documentation is up to date. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_TIMESTAMP = NO + +# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML +# documentation will contain sections that can be hidden and shown after the +# page has loaded. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_DYNAMIC_SECTIONS = NO + +# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries +# shown in the various tree structured indices initially; the user can expand +# and collapse entries dynamically later on. Doxygen will expand the tree to +# such a level that at most the specified number of entries are visible (unless +# a fully collapsed tree already exceeds this amount). So setting the number of +# entries 1 will produce a full collapsed tree by default. 0 is a special value +# representing an infinite number of entries and will result in a full expanded +# tree by default. +# Minimum value: 0, maximum value: 9999, default value: 100. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_INDEX_NUM_ENTRIES = 100 + +# If the GENERATE_DOCSET tag is set to YES, additional index files will be +# generated that can be used as input for Apple's Xcode 3 integrated development +# environment (see: http://developer.apple.com/tools/xcode/), introduced with +# OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a +# Makefile in the HTML output directory. Running make will produce the docset in +# that directory and running make install will install the docset in +# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at +# startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html +# for more information. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_DOCSET = NO + +# This tag determines the name of the docset feed. A documentation feed provides +# an umbrella under which multiple documentation sets from a single provider +# (such as a company or product suite) can be grouped. +# The default value is: Doxygen generated docs. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_FEEDNAME = "Doxygen generated docs" + +# This tag specifies a string that should uniquely identify the documentation +# set bundle. This should be a reverse domain-name style string, e.g. +# com.mycompany.MyDocSet. Doxygen will append .docset to the name. +# The default value is: org.doxygen.Project. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_BUNDLE_ID = org.doxygen.Project + +# The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify +# the documentation publisher. This should be a reverse domain-name style +# string, e.g. com.mycompany.MyDocSet.documentation. +# The default value is: org.doxygen.Publisher. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_PUBLISHER_ID = org.doxygen.Publisher + +# The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher. +# The default value is: Publisher. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_PUBLISHER_NAME = Publisher + +# If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three +# additional HTML index files: index.hhp, index.hhc, and index.hhk. The +# index.hhp is a project file that can be read by Microsoft's HTML Help Workshop +# (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on +# Windows. +# +# The HTML Help Workshop contains a compiler that can convert all HTML output +# generated by doxygen into a single compiled HTML file (.chm). Compiled HTML +# files are now used as the Windows 98 help format, and will replace the old +# Windows help format (.hlp) on all Windows platforms in the future. Compressed +# HTML files also contain an index, a table of contents, and you can search for +# words in the documentation. The HTML workshop also contains a viewer for +# compressed HTML files. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_HTMLHELP = NO + +# The CHM_FILE tag can be used to specify the file name of the resulting .chm +# file. You can add a path in front of the file if the result should not be +# written to the html output directory. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +CHM_FILE = + +# The HHC_LOCATION tag can be used to specify the location (absolute path +# including file name) of the HTML help compiler (hhc.exe). If non-empty, +# doxygen will try to run the HTML help compiler on the generated index.hhp. +# The file has to be specified with full path. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +HHC_LOCATION = + +# The GENERATE_CHI flag controls if a separate .chi index file is generated +# (YES) or that it should be included in the master .chm file (NO). +# The default value is: NO. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +GENERATE_CHI = NO + +# The CHM_INDEX_ENCODING is used to encode HtmlHelp index (hhk), content (hhc) +# and project file content. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +CHM_INDEX_ENCODING = + +# The BINARY_TOC flag controls whether a binary table of contents is generated +# (YES) or a normal table of contents (NO) in the .chm file. Furthermore it +# enables the Previous and Next buttons. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +BINARY_TOC = NO + +# The TOC_EXPAND flag can be set to YES to add extra items for group members to +# the table of contents of the HTML help documentation and to the tree view. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +TOC_EXPAND = NO + +# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and +# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that +# can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help +# (.qch) of the generated HTML documentation. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_QHP = NO + +# If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify +# the file name of the resulting .qch file. The path specified is relative to +# the HTML output folder. +# This tag requires that the tag GENERATE_QHP is set to YES. + +QCH_FILE = + +# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help +# Project output. For more information please see Qt Help Project / Namespace +# (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace). +# The default value is: org.doxygen.Project. +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_NAMESPACE = org.doxygen.Project + +# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt +# Help Project output. For more information please see Qt Help Project / Virtual +# Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual- +# folders). +# The default value is: doc. +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_VIRTUAL_FOLDER = doc + +# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom +# filter to add. For more information please see Qt Help Project / Custom +# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom- +# filters). +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_CUST_FILTER_NAME = + +# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the +# custom filter to add. For more information please see Qt Help Project / Custom +# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom- +# filters). +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_CUST_FILTER_ATTRS = + +# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this +# project's filter section matches. Qt Help Project / Filter Attributes (see: +# http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes). +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_SECT_FILTER_ATTRS = + +# The QHG_LOCATION tag can be used to specify the location of Qt's +# qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the +# generated .qhp file. +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHG_LOCATION = + +# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be +# generated, together with the HTML files, they form an Eclipse help plugin. To +# install this plugin and make it available under the help contents menu in +# Eclipse, the contents of the directory containing the HTML and XML files needs +# to be copied into the plugins directory of eclipse. The name of the directory +# within the plugins directory should be the same as the ECLIPSE_DOC_ID value. +# After copying Eclipse needs to be restarted before the help appears. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_ECLIPSEHELP = NO + +# A unique identifier for the Eclipse help plugin. When installing the plugin +# the directory name containing the HTML and XML files should also have this +# name. Each documentation set should have its own identifier. +# The default value is: org.doxygen.Project. +# This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES. + +ECLIPSE_DOC_ID = org.doxygen.Project + +# If you want full control over the layout of the generated HTML pages it might +# be necessary to disable the index and replace it with your own. The +# DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top +# of each HTML page. A value of NO enables the index and the value YES disables +# it. Since the tabs in the index contain the same information as the navigation +# tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +DISABLE_INDEX = NO + +# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index +# structure should be generated to display hierarchical information. If the tag +# value is set to YES, a side panel will be generated containing a tree-like +# index structure (just like the one that is generated for HTML Help). For this +# to work a browser that supports JavaScript, DHTML, CSS and frames is required +# (i.e. any modern browser). Windows users are probably better off using the +# HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can +# further fine-tune the look of the index. As an example, the default style +# sheet generated by doxygen has an example that shows how to put an image at +# the root of the tree instead of the PROJECT_NAME. Since the tree basically has +# the same information as the tab index, you could consider setting +# DISABLE_INDEX to YES when enabling this option. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_TREEVIEW = NO + +# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that +# doxygen will group on one line in the generated HTML documentation. +# +# Note that a value of 0 will completely suppress the enum values from appearing +# in the overview section. +# Minimum value: 0, maximum value: 20, default value: 4. +# This tag requires that the tag GENERATE_HTML is set to YES. + +ENUM_VALUES_PER_LINE = 4 + +# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used +# to set the initial width (in pixels) of the frame in which the tree is shown. +# Minimum value: 0, maximum value: 1500, default value: 250. +# This tag requires that the tag GENERATE_HTML is set to YES. + +TREEVIEW_WIDTH = 250 + +# If the EXT_LINKS_IN_WINDOW option is set to YES, doxygen will open links to +# external symbols imported via tag files in a separate window. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +EXT_LINKS_IN_WINDOW = NO + +# Use this tag to change the font size of LaTeX formulas included as images in +# the HTML documentation. When you change the font size after a successful +# doxygen run you need to manually remove any form_*.png images from the HTML +# output directory to force them to be regenerated. +# Minimum value: 8, maximum value: 50, default value: 10. +# This tag requires that the tag GENERATE_HTML is set to YES. + +FORMULA_FONTSIZE = 10 + +# Use the FORMULA_TRANPARENT tag to determine whether or not the images +# generated for formulas are transparent PNGs. Transparent PNGs are not +# supported properly for IE 6.0, but are supported on all modern browsers. +# +# Note that when changing this option you need to delete any form_*.png files in +# the HTML output directory before the changes have effect. +# The default value is: YES. +# This tag requires that the tag GENERATE_HTML is set to YES. + +FORMULA_TRANSPARENT = YES + +# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see +# http://www.mathjax.org) which uses client side Javascript for the rendering +# instead of using pre-rendered bitmaps. Use this if you do not have LaTeX +# installed or if you want to formulas look prettier in the HTML output. When +# enabled you may also need to install MathJax separately and configure the path +# to it using the MATHJAX_RELPATH option. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +USE_MATHJAX = NO + +# When MathJax is enabled you can set the default output format to be used for +# the MathJax output. See the MathJax site (see: +# http://docs.mathjax.org/en/latest/output.html) for more details. +# Possible values are: HTML-CSS (which is slower, but has the best +# compatibility), NativeMML (i.e. MathML) and SVG. +# The default value is: HTML-CSS. +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_FORMAT = HTML-CSS + +# When MathJax is enabled you need to specify the location relative to the HTML +# output directory using the MATHJAX_RELPATH option. The destination directory +# should contain the MathJax.js script. For instance, if the mathjax directory +# is located at the same level as the HTML output directory, then +# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax +# Content Delivery Network so you can quickly see the result without installing +# MathJax. However, it is strongly recommended to install a local copy of +# MathJax from http://www.mathjax.org before deployment. +# The default value is: http://cdn.mathjax.org/mathjax/latest. +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest + +# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax +# extension names that should be enabled during MathJax rendering. For example +# MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_EXTENSIONS = + +# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces +# of code that will be used on startup of the MathJax code. See the MathJax site +# (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an +# example see the documentation. +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_CODEFILE = + +# When the SEARCHENGINE tag is enabled doxygen will generate a search box for +# the HTML output. The underlying search engine uses javascript and DHTML and +# should work on any modern browser. Note that when using HTML help +# (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET) +# there is already a search function so this one should typically be disabled. +# For large projects the javascript based search engine can be slow, then +# enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to +# search using the keyboard; to jump to the search box use <access key> + S +# (what the <access key> is depends on the OS and browser, but it is typically +# <CTRL>, <ALT>/<option>, or both). Inside the search box use the <cursor down +# key> to jump into the search results window, the results can be navigated +# using the <cursor keys>. Press <Enter> to select an item or <escape> to cancel +# the search. The filter options can be selected when the cursor is inside the +# search box by pressing <Shift>+<cursor down>. Also here use the <cursor keys> +# to select a filter and <Enter> or <escape> to activate or cancel the filter +# option. +# The default value is: YES. +# This tag requires that the tag GENERATE_HTML is set to YES. + +SEARCHENGINE = YES + +# When the SERVER_BASED_SEARCH tag is enabled the search engine will be +# implemented using a web server instead of a web client using Javascript. There +# are two flavors of web server based searching depending on the EXTERNAL_SEARCH +# setting. When disabled, doxygen will generate a PHP script for searching and +# an index file used by the script. When EXTERNAL_SEARCH is enabled the indexing +# and searching needs to be provided by external tools. See the section +# "External Indexing and Searching" for details. +# The default value is: NO. +# This tag requires that the tag SEARCHENGINE is set to YES. + +SERVER_BASED_SEARCH = NO + +# When EXTERNAL_SEARCH tag is enabled doxygen will no longer generate the PHP +# script for searching. Instead the search results are written to an XML file +# which needs to be processed by an external indexer. Doxygen will invoke an +# external search engine pointed to by the SEARCHENGINE_URL option to obtain the +# search results. +# +# Doxygen ships with an example indexer (doxyindexer) and search engine +# (doxysearch.cgi) which are based on the open source search engine library +# Xapian (see: http://xapian.org/). +# +# See the section "External Indexing and Searching" for details. +# The default value is: NO. +# This tag requires that the tag SEARCHENGINE is set to YES. + +EXTERNAL_SEARCH = NO + +# The SEARCHENGINE_URL should point to a search engine hosted by a web server +# which will return the search results when EXTERNAL_SEARCH is enabled. +# +# Doxygen ships with an example indexer (doxyindexer) and search engine +# (doxysearch.cgi) which are based on the open source search engine library +# Xapian (see: http://xapian.org/). See the section "External Indexing and +# Searching" for details. +# This tag requires that the tag SEARCHENGINE is set to YES. + +SEARCHENGINE_URL = + +# When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the unindexed +# search data is written to a file for indexing by an external tool. With the +# SEARCHDATA_FILE tag the name of this file can be specified. +# The default file is: searchdata.xml. +# This tag requires that the tag SEARCHENGINE is set to YES. + +SEARCHDATA_FILE = searchdata.xml + +# When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the +# EXTERNAL_SEARCH_ID tag can be used as an identifier for the project. This is +# useful in combination with EXTRA_SEARCH_MAPPINGS to search through multiple +# projects and redirect the results back to the right project. +# This tag requires that the tag SEARCHENGINE is set to YES. + +EXTERNAL_SEARCH_ID = + +# The EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through doxygen +# projects other than the one defined by this configuration file, but that are +# all added to the same external search index. Each project needs to have a +# unique id set via EXTERNAL_SEARCH_ID. The search mapping then maps the id of +# to a relative location where the documentation can be found. The format is: +# EXTRA_SEARCH_MAPPINGS = tagname1=loc1 tagname2=loc2 ... +# This tag requires that the tag SEARCHENGINE is set to YES. + +EXTRA_SEARCH_MAPPINGS = + +#--------------------------------------------------------------------------- +# Configuration options related to the LaTeX output +#--------------------------------------------------------------------------- + +# If the GENERATE_LATEX tag is set to YES, doxygen will generate LaTeX output. +# The default value is: YES. + +GENERATE_LATEX = YES + +# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. If a +# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of +# it. +# The default directory is: latex. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +LATEX_OUTPUT = latex + +# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be +# invoked. +# +# Note that when enabling USE_PDFLATEX this option is only used for generating +# bitmaps for formulas in the HTML output, but not in the Makefile that is +# written to the output directory. +# The default file is: latex. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +LATEX_CMD_NAME = latex + +# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to generate +# index for LaTeX. +# The default file is: makeindex. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +MAKEINDEX_CMD_NAME = makeindex + +# If the COMPACT_LATEX tag is set to YES, doxygen generates more compact LaTeX +# documents. This may be useful for small projects and may help to save some +# trees in general. +# The default value is: NO. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +COMPACT_LATEX = NO + +# The PAPER_TYPE tag can be used to set the paper type that is used by the +# printer. +# Possible values are: a4 (210 x 297 mm), letter (8.5 x 11 inches), legal (8.5 x +# 14 inches) and executive (7.25 x 10.5 inches). +# The default value is: a4. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +PAPER_TYPE = a4 + +# The EXTRA_PACKAGES tag can be used to specify one or more LaTeX package names +# that should be included in the LaTeX output. The package can be specified just +# by its name or with the correct syntax as to be used with the LaTeX +# \usepackage command. To get the times font for instance you can specify : +# EXTRA_PACKAGES=times or EXTRA_PACKAGES={times} +# To use the option intlimits with the amsmath package you can specify: +# EXTRA_PACKAGES=[intlimits]{amsmath} +# If left blank no extra packages will be included. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +EXTRA_PACKAGES = + +# The LATEX_HEADER tag can be used to specify a personal LaTeX header for the +# generated LaTeX document. The header should contain everything until the first +# chapter. If it is left blank doxygen will generate a standard header. See +# section "Doxygen usage" for information on how to let doxygen write the +# default header to a separate file. +# +# Note: Only use a user-defined header if you know what you are doing! The +# following commands have a special meaning inside the header: $title, +# $datetime, $date, $doxygenversion, $projectname, $projectnumber, +# $projectbrief, $projectlogo. Doxygen will replace $title with the empty +# string, for the replacement values of the other commands the user is referred +# to HTML_HEADER. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +LATEX_HEADER = + +# The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for the +# generated LaTeX document. The footer should contain everything after the last +# chapter. If it is left blank doxygen will generate a standard footer. See +# LATEX_HEADER for more information on how to generate a default footer and what +# special commands can be used inside the footer. +# +# Note: Only use a user-defined footer if you know what you are doing! +# This tag requires that the tag GENERATE_LATEX is set to YES. + +LATEX_FOOTER = + +# The LATEX_EXTRA_STYLESHEET tag can be used to specify additional user-defined +# LaTeX style sheets that are included after the standard style sheets created +# by doxygen. Using this option one can overrule certain style aspects. Doxygen +# will copy the style sheet files to the output directory. +# Note: The order of the extra style sheet files is of importance (e.g. the last +# style sheet in the list overrules the setting of the previous ones in the +# list). +# This tag requires that the tag GENERATE_LATEX is set to YES. + +LATEX_EXTRA_STYLESHEET = + +# The LATEX_EXTRA_FILES tag can be used to specify one or more extra images or +# other source files which should be copied to the LATEX_OUTPUT output +# directory. Note that the files will be copied as-is; there are no commands or +# markers available. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +LATEX_EXTRA_FILES = + +# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated is +# prepared for conversion to PDF (using ps2pdf or pdflatex). The PDF file will +# contain links (just like the HTML output) instead of page references. This +# makes the output suitable for online browsing using a PDF viewer. +# The default value is: YES. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +PDF_HYPERLINKS = YES + +# If the USE_PDFLATEX tag is set to YES, doxygen will use pdflatex to generate +# the PDF file directly from the LaTeX files. Set this option to YES, to get a +# higher quality PDF documentation. +# The default value is: YES. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +USE_PDFLATEX = YES + +# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \batchmode +# command to the generated LaTeX files. This will instruct LaTeX to keep running +# if errors occur, instead of asking the user for help. This option is also used +# when generating formulas in HTML. +# The default value is: NO. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +LATEX_BATCHMODE = NO + +# If the LATEX_HIDE_INDICES tag is set to YES then doxygen will not include the +# index chapters (such as File Index, Compound Index, etc.) in the output. +# The default value is: NO. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +LATEX_HIDE_INDICES = NO + +# If the LATEX_SOURCE_CODE tag is set to YES then doxygen will include source +# code with syntax highlighting in the LaTeX output. +# +# Note that which sources are shown also depends on other settings such as +# SOURCE_BROWSER. +# The default value is: NO. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +LATEX_SOURCE_CODE = NO + +# The LATEX_BIB_STYLE tag can be used to specify the style to use for the +# bibliography, e.g. plainnat, or ieeetr. See +# http://en.wikipedia.org/wiki/BibTeX and \cite for more info. +# The default value is: plain. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +LATEX_BIB_STYLE = plain + +# If the LATEX_TIMESTAMP tag is set to YES then the footer of each generated +# page will contain the date and time when the page was generated. Setting this +# to NO can help when comparing the output of multiple runs. +# The default value is: NO. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +LATEX_TIMESTAMP = NO + +#--------------------------------------------------------------------------- +# Configuration options related to the RTF output +#--------------------------------------------------------------------------- + +# If the GENERATE_RTF tag is set to YES, doxygen will generate RTF output. The +# RTF output is optimized for Word 97 and may not look too pretty with other RTF +# readers/editors. +# The default value is: NO. + +GENERATE_RTF = NO + +# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. If a +# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of +# it. +# The default directory is: rtf. +# This tag requires that the tag GENERATE_RTF is set to YES. + +RTF_OUTPUT = rtf + +# If the COMPACT_RTF tag is set to YES, doxygen generates more compact RTF +# documents. This may be useful for small projects and may help to save some +# trees in general. +# The default value is: NO. +# This tag requires that the tag GENERATE_RTF is set to YES. + +COMPACT_RTF = NO + +# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated will +# contain hyperlink fields. The RTF file will contain links (just like the HTML +# output) instead of page references. This makes the output suitable for online +# browsing using Word or some other Word compatible readers that support those +# fields. +# +# Note: WordPad (write) and others do not support links. +# The default value is: NO. +# This tag requires that the tag GENERATE_RTF is set to YES. + +RTF_HYPERLINKS = NO + +# Load stylesheet definitions from file. Syntax is similar to doxygen's config +# file, i.e. a series of assignments. You only have to provide replacements, +# missing definitions are set to their default value. +# +# See also section "Doxygen usage" for information on how to generate the +# default style sheet that doxygen normally uses. +# This tag requires that the tag GENERATE_RTF is set to YES. + +RTF_STYLESHEET_FILE = + +# Set optional variables used in the generation of an RTF document. Syntax is +# similar to doxygen's config file. A template extensions file can be generated +# using doxygen -e rtf extensionFile. +# This tag requires that the tag GENERATE_RTF is set to YES. + +RTF_EXTENSIONS_FILE = + +# If the RTF_SOURCE_CODE tag is set to YES then doxygen will include source code +# with syntax highlighting in the RTF output. +# +# Note that which sources are shown also depends on other settings such as +# SOURCE_BROWSER. +# The default value is: NO. +# This tag requires that the tag GENERATE_RTF is set to YES. + +RTF_SOURCE_CODE = NO + +#--------------------------------------------------------------------------- +# Configuration options related to the man page output +#--------------------------------------------------------------------------- + +# If the GENERATE_MAN tag is set to YES, doxygen will generate man pages for +# classes and files. +# The default value is: NO. + +GENERATE_MAN = NO + +# The MAN_OUTPUT tag is used to specify where the man pages will be put. If a +# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of +# it. A directory man3 will be created inside the directory specified by +# MAN_OUTPUT. +# The default directory is: man. +# This tag requires that the tag GENERATE_MAN is set to YES. + +MAN_OUTPUT = man + +# The MAN_EXTENSION tag determines the extension that is added to the generated +# man pages. In case the manual section does not start with a number, the number +# 3 is prepended. The dot (.) at the beginning of the MAN_EXTENSION tag is +# optional. +# The default value is: .3. +# This tag requires that the tag GENERATE_MAN is set to YES. + +MAN_EXTENSION = .3 + +# The MAN_SUBDIR tag determines the name of the directory created within +# MAN_OUTPUT in which the man pages are placed. If defaults to man followed by +# MAN_EXTENSION with the initial . removed. +# This tag requires that the tag GENERATE_MAN is set to YES. + +MAN_SUBDIR = + +# If the MAN_LINKS tag is set to YES and doxygen generates man output, then it +# will generate one additional man file for each entity documented in the real +# man page(s). These additional files only source the real man page, but without +# them the man command would be unable to find the correct page. +# The default value is: NO. +# This tag requires that the tag GENERATE_MAN is set to YES. + +MAN_LINKS = NO + +#--------------------------------------------------------------------------- +# Configuration options related to the XML output +#--------------------------------------------------------------------------- + +# If the GENERATE_XML tag is set to YES, doxygen will generate an XML file that +# captures the structure of the code including all documentation. +# The default value is: NO. + +GENERATE_XML = NO + +# The XML_OUTPUT tag is used to specify where the XML pages will be put. If a +# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of +# it. +# The default directory is: xml. +# This tag requires that the tag GENERATE_XML is set to YES. + +XML_OUTPUT = xml + +# If the XML_PROGRAMLISTING tag is set to YES, doxygen will dump the program +# listings (including syntax highlighting and cross-referencing information) to +# the XML output. Note that enabling this will significantly increase the size +# of the XML output. +# The default value is: YES. +# This tag requires that the tag GENERATE_XML is set to YES. + +XML_PROGRAMLISTING = YES + +#--------------------------------------------------------------------------- +# Configuration options related to the DOCBOOK output +#--------------------------------------------------------------------------- + +# If the GENERATE_DOCBOOK tag is set to YES, doxygen will generate Docbook files +# that can be used to generate PDF. +# The default value is: NO. + +GENERATE_DOCBOOK = NO + +# The DOCBOOK_OUTPUT tag is used to specify where the Docbook pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be put in +# front of it. +# The default directory is: docbook. +# This tag requires that the tag GENERATE_DOCBOOK is set to YES. + +DOCBOOK_OUTPUT = docbook + +# If the DOCBOOK_PROGRAMLISTING tag is set to YES, doxygen will include the +# program listings (including syntax highlighting and cross-referencing +# information) to the DOCBOOK output. Note that enabling this will significantly +# increase the size of the DOCBOOK output. +# The default value is: NO. +# This tag requires that the tag GENERATE_DOCBOOK is set to YES. + +DOCBOOK_PROGRAMLISTING = NO + +#--------------------------------------------------------------------------- +# Configuration options for the AutoGen Definitions output +#--------------------------------------------------------------------------- + +# If the GENERATE_AUTOGEN_DEF tag is set to YES, doxygen will generate an +# AutoGen Definitions (see http://autogen.sf.net) file that captures the +# structure of the code including all documentation. Note that this feature is +# still experimental and incomplete at the moment. +# The default value is: NO. + +GENERATE_AUTOGEN_DEF = NO + +#--------------------------------------------------------------------------- +# Configuration options related to the Perl module output +#--------------------------------------------------------------------------- + +# If the GENERATE_PERLMOD tag is set to YES, doxygen will generate a Perl module +# file that captures the structure of the code including all documentation. +# +# Note that this feature is still experimental and incomplete at the moment. +# The default value is: NO. + +GENERATE_PERLMOD = NO + +# If the PERLMOD_LATEX tag is set to YES, doxygen will generate the necessary +# Makefile rules, Perl scripts and LaTeX code to be able to generate PDF and DVI +# output from the Perl module output. +# The default value is: NO. +# This tag requires that the tag GENERATE_PERLMOD is set to YES. + +PERLMOD_LATEX = NO + +# If the PERLMOD_PRETTY tag is set to YES, the Perl module output will be nicely +# formatted so it can be parsed by a human reader. This is useful if you want to +# understand what is going on. On the other hand, if this tag is set to NO, the +# size of the Perl module output will be much smaller and Perl will parse it +# just the same. +# The default value is: YES. +# This tag requires that the tag GENERATE_PERLMOD is set to YES. + +PERLMOD_PRETTY = YES + +# The names of the make variables in the generated doxyrules.make file are +# prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. This is useful +# so different doxyrules.make files included by the same Makefile don't +# overwrite each other's variables. +# This tag requires that the tag GENERATE_PERLMOD is set to YES. + +PERLMOD_MAKEVAR_PREFIX = + +#--------------------------------------------------------------------------- +# Configuration options related to the preprocessor +#--------------------------------------------------------------------------- + +# If the ENABLE_PREPROCESSING tag is set to YES, doxygen will evaluate all +# C-preprocessor directives found in the sources and include files. +# The default value is: YES. + +ENABLE_PREPROCESSING = YES + +# If the MACRO_EXPANSION tag is set to YES, doxygen will expand all macro names +# in the source code. If set to NO, only conditional compilation will be +# performed. Macro expansion can be done in a controlled way by setting +# EXPAND_ONLY_PREDEF to YES. +# The default value is: NO. +# This tag requires that the tag ENABLE_PREPROCESSING is set to YES. + +MACRO_EXPANSION = NO + +# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES then +# the macro expansion is limited to the macros specified with the PREDEFINED and +# EXPAND_AS_DEFINED tags. +# The default value is: NO. +# This tag requires that the tag ENABLE_PREPROCESSING is set to YES. + +EXPAND_ONLY_PREDEF = NO + +# If the SEARCH_INCLUDES tag is set to YES, the include files in the +# INCLUDE_PATH will be searched if a #include is found. +# The default value is: YES. +# This tag requires that the tag ENABLE_PREPROCESSING is set to YES. + +SEARCH_INCLUDES = YES + +# The INCLUDE_PATH tag can be used to specify one or more directories that +# contain include files that are not input files but should be processed by the +# preprocessor. +# This tag requires that the tag SEARCH_INCLUDES is set to YES. + +INCLUDE_PATH = + +# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard +# patterns (like *.h and *.hpp) to filter out the header-files in the +# directories. If left blank, the patterns specified with FILE_PATTERNS will be +# used. +# This tag requires that the tag ENABLE_PREPROCESSING is set to YES. + +INCLUDE_FILE_PATTERNS = + +# The PREDEFINED tag can be used to specify one or more macro names that are +# defined before the preprocessor is started (similar to the -D option of e.g. +# gcc). The argument of the tag is a list of macros of the form: name or +# name=definition (no spaces). If the definition and the "=" are omitted, "=1" +# is assumed. To prevent a macro definition from being undefined via #undef or +# recursively expanded use the := operator instead of the = operator. +# This tag requires that the tag ENABLE_PREPROCESSING is set to YES. + +PREDEFINED = + +# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this +# tag can be used to specify a list of macro names that should be expanded. The +# macro definition that is found in the sources will be used. Use the PREDEFINED +# tag if you want to use a different macro definition that overrules the +# definition found in the source code. +# This tag requires that the tag ENABLE_PREPROCESSING is set to YES. + +EXPAND_AS_DEFINED = + +# If the SKIP_FUNCTION_MACROS tag is set to YES then doxygen's preprocessor will +# remove all references to function-like macros that are alone on a line, have +# an all uppercase name, and do not end with a semicolon. Such function macros +# are typically used for boiler-plate code, and will confuse the parser if not +# removed. +# The default value is: YES. +# This tag requires that the tag ENABLE_PREPROCESSING is set to YES. + +SKIP_FUNCTION_MACROS = YES + +#--------------------------------------------------------------------------- +# Configuration options related to external references +#--------------------------------------------------------------------------- + +# The TAGFILES tag can be used to specify one or more tag files. For each tag +# file the location of the external documentation should be added. The format of +# a tag file without this location is as follows: +# TAGFILES = file1 file2 ... +# Adding location for the tag files is done as follows: +# TAGFILES = file1=loc1 "file2 = loc2" ... +# where loc1 and loc2 can be relative or absolute paths or URLs. See the +# section "Linking to external documentation" for more information about the use +# of tag files. +# Note: Each tag file must have a unique name (where the name does NOT include +# the path). If a tag file is not located in the directory in which doxygen is +# run, you must also specify the path to the tagfile here. + +TAGFILES = + +# When a file name is specified after GENERATE_TAGFILE, doxygen will create a +# tag file that is based on the input files it reads. See section "Linking to +# external documentation" for more information about the usage of tag files. + +GENERATE_TAGFILE = + +# If the ALLEXTERNALS tag is set to YES, all external class will be listed in +# the class index. If set to NO, only the inherited external classes will be +# listed. +# The default value is: NO. + +ALLEXTERNALS = NO + +# If the EXTERNAL_GROUPS tag is set to YES, all external groups will be listed +# in the modules index. If set to NO, only the current project's groups will be +# listed. +# The default value is: YES. + +EXTERNAL_GROUPS = YES + +# If the EXTERNAL_PAGES tag is set to YES, all external pages will be listed in +# the related pages index. If set to NO, only the current project's pages will +# be listed. +# The default value is: YES. + +EXTERNAL_PAGES = YES + +# The PERL_PATH should be the absolute path and name of the perl script +# interpreter (i.e. the result of 'which perl'). +# The default file (with absolute path) is: /usr/bin/perl. + +PERL_PATH = /usr/bin/perl + +#--------------------------------------------------------------------------- +# Configuration options related to the dot tool +#--------------------------------------------------------------------------- + +# If the CLASS_DIAGRAMS tag is set to YES, doxygen will generate a class diagram +# (in HTML and LaTeX) for classes with base or super classes. Setting the tag to +# NO turns the diagrams off. Note that this option also works with HAVE_DOT +# disabled, but it is recommended to install and use dot, since it yields more +# powerful graphs. +# The default value is: YES. + +CLASS_DIAGRAMS = YES + +# You can define message sequence charts within doxygen comments using the \msc +# command. Doxygen will then run the mscgen tool (see: +# http://www.mcternan.me.uk/mscgen/)) to produce the chart and insert it in the +# documentation. The MSCGEN_PATH tag allows you to specify the directory where +# the mscgen tool resides. If left empty the tool is assumed to be found in the +# default search path. + +MSCGEN_PATH = + +# You can include diagrams made with dia in doxygen documentation. Doxygen will +# then run dia to produce the diagram and insert it in the documentation. The +# DIA_PATH tag allows you to specify the directory where the dia binary resides. +# If left empty dia is assumed to be found in the default search path. + +DIA_PATH = + +# If set to YES the inheritance and collaboration graphs will hide inheritance +# and usage relations if the target is undocumented or is not a class. +# The default value is: YES. + +HIDE_UNDOC_RELATIONS = YES + +# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is +# available from the path. This tool is part of Graphviz (see: +# http://www.graphviz.org/), a graph visualization toolkit from AT&T and Lucent +# Bell Labs. The other options in this section have no effect if this option is +# set to NO +# The default value is: YES. + +HAVE_DOT = YES + +# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is allowed +# to run in parallel. When set to 0 doxygen will base this on the number of +# processors available in the system. You can set it explicitly to a value +# larger than 0 to get control over the balance between CPU load and processing +# speed. +# Minimum value: 0, maximum value: 32, default value: 0. +# This tag requires that the tag HAVE_DOT is set to YES. + +DOT_NUM_THREADS = 0 + +# When you want a differently looking font in the dot files that doxygen +# generates you can specify the font name using DOT_FONTNAME. You need to make +# sure dot is able to find the font, which can be done by putting it in a +# standard location or by setting the DOTFONTPATH environment variable or by +# setting DOT_FONTPATH to the directory containing the font. +# The default value is: Helvetica. +# This tag requires that the tag HAVE_DOT is set to YES. + +DOT_FONTNAME = Helvetica + +# The DOT_FONTSIZE tag can be used to set the size (in points) of the font of +# dot graphs. +# Minimum value: 4, maximum value: 24, default value: 10. +# This tag requires that the tag HAVE_DOT is set to YES. + +DOT_FONTSIZE = 10 + +# By default doxygen will tell dot to use the default font as specified with +# DOT_FONTNAME. If you specify a different font using DOT_FONTNAME you can set +# the path where dot can find it using this tag. +# This tag requires that the tag HAVE_DOT is set to YES. + +DOT_FONTPATH = + +# If the CLASS_GRAPH tag is set to YES then doxygen will generate a graph for +# each documented class showing the direct and indirect inheritance relations. +# Setting this tag to YES will force the CLASS_DIAGRAMS tag to NO. +# The default value is: YES. +# This tag requires that the tag HAVE_DOT is set to YES. + +CLASS_GRAPH = YES + +# If the COLLABORATION_GRAPH tag is set to YES then doxygen will generate a +# graph for each documented class showing the direct and indirect implementation +# dependencies (inheritance, containment, and class references variables) of the +# class with other documented classes. +# The default value is: YES. +# This tag requires that the tag HAVE_DOT is set to YES. + +COLLABORATION_GRAPH = YES + +# If the GROUP_GRAPHS tag is set to YES then doxygen will generate a graph for +# groups, showing the direct groups dependencies. +# The default value is: YES. +# This tag requires that the tag HAVE_DOT is set to YES. + +GROUP_GRAPHS = YES + +# If the UML_LOOK tag is set to YES, doxygen will generate inheritance and +# collaboration diagrams in a style similar to the OMG's Unified Modeling +# Language. +# The default value is: NO. +# This tag requires that the tag HAVE_DOT is set to YES. + +UML_LOOK = NO + +# If the UML_LOOK tag is enabled, the fields and methods are shown inside the +# class node. If there are many fields or methods and many nodes the graph may +# become too big to be useful. The UML_LIMIT_NUM_FIELDS threshold limits the +# number of items for each type to make the size more manageable. Set this to 0 +# for no limit. Note that the threshold may be exceeded by 50% before the limit +# is enforced. So when you set the threshold to 10, up to 15 fields may appear, +# but if the number exceeds 15, the total amount of fields shown is limited to +# 10. +# Minimum value: 0, maximum value: 100, default value: 10. +# This tag requires that the tag HAVE_DOT is set to YES. + +UML_LIMIT_NUM_FIELDS = 10 + +# If the TEMPLATE_RELATIONS tag is set to YES then the inheritance and +# collaboration graphs will show the relations between templates and their +# instances. +# The default value is: NO. +# This tag requires that the tag HAVE_DOT is set to YES. + +TEMPLATE_RELATIONS = NO + +# If the INCLUDE_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are set to +# YES then doxygen will generate a graph for each documented file showing the +# direct and indirect include dependencies of the file with other documented +# files. +# The default value is: YES. +# This tag requires that the tag HAVE_DOT is set to YES. + +INCLUDE_GRAPH = YES + +# If the INCLUDED_BY_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are +# set to YES then doxygen will generate a graph for each documented file showing +# the direct and indirect include dependencies of the file with other documented +# files. +# The default value is: YES. +# This tag requires that the tag HAVE_DOT is set to YES. + +INCLUDED_BY_GRAPH = YES + +# If the CALL_GRAPH tag is set to YES then doxygen will generate a call +# dependency graph for every global function or class method. +# +# Note that enabling this option will significantly increase the time of a run. +# So in most cases it will be better to enable call graphs for selected +# functions only using the \callgraph command. Disabling a call graph can be +# accomplished by means of the command \hidecallgraph. +# The default value is: NO. +# This tag requires that the tag HAVE_DOT is set to YES. + +CALL_GRAPH = NO + +# If the CALLER_GRAPH tag is set to YES then doxygen will generate a caller +# dependency graph for every global function or class method. +# +# Note that enabling this option will significantly increase the time of a run. +# So in most cases it will be better to enable caller graphs for selected +# functions only using the \callergraph command. Disabling a caller graph can be +# accomplished by means of the command \hidecallergraph. +# The default value is: NO. +# This tag requires that the tag HAVE_DOT is set to YES. + +CALLER_GRAPH = NO + +# If the GRAPHICAL_HIERARCHY tag is set to YES then doxygen will graphical +# hierarchy of all classes instead of a textual one. +# The default value is: YES. +# This tag requires that the tag HAVE_DOT is set to YES. + +GRAPHICAL_HIERARCHY = YES + +# If the DIRECTORY_GRAPH tag is set to YES then doxygen will show the +# dependencies a directory has on other directories in a graphical way. The +# dependency relations are determined by the #include relations between the +# files in the directories. +# The default value is: YES. +# This tag requires that the tag HAVE_DOT is set to YES. + +DIRECTORY_GRAPH = YES + +# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images +# generated by dot. For an explanation of the image formats see the section +# output formats in the documentation of the dot tool (Graphviz (see: +# http://www.graphviz.org/)). +# Note: If you choose svg you need to set HTML_FILE_EXTENSION to xhtml in order +# to make the SVG files visible in IE 9+ (other browsers do not have this +# requirement). +# Possible values are: png, png:cairo, png:cairo:cairo, png:cairo:gd, png:gd, +# png:gd:gd, jpg, jpg:cairo, jpg:cairo:gd, jpg:gd, jpg:gd:gd, gif, gif:cairo, +# gif:cairo:gd, gif:gd, gif:gd:gd, svg, png:gd, png:gd:gd, png:cairo, +# png:cairo:gd, png:cairo:cairo, png:cairo:gdiplus, png:gdiplus and +# png:gdiplus:gdiplus. +# The default value is: png. +# This tag requires that the tag HAVE_DOT is set to YES. + +DOT_IMAGE_FORMAT = png + +# If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to +# enable generation of interactive SVG images that allow zooming and panning. +# +# Note that this requires a modern browser other than Internet Explorer. Tested +# and working are Firefox, Chrome, Safari, and Opera. +# Note: For IE 9+ you need to set HTML_FILE_EXTENSION to xhtml in order to make +# the SVG files visible. Older versions of IE do not have SVG support. +# The default value is: NO. +# This tag requires that the tag HAVE_DOT is set to YES. + +INTERACTIVE_SVG = NO + +# The DOT_PATH tag can be used to specify the path where the dot tool can be +# found. If left blank, it is assumed the dot tool can be found in the path. +# This tag requires that the tag HAVE_DOT is set to YES. + +DOT_PATH = + +# The DOTFILE_DIRS tag can be used to specify one or more directories that +# contain dot files that are included in the documentation (see the \dotfile +# command). +# This tag requires that the tag HAVE_DOT is set to YES. + +DOTFILE_DIRS = + +# The MSCFILE_DIRS tag can be used to specify one or more directories that +# contain msc files that are included in the documentation (see the \mscfile +# command). + +MSCFILE_DIRS = + +# The DIAFILE_DIRS tag can be used to specify one or more directories that +# contain dia files that are included in the documentation (see the \diafile +# command). + +DIAFILE_DIRS = + +# When using plantuml, the PLANTUML_JAR_PATH tag should be used to specify the +# path where java can find the plantuml.jar file. If left blank, it is assumed +# PlantUML is not used or called during a preprocessing step. Doxygen will +# generate a warning when it encounters a \startuml command in this case and +# will not generate output for the diagram. + +PLANTUML_JAR_PATH = + +# When using plantuml, the PLANTUML_CFG_FILE tag can be used to specify a +# configuration file for plantuml. + +PLANTUML_CFG_FILE = + +# When using plantuml, the specified paths are searched for files specified by +# the !include statement in a plantuml block. + +PLANTUML_INCLUDE_PATH = + +# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of nodes +# that will be shown in the graph. If the number of nodes in a graph becomes +# larger than this value, doxygen will truncate the graph, which is visualized +# by representing a node as a red box. Note that doxygen if the number of direct +# children of the root node in a graph is already larger than +# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note that +# the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH. +# Minimum value: 0, maximum value: 10000, default value: 50. +# This tag requires that the tag HAVE_DOT is set to YES. + +DOT_GRAPH_MAX_NODES = 50 + +# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the graphs +# generated by dot. A depth value of 3 means that only nodes reachable from the +# root by following a path via at most 3 edges will be shown. Nodes that lay +# further from the root node will be omitted. Note that setting this option to 1 +# or 2 may greatly reduce the computation time needed for large code bases. Also +# note that the size of a graph can be further restricted by +# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction. +# Minimum value: 0, maximum value: 1000, default value: 0. +# This tag requires that the tag HAVE_DOT is set to YES. + +MAX_DOT_GRAPH_DEPTH = 0 + +# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent +# background. This is disabled by default, because dot on Windows does not seem +# to support this out of the box. +# +# Warning: Depending on the platform used, enabling this option may lead to +# badly anti-aliased labels on the edges of a graph (i.e. they become hard to +# read). +# The default value is: NO. +# This tag requires that the tag HAVE_DOT is set to YES. + +DOT_TRANSPARENT = NO + +# Set the DOT_MULTI_TARGETS tag to YES to allow dot to generate multiple output +# files in one run (i.e. multiple -o and -T options on the command line). This +# makes dot run faster, but since only newer versions of dot (>1.8.10) support +# this, this feature is disabled by default. +# The default value is: NO. +# This tag requires that the tag HAVE_DOT is set to YES. + +DOT_MULTI_TARGETS = NO + +# If the GENERATE_LEGEND tag is set to YES doxygen will generate a legend page +# explaining the meaning of the various boxes and arrows in the dot generated +# graphs. +# The default value is: YES. +# This tag requires that the tag HAVE_DOT is set to YES. + +GENERATE_LEGEND = YES + +# If the DOT_CLEANUP tag is set to YES, doxygen will remove the intermediate dot +# files that are used to generate the various graphs. +# The default value is: YES. +# This tag requires that the tag HAVE_DOT is set to YES. + +DOT_CLEANUP = YES diff --git a/cpp/src/CMakeLists.txt b/cpp/src/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..a458b7367be7ad93bdd246349faff18563688213 --- /dev/null +++ b/cpp/src/CMakeLists.txt @@ -0,0 +1,94 @@ +if (fmt_FOUND) + get_target_property(FMT_INCLUDE_DIR fmt::fmt INTERFACE_INCLUDE_DIRECTORIES) +endif() + +include_directories( + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_SOURCE_DIR}/src + ${VENDOR_INSTALL_DIR}/include + ${VENDOR_INSTALL_DIR}/boost/include + ${FMT_INCLUDE_DIR} + ${CMAKE_SOURCE_DIR}/src/vereign/v1pb + ${CMAKE_SOURCE_DIR}/src/vereign/v1pb/googleapis +) + +add_library(vereignproto STATIC) + +set(PROTO_DEFINITIONS + "vereign/proto/common_types.proto" + "vereign/proto/identity_types.proto" + "vereign/proto/passport_types.gen.proto" + "vereign/proto/dependencies.proto" + + "vereign/proto/code.vereign.com/code/viam-apis/versions/api/api.proto" + "vereign/proto/code.vereign.com/code/viam-apis/entities-management-agent/api/api.proto" +) +target_proto_generate( + TARGET vereignproto + SRC_DIR "${CMAKE_SOURCE_DIR}/src/vereign/proto" + GEN_DIR "${CMAKE_SOURCE_DIR}/src/vereign/v1pb" + DEFINITIONS ${PROTO_DEFINITIONS} +) + +set(GRPC_DEFINITIONS + "vereign/proto/passport_api.gen.proto" +) +target_grpc_generate( + TARGET vereignproto + SRC_DIR "${CMAKE_SOURCE_DIR}/src/vereign/proto" + GEN_DIR "${CMAKE_SOURCE_DIR}/src/vereign/v1pb" + DEFINITIONS ${GRPC_DEFINITIONS} +) + +set(GOOGLE_PROTO_DEFINITIONS + "vereign/proto/googleapis/google/api/http.proto" + "vereign/proto/googleapis/google/api/annotations.proto" +) +target_proto_generate( + TARGET vereignproto + SRC_DIR "${CMAKE_SOURCE_DIR}/src/vereign/proto/googleapis" + GEN_DIR "${CMAKE_SOURCE_DIR}/src/vereign/v1pb" + DEFINITIONS ${GOOGLE_PROTO_DEFINITIONS} +) + +target_link_libraries( + vereignproto + fmt::fmt + protobuf::libprotobuf + OpenSSL::SSL + OpenSSL::Crypto + $<$<CXX_COMPILER_ID:MSVC>:CRYPT32.LIB> +) + +set(vereignlib_src + vereign/restapi/detail/http_reader.cc + vereign/restapi/client.cc + vereign/service/gen/passport_service.cc + vereign/grpc/server.cc + vereign/service/passport_service.cc +) + +add_library(vereignlib STATIC ${vereignlib_src}) +target_link_libraries( + vereignlib + vereignproto + gRPC::grpc++_reflection + gRPC::grpc++ +) + +set(csandbox_sources + csandbox.cc +) + +#add_library(csandboxlib STATIC ${csandboxlib_src}) +#target_link_libraries(csandboxlib ${LIBS}) + +add_executable(csandbox ${csandbox_sources}) + +target_link_libraries(csandbox + fmt::fmt + Boost::regex + Threads::Threads + OpenSSL::SSL + $<$<CXX_COMPILER_ID:MSVC>:CRYPT32.LIB> +) diff --git a/cpp/src/csandbox.cc b/cpp/src/csandbox.cc new file mode 100644 index 0000000000000000000000000000000000000000..01b0beb7c2180f353cd1b87e2ae1b4958b297872 --- /dev/null +++ b/cpp/src/csandbox.cc @@ -0,0 +1,108 @@ +#include <functional> +#include <memory> +#include <thread> +#include <future> +#include <iostream> +#include <type_traits> +#include <vector> +#include <boost/bind.hpp> +#include <boost/optional.hpp> + +namespace experiment { + +/** + * Array with c++11 move semantics for research purposes. + * + * @note Do not use this in real code. + */ +class Array { + public: + Array() : arr_{nullptr}, size_{0} { + std::cout << "default construct " << to_s() << "\n"; + } + + Array(std::initializer_list<int> l) + : arr_(new int[l.size()]{}) + , size_(l.size()) { + + std::copy(l.begin(), l.end(), arr_); + std::cout << "create list " << to_s() << "\n"; + } + + Array(const std::vector<int>& src) { + arr_ = new int[src.size()]{}; + size_ = src.size(); + std::copy(src.begin(), src.end(), arr_); + std::cout << "create " << to_s() << "\n"; + } + + Array(const Array& other) : arr_(new int[other.size_]{}), size_{other.size_} { + std::copy(other.arr_, other.arr_ + other.size_, arr_); + std::cout << "copy construct " << to_s() << "\n"; + } + + Array& operator=(const Array& other) { + Array tmp{other}; + swap(*this, tmp); + std::cout << "copy assign " << to_s() << "\n"; + return *this; + } + + Array(Array&& other) noexcept : arr_{other.arr_}, size_(other.size_) { + other.arr_ = nullptr; + other.size_ = 0; + std::cout << "move construct " << to_s() << "\n"; + } + + Array& operator=(Array&& other) noexcept { + swap(*this, other); + std::cout << "move assign " << to_s() << "\n"; + return *this; + } + + ~Array() { + std::cout << "destroy " << to_s() << "\n"; + if (arr_) { + delete [] arr_; + } + } + + void reset() { + if (arr_) { + delete [] arr_; + arr_ = nullptr; + } + size_ = 0; + } + + std::string to_s() const { + std::string ret = std::to_string(intptr_t(this)) + " "; + if (!arr_) { + return ret; + } + + for (int i = 0; i < size_; i++) { + ret += std::to_string(arr_[i]) + " "; + } + + return ret; + } + + friend void swap(Array& lhs, Array& rhs) noexcept; + + private: + int* arr_; + int size_; +}; + +void swap(Array& lhs, Array& rhs) noexcept { + using std::swap; + swap(lhs.arr_, rhs.arr_); + swap(lhs.size_, rhs.size_); +} +} + +using namespace experiment; + +int main(int , char* []) { +} diff --git a/cpp/src/vereign/core/rvref.hh b/cpp/src/vereign/core/rvref.hh new file mode 100644 index 0000000000000000000000000000000000000000..27cc9a1742a8ace3462e29717e3837b7314935e3 --- /dev/null +++ b/cpp/src/vereign/core/rvref.hh @@ -0,0 +1,82 @@ +#ifndef __VEREIGN_CORE_RVREF_HH +#define __VEREIGN_CORE_RVREF_HH + +namespace vereign { +namespace core { + +#ifdef __WINDOWS__ +#pragma warning(push) +#pragma warning(disable: 4521) +#endif + +/** + * Rvalue reference wrapper. + * + * Wraps rvalue reference in copyable object. + * Thus allowing lambda to capture rvalue references. + * + * @code + * std::string foo = "foo"; + * auto foo_ref MakeRvRef(foo); + * auto lambda = [foo_ref] () mutable { + * std::cout << foo_ref.get() << std::endl; + * }; + * lambda(); + * @endcode + * + */ +template <typename T> +class RvRef { +public: + RvRef() = delete; + RvRef& operator=(RvRef& other) = delete; + + RvRef(T&& value) : value_{std::move(value)} {} + RvRef(RvRef& other) : value_{std::move(other.value_)} {} + RvRef(RvRef&& other) : value_{std::move(other.value_)} {} + + /** + * Retrieve reference to the stored value. + */ + const T& Get() const noexcept { + return value_; + } + + /** + * Retrieve reference to the stored value. + */ + T& Get() noexcept { + return value_; + } + + /** + * Retrieve reference to the stored value. + */ + const T* operator->() const noexcept { + return &value_; + } + + /** + * Retrieve reference to the stored value. + */ + T* operator->() noexcept { + return &value_; + } + +private: + T value_; +}; + +#ifdef __WINDOWS__ +#pragma warning(pop) +#endif + +template <typename T> +RvRef<T> MakeRvRef(T&& value) { + return RvRef<T>(std::move(value)); +} + +} +} + +#endif diff --git a/cpp/src/vereign/core/scope_guard.hh b/cpp/src/vereign/core/scope_guard.hh new file mode 100644 index 0000000000000000000000000000000000000000..72e40869443fb3b15a342daaee6a1a5a5d8b0402 --- /dev/null +++ b/cpp/src/vereign/core/scope_guard.hh @@ -0,0 +1,33 @@ +#ifndef __VEREIGN_CORE_SCOPE_GUARD_HH +#define __VEREIGN_CORE_SCOPE_GUARD_HH + +namespace vereign { +namespace core { + +template<typename Func> +class ScopeGuard { +public: + static_assert( + std::is_nothrow_constructible<Func, Func&&>::value, + "func must be nothrow_constructible" + ); + + ScopeGuard(Func&& func) : func_{std::move(func)} {} + + ~ScopeGuard() noexcept { + func_(); + } + +private: + Func func_; +}; + +template<typename Func> +ScopeGuard<Func> MakeScopeGuard(Func&& func) { + return ScopeGuard<Func>{std::move(func)}; +} + +} +} + +#endif \ No newline at end of file diff --git a/cpp/src/vereign/grpc/gen/gen.hh b/cpp/src/vereign/grpc/gen/gen.hh new file mode 100644 index 0000000000000000000000000000000000000000..19a6a01ae58b77428facf215524c6868e9589e64 --- /dev/null +++ b/cpp/src/vereign/grpc/gen/gen.hh @@ -0,0 +1,6 @@ +#ifndef __VEREIGN_GRPC_GEN_GEN_HH +#define __VEREIGN_GRPC_GEN_GEN_HH + +#include <vereign/grpc/gen/passport_api.hh> + +#endif diff --git a/cpp/src/vereign/grpc/gen/passport_api.hh b/cpp/src/vereign/grpc/gen/passport_api.hh new file mode 100644 index 0000000000000000000000000000000000000000..dd18595b3435ddf2e38563bbe2619583aba72eed --- /dev/null +++ b/cpp/src/vereign/grpc/gen/passport_api.hh @@ -0,0 +1,52 @@ +#ifndef __VEREIGN_GRPC_GEN_PASSPORT_API_HH +#define __VEREIGN_GRPC_GEN_PASSPORT_API_HH + +#include <vereign/v1pb/passport_api.gen.grpc.pb.h> + +namespace vereign { +namespace grpc { +namespace gen { + +template <class VereignService> +class PassportAPI : public v1pb::PassportAPI::Service { +public: + using VereignServicePtr = std::unique_ptr<VereignService>; + + PassportAPI(VereignServicePtr&& service) + : service_{std::move(service)} + {} + + PassportAPI(const PassportAPI&) = delete; + PassportAPI& operator=(const PassportAPI&) = delete; + + ::grpc::Status ListPassports( + ::grpc::ServerContext*, + const v1pb::ListPassportsForm* request, + v1pb::ListPassportsFormResponse* response + ) override { + auto result_future = service_->ListPassports(request, response); + + try { + result_future.get(); + } catch (const std::exception& e) { + response->set_code("500"); + response->set_status("Internal Service Error"); + response->set_error(e.what()); + } catch (...) { + response->set_code("500"); + response->set_status("Internal Service Error"); + response->set_error("Internal Service Error"); + } + + return ::grpc::Status::OK; + } + +protected: + VereignServicePtr service_; +}; + +} // gen +} // namespace grpc +} // namespace vereign + +#endif // __VEREIGN_GRPC_GEN_PASSPORT_API_HH diff --git a/cpp/src/vereign/grpc/passport_api.hh b/cpp/src/vereign/grpc/passport_api.hh new file mode 100644 index 0000000000000000000000000000000000000000..f4e363333cd16c55380fd841f8c53e490219e9bc --- /dev/null +++ b/cpp/src/vereign/grpc/passport_api.hh @@ -0,0 +1,47 @@ +#ifndef __VEREIGN_GRPC_PASSPORT_API_HH +#define __VEREIGN_GRPC_PASSPORT_API_HH + +#include <vereign/grpc/gen/passport_api.hh> + +namespace vereign { +namespace grpc { + +template <class VereignService> +class PassportAPI final : public gen::PassportAPI<VereignService> { +public: + using VereignServicePtr = std::unique_ptr<VereignService>; + + PassportAPI(VereignServicePtr&& service) + : gen::PassportAPI<VereignService>{std::move(service)} + {} + + PassportAPI(const PassportAPI&) = delete; + PassportAPI& operator=(const PassportAPI&) = delete; + + ::grpc::Status ListPassportsManually( + ::grpc::ServerContext*, + const v1pb::ListPassportsForm* request, + v1pb::ListPassportsFormResponse* response + ) override { + auto result_future = this->service_->ListPassports(request, response); + + try { + result_future.get(); + } catch (const std::exception& e) { + response->set_code("500"); + response->set_status("Internal Service Error"); + response->set_error(e.what()); + } catch (...) { + response->set_code("500"); + response->set_status("Internal Service Error"); + response->set_error("Internal Service Error"); + } + + return ::grpc::Status::OK; + } +}; + +} // namespace grpc +} // namespace vereign + +#endif // __VEREIGN_GRPC_PASSPORT_API_HH diff --git a/cpp/src/vereign/grpc/server.cc b/cpp/src/vereign/grpc/server.cc new file mode 100644 index 0000000000000000000000000000000000000000..1bc187025132bae591bea5271109cf26820aa041 --- /dev/null +++ b/cpp/src/vereign/grpc/server.cc @@ -0,0 +1,94 @@ +#include "boost/asio/executor_work_guard.hpp" +#include "vereign/grpc/gen/passport_api.hh" +#include "vereign/service/gen/passport_service.hh" +#include <vereign/grpc/server.hh> +#include <vereign/restapi/client.hh> +#include <vereign/restapi/client_session.hh> + +#include <vereign/service/gen/gen.hh> +#include <vereign/service/passport_service.hh> + +#include <vereign/grpc/gen/gen.hh> +#include <vereign/grpc/passport_api.hh> + +#include <grpcpp/server_builder.h> +#include <grpcpp/server_context.h> +#include <grpcpp/security/server_credentials.h> + +namespace vereign { +namespace grpc { + +Server::Server( + const std::string& listenAddress, + const std::string& vereignHost, + const std::string& vereignPort, + // FIXME: the public key must come from a storage + const std::string& publicKey +) + : work_guard_{asio::make_work_guard(ioc_)}, + ssl_context_{asio::ssl::context::tlsv12_client}, + client_{std::make_unique<restapi::Client>( + ioc_, ssl_context_, vereignHost, vereignPort + )}, + client_session_{std::make_unique<restapi::ClientSession>( + *client_, publicKey + )} +{ + // FIXME: Verify the remote server's certificate + // ssl_context.set_verify_mode(ssl::verify_peer); + + ::grpc::ServerBuilder builder; + builder.AddListeningPort( + listenAddress, + ::grpc::InsecureServerCredentials(), + &selected_port_ + ); + + services_.emplace_back( + std::make_unique<grpc::PassportAPI<service::PassportService>>( + std::make_unique<service::PassportService>(*client_session_) + ) + ); + + for (auto& service : services_) { + builder.RegisterService(service.get()); + } + + server_ = builder.BuildAndStart(); + if (server_ == nullptr) { + throw std::runtime_error("server start failed"); + } + + server_thread_ = std::thread([this]() { + server_->Wait(); + }); + + service_thread_ = std::thread([this]() { + ioc_.run(); + }); +} + +Server::~Server() { + Shutdown(); +} + +void Server::Shutdown() { + client_session_->Close(); + + server_->Shutdown(); + if (server_thread_.joinable()) { + server_thread_.join(); + } + + work_guard_.reset(); + if (service_thread_.joinable()) { + service_thread_.join(); + } +} + +int Server::SelectedPort() const { + return selected_port_; +} + +} +} diff --git a/cpp/src/vereign/grpc/server.hh b/cpp/src/vereign/grpc/server.hh new file mode 100644 index 0000000000000000000000000000000000000000..f72c981a293b5a957d2aea36f4a443e48d74d189 --- /dev/null +++ b/cpp/src/vereign/grpc/server.hh @@ -0,0 +1,88 @@ +#ifndef __VEREIGN_GRPC_SERVER_API_HH +#define __VEREIGN_GRPC_SERVER_API_HH + +#include <thread> +#include <grpcpp/server.h> +#include <boost/asio/io_context.hpp> +#include <boost/asio/ssl/context.hpp> +#include <boost/asio/executor_work_guard.hpp> + +namespace vereign { + +namespace restapi { +class Client; +class ClientSession; +} + +namespace grpc { + +namespace asio = boost::asio; + +/** + * Server is a grpc server that provides the Vereign services. + * + * It bootstraps the grpc server, http client, http client session and + * Vereign services. + */ +class Server { +public: + /** + * Constructs and bootstraps the server. + * + * @param listenAddress gRPC listen address, for example "localhost:". + * @param vereignHost Vereign restapi host. + * @param vereignPort Vereign restapi port - https, 443... + */ + explicit Server( + const std::string& listenAddress, + const std::string& vereignHost, + const std::string& vereignPort, + // FIXME: the public key must come from a storage + const std::string& publicKey + ); + + /** + * Shutdowns the server. + * + * @see Server::Shutdown + */ + ~Server(); + + // Disable copying + Server(const Server&) = delete; + Server& operator=(const Server&) = delete; + + /** + * Shutdown the server. + * + * It will cancel all pending http requests to the Vereign restapi. + * Blocks for all pending gRPC handlers to finish. + */ + void Shutdown(); + + /** + * Returns the port that the gRPC server listens to. + * + * This is useful if you construct the server with ephemeral port. + * Then this method will return the port that the OS assigned to the gRPC + * socket. + */ + int SelectedPort() const; + +private: + int selected_port_; + asio::io_context ioc_; + asio::executor_work_guard<asio::io_context::executor_type> work_guard_; + asio::ssl::context ssl_context_; + std::unique_ptr<vereign::restapi::Client> client_; + std::unique_ptr<vereign::restapi::ClientSession> client_session_; + std::vector<std::unique_ptr<::grpc::Service>> services_; + std::unique_ptr<::grpc::Server> server_; + std::thread server_thread_; + std::thread service_thread_; +}; + +} +} + +#endif diff --git a/cpp/src/vereign/proto/code.vereign.com/code/viam-apis b/cpp/src/vereign/proto/code.vereign.com/code/viam-apis new file mode 160000 index 0000000000000000000000000000000000000000..6774391a64848e7dffbaae46b4a6be19f4f1bcca --- /dev/null +++ b/cpp/src/vereign/proto/code.vereign.com/code/viam-apis @@ -0,0 +1 @@ +Subproject commit 6774391a64848e7dffbaae46b4a6be19f4f1bcca diff --git a/cpp/src/vereign/proto/common_types.proto b/cpp/src/vereign/proto/common_types.proto new file mode 100644 index 0000000000000000000000000000000000000000..b1a89a603fd12991c4403ab7d1a3b308e9d30331 --- /dev/null +++ b/cpp/src/vereign/proto/common_types.proto @@ -0,0 +1,17 @@ +syntax = "proto3"; + +package vereign.v1pb; + +message ErrorStringResponse { + string status = 1; + string code = 2; + string data = 3; +} + +message ErrorEmptyResponse { + string status = 1; + string code = 2; +} + +message EmptyRequest { +} diff --git a/cpp/src/vereign/proto/dependencies.proto b/cpp/src/vereign/proto/dependencies.proto new file mode 100644 index 0000000000000000000000000000000000000000..27b044dd93632708cd172275e9a2b7305f2abd05 --- /dev/null +++ b/cpp/src/vereign/proto/dependencies.proto @@ -0,0 +1,9 @@ +syntax = "proto3"; + +package vereign.v1pb.entities_management_agent.api; + +import public "code.vereign.com/code/viam-apis/entities-management-agent/api/api.proto"; + +message Help { + +} diff --git a/cpp/src/vereign/proto/googleapis b/cpp/src/vereign/proto/googleapis new file mode 160000 index 0000000000000000000000000000000000000000..57253ab4c0a78d2351cff0aa638ff81b89b19afc --- /dev/null +++ b/cpp/src/vereign/proto/googleapis @@ -0,0 +1 @@ +Subproject commit 57253ab4c0a78d2351cff0aa638ff81b89b19afc diff --git a/cpp/src/vereign/proto/identity_types.proto b/cpp/src/vereign/proto/identity_types.proto new file mode 100644 index 0000000000000000000000000000000000000000..11145f0aa715fac96ebd450099c1066bd187e27f --- /dev/null +++ b/cpp/src/vereign/proto/identity_types.proto @@ -0,0 +1,23 @@ +syntax = "proto3"; + +package vereign.v1pb; + +import "dependencies.proto"; + +message LoginForm { + string mode = 1; + string code = 2; + string actionID = 3; +} + +message LoginFormPreviousAddedDeviceResponsePayload { + string Uuid = 1; + string Session = 2; +} + +message LoginFormPreviousAddedDeviceResponse { + string status = 1; + string code = 2; + string error = 3; + LoginFormPreviousAddedDeviceResponsePayload data = 4; +} diff --git a/cpp/src/vereign/proto/passport_api.gen.proto b/cpp/src/vereign/proto/passport_api.gen.proto new file mode 100644 index 0000000000000000000000000000000000000000..b9e337a2eeba3185c17479aa604497ed4d7e0a34 --- /dev/null +++ b/cpp/src/vereign/proto/passport_api.gen.proto @@ -0,0 +1,11 @@ +syntax = "proto3"; + +package vereign.v1pb; + +import "passport_types.gen.proto"; + +service PassportAPI { + rpc ListPassportsManually(ListPassportsForm) returns (ListPassportsFormResponse); + + rpc ListPassports(ListPassportsForm) returns (ListPassportsFormResponse); +} diff --git a/cpp/src/vereign/proto/passport_api.gen.proto.tmpl b/cpp/src/vereign/proto/passport_api.gen.proto.tmpl new file mode 100644 index 0000000000000000000000000000000000000000..b17f90060ac2c5bac811d158d25599f40b181845 --- /dev/null +++ b/cpp/src/vereign/proto/passport_api.gen.proto.tmpl @@ -0,0 +1,11 @@ +syntax = "proto3"; + +package vereign.v1pb; + +import "passport_types.gen.proto"; + +service PassportAPI { + rpc ListPassportsManualy(ListPassportsForm) returns (ListPassportsFormResponse); + + {{ here the generated rpc will be placed }} +} diff --git a/cpp/src/vereign/proto/passport_types.gen.proto b/cpp/src/vereign/proto/passport_types.gen.proto new file mode 100644 index 0000000000000000000000000000000000000000..a828c63540a4226b59e72fde6cfce21d9cb99415 --- /dev/null +++ b/cpp/src/vereign/proto/passport_types.gen.proto @@ -0,0 +1,16 @@ +syntax = "proto3"; + +package vereign.v1pb; + +import "dependencies.proto"; + +message ListPassportsForm { + bool doNotAttachAvatars = 1; +} + +message ListPassportsFormResponse { + string status = 1; + string code = 2; + string error = 3; + repeated api.EntityMessage_V2 data = 4; +} diff --git a/cpp/src/vereign/restapi/client.cc b/cpp/src/vereign/restapi/client.cc new file mode 100644 index 0000000000000000000000000000000000000000..1dd1b8cc9e874ce972ff6725af6ce3768759a4c5 --- /dev/null +++ b/cpp/src/vereign/restapi/client.cc @@ -0,0 +1,282 @@ +#include "vereign/restapi/detail/post_task.hh" +#include <chrono> +#include <vereign/restapi/client.hh> + +#include <vereign/restapi/detail/http_reader.hh> + +#include <boost/asio/strand.hpp> +#include <boost/beast/ssl.hpp> +#include <boost/asio/ip/tcp.hpp> +#include <boost/beast/version.hpp> +#include <boost/asio/dispatch.hpp> + +namespace vereign { +namespace restapi { + +constexpr auto defaultTimeout = std::chrono::seconds(30); + +Client::Client( + boost::asio::io_context& ioc, + boost::asio::ssl::context& ssl_ctx, + const std::string& host, + const std::string& port +) + : executor_{asio::make_strand(ioc)}, + ssl_ctx_{ssl_ctx}, + resolver_{ioc}, + reader_{nullptr}, + host_{host}, + port_{port}, + expiry_time_{defaultTimeout}, + connecting_{false}, + writing_{false}, + reading_{false}, + closed_{false} +{ +} + +Client::Client( + boost::asio::io_context& ioc, + boost::asio::ssl::context& ssl_ctx, + const std::string& host, + const std::string& port, + std::chrono::nanoseconds expiry_time +) + : executor_{asio::make_strand(ioc)}, + ssl_ctx_{ssl_ctx}, + resolver_{ioc}, + reader_{nullptr}, + host_{host}, + port_{port}, + expiry_time_{expiry_time}, + connecting_{false}, + writing_{false}, + reading_{false}, + closed_{false} +{ +} + +Client::~Client() noexcept { + Close(); +} + +void Client::Close() { + asio::post( + executor_, + [this]() { + if (closed_) { + return; + } + closed_ = true; + + if (stream_) { + beast::get_lowest_layer(*stream_).close(); + stream_.reset(); + } + } + ); +} + +const asio::executor& Client::GetExecutor() const { + return executor_; +} + +void Client::addPostTask(detail::PostTaskBasePtr&& task) { + asio::post( + executor_, + [this, task = std::move(task)]() mutable { + if (closed_) { + task->Complete(detail::PostError{"client closed"}); + return; + } + + task_queue_.push_back(std::move(task)); + if (task_queue_.size() == 1) { + doPost(); + } + }); +} + +void Client::completeTask( + const boost::optional<detail::HttpResponse>& resp, + const detail::PostError& err +) { + if (task_queue_.empty()) { + return; + } + + auto task = std::move(task_queue_.front()); + task_queue_.pop_front(); + if (!err) { + task->DecodeResponse(*resp); + } + + asio::dispatch(executor_, [task = std::move(task), err]() mutable { + task->Complete(err); + }); +} + +void Client::handleError(const detail::PostError& err) { + completeTask(boost::none, err); + resetStream(); + + if (task_queue_.size() > 0) { + asio::post( + executor_, + [this]() { + doPost(); + }); + } +} + +void Client::resolve() { + resolver_.async_resolve( + host_, + port_, + [this](beast::error_code ec, tcp::resolver::results_type results) { + if (ec) { + connecting_ = false; + handleError(ec.message()); + return; + } + + connect(results); + }); +} + +void Client::connect(tcp::resolver::results_type results) { + stream_ = std::make_shared<streamType>(executor_, ssl_ctx_); + reader_ = std::make_shared<detail::HttpReader>(stream_, expiry_time_); + + using endpoint_t = tcp::resolver::results_type::endpoint_type; + beast::get_lowest_layer(*stream_).expires_after(expiry_time_); + auto stream = stream_; + beast::get_lowest_layer(*stream_).async_connect( + results, + [this, stream](beast::error_code ec, endpoint_t) { + if (ec) { + connecting_ = false; + handleError(ec.message()); + return; + } + + handshake(); + } + ); +} + +void Client::handshake() { + auto stream = stream_; + stream_->async_handshake( + asio::ssl::stream_base::client, + [this, stream](beast::error_code ec) { + connecting_ = false; + if (ec) { + handleError(ec.message()); + return; + } + + doPost(); + } + ); +} + +void Client::cancelAllTasks(const detail::PostError& err) { + while (task_queue_.size() > 0) { + auto task = std::move(task_queue_.front()); + task_queue_.pop_front(); + + task->Complete(err); + } +} + +void Client::doPost() { + if (writing_ || connecting_ || task_queue_.size() == 0) { + return; + } + + if (closed_) { + cancelAllTasks(detail::PostError("client closed")); + + return; + } + + if (!stream_ || reader_->IsClosed()) { + connecting_ = true; + resolve(); + return; + } + + auto& task = task_queue_.front(); + req_.emplace(); + req_->method(beast::http::verb::post); + req_->version(11); + req_->target(task->Path()); + req_->set(beast::http::field::host, host_); + req_->set(beast::http::field::user_agent, BOOST_BEAST_VERSION_STRING); + req_->set(beast::http::field::content_type, "application/json"); + + auto err = task->EncodeRequest(*req_); + if (err) { + handleError(err); + return; + } + + req_->prepare_payload(); + + auto stream = stream_; + writing_ = true; + beast::get_lowest_layer(*stream_).expires_after(expiry_time_); + beast::http::async_write( + *stream_, + *req_, + [this, stream](beast::error_code ec, std::size_t bytes_transferred) { + writing_ = false; + boost::ignore_unused(bytes_transferred); + + if (ec) { + handleError(ec.message()); + return; + } + + readResponse(); + }); +} + +void Client::resetStream() { + if (!stream_) { + return; + } + + beast::get_lowest_layer(*stream_).close(); + stream_.reset(); +} + +void Client::readResponse() { + if (reading_) { + return; + } + + reader_->AsyncRead( + [this](const detail::HttpResponse& resp, beast::error_code ec) { + reading_ = false; + + if (ec) { + handleError(ec.message()); + return; + } + + completeTask(resp, boost::none); + + if (task_queue_.size() > 0) { + asio::post( + executor_, + [this]() { + doPost(); + }); + } + }); +} + +} +} diff --git a/cpp/src/vereign/restapi/client.hh b/cpp/src/vereign/restapi/client.hh new file mode 100644 index 0000000000000000000000000000000000000000..1bb1821f37dacbffdac972e6a5d3e75fe3415be0 --- /dev/null +++ b/cpp/src/vereign/restapi/client.hh @@ -0,0 +1,359 @@ +#ifndef __VEREIGN_RESTAPI_CLIENT_HH +#define __VEREIGN_RESTAPI_CLIENT_HH + +#include <chrono> +#include <type_traits> +#include <vereign/restapi/detail/post_task.hh> +#include <vereign/restapi/http_header.hh> + +#include <boost/asio/io_context.hpp> +#include <boost/asio/ssl/context.hpp> +#include <boost/beast/core/tcp_stream.hpp> +#include <boost/beast/ssl.hpp> +#include <boost/beast/http.hpp> +#include <google/protobuf/message.h> + +#include <string> +#include <future> +#include <deque> + +namespace vereign { +namespace restapi { + +namespace beast = boost::beast; +namespace asio = boost::asio; + +using tcp = asio::ip::tcp; +using RequestPtr = std::unique_ptr<google::protobuf::Message>; + +namespace detail { + +class HttpReader; + +} // namespace detail + +/** + * Client is a http client for the Vereign Restful API. + * + * Internally the Client uses the [boost::beast][] library. + * + * The client provides both async and blocking APIs for making POST requests. + * + * The blocking methods return futures, and must not be called inside the + * async callbacks.Their purpose is to be used in threads outside of the + * Client's executor. + * + * The POST requests are queued and executed sequentially reusing single + * connection, reconnecting if needed. + * + * The connection is kept alive until there are requests, or when idle until + * specified timeout is expired. + * + * [boost::beast]: \boostlib/libs/beast/doc/html/index.html + * + * ### Thread Safety + * + * All public methods are thread safe. + */ +class Client { +public: + /** + * Constructs Client instance with default timeout (30s). + * + * @param ioc IO context. + * @param ssl_ctx SSL context. + * @param host Vereign restapi host. + * @param port Vereign restapi port. For example "https" or "443". + * @returns Client instance. + */ + Client( + asio::io_context& ioc, + asio::ssl::context& ssl_ctx, + const std::string& host, + const std::string& port + ); + + /** + * Constructs Client instance. + * + * @param ioc IO context. + * @param ssl_ctx SSL context. + * @param host Vereign restapi host. + * @param port Vereign restapi port. For example "https" or "443". + * @param expiry_time Connect, read, write expiration time. + * @returns Client instance. + */ + Client( + asio::io_context& ioc, + asio::ssl::context& ssl_ctx, + const std::string& host, + const std::string& port, + std::chrono::nanoseconds expiry_time + ); + + /** + * Closes the connection. + * + * @see Client::Close + */ + ~Client() noexcept; + + // Disable copying + Client(const Client&) = delete; + Client& operator=(const Client&) = delete; + + /** + * Close closes the connection. + * + * The connection to the server is closed, and the current pending request + * is cancelled with an error. All other requests in the queue will be also + * cancelled. Subsequent calls to Client::Post or Client::PostAsync methods + * will return with error, i.e. the client won't execute any requests anymore. + */ + void Close(); + + /** + * GetExecutor returns the client's strand executor. + * + * @returns the client's strand executor. + */ + const asio::executor& GetExecutor() const; + + /** + * Post makes a blocking post request. + * + * The passed `req` and `resp` parameters are moved in and returned back once, + * the returned future is resolved. + * + * @param path HTTP path, for example `/api/identity/loginWithPreviouslyAddedDevice`. + * @param req Request object that will be serialized as JSON body. + * It can be a const pointer or std::unique_ptr to protobuf message. + * + * @param resp Response object that will be used to decode the response. + * It can be a pointer or std::unique_ptr to protobuf message. + * + * @returns future that will be resolved with a result containing both + * the request and response objects originally passed to the `Post` call. + */ + template <class RequestPtrType, class ResponsePtrType> + auto Post( + const std::string& path, + RequestPtrType&& req, + ResponsePtrType&& resp + ) { + using RequestPtr = typename std::remove_reference<RequestPtrType>::type; + using ResponsePtr = typename std::remove_reference<ResponsePtrType>::type; + using Result = PostResult<RequestPtr, ResponsePtr>; + std::promise<Result> promise{}; + auto future = promise.get_future(); + + PostAsync( + path, + std::move(req), + std::move(resp), + [promise = std::move(promise)] (Result&& result) mutable { + promise.set_value(std::move(result)); + } + ); + + return future; + } + + /** + * Post makes a blocking post request with additional http headers. + * + * The passed `req` and `resp` parameters are moved in and returned back once, + * the returned future is resolved. + * + * @param path HTTP path, for example `/api/identity/loginWithPreviouslyAddedDevice`. + * @param req Request object that will be serialized as JSON body. + * It can be a const pointer or std::unique_ptr to protobuf message. + * + * @param resp Response object that will be used to decode the response. + * It can be a pointer or std::unique_ptr to protobuf message. + * + * @param headers HTTP headers to include in the request. + * + * @returns future that will be resolved with a result containing both + * the request and response objects originally passed to the `Post` call. + */ + template <class RequestPtrType, class ResponsePtrType> + auto Post( + const std::string& path, + RequestPtrType&& req, + ResponsePtrType&& resp, + std::vector<HttpHeader>&& headers + ) { + using RequestPtr = typename std::remove_reference<RequestPtrType>::type; + using ResponsePtr = typename std::remove_reference<ResponsePtrType>::type; + using Result = PostResult<RequestPtr, ResponsePtr>; + + std::promise<Result> promise{}; + auto future = promise.get_future(); + + PostAsync( + path, + std::move(req), + std::move(resp), + std::move(headers), + [promise = std::move(promise)] (Result&& result) mutable { + promise.set_value(std::move(result)); + } + ); + + return future; + } + + /** + * PostAsync makes non blocking post request. + * + * The passed `req` and `resp` parameters are moved in and returned back once + * the CompletionFunc is called. + * + * @tparam CompletionFunc A completion functor - `void (Result&&)`, where + * the `Result` is restapi::PostResult <RequestPtr, ResponsePtr>, where + * RequestPtr is `std::remove_reference<RequestPtrType>::type` and + * ResponsePtr is `std::remove_reference<RequestPtrType>::type`. + * + * @param path HTTP path, for example `/api/identity/loginWithPreviouslyAddedDevice`. + * @param req Request object that will be serialized as JSON body. + * It can be a const pointer or std::unique_ptr to protobuf message. + * + * @param resp Response object that will be used to decode the response. + * It can be a pointer or std::unique_ptr to protobuf message. + * + * @param func Completion func, that will be called when the post request + * is finished. + */ + template <class RequestPtrType, class ResponsePtrType, class CompletionFunc> + void PostAsync( + const std::string& path, + RequestPtrType&& req, + ResponsePtrType&& resp, + CompletionFunc&& func + ) { + using RequestPtr = typename std::remove_reference<RequestPtrType>::type; + using ResponsePtr = typename std::remove_reference<ResponsePtrType>::type; + + addPostTask( + std::make_unique<detail::PostTask<RequestPtr, ResponsePtr, CompletionFunc>>( + path, + std::move(req), + std::move(resp), + std::move(func) + ) + ); + } + + /** + * PostAsync makes non blocking post request with additional http headers. + * + * The passed `req` and `resp` parameters are moved in and returned back once + * the CompletionFunc is called. + * + * @tparam CompletionFunc A completion functor - `void (Result&&)`, where + * the `Result` is restapi::PostResult <RequestPtr, ResponsePtr>, where + * RequestPtr is `std::remove_reference<RequestPtrType>::type` and + * ResponsePtr is `std::remove_reference<RequestPtrType>::type`. + * + * @param path HTTP path, for example `/api/identity/loginWithPreviouslyAddedDevice`. + * @param req Request object that will be serialized as JSON body. + * It can be a const pointer or std::unique_ptr to protobuf message. + * + * @param resp Response object that will be used to decode the response. + * It can be a pointer or std::unique_ptr to protobuf message. + * + * @param headers HTTP headers to include in the request. + * + * @param func Completion func, that will be called when the post request + * is finished. + */ + template <class RequestPtrType, class ResponsePtrType, class CompletionFunc> + void PostAsync( + const std::string& path, + RequestPtrType&& req, + ResponsePtrType&& resp, + std::vector<HttpHeader>&& headers, + CompletionFunc&& func + ) { + using RequestPtr = typename std::remove_reference<RequestPtrType>::type; + using ResponsePtr = typename std::remove_reference<ResponsePtrType>::type; + + addPostTask( + std::make_unique<detail::PostTask<RequestPtr, ResponsePtr, CompletionFunc>>( + path, + std::move(req), + std::move(resp), + std::move(headers), + std::move(func) + ) + ); + } + +private: + using streamType = beast::ssl_stream<beast::tcp_stream>; + + void handleError(const boost::optional<std::string>& err); + void addPostTask(detail::PostTaskBasePtr&& task); + + void completeTask( + const boost::optional<detail::HttpResponse>& resp, + const boost::optional<std::string>& err + ); + + void doPost(); + void resolve(); + void connect(tcp::resolver::results_type results); + void handshake(); + void readResponse(); + void resetStream(); + void cancelAllTasks(const detail::PostError& err); + +private: + // a strand that calls all completion handlers in single thread. + asio::executor executor_; + + // ssl context used for the https connection. + asio::ssl::context& ssl_ctx_; + + // all post requests are added as tasks in this queue. + std::deque<detail::PostTaskBasePtr> task_queue_; + + // ssl stream used for the http requests. + std::shared_ptr<streamType> stream_; + + // used for resolving the host name into ip address. + tcp::resolver resolver_; + + // request object used for the async_write calls of the post requests. + boost::optional<detail::HttpRequest> req_; + + // reads the requests responses. + std::shared_ptr<detail::HttpReader> reader_; + + // http server host name. + std::string host_; + + // http server port - https, 443 ... + std::string port_; + + // connecting, read, write expiration time. + std::chrono::nanoseconds expiry_time_; + + // indicates that the client is currently in connecting state. + bool connecting_; + + // indicates that the client is currently writing a post request. + bool writing_; + + // indicates that the client is currently waiting for response to be read. + bool reading_; + + // indicates that the client is closed. + bool closed_; +}; + +} // namespace restapi +} // namespace vereign + +#endif // __VEREIGN_RESTAPI_CLIENT_HH diff --git a/cpp/src/vereign/restapi/client_session.hh b/cpp/src/vereign/restapi/client_session.hh new file mode 100644 index 0000000000000000000000000000000000000000..99438cffa2b4f5582dc81f6344cac9edab18d88b --- /dev/null +++ b/cpp/src/vereign/restapi/client_session.hh @@ -0,0 +1,359 @@ +#ifndef __VEREIGN_RESTAPI_CLIENT_SESSION_HH +#define __VEREIGN_RESTAPI_CLIENT_SESSION_HH + +#include <vereign/restapi/client.hh> +#include <vereign/restapi/http_header.hh> + +#include <vereign/v1pb/identity_types.pb.h> +#include <boost/none.hpp> + +#include <vector> +#include <future> + +namespace vereign { +namespace restapi { + +namespace detail { +struct AuthErrorType { + std::string Code; + std::string Status; + std::string Error; + + template <class T> + void AssignTo(T& dest) const { + dest.set_code(Code); + dest.set_status(Status); + dest.set_error(Error); + } +}; + +using AuthError = boost::optional<AuthErrorType>; + +inline AuthError MakeAuthError( + const v1pb::LoginFormPreviousAddedDeviceResponse& resp +) { + if (resp.code() == "200") { + return boost::none; + } + + return AuthErrorType{ + resp.code(), + resp.status(), + resp.error() + }; +} + +inline AuthError NoAuthError() { + return boost::none; +} + +} // namespace detail + +/** + * ClientSession is a Client decorator, that maintains authenticated session. + */ +class ClientSession { +public: + // FIXME: the key should come from a storage + /** + * Constructs ClientSession instance with default API base path. + * + * The default API base path is `/api`. + * + * @param client Restapi client. + * @returns ClientSession instance. + */ + ClientSession(Client& client, const std::string& pub_key) + : client_{client}, + pub_key_{pub_key}, + base_path_{"/api"} + {} + + // FIXME: the key should come from a storage + /** + * Constructs ClientSession instance. + * + * @param client Restapi client. + * @param base_path API base path, for example `/api` + * @returns ClientSession instance. + */ + ClientSession( + Client& client, + const std::string& base_path, + const std::string& pub_key + ) : client_{client}, + pub_key_{pub_key}, + base_path_{base_path} + {} + + // Disable copying. + ClientSession(const ClientSession&) = delete; + ClientSession& operator=(const ClientSession&) = delete; + + /** + * Closes the connection. + */ + ~ClientSession() noexcept { + Close(); + } + + /** + * Close closes the connection. + * + * The connection to the server is closed, and the current pending request + * is cancelled with an error. All other requests in the queue will be also + * cancelled. Subsequent calls to Client::Post or Client::PostAsync methods + * will return with error, i.e. the client won't execute any requests anymore. + */ + void Close() { + client_.Close(); + } + + /** + * Post makes a blocking post request. + * + * The passed `req` and `resp` parameters are moved in and returned back once, + * the returned future is resolved. + * + * @param path HTTP path, for example `/passport/listPassports`. + * The path will be added to the ClientSession base path. + * @param req Request object that will be serialized as JSON body. + * It can be a const pointer or std::unique_ptr to protobuf message. + * + * @param resp Response object that will be used to decode the response. + * It can be a pointer or std::unique_ptr to protobuf message. + * + * @returns future that will be resolved with a result containing both + * the request and response objects originally passed to the `Post` call. + */ + template <class RequestPtrType, class ResponsePtrType> + auto Post( + const std::string& path, + RequestPtrType&& req, + ResponsePtrType&& resp + ) { + using RequestPtr = typename std::remove_reference<RequestPtrType>::type; + using ResponsePtr = typename std::remove_reference<ResponsePtrType>::type; + using Result = PostResult<RequestPtr, ResponsePtr>; + + std::promise<Result> promise{}; + auto future = promise.get_future(); + + PostAsync( + path, + std::move(req), + std::move(resp), + [promise = std::move(promise)] (Result&& result) mutable { + promise.set_value(std::move(result)); + } + ); + + return future; + } + + /** + * PostAsync makes non blocking post request. + * + * The passed `req` and `resp` parameters are moved in and returned back once + * the CompletionFunc is called. + * + * @tparam CompletionFunc A completion functor - `void (Result&&)`, where + * the `Result` is restapi::PostResult <RequestPtr, ResponsePtr>, where + * RequestPtr is `std::remove_reference<RequestPtrType>::type` and + * ResponsePtr is `std::remove_reference<RequestPtrType>::type`. + * + * @param path HTTP path, for example `/passport/listPassports`. + * @param req Request object that will be serialized as JSON body. + * It can be a const pointer or std::unique_ptr to protobuf message. + * + * @param resp Response object that will be used to decode the response. + * It can be a pointer or std::unique_ptr to protobuf message. + * + * @param func Completion func, that will be called when the post request + * is finished. + */ + template <class RequestPtrType, class ResponsePtrType, class CompletionFunc> + void PostAsync( + const std::string& path, + RequestPtrType&& req, + ResponsePtrType&& resp, + CompletionFunc&& cf + ) { + using RequestPtr = typename std::remove_reference<RequestPtrType>::type; + using ResponsePtr = typename std::remove_reference<ResponsePtrType>::type; + + using namespace std::placeholders; + withAuthentication( + std::bind( + &ClientSession::authPostAsync<RequestPtr, ResponsePtr, CompletionFunc>, + this, + _1, + base_path_ + path, + std::move(req), + std::move(resp), + std::move(cf) + ) + ); + } + +private: + + template <class RequestPtr, class ResponsePtr, class CompletionFunc> + void authPostAsync( + const detail::AuthError& err, + const std::string& path, + RequestPtr& req, + ResponsePtr& resp, + CompletionFunc& cf + ) { + if (err) { + err->AssignTo(*resp); + cf(PostResult<RequestPtr, ResponsePtr>{ + std::move(req), + std::move(resp) + }); + return; + } + + using namespace std::placeholders; + + client_.PostAsync( + path, + std::move(req), + std::move(resp), + std::vector<vereign::restapi::HttpHeader>{ + {"publicKey", pub_key_}, + {"token", session_token_}, + {"uuid", uuid_} + }, + std::bind( + &ClientSession::handlePostResult<RequestPtr, ResponsePtr, CompletionFunc>, + this, + _1, + path, + std::move(cf) + ) + ); + } + + template <class RequestPtr, class ResponsePtr, class CompletionFunc> + void authPostRetryAsync( + const detail::AuthError& err, + const std::string& path, + RequestPtr& req, + ResponsePtr& resp, + CompletionFunc& cf + ) { + if (err) { + err->AssignTo(*resp); + cf(PostResult<RequestPtr, ResponsePtr>{ + std::move(req), + std::move(resp) + }); + return; + } + + using namespace std::placeholders; + + client_.PostAsync( + path, + std::move(req), + std::move(resp), + std::vector<vereign::restapi::HttpHeader>{ + {"publicKey", pub_key_}, + {"token", session_token_}, + {"uuid", uuid_} + }, + std::move(cf) + ); + } + + template <class RequestPtr, class ResponsePtr, class CompletionFunc> + void handlePostResult( + PostResult<RequestPtr, ResponsePtr>&& result, + const std::string& path, + CompletionFunc& cf + ) { + using namespace std::placeholders; + auto& resp = result.Response; + if (resp->code() == "400" && resp->status() == "Bad session") { + withAuthentication( + std::bind( + &ClientSession::authPostRetryAsync<RequestPtr, ResponsePtr, CompletionFunc>, + this, + _1, + path, + std::move(result.Request), + std::move(result.Response), + std::move(cf) + ) + ); + + return; + } + + cf(std::move(result)); + } + + template <class CompletionFunc> + void withAuthentication(CompletionFunc&& cf) { + asio::post( + client_.GetExecutor(), + [this, cf = std::move(cf)]() mutable { + if (session_token_.size() != 0) { + cf(detail::NoAuthError()); + return; + } + + using ResultType = PostResult< + std::unique_ptr<v1pb::EmptyRequest>, + std::unique_ptr<v1pb::LoginFormPreviousAddedDeviceResponse>>; + + client_.PostAsync( + base_path_ + "/identity/loginWithPreviouslyAddedDevice", + std::make_unique<v1pb::EmptyRequest>(), + std::make_unique<v1pb::LoginFormPreviousAddedDeviceResponse>(), + std::vector<vereign::restapi::HttpHeader>{ + {"publicKey", pub_key_} + }, + [this, cf = std::move(cf)] (ResultType&& result) mutable { + if (!result.Response->has_data()) { + cf(detail::AuthErrorType{ + "500", + "Invalid response", + "Invalid response" + }); + return; + } + + session_token_ = result.Response->data().session(); + uuid_ = result.Response->data().uuid(); + + cf(detail::MakeAuthError(*result.Response)); + } + ); + } + ); + } + +private: + // http client. + Client& client_; + + // public key used for creating the authenticated sessions. + std::string pub_key_; + + // http base path of the api calls, for example `/api` + std::string base_path_; + + // session uuid. + std::string uuid_; + + // session token. + std::string session_token_; +}; + +} // namespace restapi +} // namespace vereign + +#endif // __VEREIGN_RESTAPI_CLIENT_SESSION_HH diff --git a/cpp/src/vereign/restapi/detail/http_reader.cc b/cpp/src/vereign/restapi/detail/http_reader.cc new file mode 100644 index 0000000000000000000000000000000000000000..191dab03604bc60586334c1ab37b5ebf7531612b --- /dev/null +++ b/cpp/src/vereign/restapi/detail/http_reader.cc @@ -0,0 +1,73 @@ +#include <vereign/restapi/detail/http_reader.hh> + +namespace vereign { +namespace restapi { +namespace detail { + +HttpReader::HttpReader( + std::shared_ptr<HttpReader::StreamType> stream, + std::chrono::nanoseconds expiry_time +) + : stream_{stream}, + reading_{false}, + closed_{false}, + expiry_time_{expiry_time} +{} + +void HttpReader::doAsyncRead(CompletionBasePtr&& completion) { + if (reading_) { + completion_ = std::move(completion); + return; + } + + if (resp_) { + if (completion) { + completion->Complete(*resp_, resp_error_); + completion.reset(); + doAsyncRead(nullptr); + } + return; + } + + completion_ = std::move(completion); + resp_.emplace(); + resp_error_.clear(); + + beast::get_lowest_layer(*stream_).expires_after(expiry_time_); + auto self = this->shared_from_this(); + auto stream = stream_; + reading_ = true; + beast::http::async_read( + *stream_, + responseBuffer_, + resp_.get(), + [this, self, stream](beast::error_code ec, std::size_t bytes_transferred) { + boost::ignore_unused(bytes_transferred); + reading_ = false; + resp_error_ = ec; + + if (!completion_) { + if (ec) { + closed_ = true; + beast::get_lowest_layer(*stream_).close(); + } + return; + } + + completion_->Complete(*resp_, ec); + completion_.reset(); + resp_.reset(); + + if (!ec) { + doAsyncRead(nullptr); + } + }); +} + +bool HttpReader::IsClosed() const { + return closed_; +} + +} // namespace detail +} // namespace restapi +} // namespace vereign diff --git a/cpp/src/vereign/restapi/detail/http_reader.hh b/cpp/src/vereign/restapi/detail/http_reader.hh new file mode 100644 index 0000000000000000000000000000000000000000..fcde129baf721ab48e2a079945672ffa3140939a --- /dev/null +++ b/cpp/src/vereign/restapi/detail/http_reader.hh @@ -0,0 +1,72 @@ +#ifndef __VEREIGN_RESTAPI_DETAIL_HTTP_READER_HH +#define __VEREIGN_RESTAPI_DETAIL_HTTP_READER_HH + +#include <boost/beast/http.hpp> +#include <boost/beast/ssl.hpp> +#include <boost/beast/ssl/ssl_stream.hpp> +#include <boost/beast/core/tcp_stream.hpp> + +namespace vereign { +namespace restapi { +namespace detail { + +namespace beast = boost::beast; +namespace asio = boost::asio; +using HttpResponse = beast::http::response<beast::http::string_body>; + +class HttpReaderCompletionBase { +public: + virtual void Complete(const HttpResponse& resp, beast::error_code) = 0; + virtual ~HttpReaderCompletionBase() {} +}; + +template <class CompletionFunc> +class HttpReaderCompletion : public HttpReaderCompletionBase { +public: + HttpReaderCompletion(CompletionFunc&& func) + : func_{std::move(func)} + {} + + void Complete(const HttpResponse& resp, beast::error_code ec) override { + func_(resp, ec); + } +private: + CompletionFunc func_; +}; + +class HttpReader : public std::enable_shared_from_this<HttpReader> { +public: + using StreamType = beast::ssl_stream<beast::tcp_stream>; + using CompletionBasePtr = std::unique_ptr<HttpReaderCompletionBase>; + + explicit HttpReader( + std::shared_ptr<StreamType> stream, + std::chrono::nanoseconds expiry_time + ); + + template <class CompletionFunc> + void AsyncRead(CompletionFunc&& func) { + using CompletionType = HttpReaderCompletion<CompletionFunc>; + doAsyncRead(std::make_unique<CompletionType>(std::move(func))); + } + + bool IsClosed() const; +private: + void doAsyncRead(CompletionBasePtr&& completion); + +private: + std::shared_ptr<StreamType> stream_; + boost::optional<detail::HttpResponse> resp_; + beast::error_code resp_error_; + beast::flat_buffer responseBuffer_; + CompletionBasePtr completion_; + bool reading_; + bool closed_; + std::chrono::nanoseconds expiry_time_; +}; + +} // namespace detail +} // namespace restapi +} // namespace vereign + +#endif // __VEREIGN_RESTAPI_DETAIL_HTTP_READER_HH diff --git a/cpp/src/vereign/restapi/detail/post_task.hh b/cpp/src/vereign/restapi/detail/post_task.hh new file mode 100644 index 0000000000000000000000000000000000000000..1b4cb9330cf79c376ce3ccc3b9490b1523076dcc --- /dev/null +++ b/cpp/src/vereign/restapi/detail/post_task.hh @@ -0,0 +1,186 @@ +#ifndef __VEREIGN_RESTAPI_DETAIL_POST_TASK_HH +#define __VEREIGN_RESTAPI_DETAIL_POST_TASK_HH + +#include "boost/type_traits/function_traits.hpp" +#include <vereign/restapi/http_header.hh> +#include <vereign/restapi/post_result.hh> + +#include <google/protobuf/message.h> +#include <boost/optional.hpp> +#include <boost/beast/http.hpp> +#include <google/protobuf/util/json_util.h> +#include <fmt/core.h> +#include <vereign/v1pb/common_types.pb.h> + +namespace vereign { +namespace restapi { + +namespace beast = boost::beast; + +using RequestPtr = std::unique_ptr<google::protobuf::Message>; + +namespace detail { + +using HttpResponse = beast::http::response<beast::http::string_body>; +using HttpRequest = beast::http::request<beast::http::string_body>; +using PostError = boost::optional<std::string>; + +class PostTaskBase { +public: + virtual void Complete(const PostError& err) = 0; + virtual const std::string& Path() const = 0; + virtual PostError EncodeRequest(HttpRequest& req) = 0; + virtual void DecodeResponse(const HttpResponse& resp) = 0; + virtual ~PostTaskBase() {} +}; + +using PostTaskBasePtr = std::unique_ptr<PostTaskBase>; + +template <class RequestPtr, class ResponsePtr, class CompletionFunc> +class PostTask: public PostTaskBase { +public: + PostTask( + const std::string& path, + RequestPtr&& req, + ResponsePtr&& resp, + CompletionFunc&& completion_func + ) + : path_{path}, + req_{std::move(req)}, + resp_{std::move(resp)}, + func_{std::move(completion_func)} + {} + + PostTask( + const std::string& path, + RequestPtr&& req, + ResponsePtr&& resp, + std::vector<HttpHeader>&& headers, + CompletionFunc&& completion_func + ) + : path_{path}, + req_{std::move(req)}, + resp_{std::move(resp)}, + headers_{std::move(headers)}, + func_{std::move(completion_func)} + {} + + ~PostTask() = default; + PostTask(PostTask&&) = default; + + PostTask(const PostTask&) = delete; + PostTask& operator=(const PostTask&) = delete; + + void DecodeResponse(const HttpResponse& httpResp) override { + google::protobuf::util::JsonParseOptions options; + options.ignore_unknown_fields = true; + + if (httpResp.result() != beast::http::status::ok) { + decodeErrorResponse(httpResp); + return; + } + + auto status = google::protobuf::util::JsonStringToMessage( + httpResp.body(), + &*resp_, + options + ); + + if (!status.ok()) { + resp_->set_code("500"); + resp_->set_status("response decoding failed"); + resp_->set_error(status.error_message()); + return; + } + } + + PostError EncodeRequest(HttpRequest& req) override { + for (auto& header : headers_) { + req.insert(header.Key, header.Value); + } + + google::protobuf::util::JsonPrintOptions options; + options.preserve_proto_field_names = true; + options.always_print_primitive_fields = true; + options.always_print_enums_as_ints = true; + auto status = google::protobuf::util::MessageToJsonString( + *req_, + &req.body(), + options + ); + + if (!status.ok()) { + return fmt::format( + "request json encode failed: {}", + std::string(status.error_message()) + ); + } + + return boost::none; + } + + void Complete(const PostError& err) override { + if (err) { + resp_->set_error(err.value()); + } + + func_(PostResult<RequestPtr, ResponsePtr>{ + std::move(req_), + std::move(resp_) + }); + } + + const std::string& Path() const override { + return path_; + } + +private: + + void decodeErrorResponse(const HttpResponse& httpResp) { + google::protobuf::util::JsonParseOptions options; + + v1pb::ErrorStringResponse stringResp; + auto status = google::protobuf::util::JsonStringToMessage( + httpResp.body(), + &stringResp, + options + ); + if (status.ok()) { + resp_->set_code(stringResp.code()); + resp_->set_status(stringResp.status()); + resp_->set_error(stringResp.data()); + return; + } + + options.ignore_unknown_fields = true; + v1pb::ErrorEmptyResponse emptyResp; + status = google::protobuf::util::JsonStringToMessage( + httpResp.body(), + &emptyResp, + options + ); + if (!status.ok()) { + resp_->set_code("500"); + resp_->set_status("decoding error response failed"); + resp_->set_error(status.error_message()); + return; + } + + resp_->set_code(emptyResp.code()); + resp_->set_status(emptyResp.status()); + resp_->set_error("api call failed"); + } + +private: + std::string path_; + RequestPtr req_; + ResponsePtr resp_; + std::vector<HttpHeader> headers_; + CompletionFunc func_; +}; + +} // namespace detail +} // namespace restapi +} // namespace vereign + +#endif // __VEREIGN_RESTAPI_DETAIL_POST_TASK_HH diff --git a/cpp/src/vereign/restapi/http_header.hh b/cpp/src/vereign/restapi/http_header.hh new file mode 100644 index 0000000000000000000000000000000000000000..58fa7c512d5ae341987de977cf95e0dc0dba930a --- /dev/null +++ b/cpp/src/vereign/restapi/http_header.hh @@ -0,0 +1,17 @@ +#ifndef __VEREIGN_RESTAPI_HTTP_HEADER_HH +#define __VEREIGN_RESTAPI_HTTP_HEADER_HH + +#include <string> + +namespace vereign { +namespace restapi { + +struct HttpHeader { + std::string Key; + std::string Value; +}; + +} // namespace restapi +} // namespace vereign + +#endif diff --git a/cpp/src/vereign/restapi/post_result.hh b/cpp/src/vereign/restapi/post_result.hh new file mode 100644 index 0000000000000000000000000000000000000000..6d31f5bebb217b9c79d28435f5617a56a3607c81 --- /dev/null +++ b/cpp/src/vereign/restapi/post_result.hh @@ -0,0 +1,29 @@ +#ifndef __VEREIGN_RESTAPI_POST_RESULT_HH +#define __VEREIGN_RESTAPI_POST_RESULT_HH + +#include <memory> +#include <iostream> + +namespace vereign { +namespace restapi { + +template <class RequestPtr, class ResponsePtr> +struct PostResult { + RequestPtr Request; + ResponsePtr Response; + + PostResult(RequestPtr req, ResponsePtr resp) + : Request{std::move(req)}, + Response{std::move(resp)} + {} + + PostResult(PostResult&& other) = default; + + PostResult(const PostResult&) = delete; + PostResult& operator=(const PostResult&) = delete; +}; + +} // namespace restapi +} // namespace vereign + +#endif // __VEREIGN_RESTAPI_POST_RESULT_HH diff --git a/cpp/src/vereign/service/gen/gen.hh b/cpp/src/vereign/service/gen/gen.hh new file mode 100644 index 0000000000000000000000000000000000000000..fa5b9ab4379a684c747016d512f22bedf30d93a2 --- /dev/null +++ b/cpp/src/vereign/service/gen/gen.hh @@ -0,0 +1,6 @@ +#ifndef __VEREIGN_SERVICE_GEN_GEN_HH +#define __VEREIGN_SERVICE_GEN_GEN_HH + +#include <vereign/service/gen/passport_service.hh> + +#endif diff --git a/cpp/src/vereign/service/gen/passport_service.cc b/cpp/src/vereign/service/gen/passport_service.cc new file mode 100644 index 0000000000000000000000000000000000000000..dca51490d9dfb917b98c42480d1a6801128408d3 --- /dev/null +++ b/cpp/src/vereign/service/gen/passport_service.cc @@ -0,0 +1,33 @@ +#include <vereign/service/gen/passport_service.hh> +#include <vereign/restapi/client_session.hh> + +namespace { + const std::string listPassportsPath = "listPassports"; +} + +namespace vereign { +namespace service { +namespace gen { + +const std::string PassportService::ServicePath = "/passport/"; + +PassportService::PassportService(restapi::ClientSession& client_session) + : client_session_{client_session} +{} + +std::future<PassportService::ListPassportsResult> +PassportService::ListPassports( + const v1pb::ListPassportsForm* req, + v1pb::ListPassportsFormResponse* resp +) { + return client_session_.Post( + ServicePath + listPassportsPath, + req, + resp + ); +} + + +} // namespace gen +} // namespace service +} // namespace vereign diff --git a/cpp/src/vereign/service/gen/passport_service.hh b/cpp/src/vereign/service/gen/passport_service.hh new file mode 100644 index 0000000000000000000000000000000000000000..a74aceb06bff207fe22c07969ecc237cf4b682c4 --- /dev/null +++ b/cpp/src/vereign/service/gen/passport_service.hh @@ -0,0 +1,48 @@ +#ifndef __VEREIGN_SERVICE_GEN_PASSPORT_SERVICE_HH +#define __VEREIGN_SERVICE_GEN_PASSPORT_SERVICE_HH + +#include <vereign/restapi/client_session.hh> +#include <vereign/restapi/post_result.hh> +#include <vereign/v1pb/passport_types.gen.pb.h> + +#include <future> + +namespace vereign { + +namespace restapi { + class ClientSession; +} + +namespace service { +namespace gen { + +template <class Request, class Response> +using Result = restapi::PostResult<Request, Response>; + +class PassportService { +public: + static const std::string ServicePath; + + explicit PassportService(restapi::ClientSession& client_session); + + PassportService(const PassportService&) = delete; + PassportService& operator=(const PassportService&) = delete; + + using ListPassportsResult = Result< + const v1pb::ListPassportsForm*, + v1pb::ListPassportsFormResponse*>; + + std::future<ListPassportsResult> ListPassports( + const v1pb::ListPassportsForm* req, + v1pb::ListPassportsFormResponse* resp + ); + +private: + restapi::ClientSession& client_session_; +}; + +} // namespace gen +} // namespace service +} // namespace vereign + +#endif // __VEREIGN_SERVICE_GEN_PASSPORT_SERVICE_HH diff --git a/cpp/src/vereign/service/passport_service.cc b/cpp/src/vereign/service/passport_service.cc new file mode 100644 index 0000000000000000000000000000000000000000..47ed56dc94d1357cae079ccf38f152d7afbfde9f --- /dev/null +++ b/cpp/src/vereign/service/passport_service.cc @@ -0,0 +1,32 @@ +#include "vereign/service/gen/passport_service.hh" +#include <vereign/service/passport_service.hh> +#include <vereign/restapi/client_session.hh> + +namespace { + const std::string listPassportsPath = "listPassports"; +} + +namespace vereign { +namespace service { + +PassportService::PassportService(restapi::ClientSession& client_session) + : gen::PassportService{client_session}, + client_session_{client_session} +{} + + +std::future<PassportService::ListPassportsResult> +PassportService::ListPassportsManually( + const v1pb::ListPassportsForm* req, + v1pb::ListPassportsFormResponse* resp +) { + return client_session_.Post( + gen::PassportService::ServicePath + listPassportsPath, + req, + resp + ); +} + + +} // namespace service +} // namespace vereign diff --git a/cpp/src/vereign/service/passport_service.hh b/cpp/src/vereign/service/passport_service.hh new file mode 100644 index 0000000000000000000000000000000000000000..a909a5129a2ec198cadcce9fb5629ffb778e8b64 --- /dev/null +++ b/cpp/src/vereign/service/passport_service.hh @@ -0,0 +1,45 @@ +#ifndef __VEREIGN_SERVICE_PASSPORT_SERVICE_HH +#define __VEREIGN_SERVICE_PASSPORT_SERVICE_HH + +#include <vereign/restapi/client_session.hh> +#include <vereign/restapi/post_result.hh> +#include <vereign/v1pb/passport_types.gen.pb.h> +#include <vereign/service/gen/passport_service.hh> + +#include <future> + +namespace vereign { + +namespace restapi { + class ClientSession; +} + +namespace service { + +template <class Request, class Response> +using Result = restapi::PostResult<Request, Response>; + +class PassportService : public gen::PassportService { +public: + explicit PassportService(restapi::ClientSession& client_session); + + PassportService(const PassportService&) = delete; + PassportService& operator=(const PassportService&) = delete; + + using ListPassportsResult = Result< + const v1pb::ListPassportsForm*, + v1pb::ListPassportsFormResponse*>; + + std::future<ListPassportsResult> ListPassportsManually( + const v1pb::ListPassportsForm* req, + v1pb::ListPassportsFormResponse* resp + ); + +private: + restapi::ClientSession& client_session_; +}; + +} // namespace service +} // namespace vereign + +#endif // __VEREIGN_SERVICE_PASSPORT_SERVICE_HH diff --git a/cpp/src/vereign/sync/channel.hh b/cpp/src/vereign/sync/channel.hh new file mode 100644 index 0000000000000000000000000000000000000000..ff6ff439de10fa058ee1a80460cfc8feb1e69dd2 --- /dev/null +++ b/cpp/src/vereign/sync/channel.hh @@ -0,0 +1,354 @@ +#ifndef __VEREIGN_SYNC_CHANNEL_HH +#define __VEREIGN_SYNC_CHANNEL_HH + +#include <deque> +#include <condition_variable> +#include <boost/optional.hpp> +#include <iostream> + +namespace vereign { +namespace sync { + +/** + * ChannelAddResult is used as return value by Channel TryAdd methods. + * + * It provides information if the operation was successful, and what is the + * the current state of the channel - full, closed. + */ +class ChannelAddResult { +public: + /** + * Default constructor - the result is ok. + */ + ChannelAddResult(): closed_(false), full_(false) {} + /** + * Creates ChannelAddResult. + * + * @param closed The channel is closed. + * @param full The channel is full, and cannot accept more values. + */ + ChannelAddResult(bool closed, bool full) : closed_(closed), full_(full) {}; + + /** + * Checks if the add operation was successful. + * + * @returns true when the add operation was successful. + */ + bool IsOk() const noexcept { + return !closed_ && !full_; + } + + /** + * Returns the add operation result. + * + * @returns true when the add operation was successful. + */ + operator bool() const noexcept { + return IsOk(); + } + + /** + * Checks if the channel was closed. + * + * @returns true when the channel was closed. + */ + bool IsClosed() const noexcept { + return closed_; + } + + /** + * Checks if the channel was full. + * + * A full channel did not accept the value. + * + * @returns true when the channel was full. + */ + bool IsFull() const noexcept { + return full_; + } + +private: + bool closed_; + bool full_; +}; + +/** + * ChannelValue is the result returned by the Channel Get methods. + * + * It provides information if the Get operation was successful, and what is + * the current state of the channel - closed, empty. + * + * The ChannelValue wraps optional, so if for any reason retrieving a value + * was not successful, it won't actually contain a value, but only information + * about the channel state at the moment when the retrieval was attempted. + * + * @tparam T The channel value type. + */ +template <typename T> +class ChannelValue { +public: + using ValueType = T; + + ChannelValue(ValueType&& value, bool closed, bool empty) + : value_{std::move(value)}, + closed_{closed}, + empty_{empty} + {} + + ChannelValue(bool closed, bool empty) + : closed_{closed}, + empty_{empty} + {} + + // The Channel Value is only move constructible and move assignable. + ChannelValue(ChannelValue&&) = default; + ChannelValue& operator=(ChannelValue&&) = default; + ChannelValue(const ChannelValue&) = delete; + ChannelValue& operator=(const ChannelValue&) = delete; + + operator bool() const noexcept { + return HasValue(); + } + + bool HasValue() const noexcept { + return value_.has_value(); + } + + const ValueType& Value() const { + return value_.value(); + } + + ValueType& Value() { + return value_.value(); + } + + bool IsClosed() const noexcept { + return closed_; + } + + bool IsEmpty() const noexcept { + return empty_; + } + +private: + boost::optional<ValueType> value_; + bool closed_; + bool empty_; +}; + +/** + * Channel is a generic container for communication between threads. + * + * It provides multi producer, multi consumer semantics. + * With the blocking APIs the consumers block until there is something added + * to the channel, while the producers block if the channel is full (the channel + * size is greater or equal to the channel capacity). + * + * @tparam T Value type of the channel. + */ +template <typename T> +class Channel { +public: + using ValueType = T; + + static_assert( + std::is_nothrow_move_constructible<ValueType>::value, + "T type is required to be nothrow move constructible" + ); + + /** + * Creates a channel with a maximum allowed buffering. + * + * @param capacity + * The maximum allowed number of values that can be stored in the channel. + */ + explicit Channel(std::size_t capacity) + : closed_{false}, + capacity_{capacity} + { + } + + /** + * Moves the element value into the channel queue. + * + * If the channel is full up to its capacity, this call blocks until there is room, + * to push the value, or the channel is closed. + * + * @param value The value is moved into the new element. + * @returns false when the channel is closed, and the value could not be pushed. + */ + bool Add(ValueType&& value) { + std::unique_lock<std::mutex> lock(mu_); + writers_cv_.wait(lock, [this]() { + return queue_.size() < capacity_ || closed_; + }); + + if (closed_) { + return false; + } + + queue_.push_back(std::move(value)); + lock.unlock(); + + readers_cv_.notify_one(); + + return true; + } + + /** + * Adds a copy of the element value to the channel queue. + * + * If the channel is full up to its capacity, this call blocks until there is room, + * to push the value, or the channel is closed. + * + * @param value The value is copied and added to the channel. + * @returns false when the channel is closed, and the value could not be pushed. + */ + bool Add(const ValueType& value) { + std::unique_lock<std::mutex> lock(mu_); + writers_cv_.wait(lock, [this]() { + return queue_.size() < capacity_ || closed_; + }); + + if (closed_) { + return false; + } + + queue_.push_back(value); + lock.unlock(); + + readers_cv_.notify_one(); + + return true; + } + + /** + * Tries to move the value into the channel queue. + * + * If the channel is full up to its capacity or closed, this call returns + * without blocking, and the returned result's bool operator will evaluate to + * false. + * + * @param value The value is moved into the new element. + * @returns a add result, that can be used to check if the operation was + * successful, and what was the channel state - closed, full. + */ + ChannelAddResult TryAdd(ValueType&& value) { + ChannelAddResult result; + { + std::lock_guard<std::mutex> lock(mu_); + result = ChannelAddResult{closed_, queue_.size() >= capacity_}; + if (!result) { + return result; + } + + queue_.push_back(std::move(value)); + } + + readers_cv_.notify_one(); + + return result; + } + + /** + * Tries to add a copy of the value into the channel queue. + * + * If the channel is full up to its capacity or closed, this call returns + * without blocking, and the returned result's bool operator will evaluate to + * false. + * + * @param value The value is copied and added to the channel. + * @returns a add result, that can be used to check if the operation was + * successful, and what was the channel state - closed, full. + */ + ChannelAddResult TryAdd(const ValueType& value) { + ChannelAddResult result; + { + std::lock_guard<std::mutex> lock(mu_); + result = ChannelAddResult{closed_, queue_.size() >= capacity_}; + if (!result) { + return result; + } + + queue_.push_back(value); + } + + readers_cv_.notify_one(); + + return result; + } + + /** + * Get retrieves a value from the channel. + * If the channel is empty, this call blocks until there is something added + * into the channel or the channel is empty but closed. + * + * @returns the retrieved value. + * The retrieved value has optional semantics. + * One must check if the value exists before using it. + * See the ChannelValue class docs. + */ + ChannelValue<ValueType> Get() { + std::unique_lock<std::mutex> lock(mu_); + readers_cv_.wait(lock, [this]() { + return queue_.size() > 0 || closed_; + }); + + if (queue_.size() == 0) { + return ChannelValue<ValueType>{closed_, queue_.size() == 0}; + } + + auto result = ChannelValue<ValueType>{ + std::move(queue_.front()), + closed_, + queue_.size() == 0, + }; + queue_.pop_front(); + + lock.unlock(); + writers_cv_.notify_one(); + + return result; + } + + /** + * Closes the channel. + * + * All currently blocked readers will be unblocked. + */ + void Close() { + { + std::lock_guard<std::mutex> lock{mu_}; + closed_ = true; + } + + writers_cv_.notify_all(); + readers_cv_.notify_all(); + } + +private: + // mutex used to protect the fields that follow. + std::mutex mu_; + + // conditional variable for the writers. + std::condition_variable writers_cv_; + + // conditional variable for the readers. + std::condition_variable readers_cv_; + + // signify if the channel is closed. + bool closed_; + + // maximum number of elements buffered inside the channel. + std::size_t capacity_; + + // the internal queue used by the channel. + // TODO: replace the deque with circular buffer since the channel's capacity + // is fixed and known during the construction time. + std::deque<ValueType> queue_; +}; + +} +} + +#endif diff --git a/cpp/src/vereign/v1pb/code.vereign.com/code/viam-apis/entities-management-agent/api/api.pb.cc b/cpp/src/vereign/v1pb/code.vereign.com/code/viam-apis/entities-management-agent/api/api.pb.cc new file mode 100644 index 0000000000000000000000000000000000000000..c6465bbcb3ab2b8afc7ff80b465655012686e889 --- /dev/null +++ b/cpp/src/vereign/v1pb/code.vereign.com/code/viam-apis/entities-management-agent/api/api.pb.cc @@ -0,0 +1,9960 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: code.vereign.com/code/viam-apis/entities-management-agent/api/api.proto + +#include "code.vereign.com/code/viam-apis/entities-management-agent/api/api.pb.h" + +#include <algorithm> + +#include <google/protobuf/io/coded_stream.h> +#include <google/protobuf/extension_set.h> +#include <google/protobuf/wire_format_lite.h> +#include <google/protobuf/descriptor.h> +#include <google/protobuf/generated_message_reflection.h> +#include <google/protobuf/reflection_ops.h> +#include <google/protobuf/wire_format.h> +// @@protoc_insertion_point(includes) +#include <google/protobuf/port_def.inc> +extern PROTOBUF_INTERNAL_EXPORT_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_ClaimInvitationHistoryMessage_HistoryByClaimInvitationEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto; +extern PROTOBUF_INTERNAL_EXPORT_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_ClaimInvitationList_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto; +extern PROTOBUF_INTERNAL_EXPORT_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_ClaimInvitationMessage_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto; +extern PROTOBUF_INTERNAL_EXPORT_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_ClaimTagsMap_V1_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto; +extern PROTOBUF_INTERNAL_EXPORT_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_ClaimTagsMap_V1_TagsEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto; +extern PROTOBUF_INTERNAL_EXPORT_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_Claim_V1_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto; +extern PROTOBUF_INTERNAL_EXPORT_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_Claim_V1_ValueEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto; +extern PROTOBUF_INTERNAL_EXPORT_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_EntityHistoryMessage_HistoryByUUIDEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto; +extern PROTOBUF_INTERNAL_EXPORT_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_EntityList_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto; +extern PROTOBUF_INTERNAL_EXPORT_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_EntityMessage_V1_ClaimsEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto; +extern PROTOBUF_INTERNAL_EXPORT_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_EntityMessage_V1_ContactStatusesEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto; +extern PROTOBUF_INTERNAL_EXPORT_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_EntityMessage_V1_PassportsCountersEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto; +extern PROTOBUF_INTERNAL_EXPORT_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<14> scc_info_EntityMessage_V2_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto; +extern PROTOBUF_INTERNAL_EXPORT_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_EntityMessage_V2_ChildrenEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto; +extern PROTOBUF_INTERNAL_EXPORT_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_EntityMessage_V2_ClaimsEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto; +extern PROTOBUF_INTERNAL_EXPORT_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_EntityMessage_V2_ContactStatusesEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto; +extern PROTOBUF_INTERNAL_EXPORT_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_EntityMessage_V2_GuardedEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto; +extern PROTOBUF_INTERNAL_EXPORT_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_EntityMessage_V2_GuardiansEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto; +extern PROTOBUF_INTERNAL_EXPORT_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_EntityMessage_V2_MemberOfEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto; +extern PROTOBUF_INTERNAL_EXPORT_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_EntityMessage_V2_MembersEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto; +extern PROTOBUF_INTERNAL_EXPORT_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_EntityMessage_V2_OrdersEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto; +extern PROTOBUF_INTERNAL_EXPORT_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_EntityMessage_V2_ParentsEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto; +extern PROTOBUF_INTERNAL_EXPORT_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_EntityMessage_V2_PassportsCountersEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto; +extern PROTOBUF_INTERNAL_EXPORT_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_EntityMessage_V2_SystemChildrenEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto; +extern PROTOBUF_INTERNAL_EXPORT_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_EntityMessage_V2_SystemParentsEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto; +extern PROTOBUF_INTERNAL_EXPORT_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_EntityMessage_V2_ViewedEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto; +extern PROTOBUF_INTERNAL_EXPORT_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_EntityMessage_V2_ViewersEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto; +extern PROTOBUF_INTERNAL_EXPORT_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_GetEntitiesCountersResponseMessage_CountersEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto; +extern PROTOBUF_INTERNAL_EXPORT_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_GetEntitiesTailsResponseMessage_EntitiesEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto; +extern PROTOBUF_INTERNAL_EXPORT_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_Order_V1_DataEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto; +extern PROTOBUF_INTERNAL_EXPORT_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_Order_V1_OperationUUIDSEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto; +namespace api { +class Claim_V1_ValueEntry_DoNotUseDefaultTypeInternal { + public: + ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<Claim_V1_ValueEntry_DoNotUse> _instance; +} _Claim_V1_ValueEntry_DoNotUse_default_instance_; +class Claim_V1DefaultTypeInternal { + public: + ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<Claim_V1> _instance; +} _Claim_V1_default_instance_; +class ClaimTagsMap_V1_TagsEntry_DoNotUseDefaultTypeInternal { + public: + ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<ClaimTagsMap_V1_TagsEntry_DoNotUse> _instance; +} _ClaimTagsMap_V1_TagsEntry_DoNotUse_default_instance_; +class ClaimTagsMap_V1DefaultTypeInternal { + public: + ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<ClaimTagsMap_V1> _instance; +} _ClaimTagsMap_V1_default_instance_; +class Order_V1_OperationUUIDSEntry_DoNotUseDefaultTypeInternal { + public: + ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<Order_V1_OperationUUIDSEntry_DoNotUse> _instance; +} _Order_V1_OperationUUIDSEntry_DoNotUse_default_instance_; +class Order_V1_DataEntry_DoNotUseDefaultTypeInternal { + public: + ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<Order_V1_DataEntry_DoNotUse> _instance; +} _Order_V1_DataEntry_DoNotUse_default_instance_; +class Order_V1DefaultTypeInternal { + public: + ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<Order_V1> _instance; +} _Order_V1_default_instance_; +class EntityMessage_V1_ClaimsEntry_DoNotUseDefaultTypeInternal { + public: + ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<EntityMessage_V1_ClaimsEntry_DoNotUse> _instance; +} _EntityMessage_V1_ClaimsEntry_DoNotUse_default_instance_; +class EntityMessage_V1_PassportsCountersEntry_DoNotUseDefaultTypeInternal { + public: + ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<EntityMessage_V1_PassportsCountersEntry_DoNotUse> _instance; +} _EntityMessage_V1_PassportsCountersEntry_DoNotUse_default_instance_; +class EntityMessage_V1_ContactStatusesEntry_DoNotUseDefaultTypeInternal { + public: + ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<EntityMessage_V1_ContactStatusesEntry_DoNotUse> _instance; +} _EntityMessage_V1_ContactStatusesEntry_DoNotUse_default_instance_; +class EntityMessage_V1DefaultTypeInternal { + public: + ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<EntityMessage_V1> _instance; +} _EntityMessage_V1_default_instance_; +class EntityMessage_V2_ClaimsEntry_DoNotUseDefaultTypeInternal { + public: + ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<EntityMessage_V2_ClaimsEntry_DoNotUse> _instance; +} _EntityMessage_V2_ClaimsEntry_DoNotUse_default_instance_; +class EntityMessage_V2_GuardedEntry_DoNotUseDefaultTypeInternal { + public: + ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<EntityMessage_V2_GuardedEntry_DoNotUse> _instance; +} _EntityMessage_V2_GuardedEntry_DoNotUse_default_instance_; +class EntityMessage_V2_GuardiansEntry_DoNotUseDefaultTypeInternal { + public: + ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<EntityMessage_V2_GuardiansEntry_DoNotUse> _instance; +} _EntityMessage_V2_GuardiansEntry_DoNotUse_default_instance_; +class EntityMessage_V2_MembersEntry_DoNotUseDefaultTypeInternal { + public: + ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<EntityMessage_V2_MembersEntry_DoNotUse> _instance; +} _EntityMessage_V2_MembersEntry_DoNotUse_default_instance_; +class EntityMessage_V2_MemberOfEntry_DoNotUseDefaultTypeInternal { + public: + ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<EntityMessage_V2_MemberOfEntry_DoNotUse> _instance; +} _EntityMessage_V2_MemberOfEntry_DoNotUse_default_instance_; +class EntityMessage_V2_ParentsEntry_DoNotUseDefaultTypeInternal { + public: + ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<EntityMessage_V2_ParentsEntry_DoNotUse> _instance; +} _EntityMessage_V2_ParentsEntry_DoNotUse_default_instance_; +class EntityMessage_V2_ChildrenEntry_DoNotUseDefaultTypeInternal { + public: + ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<EntityMessage_V2_ChildrenEntry_DoNotUse> _instance; +} _EntityMessage_V2_ChildrenEntry_DoNotUse_default_instance_; +class EntityMessage_V2_ViewedEntry_DoNotUseDefaultTypeInternal { + public: + ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<EntityMessage_V2_ViewedEntry_DoNotUse> _instance; +} _EntityMessage_V2_ViewedEntry_DoNotUse_default_instance_; +class EntityMessage_V2_ViewersEntry_DoNotUseDefaultTypeInternal { + public: + ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<EntityMessage_V2_ViewersEntry_DoNotUse> _instance; +} _EntityMessage_V2_ViewersEntry_DoNotUse_default_instance_; +class EntityMessage_V2_PassportsCountersEntry_DoNotUseDefaultTypeInternal { + public: + ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<EntityMessage_V2_PassportsCountersEntry_DoNotUse> _instance; +} _EntityMessage_V2_PassportsCountersEntry_DoNotUse_default_instance_; +class EntityMessage_V2_ContactStatusesEntry_DoNotUseDefaultTypeInternal { + public: + ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<EntityMessage_V2_ContactStatusesEntry_DoNotUse> _instance; +} _EntityMessage_V2_ContactStatusesEntry_DoNotUse_default_instance_; +class EntityMessage_V2_OrdersEntry_DoNotUseDefaultTypeInternal { + public: + ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<EntityMessage_V2_OrdersEntry_DoNotUse> _instance; +} _EntityMessage_V2_OrdersEntry_DoNotUse_default_instance_; +class EntityMessage_V2_SystemParentsEntry_DoNotUseDefaultTypeInternal { + public: + ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<EntityMessage_V2_SystemParentsEntry_DoNotUse> _instance; +} _EntityMessage_V2_SystemParentsEntry_DoNotUse_default_instance_; +class EntityMessage_V2_SystemChildrenEntry_DoNotUseDefaultTypeInternal { + public: + ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<EntityMessage_V2_SystemChildrenEntry_DoNotUse> _instance; +} _EntityMessage_V2_SystemChildrenEntry_DoNotUse_default_instance_; +class EntityMessage_V2DefaultTypeInternal { + public: + ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<EntityMessage_V2> _instance; +} _EntityMessage_V2_default_instance_; +class EntityMessageResponseDefaultTypeInternal { + public: + ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<EntityMessageResponse> _instance; +} _EntityMessageResponse_default_instance_; +class EntityListDefaultTypeInternal { + public: + ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<EntityList> _instance; +} _EntityList_default_instance_; +class EntityHistoryMessage_HistoryByUUIDEntry_DoNotUseDefaultTypeInternal { + public: + ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<EntityHistoryMessage_HistoryByUUIDEntry_DoNotUse> _instance; +} _EntityHistoryMessage_HistoryByUUIDEntry_DoNotUse_default_instance_; +class EntityHistoryMessageDefaultTypeInternal { + public: + ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<EntityHistoryMessage> _instance; +} _EntityHistoryMessage_default_instance_; +class EntitySearchMessageDefaultTypeInternal { + public: + ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<EntitySearchMessage> _instance; +} _EntitySearchMessage_default_instance_; +class ClaimInvitationMessageDefaultTypeInternal { + public: + ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<ClaimInvitationMessage> _instance; +} _ClaimInvitationMessage_default_instance_; +class ClaimInvitationMessageResponseDefaultTypeInternal { + public: + ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<ClaimInvitationMessageResponse> _instance; +} _ClaimInvitationMessageResponse_default_instance_; +class ClaimInvitationSearchMessageDefaultTypeInternal { + public: + ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<ClaimInvitationSearchMessage> _instance; +} _ClaimInvitationSearchMessage_default_instance_; +class ClaimInvitationListDefaultTypeInternal { + public: + ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<ClaimInvitationList> _instance; +} _ClaimInvitationList_default_instance_; +class ClaimInvitationHistoryMessage_HistoryByClaimInvitationEntry_DoNotUseDefaultTypeInternal { + public: + ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<ClaimInvitationHistoryMessage_HistoryByClaimInvitationEntry_DoNotUse> _instance; +} _ClaimInvitationHistoryMessage_HistoryByClaimInvitationEntry_DoNotUse_default_instance_; +class ClaimInvitationHistoryMessageDefaultTypeInternal { + public: + ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<ClaimInvitationHistoryMessage> _instance; +} _ClaimInvitationHistoryMessage_default_instance_; +class GetVersionEMAMessageDefaultTypeInternal { + public: + ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<GetVersionEMAMessage> _instance; +} _GetVersionEMAMessage_default_instance_; +class GetVersionEMAResponseMessageDefaultTypeInternal { + public: + ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<GetVersionEMAResponseMessage> _instance; +} _GetVersionEMAResponseMessage_default_instance_; +class GetEntitiesTailsMessageDefaultTypeInternal { + public: + ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<GetEntitiesTailsMessage> _instance; +} _GetEntitiesTailsMessage_default_instance_; +class GetEntitiesTailsResponseMessage_EntitiesEntry_DoNotUseDefaultTypeInternal { + public: + ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<GetEntitiesTailsResponseMessage_EntitiesEntry_DoNotUse> _instance; +} _GetEntitiesTailsResponseMessage_EntitiesEntry_DoNotUse_default_instance_; +class GetEntitiesTailsResponseMessageDefaultTypeInternal { + public: + ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<GetEntitiesTailsResponseMessage> _instance; +} _GetEntitiesTailsResponseMessage_default_instance_; +class GetEntitiesCountersMessageDefaultTypeInternal { + public: + ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<GetEntitiesCountersMessage> _instance; +} _GetEntitiesCountersMessage_default_instance_; +class GetEntitiesCountersResponseMessage_CountersEntry_DoNotUseDefaultTypeInternal { + public: + ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<GetEntitiesCountersResponseMessage_CountersEntry_DoNotUse> _instance; +} _GetEntitiesCountersResponseMessage_CountersEntry_DoNotUse_default_instance_; +class GetEntitiesCountersResponseMessageDefaultTypeInternal { + public: + ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<GetEntitiesCountersResponseMessage> _instance; +} _GetEntitiesCountersResponseMessage_default_instance_; +class EntityReplaceMessageDefaultTypeInternal { + public: + ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<EntityReplaceMessage> _instance; +} _EntityReplaceMessage_default_instance_; +} // namespace api +static void InitDefaultsscc_info_ClaimInvitationHistoryMessage_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::api::_ClaimInvitationHistoryMessage_default_instance_; + new (ptr) ::api::ClaimInvitationHistoryMessage(); + ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr); + } + ::api::ClaimInvitationHistoryMessage::InitAsDefaultInstance(); +} + +::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_ClaimInvitationHistoryMessage_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto = + {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_ClaimInvitationHistoryMessage_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto}, { + &scc_info_ClaimInvitationHistoryMessage_HistoryByClaimInvitationEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base,}}; + +static void InitDefaultsscc_info_ClaimInvitationHistoryMessage_HistoryByClaimInvitationEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::api::_ClaimInvitationHistoryMessage_HistoryByClaimInvitationEntry_DoNotUse_default_instance_; + new (ptr) ::api::ClaimInvitationHistoryMessage_HistoryByClaimInvitationEntry_DoNotUse(); + } + ::api::ClaimInvitationHistoryMessage_HistoryByClaimInvitationEntry_DoNotUse::InitAsDefaultInstance(); +} + +::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_ClaimInvitationHistoryMessage_HistoryByClaimInvitationEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto = + {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_ClaimInvitationHistoryMessage_HistoryByClaimInvitationEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto}, { + &scc_info_ClaimInvitationList_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base,}}; + +static void InitDefaultsscc_info_ClaimInvitationList_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::api::_ClaimInvitationList_default_instance_; + new (ptr) ::api::ClaimInvitationList(); + ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr); + } + ::api::ClaimInvitationList::InitAsDefaultInstance(); +} + +::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_ClaimInvitationList_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto = + {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_ClaimInvitationList_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto}, { + &scc_info_ClaimInvitationMessage_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base,}}; + +static void InitDefaultsscc_info_ClaimInvitationMessage_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::api::_ClaimInvitationMessage_default_instance_; + new (ptr) ::api::ClaimInvitationMessage(); + ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr); + } + ::api::ClaimInvitationMessage::InitAsDefaultInstance(); +} + +::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_ClaimInvitationMessage_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto = + {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_ClaimInvitationMessage_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto}, {}}; + +static void InitDefaultsscc_info_ClaimInvitationMessageResponse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::api::_ClaimInvitationMessageResponse_default_instance_; + new (ptr) ::api::ClaimInvitationMessageResponse(); + ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr); + } + ::api::ClaimInvitationMessageResponse::InitAsDefaultInstance(); +} + +::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_ClaimInvitationMessageResponse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto = + {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_ClaimInvitationMessageResponse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto}, {}}; + +static void InitDefaultsscc_info_ClaimInvitationSearchMessage_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::api::_ClaimInvitationSearchMessage_default_instance_; + new (ptr) ::api::ClaimInvitationSearchMessage(); + ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr); + } + ::api::ClaimInvitationSearchMessage::InitAsDefaultInstance(); +} + +::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_ClaimInvitationSearchMessage_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto = + {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_ClaimInvitationSearchMessage_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto}, {}}; + +static void InitDefaultsscc_info_ClaimTagsMap_V1_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::api::_ClaimTagsMap_V1_default_instance_; + new (ptr) ::api::ClaimTagsMap_V1(); + ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr); + } + ::api::ClaimTagsMap_V1::InitAsDefaultInstance(); +} + +::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_ClaimTagsMap_V1_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto = + {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_ClaimTagsMap_V1_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto}, { + &scc_info_ClaimTagsMap_V1_TagsEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base,}}; + +static void InitDefaultsscc_info_ClaimTagsMap_V1_TagsEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::api::_ClaimTagsMap_V1_TagsEntry_DoNotUse_default_instance_; + new (ptr) ::api::ClaimTagsMap_V1_TagsEntry_DoNotUse(); + } + ::api::ClaimTagsMap_V1_TagsEntry_DoNotUse::InitAsDefaultInstance(); +} + +::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_ClaimTagsMap_V1_TagsEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto = + {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_ClaimTagsMap_V1_TagsEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto}, { + &scc_info_Claim_V1_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base,}}; + +static void InitDefaultsscc_info_Claim_V1_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::api::_Claim_V1_default_instance_; + new (ptr) ::api::Claim_V1(); + ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr); + } + ::api::Claim_V1::InitAsDefaultInstance(); +} + +::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_Claim_V1_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto = + {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_Claim_V1_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto}, { + &scc_info_Claim_V1_ValueEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base,}}; + +static void InitDefaultsscc_info_Claim_V1_ValueEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::api::_Claim_V1_ValueEntry_DoNotUse_default_instance_; + new (ptr) ::api::Claim_V1_ValueEntry_DoNotUse(); + } + ::api::Claim_V1_ValueEntry_DoNotUse::InitAsDefaultInstance(); +} + +::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_Claim_V1_ValueEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto = + {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_Claim_V1_ValueEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto}, {}}; + +static void InitDefaultsscc_info_EntityHistoryMessage_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::api::_EntityHistoryMessage_default_instance_; + new (ptr) ::api::EntityHistoryMessage(); + ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr); + } + ::api::EntityHistoryMessage::InitAsDefaultInstance(); +} + +::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_EntityHistoryMessage_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto = + {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_EntityHistoryMessage_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto}, { + &scc_info_EntityHistoryMessage_HistoryByUUIDEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base,}}; + +static void InitDefaultsscc_info_EntityHistoryMessage_HistoryByUUIDEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::api::_EntityHistoryMessage_HistoryByUUIDEntry_DoNotUse_default_instance_; + new (ptr) ::api::EntityHistoryMessage_HistoryByUUIDEntry_DoNotUse(); + } + ::api::EntityHistoryMessage_HistoryByUUIDEntry_DoNotUse::InitAsDefaultInstance(); +} + +::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_EntityHistoryMessage_HistoryByUUIDEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto = + {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_EntityHistoryMessage_HistoryByUUIDEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto}, { + &scc_info_EntityList_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base,}}; + +static void InitDefaultsscc_info_EntityList_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::api::_EntityList_default_instance_; + new (ptr) ::api::EntityList(); + ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr); + } + ::api::EntityList::InitAsDefaultInstance(); +} + +::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_EntityList_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto = + {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_EntityList_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto}, { + &scc_info_EntityMessage_V2_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base,}}; + +static void InitDefaultsscc_info_EntityMessageResponse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::api::_EntityMessageResponse_default_instance_; + new (ptr) ::api::EntityMessageResponse(); + ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr); + } + ::api::EntityMessageResponse::InitAsDefaultInstance(); +} + +::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_EntityMessageResponse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto = + {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_EntityMessageResponse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto}, {}}; + +static void InitDefaultsscc_info_EntityMessage_V1_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::api::_EntityMessage_V1_default_instance_; + new (ptr) ::api::EntityMessage_V1(); + ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr); + } + ::api::EntityMessage_V1::InitAsDefaultInstance(); +} + +::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<3> scc_info_EntityMessage_V1_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto = + {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 3, 0, InitDefaultsscc_info_EntityMessage_V1_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto}, { + &scc_info_EntityMessage_V1_ClaimsEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base, + &scc_info_EntityMessage_V1_PassportsCountersEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base, + &scc_info_EntityMessage_V1_ContactStatusesEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base,}}; + +static void InitDefaultsscc_info_EntityMessage_V1_ClaimsEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::api::_EntityMessage_V1_ClaimsEntry_DoNotUse_default_instance_; + new (ptr) ::api::EntityMessage_V1_ClaimsEntry_DoNotUse(); + } + ::api::EntityMessage_V1_ClaimsEntry_DoNotUse::InitAsDefaultInstance(); +} + +::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_EntityMessage_V1_ClaimsEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto = + {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_EntityMessage_V1_ClaimsEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto}, { + &scc_info_ClaimTagsMap_V1_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base,}}; + +static void InitDefaultsscc_info_EntityMessage_V1_ContactStatusesEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::api::_EntityMessage_V1_ContactStatusesEntry_DoNotUse_default_instance_; + new (ptr) ::api::EntityMessage_V1_ContactStatusesEntry_DoNotUse(); + } + ::api::EntityMessage_V1_ContactStatusesEntry_DoNotUse::InitAsDefaultInstance(); +} + +::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_EntityMessage_V1_ContactStatusesEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto = + {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_EntityMessage_V1_ContactStatusesEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto}, {}}; + +static void InitDefaultsscc_info_EntityMessage_V1_PassportsCountersEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::api::_EntityMessage_V1_PassportsCountersEntry_DoNotUse_default_instance_; + new (ptr) ::api::EntityMessage_V1_PassportsCountersEntry_DoNotUse(); + } + ::api::EntityMessage_V1_PassportsCountersEntry_DoNotUse::InitAsDefaultInstance(); +} + +::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_EntityMessage_V1_PassportsCountersEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto = + {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_EntityMessage_V1_PassportsCountersEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto}, {}}; + +static void InitDefaultsscc_info_EntityMessage_V2_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::api::_EntityMessage_V2_default_instance_; + new (ptr) ::api::EntityMessage_V2(); + ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr); + } + ::api::EntityMessage_V2::InitAsDefaultInstance(); +} + +::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<14> scc_info_EntityMessage_V2_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto = + {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 14, 0, InitDefaultsscc_info_EntityMessage_V2_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto}, { + &scc_info_EntityMessage_V2_ClaimsEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base, + &scc_info_EntityMessage_V2_GuardedEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base, + &scc_info_EntityMessage_V2_GuardiansEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base, + &scc_info_EntityMessage_V2_MembersEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base, + &scc_info_EntityMessage_V2_MemberOfEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base, + &scc_info_EntityMessage_V2_ParentsEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base, + &scc_info_EntityMessage_V2_ChildrenEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base, + &scc_info_EntityMessage_V2_ViewedEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base, + &scc_info_EntityMessage_V2_ViewersEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base, + &scc_info_EntityMessage_V2_PassportsCountersEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base, + &scc_info_EntityMessage_V2_ContactStatusesEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base, + &scc_info_EntityMessage_V2_OrdersEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base, + &scc_info_EntityMessage_V2_SystemParentsEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base, + &scc_info_EntityMessage_V2_SystemChildrenEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base,}}; + +static void InitDefaultsscc_info_EntityMessage_V2_ChildrenEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::api::_EntityMessage_V2_ChildrenEntry_DoNotUse_default_instance_; + new (ptr) ::api::EntityMessage_V2_ChildrenEntry_DoNotUse(); + } + ::api::EntityMessage_V2_ChildrenEntry_DoNotUse::InitAsDefaultInstance(); +} + +::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_EntityMessage_V2_ChildrenEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto = + {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_EntityMessage_V2_ChildrenEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto}, {}}; + +static void InitDefaultsscc_info_EntityMessage_V2_ClaimsEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::api::_EntityMessage_V2_ClaimsEntry_DoNotUse_default_instance_; + new (ptr) ::api::EntityMessage_V2_ClaimsEntry_DoNotUse(); + } + ::api::EntityMessage_V2_ClaimsEntry_DoNotUse::InitAsDefaultInstance(); +} + +::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_EntityMessage_V2_ClaimsEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto = + {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_EntityMessage_V2_ClaimsEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto}, { + &scc_info_ClaimTagsMap_V1_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base,}}; + +static void InitDefaultsscc_info_EntityMessage_V2_ContactStatusesEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::api::_EntityMessage_V2_ContactStatusesEntry_DoNotUse_default_instance_; + new (ptr) ::api::EntityMessage_V2_ContactStatusesEntry_DoNotUse(); + } + ::api::EntityMessage_V2_ContactStatusesEntry_DoNotUse::InitAsDefaultInstance(); +} + +::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_EntityMessage_V2_ContactStatusesEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto = + {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_EntityMessage_V2_ContactStatusesEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto}, {}}; + +static void InitDefaultsscc_info_EntityMessage_V2_GuardedEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::api::_EntityMessage_V2_GuardedEntry_DoNotUse_default_instance_; + new (ptr) ::api::EntityMessage_V2_GuardedEntry_DoNotUse(); + } + ::api::EntityMessage_V2_GuardedEntry_DoNotUse::InitAsDefaultInstance(); +} + +::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_EntityMessage_V2_GuardedEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto = + {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_EntityMessage_V2_GuardedEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto}, {}}; + +static void InitDefaultsscc_info_EntityMessage_V2_GuardiansEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::api::_EntityMessage_V2_GuardiansEntry_DoNotUse_default_instance_; + new (ptr) ::api::EntityMessage_V2_GuardiansEntry_DoNotUse(); + } + ::api::EntityMessage_V2_GuardiansEntry_DoNotUse::InitAsDefaultInstance(); +} + +::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_EntityMessage_V2_GuardiansEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto = + {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_EntityMessage_V2_GuardiansEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto}, {}}; + +static void InitDefaultsscc_info_EntityMessage_V2_MemberOfEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::api::_EntityMessage_V2_MemberOfEntry_DoNotUse_default_instance_; + new (ptr) ::api::EntityMessage_V2_MemberOfEntry_DoNotUse(); + } + ::api::EntityMessage_V2_MemberOfEntry_DoNotUse::InitAsDefaultInstance(); +} + +::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_EntityMessage_V2_MemberOfEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto = + {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_EntityMessage_V2_MemberOfEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto}, {}}; + +static void InitDefaultsscc_info_EntityMessage_V2_MembersEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::api::_EntityMessage_V2_MembersEntry_DoNotUse_default_instance_; + new (ptr) ::api::EntityMessage_V2_MembersEntry_DoNotUse(); + } + ::api::EntityMessage_V2_MembersEntry_DoNotUse::InitAsDefaultInstance(); +} + +::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_EntityMessage_V2_MembersEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto = + {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_EntityMessage_V2_MembersEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto}, {}}; + +static void InitDefaultsscc_info_EntityMessage_V2_OrdersEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::api::_EntityMessage_V2_OrdersEntry_DoNotUse_default_instance_; + new (ptr) ::api::EntityMessage_V2_OrdersEntry_DoNotUse(); + } + ::api::EntityMessage_V2_OrdersEntry_DoNotUse::InitAsDefaultInstance(); +} + +::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_EntityMessage_V2_OrdersEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto = + {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_EntityMessage_V2_OrdersEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto}, {}}; + +static void InitDefaultsscc_info_EntityMessage_V2_ParentsEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::api::_EntityMessage_V2_ParentsEntry_DoNotUse_default_instance_; + new (ptr) ::api::EntityMessage_V2_ParentsEntry_DoNotUse(); + } + ::api::EntityMessage_V2_ParentsEntry_DoNotUse::InitAsDefaultInstance(); +} + +::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_EntityMessage_V2_ParentsEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto = + {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_EntityMessage_V2_ParentsEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto}, {}}; + +static void InitDefaultsscc_info_EntityMessage_V2_PassportsCountersEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::api::_EntityMessage_V2_PassportsCountersEntry_DoNotUse_default_instance_; + new (ptr) ::api::EntityMessage_V2_PassportsCountersEntry_DoNotUse(); + } + ::api::EntityMessage_V2_PassportsCountersEntry_DoNotUse::InitAsDefaultInstance(); +} + +::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_EntityMessage_V2_PassportsCountersEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto = + {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_EntityMessage_V2_PassportsCountersEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto}, {}}; + +static void InitDefaultsscc_info_EntityMessage_V2_SystemChildrenEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::api::_EntityMessage_V2_SystemChildrenEntry_DoNotUse_default_instance_; + new (ptr) ::api::EntityMessage_V2_SystemChildrenEntry_DoNotUse(); + } + ::api::EntityMessage_V2_SystemChildrenEntry_DoNotUse::InitAsDefaultInstance(); +} + +::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_EntityMessage_V2_SystemChildrenEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto = + {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_EntityMessage_V2_SystemChildrenEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto}, {}}; + +static void InitDefaultsscc_info_EntityMessage_V2_SystemParentsEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::api::_EntityMessage_V2_SystemParentsEntry_DoNotUse_default_instance_; + new (ptr) ::api::EntityMessage_V2_SystemParentsEntry_DoNotUse(); + } + ::api::EntityMessage_V2_SystemParentsEntry_DoNotUse::InitAsDefaultInstance(); +} + +::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_EntityMessage_V2_SystemParentsEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto = + {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_EntityMessage_V2_SystemParentsEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto}, {}}; + +static void InitDefaultsscc_info_EntityMessage_V2_ViewedEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::api::_EntityMessage_V2_ViewedEntry_DoNotUse_default_instance_; + new (ptr) ::api::EntityMessage_V2_ViewedEntry_DoNotUse(); + } + ::api::EntityMessage_V2_ViewedEntry_DoNotUse::InitAsDefaultInstance(); +} + +::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_EntityMessage_V2_ViewedEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto = + {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_EntityMessage_V2_ViewedEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto}, {}}; + +static void InitDefaultsscc_info_EntityMessage_V2_ViewersEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::api::_EntityMessage_V2_ViewersEntry_DoNotUse_default_instance_; + new (ptr) ::api::EntityMessage_V2_ViewersEntry_DoNotUse(); + } + ::api::EntityMessage_V2_ViewersEntry_DoNotUse::InitAsDefaultInstance(); +} + +::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_EntityMessage_V2_ViewersEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto = + {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_EntityMessage_V2_ViewersEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto}, {}}; + +static void InitDefaultsscc_info_EntityReplaceMessage_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::api::_EntityReplaceMessage_default_instance_; + new (ptr) ::api::EntityReplaceMessage(); + ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr); + } + ::api::EntityReplaceMessage::InitAsDefaultInstance(); +} + +::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_EntityReplaceMessage_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto = + {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_EntityReplaceMessage_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto}, { + &scc_info_EntityMessage_V2_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base,}}; + +static void InitDefaultsscc_info_EntitySearchMessage_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::api::_EntitySearchMessage_default_instance_; + new (ptr) ::api::EntitySearchMessage(); + ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr); + } + ::api::EntitySearchMessage::InitAsDefaultInstance(); +} + +::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_EntitySearchMessage_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto = + {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_EntitySearchMessage_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto}, {}}; + +static void InitDefaultsscc_info_GetEntitiesCountersMessage_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::api::_GetEntitiesCountersMessage_default_instance_; + new (ptr) ::api::GetEntitiesCountersMessage(); + ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr); + } + ::api::GetEntitiesCountersMessage::InitAsDefaultInstance(); +} + +::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_GetEntitiesCountersMessage_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto = + {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_GetEntitiesCountersMessage_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto}, {}}; + +static void InitDefaultsscc_info_GetEntitiesCountersResponseMessage_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::api::_GetEntitiesCountersResponseMessage_default_instance_; + new (ptr) ::api::GetEntitiesCountersResponseMessage(); + ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr); + } + ::api::GetEntitiesCountersResponseMessage::InitAsDefaultInstance(); +} + +::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_GetEntitiesCountersResponseMessage_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto = + {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_GetEntitiesCountersResponseMessage_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto}, { + &scc_info_GetEntitiesCountersResponseMessage_CountersEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base,}}; + +static void InitDefaultsscc_info_GetEntitiesCountersResponseMessage_CountersEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::api::_GetEntitiesCountersResponseMessage_CountersEntry_DoNotUse_default_instance_; + new (ptr) ::api::GetEntitiesCountersResponseMessage_CountersEntry_DoNotUse(); + } + ::api::GetEntitiesCountersResponseMessage_CountersEntry_DoNotUse::InitAsDefaultInstance(); +} + +::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_GetEntitiesCountersResponseMessage_CountersEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto = + {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_GetEntitiesCountersResponseMessage_CountersEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto}, {}}; + +static void InitDefaultsscc_info_GetEntitiesTailsMessage_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::api::_GetEntitiesTailsMessage_default_instance_; + new (ptr) ::api::GetEntitiesTailsMessage(); + ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr); + } + ::api::GetEntitiesTailsMessage::InitAsDefaultInstance(); +} + +::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_GetEntitiesTailsMessage_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto = + {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_GetEntitiesTailsMessage_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto}, {}}; + +static void InitDefaultsscc_info_GetEntitiesTailsResponseMessage_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::api::_GetEntitiesTailsResponseMessage_default_instance_; + new (ptr) ::api::GetEntitiesTailsResponseMessage(); + ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr); + } + ::api::GetEntitiesTailsResponseMessage::InitAsDefaultInstance(); +} + +::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_GetEntitiesTailsResponseMessage_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto = + {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_GetEntitiesTailsResponseMessage_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto}, { + &scc_info_GetEntitiesTailsResponseMessage_EntitiesEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base,}}; + +static void InitDefaultsscc_info_GetEntitiesTailsResponseMessage_EntitiesEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::api::_GetEntitiesTailsResponseMessage_EntitiesEntry_DoNotUse_default_instance_; + new (ptr) ::api::GetEntitiesTailsResponseMessage_EntitiesEntry_DoNotUse(); + } + ::api::GetEntitiesTailsResponseMessage_EntitiesEntry_DoNotUse::InitAsDefaultInstance(); +} + +::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_GetEntitiesTailsResponseMessage_EntitiesEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto = + {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_GetEntitiesTailsResponseMessage_EntitiesEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto}, { + &scc_info_EntityMessage_V2_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base,}}; + +static void InitDefaultsscc_info_GetVersionEMAMessage_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::api::_GetVersionEMAMessage_default_instance_; + new (ptr) ::api::GetVersionEMAMessage(); + ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr); + } + ::api::GetVersionEMAMessage::InitAsDefaultInstance(); +} + +::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_GetVersionEMAMessage_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto = + {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_GetVersionEMAMessage_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto}, {}}; + +static void InitDefaultsscc_info_GetVersionEMAResponseMessage_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::api::_GetVersionEMAResponseMessage_default_instance_; + new (ptr) ::api::GetVersionEMAResponseMessage(); + ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr); + } + ::api::GetVersionEMAResponseMessage::InitAsDefaultInstance(); +} + +::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_GetVersionEMAResponseMessage_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto = + {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_GetVersionEMAResponseMessage_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto}, {}}; + +static void InitDefaultsscc_info_Order_V1_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::api::_Order_V1_default_instance_; + new (ptr) ::api::Order_V1(); + ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr); + } + ::api::Order_V1::InitAsDefaultInstance(); +} + +::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_Order_V1_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto = + {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 2, 0, InitDefaultsscc_info_Order_V1_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto}, { + &scc_info_Order_V1_OperationUUIDSEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base, + &scc_info_Order_V1_DataEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base,}}; + +static void InitDefaultsscc_info_Order_V1_DataEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::api::_Order_V1_DataEntry_DoNotUse_default_instance_; + new (ptr) ::api::Order_V1_DataEntry_DoNotUse(); + } + ::api::Order_V1_DataEntry_DoNotUse::InitAsDefaultInstance(); +} + +::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_Order_V1_DataEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto = + {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_Order_V1_DataEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto}, {}}; + +static void InitDefaultsscc_info_Order_V1_OperationUUIDSEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::api::_Order_V1_OperationUUIDSEntry_DoNotUse_default_instance_; + new (ptr) ::api::Order_V1_OperationUUIDSEntry_DoNotUse(); + } + ::api::Order_V1_OperationUUIDSEntry_DoNotUse::InitAsDefaultInstance(); +} + +::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_Order_V1_OperationUUIDSEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto = + {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_Order_V1_OperationUUIDSEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto}, {}}; + +static ::PROTOBUF_NAMESPACE_ID::Metadata file_level_metadata_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto[46]; +static const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* file_level_enum_descriptors_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto[9]; +static constexpr ::PROTOBUF_NAMESPACE_ID::ServiceDescriptor const** file_level_service_descriptors_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto = nullptr; + +const ::PROTOBUF_NAMESPACE_ID::uint32 TableStruct_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { + PROTOBUF_FIELD_OFFSET(::api::Claim_V1_ValueEntry_DoNotUse, _has_bits_), + PROTOBUF_FIELD_OFFSET(::api::Claim_V1_ValueEntry_DoNotUse, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + PROTOBUF_FIELD_OFFSET(::api::Claim_V1_ValueEntry_DoNotUse, key_), + PROTOBUF_FIELD_OFFSET(::api::Claim_V1_ValueEntry_DoNotUse, value_), + 0, + 1, + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::api::Claim_V1, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + PROTOBUF_FIELD_OFFSET(::api::Claim_V1, value_), + PROTOBUF_FIELD_OFFSET(::api::Claim_V1, type_), + PROTOBUF_FIELD_OFFSET(::api::Claim_V1, accesstype_), + PROTOBUF_FIELD_OFFSET(::api::Claim_V1, functionpointer_), + PROTOBUF_FIELD_OFFSET(::api::Claim_V1, symlink_), + PROTOBUF_FIELD_OFFSET(::api::Claim_V1, defaultclaim_), + PROTOBUF_FIELD_OFFSET(::api::Claim_V1, calculatedvalue_), + PROTOBUF_FIELD_OFFSET(::api::Claim_V1, valuetype_), + PROTOBUF_FIELD_OFFSET(::api::Claim_V1, verified_), + PROTOBUF_FIELD_OFFSET(::api::Claim_V1, canedit_), + PROTOBUF_FIELD_OFFSET(::api::Claim_V1, companyonly_), + PROTOBUF_FIELD_OFFSET(::api::Claim_V1, required_), + PROTOBUF_FIELD_OFFSET(::api::ClaimTagsMap_V1_TagsEntry_DoNotUse, _has_bits_), + PROTOBUF_FIELD_OFFSET(::api::ClaimTagsMap_V1_TagsEntry_DoNotUse, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + PROTOBUF_FIELD_OFFSET(::api::ClaimTagsMap_V1_TagsEntry_DoNotUse, key_), + PROTOBUF_FIELD_OFFSET(::api::ClaimTagsMap_V1_TagsEntry_DoNotUse, value_), + 0, + 1, + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::api::ClaimTagsMap_V1, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + PROTOBUF_FIELD_OFFSET(::api::ClaimTagsMap_V1, tags_), + PROTOBUF_FIELD_OFFSET(::api::Order_V1_OperationUUIDSEntry_DoNotUse, _has_bits_), + PROTOBUF_FIELD_OFFSET(::api::Order_V1_OperationUUIDSEntry_DoNotUse, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + PROTOBUF_FIELD_OFFSET(::api::Order_V1_OperationUUIDSEntry_DoNotUse, key_), + PROTOBUF_FIELD_OFFSET(::api::Order_V1_OperationUUIDSEntry_DoNotUse, value_), + 0, + 1, + PROTOBUF_FIELD_OFFSET(::api::Order_V1_DataEntry_DoNotUse, _has_bits_), + PROTOBUF_FIELD_OFFSET(::api::Order_V1_DataEntry_DoNotUse, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + PROTOBUF_FIELD_OFFSET(::api::Order_V1_DataEntry_DoNotUse, key_), + PROTOBUF_FIELD_OFFSET(::api::Order_V1_DataEntry_DoNotUse, value_), + 0, + 1, + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::api::Order_V1, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + PROTOBUF_FIELD_OFFSET(::api::Order_V1, uuid_), + PROTOBUF_FIELD_OFFSET(::api::Order_V1, invoicefilename_), + PROTOBUF_FIELD_OFFSET(::api::Order_V1, operationuuids_), + PROTOBUF_FIELD_OFFSET(::api::Order_V1, status_), + PROTOBUF_FIELD_OFFSET(::api::Order_V1, data_), + PROTOBUF_FIELD_OFFSET(::api::Order_V1, invoicenumber_), + PROTOBUF_FIELD_OFFSET(::api::Order_V1, ordernumber_), + PROTOBUF_FIELD_OFFSET(::api::Order_V1, stamp_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V1_ClaimsEntry_DoNotUse, _has_bits_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V1_ClaimsEntry_DoNotUse, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V1_ClaimsEntry_DoNotUse, key_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V1_ClaimsEntry_DoNotUse, value_), + 0, + 1, + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V1_PassportsCountersEntry_DoNotUse, _has_bits_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V1_PassportsCountersEntry_DoNotUse, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V1_PassportsCountersEntry_DoNotUse, key_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V1_PassportsCountersEntry_DoNotUse, value_), + 0, + 1, + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V1_ContactStatusesEntry_DoNotUse, _has_bits_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V1_ContactStatusesEntry_DoNotUse, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V1_ContactStatusesEntry_DoNotUse, key_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V1_ContactStatusesEntry_DoNotUse, value_), + 0, + 1, + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V1, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V1, uuid_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V1, type_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V1, claims_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V1, guarded_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V1, guardians_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V1, members_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V1, memberof_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V1, parents_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V1, children_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V1, viewed_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V1, viewers_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V1, stamp_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V1, otpsecret_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V1, activated_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V1, authenticationkeys_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V1, certificates_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V1, passportscounters_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V1, contactstatuses_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V1, entitycertificate_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V1, symmetrickeys_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V1, created_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V1, temporary_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V1, pendingsharingrequests_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V1, rejectedsharingrequests_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V2_ClaimsEntry_DoNotUse, _has_bits_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V2_ClaimsEntry_DoNotUse, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V2_ClaimsEntry_DoNotUse, key_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V2_ClaimsEntry_DoNotUse, value_), + 0, + 1, + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V2_GuardedEntry_DoNotUse, _has_bits_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V2_GuardedEntry_DoNotUse, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V2_GuardedEntry_DoNotUse, key_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V2_GuardedEntry_DoNotUse, value_), + 0, + 1, + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V2_GuardiansEntry_DoNotUse, _has_bits_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V2_GuardiansEntry_DoNotUse, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V2_GuardiansEntry_DoNotUse, key_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V2_GuardiansEntry_DoNotUse, value_), + 0, + 1, + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V2_MembersEntry_DoNotUse, _has_bits_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V2_MembersEntry_DoNotUse, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V2_MembersEntry_DoNotUse, key_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V2_MembersEntry_DoNotUse, value_), + 0, + 1, + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V2_MemberOfEntry_DoNotUse, _has_bits_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V2_MemberOfEntry_DoNotUse, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V2_MemberOfEntry_DoNotUse, key_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V2_MemberOfEntry_DoNotUse, value_), + 0, + 1, + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V2_ParentsEntry_DoNotUse, _has_bits_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V2_ParentsEntry_DoNotUse, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V2_ParentsEntry_DoNotUse, key_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V2_ParentsEntry_DoNotUse, value_), + 0, + 1, + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V2_ChildrenEntry_DoNotUse, _has_bits_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V2_ChildrenEntry_DoNotUse, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V2_ChildrenEntry_DoNotUse, key_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V2_ChildrenEntry_DoNotUse, value_), + 0, + 1, + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V2_ViewedEntry_DoNotUse, _has_bits_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V2_ViewedEntry_DoNotUse, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V2_ViewedEntry_DoNotUse, key_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V2_ViewedEntry_DoNotUse, value_), + 0, + 1, + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V2_ViewersEntry_DoNotUse, _has_bits_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V2_ViewersEntry_DoNotUse, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V2_ViewersEntry_DoNotUse, key_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V2_ViewersEntry_DoNotUse, value_), + 0, + 1, + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V2_PassportsCountersEntry_DoNotUse, _has_bits_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V2_PassportsCountersEntry_DoNotUse, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V2_PassportsCountersEntry_DoNotUse, key_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V2_PassportsCountersEntry_DoNotUse, value_), + 0, + 1, + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V2_ContactStatusesEntry_DoNotUse, _has_bits_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V2_ContactStatusesEntry_DoNotUse, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V2_ContactStatusesEntry_DoNotUse, key_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V2_ContactStatusesEntry_DoNotUse, value_), + 0, + 1, + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V2_OrdersEntry_DoNotUse, _has_bits_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V2_OrdersEntry_DoNotUse, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V2_OrdersEntry_DoNotUse, key_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V2_OrdersEntry_DoNotUse, value_), + 0, + 1, + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V2_SystemParentsEntry_DoNotUse, _has_bits_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V2_SystemParentsEntry_DoNotUse, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V2_SystemParentsEntry_DoNotUse, key_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V2_SystemParentsEntry_DoNotUse, value_), + 0, + 1, + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V2_SystemChildrenEntry_DoNotUse, _has_bits_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V2_SystemChildrenEntry_DoNotUse, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V2_SystemChildrenEntry_DoNotUse, key_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V2_SystemChildrenEntry_DoNotUse, value_), + 0, + 1, + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V2, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V2, uuid_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V2, type_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V2, claims_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V2, guarded_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V2, guardians_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V2, members_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V2, memberof_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V2, parents_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V2, children_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V2, viewed_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V2, viewers_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V2, stamp_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V2, otpsecret_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V2, activated_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V2, blocked_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V2, lastlogin_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V2, authenticationkeys_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V2, certificates_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V2, passportscounters_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V2, contactstatuses_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V2, entitycertificate_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V2, symmetrickeys_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V2, created_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V2, temporary_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V2, pendingsharingrequests_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V2, rejectedsharingrequests_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V2, deleted_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V2, orders_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V2, systemparents_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V2, systemchildren_), + PROTOBUF_FIELD_OFFSET(::api::EntityMessage_V2, shared_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::api::EntityMessageResponse, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::api::EntityList, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + PROTOBUF_FIELD_OFFSET(::api::EntityList, history_), + PROTOBUF_FIELD_OFFSET(::api::EntityHistoryMessage_HistoryByUUIDEntry_DoNotUse, _has_bits_), + PROTOBUF_FIELD_OFFSET(::api::EntityHistoryMessage_HistoryByUUIDEntry_DoNotUse, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + PROTOBUF_FIELD_OFFSET(::api::EntityHistoryMessage_HistoryByUUIDEntry_DoNotUse, key_), + PROTOBUF_FIELD_OFFSET(::api::EntityHistoryMessage_HistoryByUUIDEntry_DoNotUse, value_), + 0, + 1, + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::api::EntityHistoryMessage, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + PROTOBUF_FIELD_OFFSET(::api::EntityHistoryMessage, historybyuuid_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::api::EntitySearchMessage, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + PROTOBUF_FIELD_OFFSET(::api::EntitySearchMessage, uuid_), + PROTOBUF_FIELD_OFFSET(::api::EntitySearchMessage, from_), + PROTOBUF_FIELD_OFFSET(::api::EntitySearchMessage, to_), + PROTOBUF_FIELD_OFFSET(::api::EntitySearchMessage, type_), + PROTOBUF_FIELD_OFFSET(::api::EntitySearchMessage, searchtype_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::api::ClaimInvitationMessage, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + PROTOBUF_FIELD_OFFSET(::api::ClaimInvitationMessage, fromuuid_), + PROTOBUF_FIELD_OFFSET(::api::ClaimInvitationMessage, touuid_), + PROTOBUF_FIELD_OFFSET(::api::ClaimInvitationMessage, claimname_), + PROTOBUF_FIELD_OFFSET(::api::ClaimInvitationMessage, status_), + PROTOBUF_FIELD_OFFSET(::api::ClaimInvitationMessage, stamp_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::api::ClaimInvitationMessageResponse, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::api::ClaimInvitationSearchMessage, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + PROTOBUF_FIELD_OFFSET(::api::ClaimInvitationSearchMessage, fromuuid_), + PROTOBUF_FIELD_OFFSET(::api::ClaimInvitationSearchMessage, touuid_), + PROTOBUF_FIELD_OFFSET(::api::ClaimInvitationSearchMessage, claimname_), + PROTOBUF_FIELD_OFFSET(::api::ClaimInvitationSearchMessage, from_), + PROTOBUF_FIELD_OFFSET(::api::ClaimInvitationSearchMessage, to_), + PROTOBUF_FIELD_OFFSET(::api::ClaimInvitationSearchMessage, searchtype_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::api::ClaimInvitationList, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + PROTOBUF_FIELD_OFFSET(::api::ClaimInvitationList, history_), + PROTOBUF_FIELD_OFFSET(::api::ClaimInvitationHistoryMessage_HistoryByClaimInvitationEntry_DoNotUse, _has_bits_), + PROTOBUF_FIELD_OFFSET(::api::ClaimInvitationHistoryMessage_HistoryByClaimInvitationEntry_DoNotUse, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + PROTOBUF_FIELD_OFFSET(::api::ClaimInvitationHistoryMessage_HistoryByClaimInvitationEntry_DoNotUse, key_), + PROTOBUF_FIELD_OFFSET(::api::ClaimInvitationHistoryMessage_HistoryByClaimInvitationEntry_DoNotUse, value_), + 0, + 1, + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::api::ClaimInvitationHistoryMessage, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + PROTOBUF_FIELD_OFFSET(::api::ClaimInvitationHistoryMessage, historybyclaiminvitation_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::api::GetVersionEMAMessage, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::api::GetVersionEMAResponseMessage, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + PROTOBUF_FIELD_OFFSET(::api::GetVersionEMAResponseMessage, version_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::api::GetEntitiesTailsMessage, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + PROTOBUF_FIELD_OFFSET(::api::GetEntitiesTailsMessage, uuids_), + PROTOBUF_FIELD_OFFSET(::api::GetEntitiesTailsResponseMessage_EntitiesEntry_DoNotUse, _has_bits_), + PROTOBUF_FIELD_OFFSET(::api::GetEntitiesTailsResponseMessage_EntitiesEntry_DoNotUse, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + PROTOBUF_FIELD_OFFSET(::api::GetEntitiesTailsResponseMessage_EntitiesEntry_DoNotUse, key_), + PROTOBUF_FIELD_OFFSET(::api::GetEntitiesTailsResponseMessage_EntitiesEntry_DoNotUse, value_), + 0, + 1, + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::api::GetEntitiesTailsResponseMessage, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + PROTOBUF_FIELD_OFFSET(::api::GetEntitiesTailsResponseMessage, entities_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::api::GetEntitiesCountersMessage, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + PROTOBUF_FIELD_OFFSET(::api::GetEntitiesCountersMessage, uuids_), + PROTOBUF_FIELD_OFFSET(::api::GetEntitiesCountersResponseMessage_CountersEntry_DoNotUse, _has_bits_), + PROTOBUF_FIELD_OFFSET(::api::GetEntitiesCountersResponseMessage_CountersEntry_DoNotUse, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + PROTOBUF_FIELD_OFFSET(::api::GetEntitiesCountersResponseMessage_CountersEntry_DoNotUse, key_), + PROTOBUF_FIELD_OFFSET(::api::GetEntitiesCountersResponseMessage_CountersEntry_DoNotUse, value_), + 0, + 1, + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::api::GetEntitiesCountersResponseMessage, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + PROTOBUF_FIELD_OFFSET(::api::GetEntitiesCountersResponseMessage, counters_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::api::EntityReplaceMessage, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + PROTOBUF_FIELD_OFFSET(::api::EntityReplaceMessage, history_), + PROTOBUF_FIELD_OFFSET(::api::EntityReplaceMessage, uuid_), +}; +static const ::PROTOBUF_NAMESPACE_ID::internal::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { + { 0, 7, sizeof(::api::Claim_V1_ValueEntry_DoNotUse)}, + { 9, -1, sizeof(::api::Claim_V1)}, + { 26, 33, sizeof(::api::ClaimTagsMap_V1_TagsEntry_DoNotUse)}, + { 35, -1, sizeof(::api::ClaimTagsMap_V1)}, + { 41, 48, sizeof(::api::Order_V1_OperationUUIDSEntry_DoNotUse)}, + { 50, 57, sizeof(::api::Order_V1_DataEntry_DoNotUse)}, + { 59, -1, sizeof(::api::Order_V1)}, + { 72, 79, sizeof(::api::EntityMessage_V1_ClaimsEntry_DoNotUse)}, + { 81, 88, sizeof(::api::EntityMessage_V1_PassportsCountersEntry_DoNotUse)}, + { 90, 97, sizeof(::api::EntityMessage_V1_ContactStatusesEntry_DoNotUse)}, + { 99, -1, sizeof(::api::EntityMessage_V1)}, + { 128, 135, sizeof(::api::EntityMessage_V2_ClaimsEntry_DoNotUse)}, + { 137, 144, sizeof(::api::EntityMessage_V2_GuardedEntry_DoNotUse)}, + { 146, 153, sizeof(::api::EntityMessage_V2_GuardiansEntry_DoNotUse)}, + { 155, 162, sizeof(::api::EntityMessage_V2_MembersEntry_DoNotUse)}, + { 164, 171, sizeof(::api::EntityMessage_V2_MemberOfEntry_DoNotUse)}, + { 173, 180, sizeof(::api::EntityMessage_V2_ParentsEntry_DoNotUse)}, + { 182, 189, sizeof(::api::EntityMessage_V2_ChildrenEntry_DoNotUse)}, + { 191, 198, sizeof(::api::EntityMessage_V2_ViewedEntry_DoNotUse)}, + { 200, 207, sizeof(::api::EntityMessage_V2_ViewersEntry_DoNotUse)}, + { 209, 216, sizeof(::api::EntityMessage_V2_PassportsCountersEntry_DoNotUse)}, + { 218, 225, sizeof(::api::EntityMessage_V2_ContactStatusesEntry_DoNotUse)}, + { 227, 234, sizeof(::api::EntityMessage_V2_OrdersEntry_DoNotUse)}, + { 236, 243, sizeof(::api::EntityMessage_V2_SystemParentsEntry_DoNotUse)}, + { 245, 252, sizeof(::api::EntityMessage_V2_SystemChildrenEntry_DoNotUse)}, + { 254, -1, sizeof(::api::EntityMessage_V2)}, + { 290, -1, sizeof(::api::EntityMessageResponse)}, + { 295, -1, sizeof(::api::EntityList)}, + { 301, 308, sizeof(::api::EntityHistoryMessage_HistoryByUUIDEntry_DoNotUse)}, + { 310, -1, sizeof(::api::EntityHistoryMessage)}, + { 316, -1, sizeof(::api::EntitySearchMessage)}, + { 326, -1, sizeof(::api::ClaimInvitationMessage)}, + { 336, -1, sizeof(::api::ClaimInvitationMessageResponse)}, + { 341, -1, sizeof(::api::ClaimInvitationSearchMessage)}, + { 352, -1, sizeof(::api::ClaimInvitationList)}, + { 358, 365, sizeof(::api::ClaimInvitationHistoryMessage_HistoryByClaimInvitationEntry_DoNotUse)}, + { 367, -1, sizeof(::api::ClaimInvitationHistoryMessage)}, + { 373, -1, sizeof(::api::GetVersionEMAMessage)}, + { 378, -1, sizeof(::api::GetVersionEMAResponseMessage)}, + { 384, -1, sizeof(::api::GetEntitiesTailsMessage)}, + { 390, 397, sizeof(::api::GetEntitiesTailsResponseMessage_EntitiesEntry_DoNotUse)}, + { 399, -1, sizeof(::api::GetEntitiesTailsResponseMessage)}, + { 405, -1, sizeof(::api::GetEntitiesCountersMessage)}, + { 411, 418, sizeof(::api::GetEntitiesCountersResponseMessage_CountersEntry_DoNotUse)}, + { 420, -1, sizeof(::api::GetEntitiesCountersResponseMessage)}, + { 426, -1, sizeof(::api::EntityReplaceMessage)}, +}; + +static ::PROTOBUF_NAMESPACE_ID::Message const * const file_default_instances[] = { + reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::api::_Claim_V1_ValueEntry_DoNotUse_default_instance_), + reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::api::_Claim_V1_default_instance_), + reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::api::_ClaimTagsMap_V1_TagsEntry_DoNotUse_default_instance_), + reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::api::_ClaimTagsMap_V1_default_instance_), + reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::api::_Order_V1_OperationUUIDSEntry_DoNotUse_default_instance_), + reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::api::_Order_V1_DataEntry_DoNotUse_default_instance_), + reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::api::_Order_V1_default_instance_), + reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::api::_EntityMessage_V1_ClaimsEntry_DoNotUse_default_instance_), + reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::api::_EntityMessage_V1_PassportsCountersEntry_DoNotUse_default_instance_), + reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::api::_EntityMessage_V1_ContactStatusesEntry_DoNotUse_default_instance_), + reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::api::_EntityMessage_V1_default_instance_), + reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::api::_EntityMessage_V2_ClaimsEntry_DoNotUse_default_instance_), + reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::api::_EntityMessage_V2_GuardedEntry_DoNotUse_default_instance_), + reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::api::_EntityMessage_V2_GuardiansEntry_DoNotUse_default_instance_), + reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::api::_EntityMessage_V2_MembersEntry_DoNotUse_default_instance_), + reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::api::_EntityMessage_V2_MemberOfEntry_DoNotUse_default_instance_), + reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::api::_EntityMessage_V2_ParentsEntry_DoNotUse_default_instance_), + reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::api::_EntityMessage_V2_ChildrenEntry_DoNotUse_default_instance_), + reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::api::_EntityMessage_V2_ViewedEntry_DoNotUse_default_instance_), + reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::api::_EntityMessage_V2_ViewersEntry_DoNotUse_default_instance_), + reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::api::_EntityMessage_V2_PassportsCountersEntry_DoNotUse_default_instance_), + reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::api::_EntityMessage_V2_ContactStatusesEntry_DoNotUse_default_instance_), + reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::api::_EntityMessage_V2_OrdersEntry_DoNotUse_default_instance_), + reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::api::_EntityMessage_V2_SystemParentsEntry_DoNotUse_default_instance_), + reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::api::_EntityMessage_V2_SystemChildrenEntry_DoNotUse_default_instance_), + reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::api::_EntityMessage_V2_default_instance_), + reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::api::_EntityMessageResponse_default_instance_), + reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::api::_EntityList_default_instance_), + reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::api::_EntityHistoryMessage_HistoryByUUIDEntry_DoNotUse_default_instance_), + reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::api::_EntityHistoryMessage_default_instance_), + reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::api::_EntitySearchMessage_default_instance_), + reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::api::_ClaimInvitationMessage_default_instance_), + reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::api::_ClaimInvitationMessageResponse_default_instance_), + reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::api::_ClaimInvitationSearchMessage_default_instance_), + reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::api::_ClaimInvitationList_default_instance_), + reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::api::_ClaimInvitationHistoryMessage_HistoryByClaimInvitationEntry_DoNotUse_default_instance_), + reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::api::_ClaimInvitationHistoryMessage_default_instance_), + reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::api::_GetVersionEMAMessage_default_instance_), + reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::api::_GetVersionEMAResponseMessage_default_instance_), + reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::api::_GetEntitiesTailsMessage_default_instance_), + reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::api::_GetEntitiesTailsResponseMessage_EntitiesEntry_DoNotUse_default_instance_), + reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::api::_GetEntitiesTailsResponseMessage_default_instance_), + reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::api::_GetEntitiesCountersMessage_default_instance_), + reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::api::_GetEntitiesCountersResponseMessage_CountersEntry_DoNotUse_default_instance_), + reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::api::_GetEntitiesCountersResponseMessage_default_instance_), + reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::api::_EntityReplaceMessage_default_instance_), +}; + +const char descriptor_table_protodef_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = + "\nGcode.vereign.com/code/viam-apis/entiti" + "es-management-agent/api/api.proto\022\003api\032\034" + "google/api/annotations.proto\0326code.verei" + "gn.com/code/viam-apis/versions/api/api.p" + "roto\"\375\002\n\010Claim_V1\022\'\n\005value\030\001 \003(\0132\030.api.C" + "laim_V1.ValueEntry\022\034\n\004type\030\002 \001(\0162\016.api.C" + "laimType\022#\n\nAccessType\030\004 \001(\0162\017.api.Acces" + "sType\022\027\n\017functionPointer\030\003 \001(\t\022\017\n\007symlin" + "k\030\005 \001(\t\022\024\n\014defaultClaim\030\006 \001(\010\022\027\n\017calcula" + "tedValue\030\007 \001(\t\022!\n\tvalueType\030\010 \001(\0162\016.api." + "ValueType\022\020\n\010verified\030\t \001(\010\022\017\n\007canEdit\030\n" + " \001(\010\022\023\n\013companyOnly\030\013 \001(\010\022\020\n\010required\030\014 " + "\001(\010\032,\n\nValueEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030" + "\002 \001(\t:\0028\001:\021\372\315\004\r\n\tapi.Claim\020\001\"\225\001\n\017ClaimTa" + "gsMap_V1\022,\n\004tags\030\001 \003(\0132\036.api.ClaimTagsMa" + "p_V1.TagsEntry\032:\n\tTagsEntry\022\013\n\003key\030\001 \001(\t" + "\022\034\n\005value\030\002 \001(\0132\r.api.Claim_V1:\0028\001:\030\372\315\004\024" + "\n\020api.ClaimTagsMap\020\001\"\347\002\n\010Order_V1\022\014\n\004uui" + "d\030\001 \001(\t\022\027\n\017invoiceFilename\030\002 \001(\t\0229\n\016oper" + "ationUUIDS\030\003 \003(\0132!.api.Order_V1.Operatio" + "nUUIDSEntry\022 \n\006status\030\004 \001(\0162\020.api.OrderS" + "tatus\022%\n\004data\030\005 \003(\0132\027.api.Order_V1.DataE" + "ntry\022\025\n\rinvoiceNumber\030\006 \001(\003\022\023\n\013orderNumb" + "er\030\007 \001(\003\022\r\n\005stamp\030\010 \001(\003\0325\n\023OperationUUID" + "SEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001\032+" + "\n\tDataEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:" + "\0028\001:\021\372\315\004\r\n\tapi.Order\020\001\"\357\006\n\020EntityMessage" + "_V1\022\014\n\004uuid\030\001 \001(\t\022\035\n\004type\030\002 \001(\0162\017.api.En" + "tityType\0221\n\006claims\030\003 \003(\0132!.api.EntityMes" + "sage_V1.ClaimsEntry\022\017\n\007guarded\030\004 \003(\t\022\021\n\t" + "guardians\030\005 \003(\t\022\017\n\007members\030\006 \003(\t\022\020\n\010memb" + "erOf\030\007 \003(\t\022\017\n\007parents\030\010 \003(\t\022\020\n\010children\030" + "\t \003(\t\022\016\n\006viewed\030\014 \003(\t\022\017\n\007viewers\030\r \003(\t\022\r" + "\n\005stamp\030\013 \001(\003\022\021\n\totpSecret\030\016 \001(\t\022\021\n\tacti" + "vated\030\017 \001(\010\022\032\n\022authenticationKeys\030\020 \003(\t\022" + "\024\n\014certificates\030\021 \003(\t\022G\n\021passportsCounte" + "rs\030\025 \003(\0132,.api.EntityMessage_V1.Passport" + "sCountersEntry\022C\n\017contactStatuses\030\026 \003(\0132" + "*.api.EntityMessage_V1.ContactStatusesEn" + "try\022\031\n\021entityCertificate\030\022 \001(\t\022\025\n\rsymmet" + "ricKeys\030\023 \003(\t\022\017\n\007created\030\024 \001(\003\022\021\n\ttempor" + "ary\030\027 \001(\010\022\036\n\026pendingSharingRequests\030\030 \003(" + "\t\022\037\n\027rejectedSharingRequests\030\031 \003(\t\032C\n\013Cl" + "aimsEntry\022\013\n\003key\030\001 \001(\t\022#\n\005value\030\002 \001(\0132\024." + "api.ClaimTagsMap_V1:\0028\001\0328\n\026PassportsCoun" + "tersEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\003:\0028" + "\001\032J\n\024ContactStatusesEntry\022\013\n\003key\030\001 \001(\t\022!" + "\n\005value\030\002 \001(\0162\022.api.ContactStatus:\0028\001:\031\372" + "\315\004\025\n\021api.EntityMessage\020\001\"\221\021\n\020EntityMessa" + "ge_V2\022\014\n\004uuid\030\001 \001(\t\022\035\n\004type\030\002 \001(\0162\017.api." + "EntityType\0221\n\006claims\030\003 \003(\0132!.api.EntityM" + "essage_V2.ClaimsEntry\0223\n\007guarded\030\004 \003(\0132\"" + ".api.EntityMessage_V2.GuardedEntry\0227\n\tgu" + "ardians\030\005 \003(\0132$.api.EntityMessage_V2.Gua" + "rdiansEntry\0223\n\007members\030\006 \003(\0132\".api.Entit" + "yMessage_V2.MembersEntry\0225\n\010memberOf\030\007 \003" + "(\0132#.api.EntityMessage_V2.MemberOfEntry\022" + "3\n\007parents\030\010 \003(\0132\".api.EntityMessage_V2." + "ParentsEntry\0225\n\010children\030\t \003(\0132#.api.Ent" + "ityMessage_V2.ChildrenEntry\0221\n\006viewed\030\014 " + "\003(\0132!.api.EntityMessage_V2.ViewedEntry\0223" + "\n\007viewers\030\r \003(\0132\".api.EntityMessage_V2.V" + "iewersEntry\022\r\n\005stamp\030\013 \001(\003\022\021\n\totpSecret\030" + "\016 \001(\t\022\021\n\tactivated\030\017 \001(\010\022\017\n\007blocked\030\037 \001(" + "\010\022\021\n\tlastLogin\030 \001(\003\022\032\n\022authenticationKe" + "ys\030\020 \003(\t\022\024\n\014certificates\030\021 \003(\t\022G\n\021passpo" + "rtsCounters\030\025 \003(\0132,.api.EntityMessage_V2" + ".PassportsCountersEntry\022C\n\017contactStatus" + "es\030\026 \003(\0132*.api.EntityMessage_V2.ContactS" + "tatusesEntry\022\031\n\021entityCertificate\030\022 \001(\t\022" + "\025\n\rsymmetricKeys\030\023 \003(\t\022\017\n\007created\030\024 \001(\003\022" + "\021\n\ttemporary\030\027 \001(\010\022\036\n\026pendingSharingRequ" + "ests\030\030 \003(\t\022\037\n\027rejectedSharingRequests\030\031 " + "\003(\t\022\017\n\007deleted\030\032 \001(\010\0221\n\006orders\030\033 \003(\0132!.a" + "pi.EntityMessage_V2.OrdersEntry\022\?\n\rsyste" + "mParents\030\034 \003(\0132(.api.EntityMessage_V2.Sy" + "stemParentsEntry\022A\n\016systemChildren\030\035 \003(\013" + "2).api.EntityMessage_V2.SystemChildrenEn" + "try\022\016\n\006shared\030\036 \001(\010\032C\n\013ClaimsEntry\022\013\n\003ke" + "y\030\001 \001(\t\022#\n\005value\030\002 \001(\0132\024.api.ClaimTagsMa" + "p_V1:\0028\001\032C\n\014GuardedEntry\022\013\n\003key\030\001 \001(\t\022\"\n" + "\005value\030\002 \001(\0162\023.api.RelationStatus:\0028\001\032E\n" + "\016GuardiansEntry\022\013\n\003key\030\001 \001(\t\022\"\n\005value\030\002 " + "\001(\0162\023.api.RelationStatus:\0028\001\032C\n\014MembersE" + "ntry\022\013\n\003key\030\001 \001(\t\022\"\n\005value\030\002 \001(\0162\023.api.R" + "elationStatus:\0028\001\032D\n\rMemberOfEntry\022\013\n\003ke" + "y\030\001 \001(\t\022\"\n\005value\030\002 \001(\0162\023.api.RelationSta" + "tus:\0028\001\032C\n\014ParentsEntry\022\013\n\003key\030\001 \001(\t\022\"\n\005" + "value\030\002 \001(\0162\023.api.RelationStatus:\0028\001\032D\n\r" + "ChildrenEntry\022\013\n\003key\030\001 \001(\t\022\"\n\005value\030\002 \001(" + "\0162\023.api.RelationStatus:\0028\001\032B\n\013ViewedEntr" + "y\022\013\n\003key\030\001 \001(\t\022\"\n\005value\030\002 \001(\0162\023.api.Rela" + "tionStatus:\0028\001\032C\n\014ViewersEntry\022\013\n\003key\030\001 " + "\001(\t\022\"\n\005value\030\002 \001(\0162\023.api.RelationStatus:" + "\0028\001\0328\n\026PassportsCountersEntry\022\013\n\003key\030\001 \001" + "(\t\022\r\n\005value\030\002 \001(\003:\0028\001\032J\n\024ContactStatuses" + "Entry\022\013\n\003key\030\001 \001(\t\022!\n\005value\030\002 \001(\0162\022.api." + "ContactStatus:\0028\001\032\?\n\013OrdersEntry\022\013\n\003key\030" + "\001 \001(\t\022\037\n\005value\030\002 \001(\0162\020.api.OrderStatus:\002" + "8\001\032I\n\022SystemParentsEntry\022\013\n\003key\030\001 \001(\t\022\"\n" + "\005value\030\002 \001(\0162\023.api.RelationStatus:\0028\001\032J\n" + "\023SystemChildrenEntry\022\013\n\003key\030\001 \001(\t\022\"\n\005val" + "ue\030\002 \001(\0162\023.api.RelationStatus:\0028\001:\031\372\315\004\025\n" + "\021api.EntityMessage\020\002\"\027\n\025EntityMessageRes" + "ponse\"4\n\nEntityList\022&\n\007history\030\001 \003(\0132\025.a" + "pi.EntityMessage_V2\"\242\001\n\024EntityHistoryMes" + "sage\022C\n\rhistoryByUUID\030\001 \003(\0132,.api.Entity" + "HistoryMessage.HistoryByUUIDEntry\032E\n\022His" + "toryByUUIDEntry\022\013\n\003key\030\001 \001(\t\022\036\n\005value\030\002 " + "\001(\0132\017.api.EntityList:\0028\001\"\201\001\n\023EntitySearc" + "hMessage\022\014\n\004uuid\030\001 \001(\t\022\014\n\004from\030\002 \001(\t\022\n\n\002" + "to\030\003 \001(\t\022\035\n\004type\030\004 \001(\0162\017.api.EntityType\022" + "#\n\nsearchType\030\005 \001(\0162\017.api.SearchType\"\210\001\n" + "\026ClaimInvitationMessage\022\020\n\010fromUUID\030\001 \001(" + "\t\022\016\n\006toUUID\030\002 \001(\t\022\021\n\tclaimName\030\003 \001(\t\022*\n\006" + "status\030\004 \001(\0162\032.api.ClaimInvitationStatus" + "\022\r\n\005stamp\030\005 \001(\003\" \n\036ClaimInvitationMessag" + "eResponse\"\222\001\n\034ClaimInvitationSearchMessa" + "ge\022\020\n\010fromUUID\030\001 \001(\t\022\016\n\006toUUID\030\002 \001(\t\022\021\n\t" + "claimName\030\003 \001(\t\022\014\n\004from\030\004 \001(\t\022\n\n\002to\030\005 \001(" + "\t\022#\n\nsearchType\030\006 \001(\0162\017.api.SearchType\"C" + "\n\023ClaimInvitationList\022,\n\007history\030\001 \003(\0132\033" + ".api.ClaimInvitationMessage\"\336\001\n\035ClaimInv" + "itationHistoryMessage\022b\n\030historyByClaimI" + "nvitation\030\001 \003(\0132@.api.ClaimInvitationHis" + "toryMessage.HistoryByClaimInvitationEntr" + "y\032Y\n\035HistoryByClaimInvitationEntry\022\013\n\003ke" + "y\030\001 \001(\t\022\'\n\005value\030\002 \001(\0132\030.api.ClaimInvita" + "tionList:\0028\001\"\026\n\024GetVersionEMAMessage\"/\n\034" + "GetVersionEMAResponseMessage\022\017\n\007version\030" + "\001 \001(\t\"(\n\027GetEntitiesTailsMessage\022\r\n\005uuid" + "s\030\001 \003(\t\"\257\001\n\037GetEntitiesTailsResponseMess" + "age\022D\n\010entities\030\001 \003(\01322.api.GetEntitiesT" + "ailsResponseMessage.EntitiesEntry\032F\n\rEnt" + "itiesEntry\022\013\n\003key\030\001 \001(\t\022$\n\005value\030\002 \001(\0132\025" + ".api.EntityMessage_V2:\0028\001\"+\n\032GetEntities" + "CountersMessage\022\r\n\005uuids\030\001 \003(\t\"\236\001\n\"GetEn" + "titiesCountersResponseMessage\022G\n\010counter" + "s\030\001 \003(\01325.api.GetEntitiesCountersRespons" + "eMessage.CountersEntry\032/\n\rCountersEntry\022" + "\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\003:\0028\001\"L\n\024Entit" + "yReplaceMessage\022&\n\007history\030\001 \003(\0132\025.api.E" + "ntityMessage_V2\022\014\n\004uuid\030\002 \001(\t*e\n\tClaimTy" + "pe\022\023\n\017NONE_CLAIM_TYPE\020\000\022\014\n\010INTERNAL\020\001\022\r\n" + "\tUNIVERSAL\020\002\022\014\n\010EXTERNAL\020\003\022\016\n\nFUNCTIONAL" + "\020\004\022\010\n\004FILE\020\005*M\n\nAccessType\022\024\n\020NONE_ACCES" + "S_TYPE\020\000\022\013\n\007PRIVATE\020\001\022\020\n\014INVITATIONAL\020\002\022" + "\n\n\006PUBLIC\020\003*;\n\nSearchType\022\024\n\020NONE_SEARCH" + "_TYPE\020\000\022\n\n\006BYRANK\020\001\022\013\n\007BYSCORE\020\002*A\n\tValu" + "eType\022\022\n\016NONE_KEY_VALUE\020\000\022\021\n\rNON_COMPOSI" + "TE\020\001\022\r\n\tCOMPOSITE\020\002*\206\001\n\nEntityType\022\024\n\020NO" + "NE_ENTITY_TYPE\020\000\022\n\n\006PERSON\020\001\022\020\n\014ORGANIZA" + "TION\020\002\022\t\n\005ASSET\020\003\022\014\n\010PASSPORT\020\004\022\014\n\010DOCUM" + "ENT\020\005\022\020\n\014CONVERSATION\020\006\022\013\n\007CONTACT\020\007*6\n\r" + "ContactStatus\022\n\n\006ACTIVE\020\000\022\014\n\010ARCHIVED\020\001\022" + "\013\n\007BLOCKED\020\002*\203\002\n\013OrderStatus\022\023\n\017NO_ORDER" + "_STATUS\020\000\022\024\n\020ORDER_STATUS_NEW\020\001\022\034\n\030ORDER" + "_STATUS_IN_PROGRESS\020\002\022 \n\034ORDER_STATUS_WA" + "ITING_PAYMENT\020\003\022\037\n\033ORDER_STATUS_PAYMENT_" + "FAILED\020\004\022!\n\035ORDER_STATUS_PAYMENT_RECEIVE" + "D\020\005\022\"\n\036ORDER_STATUS_PAYMENT_COMPLETED\020\006\022" + "!\n\035ORDER_STATUS_PAYMENT_CANCELED\020\007*O\n\016Re" + "lationStatus\022\021\n\rLIVE_RELATION\020\000\022\024\n\020DELET" + "ED_RELATION\020\001\022\024\n\020BLOCKED_RELATION\020\002*s\n\025C" + "laimInvitationStatus\022 \n\034NONE_CLAIM_INVIT" + "ATION_STATUS\020\000\022\017\n\013NOTVERIFIED\020\001\022\014\n\010REJEC" + "TED\020\002\022\014\n\010VERIFIED\020\003\022\013\n\007REVOKED\020\0042\346\014\n\017Ent" + "itiesManager\022]\n\014createEntity\022\025.api.Entit" + "yMessage_V2\032\032.api.EntityMessageResponse\"" + "\032\202\323\344\223\002\024\"\017/1/createentity:\001*\022]\n\014updateEnt" + "ity\022\025.api.EntityMessage_V2\032\032.api.EntityM" + "essageResponse\"\032\202\323\344\223\002\024\"\017/1/updateentity:" + "\001*\022c\n\016retrieveEntity\022\030.api.EntitySearchM" + "essage\032\031.api.EntityHistoryMessage\"\034\202\323\344\223\002" + "\026\"\021/1/retrieveentity:\001*\022`\n\014deleteEntity\022" + "\030.api.EntitySearchMessage\032\032.api.EntityMe" + "ssageResponse\"\032\202\323\344\223\002\024\"\017/1/deleteentity:\001" + "*\022q\n\024replaceEntityHistory\022\031.api.EntityRe" + "placeMessage\032\032.api.EntityMessageResponse" + "\"\"\202\323\344\223\002\034\"\027/1/replaceentityhistory:\001*\022_\n\014" + "searchEntity\022\030.api.EntitySearchMessage\032\031" + ".api.EntityHistoryMessage\"\032\202\323\344\223\002\024\"\017/1/se" + "archentity:\001*\022~\n\025createClaimInvitation\022\033" + ".api.ClaimInvitationMessage\032#.api.ClaimI" + "nvitationMessageResponse\"#\202\323\344\223\002\035\"\030/1/cre" + "ateclaiminvitation:\001*\022~\n\025updateClaimInvi" + "tation\022\033.api.ClaimInvitationMessage\032#.ap" + "i.ClaimInvitationMessageResponse\"#\202\323\344\223\002\035" + "\"\030/1/updateclaiminvitation:\001*\022\207\001\n\027retrie" + "veClaimInvitation\022!.api.ClaimInvitationS" + "earchMessage\032\".api.ClaimInvitationHistor" + "yMessage\"%\202\323\344\223\002\037\"\032/1/retrieveclaiminvita" + "tion:\001*\022\204\001\n\025deleteClaimInvitation\022!.api." + "ClaimInvitationSearchMessage\032#.api.Claim" + "InvitationMessageResponse\"#\202\323\344\223\002\035\"\030/1/de" + "leteclaiminvitation:\001*\022\203\001\n\025searchClaimIn" + "vitation\022!.api.ClaimInvitationSearchMess" + "age\032\".api.ClaimInvitationHistoryMessage\"" + "#\202\323\344\223\002\035\"\030/1/searchclaiminvitation:\001*\022v\n\020" + "getEntitiesTails\022\034.api.GetEntitiesTailsM" + "essage\032$.api.GetEntitiesTailsResponseMes" + "sage\"\036\202\323\344\223\002\030\"\023/1/getentitiestails:\001*\022\201\001\n" + "\023getEntitiesCounters\022\037.api.GetEntitiesCo" + "untersMessage\032\'.api.GetEntitiesCountersR" + "esponseMessage\" \202\323\344\223\002\032\"\025/1/getentitiesco" + "unter:\001*\022g\n\rgetVersionEMA\022\031.api.GetVersi" + "onEMAMessage\032!.api.GetVersionEMAResponse" + "Message\"\030\202\323\344\223\002\022\"\r/1/getversion:\001*b\006proto" + "3" + ; +static const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable*const descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto_deps[2] = { + &::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fversions_2fapi_2fapi_2eproto, + &::descriptor_table_google_2fapi_2fannotations_2eproto, +}; +static ::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase*const descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto_sccs[46] = { + &scc_info_ClaimInvitationHistoryMessage_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base, + &scc_info_ClaimInvitationHistoryMessage_HistoryByClaimInvitationEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base, + &scc_info_ClaimInvitationList_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base, + &scc_info_ClaimInvitationMessage_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base, + &scc_info_ClaimInvitationMessageResponse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base, + &scc_info_ClaimInvitationSearchMessage_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base, + &scc_info_ClaimTagsMap_V1_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base, + &scc_info_ClaimTagsMap_V1_TagsEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base, + &scc_info_Claim_V1_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base, + &scc_info_Claim_V1_ValueEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base, + &scc_info_EntityHistoryMessage_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base, + &scc_info_EntityHistoryMessage_HistoryByUUIDEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base, + &scc_info_EntityList_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base, + &scc_info_EntityMessageResponse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base, + &scc_info_EntityMessage_V1_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base, + &scc_info_EntityMessage_V1_ClaimsEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base, + &scc_info_EntityMessage_V1_ContactStatusesEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base, + &scc_info_EntityMessage_V1_PassportsCountersEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base, + &scc_info_EntityMessage_V2_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base, + &scc_info_EntityMessage_V2_ChildrenEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base, + &scc_info_EntityMessage_V2_ClaimsEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base, + &scc_info_EntityMessage_V2_ContactStatusesEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base, + &scc_info_EntityMessage_V2_GuardedEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base, + &scc_info_EntityMessage_V2_GuardiansEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base, + &scc_info_EntityMessage_V2_MemberOfEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base, + &scc_info_EntityMessage_V2_MembersEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base, + &scc_info_EntityMessage_V2_OrdersEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base, + &scc_info_EntityMessage_V2_ParentsEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base, + &scc_info_EntityMessage_V2_PassportsCountersEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base, + &scc_info_EntityMessage_V2_SystemChildrenEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base, + &scc_info_EntityMessage_V2_SystemParentsEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base, + &scc_info_EntityMessage_V2_ViewedEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base, + &scc_info_EntityMessage_V2_ViewersEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base, + &scc_info_EntityReplaceMessage_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base, + &scc_info_EntitySearchMessage_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base, + &scc_info_GetEntitiesCountersMessage_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base, + &scc_info_GetEntitiesCountersResponseMessage_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base, + &scc_info_GetEntitiesCountersResponseMessage_CountersEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base, + &scc_info_GetEntitiesTailsMessage_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base, + &scc_info_GetEntitiesTailsResponseMessage_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base, + &scc_info_GetEntitiesTailsResponseMessage_EntitiesEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base, + &scc_info_GetVersionEMAMessage_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base, + &scc_info_GetVersionEMAResponseMessage_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base, + &scc_info_Order_V1_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base, + &scc_info_Order_V1_DataEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base, + &scc_info_Order_V1_OperationUUIDSEntry_DoNotUse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base, +}; +static ::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto_once; +static bool descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto_initialized = false; +const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto = { + &descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto_initialized, descriptor_table_protodef_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto, "code.vereign.com/code/viam-apis/entities-management-agent/api/api.proto", 8321, + &descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto_once, descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto_sccs, descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto_deps, 46, 2, + schemas, file_default_instances, TableStruct_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto::offsets, + file_level_metadata_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto, 46, file_level_enum_descriptors_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto, file_level_service_descriptors_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto, +}; + +// Force running AddDescriptors() at dynamic initialization time. +static bool dynamic_init_dummy_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto = ( ::PROTOBUF_NAMESPACE_ID::internal::AddDescriptors(&descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto), true); +namespace api { +const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* ClaimType_descriptor() { + ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto); + return file_level_enum_descriptors_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto[0]; +} +bool ClaimType_IsValid(int value) { + switch (value) { + case 0: + case 1: + case 2: + case 3: + case 4: + case 5: + return true; + default: + return false; + } +} + +const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* AccessType_descriptor() { + ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto); + return file_level_enum_descriptors_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto[1]; +} +bool AccessType_IsValid(int value) { + switch (value) { + case 0: + case 1: + case 2: + case 3: + return true; + default: + return false; + } +} + +const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* SearchType_descriptor() { + ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto); + return file_level_enum_descriptors_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto[2]; +} +bool SearchType_IsValid(int value) { + switch (value) { + case 0: + case 1: + case 2: + return true; + default: + return false; + } +} + +const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* ValueType_descriptor() { + ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto); + return file_level_enum_descriptors_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto[3]; +} +bool ValueType_IsValid(int value) { + switch (value) { + case 0: + case 1: + case 2: + return true; + default: + return false; + } +} + +const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* EntityType_descriptor() { + ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto); + return file_level_enum_descriptors_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto[4]; +} +bool EntityType_IsValid(int value) { + switch (value) { + case 0: + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + return true; + default: + return false; + } +} + +const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* ContactStatus_descriptor() { + ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto); + return file_level_enum_descriptors_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto[5]; +} +bool ContactStatus_IsValid(int value) { + switch (value) { + case 0: + case 1: + case 2: + return true; + default: + return false; + } +} + +const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* OrderStatus_descriptor() { + ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto); + return file_level_enum_descriptors_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto[6]; +} +bool OrderStatus_IsValid(int value) { + switch (value) { + case 0: + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + return true; + default: + return false; + } +} + +const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* RelationStatus_descriptor() { + ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto); + return file_level_enum_descriptors_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto[7]; +} +bool RelationStatus_IsValid(int value) { + switch (value) { + case 0: + case 1: + case 2: + return true; + default: + return false; + } +} + +const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* ClaimInvitationStatus_descriptor() { + ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto); + return file_level_enum_descriptors_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto[8]; +} +bool ClaimInvitationStatus_IsValid(int value) { + switch (value) { + case 0: + case 1: + case 2: + case 3: + case 4: + return true; + default: + return false; + } +} + + +// =================================================================== + +Claim_V1_ValueEntry_DoNotUse::Claim_V1_ValueEntry_DoNotUse() {} +Claim_V1_ValueEntry_DoNotUse::Claim_V1_ValueEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena) + : SuperType(arena) {} +void Claim_V1_ValueEntry_DoNotUse::MergeFrom(const Claim_V1_ValueEntry_DoNotUse& other) { + MergeFromInternal(other); +} +::PROTOBUF_NAMESPACE_ID::Metadata Claim_V1_ValueEntry_DoNotUse::GetMetadata() const { + return GetMetadataStatic(); +} +void Claim_V1_ValueEntry_DoNotUse::MergeFrom( + const ::PROTOBUF_NAMESPACE_ID::Message& other) { + ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom(other); +} + + +// =================================================================== + +void Claim_V1::InitAsDefaultInstance() { +} +class Claim_V1::_Internal { + public: +}; + +Claim_V1::Claim_V1() + : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) { + SharedCtor(); + // @@protoc_insertion_point(constructor:api.Claim_V1) +} +Claim_V1::Claim_V1(const Claim_V1& from) + : ::PROTOBUF_NAMESPACE_ID::Message(), + _internal_metadata_(nullptr) { + _internal_metadata_.MergeFrom(from._internal_metadata_); + value_.MergeFrom(from.value_); + functionpointer_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + if (!from._internal_functionpointer().empty()) { + functionpointer_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.functionpointer_); + } + symlink_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + if (!from._internal_symlink().empty()) { + symlink_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.symlink_); + } + calculatedvalue_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + if (!from._internal_calculatedvalue().empty()) { + calculatedvalue_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.calculatedvalue_); + } + ::memcpy(&type_, &from.type_, + static_cast<size_t>(reinterpret_cast<char*>(&required_) - + reinterpret_cast<char*>(&type_)) + sizeof(required_)); + // @@protoc_insertion_point(copy_constructor:api.Claim_V1) +} + +void Claim_V1::SharedCtor() { + ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_Claim_V1_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base); + functionpointer_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + symlink_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + calculatedvalue_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + ::memset(&type_, 0, static_cast<size_t>( + reinterpret_cast<char*>(&required_) - + reinterpret_cast<char*>(&type_)) + sizeof(required_)); +} + +Claim_V1::~Claim_V1() { + // @@protoc_insertion_point(destructor:api.Claim_V1) + SharedDtor(); +} + +void Claim_V1::SharedDtor() { + functionpointer_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + symlink_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + calculatedvalue_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} + +void Claim_V1::SetCachedSize(int size) const { + _cached_size_.Set(size); +} +const Claim_V1& Claim_V1::default_instance() { + ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_Claim_V1_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base); + return *internal_default_instance(); +} + + +void Claim_V1::Clear() { +// @@protoc_insertion_point(message_clear_start:api.Claim_V1) + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + value_.Clear(); + functionpointer_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + symlink_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + calculatedvalue_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + ::memset(&type_, 0, static_cast<size_t>( + reinterpret_cast<char*>(&required_) - + reinterpret_cast<char*>(&type_)) + sizeof(required_)); + _internal_metadata_.Clear(); +} + +const char* Claim_V1::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + ::PROTOBUF_NAMESPACE_ID::uint32 tag; + ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag); + CHK_(ptr); + switch (tag >> 3) { + // map<string, string> value = 1; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) { + ptr -= 1; + do { + ptr += 1; + ptr = ctx->ParseMessage(&value_, ptr); + CHK_(ptr); + if (!ctx->DataAvailable(ptr)) break; + } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr)); + } else goto handle_unusual; + continue; + // .api.ClaimType type = 2; + case 2: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) { + ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr); + CHK_(ptr); + _internal_set_type(static_cast<::api::ClaimType>(val)); + } else goto handle_unusual; + continue; + // string functionPointer = 3; + case 3: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) { + auto str = _internal_mutable_functionpointer(); + ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); + CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "api.Claim_V1.functionPointer")); + CHK_(ptr); + } else goto handle_unusual; + continue; + // .api.AccessType AccessType = 4; + case 4: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 32)) { + ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr); + CHK_(ptr); + _internal_set_accesstype(static_cast<::api::AccessType>(val)); + } else goto handle_unusual; + continue; + // string symlink = 5; + case 5: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) { + auto str = _internal_mutable_symlink(); + ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); + CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "api.Claim_V1.symlink")); + CHK_(ptr); + } else goto handle_unusual; + continue; + // bool defaultClaim = 6; + case 6: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 48)) { + defaultclaim_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr); + CHK_(ptr); + } else goto handle_unusual; + continue; + // string calculatedValue = 7; + case 7: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 58)) { + auto str = _internal_mutable_calculatedvalue(); + ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); + CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "api.Claim_V1.calculatedValue")); + CHK_(ptr); + } else goto handle_unusual; + continue; + // .api.ValueType valueType = 8; + case 8: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 64)) { + ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr); + CHK_(ptr); + _internal_set_valuetype(static_cast<::api::ValueType>(val)); + } else goto handle_unusual; + continue; + // bool verified = 9; + case 9: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 72)) { + verified_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr); + CHK_(ptr); + } else goto handle_unusual; + continue; + // bool canEdit = 10; + case 10: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 80)) { + canedit_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr); + CHK_(ptr); + } else goto handle_unusual; + continue; + // bool companyOnly = 11; + case 11: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 88)) { + companyonly_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr); + CHK_(ptr); + } else goto handle_unusual; + continue; + // bool required = 12; + case 12: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 96)) { + required_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr); + CHK_(ptr); + } else goto handle_unusual; + continue; + default: { + handle_unusual: + if ((tag & 7) == 4 || tag == 0) { + ctx->SetLastTag(tag); + goto success; + } + ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx); + CHK_(ptr != nullptr); + continue; + } + } // switch + } // while +success: + return ptr; +failure: + ptr = nullptr; + goto success; +#undef CHK_ +} + +::PROTOBUF_NAMESPACE_ID::uint8* Claim_V1::_InternalSerialize( + ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:api.Claim_V1) + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + // map<string, string> value = 1; + if (!this->_internal_value().empty()) { + typedef ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >::const_pointer + ConstPtr; + typedef ConstPtr SortItem; + typedef ::PROTOBUF_NAMESPACE_ID::internal::CompareByDerefFirst<SortItem> Less; + struct Utf8Check { + static void Check(ConstPtr p) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + p->first.data(), static_cast<int>(p->first.length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "api.Claim_V1.ValueEntry.key"); + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + p->second.data(), static_cast<int>(p->second.length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "api.Claim_V1.ValueEntry.value"); + } + }; + + if (stream->IsSerializationDeterministic() && + this->_internal_value().size() > 1) { + ::std::unique_ptr<SortItem[]> items( + new SortItem[this->_internal_value().size()]); + typedef ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >::size_type size_type; + size_type n = 0; + for (::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >::const_iterator + it = this->_internal_value().begin(); + it != this->_internal_value().end(); ++it, ++n) { + items[static_cast<ptrdiff_t>(n)] = SortItem(&*it); + } + ::std::sort(&items[0], &items[static_cast<ptrdiff_t>(n)], Less()); + for (size_type i = 0; i < n; i++) { + target = Claim_V1_ValueEntry_DoNotUse::Funcs::InternalSerialize(1, items[static_cast<ptrdiff_t>(i)]->first, items[static_cast<ptrdiff_t>(i)]->second, target, stream); + Utf8Check::Check(&(*items[static_cast<ptrdiff_t>(i)])); + } + } else { + for (::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >::const_iterator + it = this->_internal_value().begin(); + it != this->_internal_value().end(); ++it) { + target = Claim_V1_ValueEntry_DoNotUse::Funcs::InternalSerialize(1, it->first, it->second, target, stream); + Utf8Check::Check(&(*it)); + } + } + } + + // .api.ClaimType type = 2; + if (this->type() != 0) { + target = stream->EnsureSpace(target); + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray( + 2, this->_internal_type(), target); + } + + // string functionPointer = 3; + if (this->functionpointer().size() > 0) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_functionpointer().data(), static_cast<int>(this->_internal_functionpointer().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "api.Claim_V1.functionPointer"); + target = stream->WriteStringMaybeAliased( + 3, this->_internal_functionpointer(), target); + } + + // .api.AccessType AccessType = 4; + if (this->accesstype() != 0) { + target = stream->EnsureSpace(target); + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray( + 4, this->_internal_accesstype(), target); + } + + // string symlink = 5; + if (this->symlink().size() > 0) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_symlink().data(), static_cast<int>(this->_internal_symlink().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "api.Claim_V1.symlink"); + target = stream->WriteStringMaybeAliased( + 5, this->_internal_symlink(), target); + } + + // bool defaultClaim = 6; + if (this->defaultclaim() != 0) { + target = stream->EnsureSpace(target); + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(6, this->_internal_defaultclaim(), target); + } + + // string calculatedValue = 7; + if (this->calculatedvalue().size() > 0) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_calculatedvalue().data(), static_cast<int>(this->_internal_calculatedvalue().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "api.Claim_V1.calculatedValue"); + target = stream->WriteStringMaybeAliased( + 7, this->_internal_calculatedvalue(), target); + } + + // .api.ValueType valueType = 8; + if (this->valuetype() != 0) { + target = stream->EnsureSpace(target); + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray( + 8, this->_internal_valuetype(), target); + } + + // bool verified = 9; + if (this->verified() != 0) { + target = stream->EnsureSpace(target); + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(9, this->_internal_verified(), target); + } + + // bool canEdit = 10; + if (this->canedit() != 0) { + target = stream->EnsureSpace(target); + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(10, this->_internal_canedit(), target); + } + + // bool companyOnly = 11; + if (this->companyonly() != 0) { + target = stream->EnsureSpace(target); + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(11, this->_internal_companyonly(), target); + } + + // bool required = 12; + if (this->required() != 0) { + target = stream->EnsureSpace(target); + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(12, this->_internal_required(), target); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields(), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:api.Claim_V1) + return target; +} + +size_t Claim_V1::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:api.Claim_V1) + size_t total_size = 0; + + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // map<string, string> value = 1; + total_size += 1 * + ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(this->_internal_value_size()); + for (::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >::const_iterator + it = this->_internal_value().begin(); + it != this->_internal_value().end(); ++it) { + total_size += Claim_V1_ValueEntry_DoNotUse::Funcs::ByteSizeLong(it->first, it->second); + } + + // string functionPointer = 3; + if (this->functionpointer().size() > 0) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_functionpointer()); + } + + // string symlink = 5; + if (this->symlink().size() > 0) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_symlink()); + } + + // string calculatedValue = 7; + if (this->calculatedvalue().size() > 0) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_calculatedvalue()); + } + + // .api.ClaimType type = 2; + if (this->type() != 0) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_type()); + } + + // .api.AccessType AccessType = 4; + if (this->accesstype() != 0) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_accesstype()); + } + + // .api.ValueType valueType = 8; + if (this->valuetype() != 0) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_valuetype()); + } + + // bool defaultClaim = 6; + if (this->defaultclaim() != 0) { + total_size += 1 + 1; + } + + // bool verified = 9; + if (this->verified() != 0) { + total_size += 1 + 1; + } + + // bool canEdit = 10; + if (this->canedit() != 0) { + total_size += 1 + 1; + } + + // bool companyOnly = 11; + if (this->companyonly() != 0) { + total_size += 1 + 1; + } + + // bool required = 12; + if (this->required() != 0) { + total_size += 1 + 1; + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize( + _internal_metadata_, total_size, &_cached_size_); + } + int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size); + SetCachedSize(cached_size); + return total_size; +} + +void Claim_V1::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { +// @@protoc_insertion_point(generalized_merge_from_start:api.Claim_V1) + GOOGLE_DCHECK_NE(&from, this); + const Claim_V1* source = + ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<Claim_V1>( + &from); + if (source == nullptr) { + // @@protoc_insertion_point(generalized_merge_from_cast_fail:api.Claim_V1) + ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this); + } else { + // @@protoc_insertion_point(generalized_merge_from_cast_success:api.Claim_V1) + MergeFrom(*source); + } +} + +void Claim_V1::MergeFrom(const Claim_V1& from) { +// @@protoc_insertion_point(class_specific_merge_from_start:api.Claim_V1) + GOOGLE_DCHECK_NE(&from, this); + _internal_metadata_.MergeFrom(from._internal_metadata_); + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + value_.MergeFrom(from.value_); + if (from.functionpointer().size() > 0) { + + functionpointer_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.functionpointer_); + } + if (from.symlink().size() > 0) { + + symlink_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.symlink_); + } + if (from.calculatedvalue().size() > 0) { + + calculatedvalue_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.calculatedvalue_); + } + if (from.type() != 0) { + _internal_set_type(from._internal_type()); + } + if (from.accesstype() != 0) { + _internal_set_accesstype(from._internal_accesstype()); + } + if (from.valuetype() != 0) { + _internal_set_valuetype(from._internal_valuetype()); + } + if (from.defaultclaim() != 0) { + _internal_set_defaultclaim(from._internal_defaultclaim()); + } + if (from.verified() != 0) { + _internal_set_verified(from._internal_verified()); + } + if (from.canedit() != 0) { + _internal_set_canedit(from._internal_canedit()); + } + if (from.companyonly() != 0) { + _internal_set_companyonly(from._internal_companyonly()); + } + if (from.required() != 0) { + _internal_set_required(from._internal_required()); + } +} + +void Claim_V1::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { +// @@protoc_insertion_point(generalized_copy_from_start:api.Claim_V1) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +void Claim_V1::CopyFrom(const Claim_V1& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:api.Claim_V1) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool Claim_V1::IsInitialized() const { + return true; +} + +void Claim_V1::InternalSwap(Claim_V1* other) { + using std::swap; + _internal_metadata_.Swap(&other->_internal_metadata_); + value_.Swap(&other->value_); + functionpointer_.Swap(&other->functionpointer_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); + symlink_.Swap(&other->symlink_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); + calculatedvalue_.Swap(&other->calculatedvalue_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); + swap(type_, other->type_); + swap(accesstype_, other->accesstype_); + swap(valuetype_, other->valuetype_); + swap(defaultclaim_, other->defaultclaim_); + swap(verified_, other->verified_); + swap(canedit_, other->canedit_); + swap(companyonly_, other->companyonly_); + swap(required_, other->required_); +} + +::PROTOBUF_NAMESPACE_ID::Metadata Claim_V1::GetMetadata() const { + return GetMetadataStatic(); +} + + +// =================================================================== + +ClaimTagsMap_V1_TagsEntry_DoNotUse::ClaimTagsMap_V1_TagsEntry_DoNotUse() {} +ClaimTagsMap_V1_TagsEntry_DoNotUse::ClaimTagsMap_V1_TagsEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena) + : SuperType(arena) {} +void ClaimTagsMap_V1_TagsEntry_DoNotUse::MergeFrom(const ClaimTagsMap_V1_TagsEntry_DoNotUse& other) { + MergeFromInternal(other); +} +::PROTOBUF_NAMESPACE_ID::Metadata ClaimTagsMap_V1_TagsEntry_DoNotUse::GetMetadata() const { + return GetMetadataStatic(); +} +void ClaimTagsMap_V1_TagsEntry_DoNotUse::MergeFrom( + const ::PROTOBUF_NAMESPACE_ID::Message& other) { + ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom(other); +} + + +// =================================================================== + +void ClaimTagsMap_V1::InitAsDefaultInstance() { +} +class ClaimTagsMap_V1::_Internal { + public: +}; + +ClaimTagsMap_V1::ClaimTagsMap_V1() + : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) { + SharedCtor(); + // @@protoc_insertion_point(constructor:api.ClaimTagsMap_V1) +} +ClaimTagsMap_V1::ClaimTagsMap_V1(const ClaimTagsMap_V1& from) + : ::PROTOBUF_NAMESPACE_ID::Message(), + _internal_metadata_(nullptr) { + _internal_metadata_.MergeFrom(from._internal_metadata_); + tags_.MergeFrom(from.tags_); + // @@protoc_insertion_point(copy_constructor:api.ClaimTagsMap_V1) +} + +void ClaimTagsMap_V1::SharedCtor() { + ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_ClaimTagsMap_V1_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base); +} + +ClaimTagsMap_V1::~ClaimTagsMap_V1() { + // @@protoc_insertion_point(destructor:api.ClaimTagsMap_V1) + SharedDtor(); +} + +void ClaimTagsMap_V1::SharedDtor() { +} + +void ClaimTagsMap_V1::SetCachedSize(int size) const { + _cached_size_.Set(size); +} +const ClaimTagsMap_V1& ClaimTagsMap_V1::default_instance() { + ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_ClaimTagsMap_V1_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base); + return *internal_default_instance(); +} + + +void ClaimTagsMap_V1::Clear() { +// @@protoc_insertion_point(message_clear_start:api.ClaimTagsMap_V1) + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + tags_.Clear(); + _internal_metadata_.Clear(); +} + +const char* ClaimTagsMap_V1::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + ::PROTOBUF_NAMESPACE_ID::uint32 tag; + ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag); + CHK_(ptr); + switch (tag >> 3) { + // map<string, .api.Claim_V1> tags = 1; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) { + ptr -= 1; + do { + ptr += 1; + ptr = ctx->ParseMessage(&tags_, ptr); + CHK_(ptr); + if (!ctx->DataAvailable(ptr)) break; + } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr)); + } else goto handle_unusual; + continue; + default: { + handle_unusual: + if ((tag & 7) == 4 || tag == 0) { + ctx->SetLastTag(tag); + goto success; + } + ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx); + CHK_(ptr != nullptr); + continue; + } + } // switch + } // while +success: + return ptr; +failure: + ptr = nullptr; + goto success; +#undef CHK_ +} + +::PROTOBUF_NAMESPACE_ID::uint8* ClaimTagsMap_V1::_InternalSerialize( + ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:api.ClaimTagsMap_V1) + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + // map<string, .api.Claim_V1> tags = 1; + if (!this->_internal_tags().empty()) { + typedef ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::Claim_V1 >::const_pointer + ConstPtr; + typedef ConstPtr SortItem; + typedef ::PROTOBUF_NAMESPACE_ID::internal::CompareByDerefFirst<SortItem> Less; + struct Utf8Check { + static void Check(ConstPtr p) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + p->first.data(), static_cast<int>(p->first.length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "api.ClaimTagsMap_V1.TagsEntry.key"); + } + }; + + if (stream->IsSerializationDeterministic() && + this->_internal_tags().size() > 1) { + ::std::unique_ptr<SortItem[]> items( + new SortItem[this->_internal_tags().size()]); + typedef ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::Claim_V1 >::size_type size_type; + size_type n = 0; + for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::Claim_V1 >::const_iterator + it = this->_internal_tags().begin(); + it != this->_internal_tags().end(); ++it, ++n) { + items[static_cast<ptrdiff_t>(n)] = SortItem(&*it); + } + ::std::sort(&items[0], &items[static_cast<ptrdiff_t>(n)], Less()); + for (size_type i = 0; i < n; i++) { + target = ClaimTagsMap_V1_TagsEntry_DoNotUse::Funcs::InternalSerialize(1, items[static_cast<ptrdiff_t>(i)]->first, items[static_cast<ptrdiff_t>(i)]->second, target, stream); + Utf8Check::Check(&(*items[static_cast<ptrdiff_t>(i)])); + } + } else { + for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::Claim_V1 >::const_iterator + it = this->_internal_tags().begin(); + it != this->_internal_tags().end(); ++it) { + target = ClaimTagsMap_V1_TagsEntry_DoNotUse::Funcs::InternalSerialize(1, it->first, it->second, target, stream); + Utf8Check::Check(&(*it)); + } + } + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields(), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:api.ClaimTagsMap_V1) + return target; +} + +size_t ClaimTagsMap_V1::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:api.ClaimTagsMap_V1) + size_t total_size = 0; + + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // map<string, .api.Claim_V1> tags = 1; + total_size += 1 * + ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(this->_internal_tags_size()); + for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::Claim_V1 >::const_iterator + it = this->_internal_tags().begin(); + it != this->_internal_tags().end(); ++it) { + total_size += ClaimTagsMap_V1_TagsEntry_DoNotUse::Funcs::ByteSizeLong(it->first, it->second); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize( + _internal_metadata_, total_size, &_cached_size_); + } + int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size); + SetCachedSize(cached_size); + return total_size; +} + +void ClaimTagsMap_V1::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { +// @@protoc_insertion_point(generalized_merge_from_start:api.ClaimTagsMap_V1) + GOOGLE_DCHECK_NE(&from, this); + const ClaimTagsMap_V1* source = + ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<ClaimTagsMap_V1>( + &from); + if (source == nullptr) { + // @@protoc_insertion_point(generalized_merge_from_cast_fail:api.ClaimTagsMap_V1) + ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this); + } else { + // @@protoc_insertion_point(generalized_merge_from_cast_success:api.ClaimTagsMap_V1) + MergeFrom(*source); + } +} + +void ClaimTagsMap_V1::MergeFrom(const ClaimTagsMap_V1& from) { +// @@protoc_insertion_point(class_specific_merge_from_start:api.ClaimTagsMap_V1) + GOOGLE_DCHECK_NE(&from, this); + _internal_metadata_.MergeFrom(from._internal_metadata_); + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + tags_.MergeFrom(from.tags_); +} + +void ClaimTagsMap_V1::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { +// @@protoc_insertion_point(generalized_copy_from_start:api.ClaimTagsMap_V1) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +void ClaimTagsMap_V1::CopyFrom(const ClaimTagsMap_V1& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:api.ClaimTagsMap_V1) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool ClaimTagsMap_V1::IsInitialized() const { + return true; +} + +void ClaimTagsMap_V1::InternalSwap(ClaimTagsMap_V1* other) { + using std::swap; + _internal_metadata_.Swap(&other->_internal_metadata_); + tags_.Swap(&other->tags_); +} + +::PROTOBUF_NAMESPACE_ID::Metadata ClaimTagsMap_V1::GetMetadata() const { + return GetMetadataStatic(); +} + + +// =================================================================== + +Order_V1_OperationUUIDSEntry_DoNotUse::Order_V1_OperationUUIDSEntry_DoNotUse() {} +Order_V1_OperationUUIDSEntry_DoNotUse::Order_V1_OperationUUIDSEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena) + : SuperType(arena) {} +void Order_V1_OperationUUIDSEntry_DoNotUse::MergeFrom(const Order_V1_OperationUUIDSEntry_DoNotUse& other) { + MergeFromInternal(other); +} +::PROTOBUF_NAMESPACE_ID::Metadata Order_V1_OperationUUIDSEntry_DoNotUse::GetMetadata() const { + return GetMetadataStatic(); +} +void Order_V1_OperationUUIDSEntry_DoNotUse::MergeFrom( + const ::PROTOBUF_NAMESPACE_ID::Message& other) { + ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom(other); +} + + +// =================================================================== + +Order_V1_DataEntry_DoNotUse::Order_V1_DataEntry_DoNotUse() {} +Order_V1_DataEntry_DoNotUse::Order_V1_DataEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena) + : SuperType(arena) {} +void Order_V1_DataEntry_DoNotUse::MergeFrom(const Order_V1_DataEntry_DoNotUse& other) { + MergeFromInternal(other); +} +::PROTOBUF_NAMESPACE_ID::Metadata Order_V1_DataEntry_DoNotUse::GetMetadata() const { + return GetMetadataStatic(); +} +void Order_V1_DataEntry_DoNotUse::MergeFrom( + const ::PROTOBUF_NAMESPACE_ID::Message& other) { + ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom(other); +} + + +// =================================================================== + +void Order_V1::InitAsDefaultInstance() { +} +class Order_V1::_Internal { + public: +}; + +Order_V1::Order_V1() + : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) { + SharedCtor(); + // @@protoc_insertion_point(constructor:api.Order_V1) +} +Order_V1::Order_V1(const Order_V1& from) + : ::PROTOBUF_NAMESPACE_ID::Message(), + _internal_metadata_(nullptr) { + _internal_metadata_.MergeFrom(from._internal_metadata_); + operationuuids_.MergeFrom(from.operationuuids_); + data_.MergeFrom(from.data_); + uuid_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + if (!from._internal_uuid().empty()) { + uuid_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.uuid_); + } + invoicefilename_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + if (!from._internal_invoicefilename().empty()) { + invoicefilename_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.invoicefilename_); + } + ::memcpy(&invoicenumber_, &from.invoicenumber_, + static_cast<size_t>(reinterpret_cast<char*>(&status_) - + reinterpret_cast<char*>(&invoicenumber_)) + sizeof(status_)); + // @@protoc_insertion_point(copy_constructor:api.Order_V1) +} + +void Order_V1::SharedCtor() { + ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_Order_V1_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base); + uuid_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + invoicefilename_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + ::memset(&invoicenumber_, 0, static_cast<size_t>( + reinterpret_cast<char*>(&status_) - + reinterpret_cast<char*>(&invoicenumber_)) + sizeof(status_)); +} + +Order_V1::~Order_V1() { + // @@protoc_insertion_point(destructor:api.Order_V1) + SharedDtor(); +} + +void Order_V1::SharedDtor() { + uuid_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + invoicefilename_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} + +void Order_V1::SetCachedSize(int size) const { + _cached_size_.Set(size); +} +const Order_V1& Order_V1::default_instance() { + ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_Order_V1_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base); + return *internal_default_instance(); +} + + +void Order_V1::Clear() { +// @@protoc_insertion_point(message_clear_start:api.Order_V1) + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + operationuuids_.Clear(); + data_.Clear(); + uuid_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + invoicefilename_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + ::memset(&invoicenumber_, 0, static_cast<size_t>( + reinterpret_cast<char*>(&status_) - + reinterpret_cast<char*>(&invoicenumber_)) + sizeof(status_)); + _internal_metadata_.Clear(); +} + +const char* Order_V1::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + ::PROTOBUF_NAMESPACE_ID::uint32 tag; + ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag); + CHK_(ptr); + switch (tag >> 3) { + // string uuid = 1; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) { + auto str = _internal_mutable_uuid(); + ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); + CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "api.Order_V1.uuid")); + CHK_(ptr); + } else goto handle_unusual; + continue; + // string invoiceFilename = 2; + case 2: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) { + auto str = _internal_mutable_invoicefilename(); + ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); + CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "api.Order_V1.invoiceFilename")); + CHK_(ptr); + } else goto handle_unusual; + continue; + // map<string, string> operationUUIDS = 3; + case 3: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) { + ptr -= 1; + do { + ptr += 1; + ptr = ctx->ParseMessage(&operationuuids_, ptr); + CHK_(ptr); + if (!ctx->DataAvailable(ptr)) break; + } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<26>(ptr)); + } else goto handle_unusual; + continue; + // .api.OrderStatus status = 4; + case 4: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 32)) { + ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr); + CHK_(ptr); + _internal_set_status(static_cast<::api::OrderStatus>(val)); + } else goto handle_unusual; + continue; + // map<string, string> data = 5; + case 5: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) { + ptr -= 1; + do { + ptr += 1; + ptr = ctx->ParseMessage(&data_, ptr); + CHK_(ptr); + if (!ctx->DataAvailable(ptr)) break; + } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<42>(ptr)); + } else goto handle_unusual; + continue; + // int64 invoiceNumber = 6; + case 6: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 48)) { + invoicenumber_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr); + CHK_(ptr); + } else goto handle_unusual; + continue; + // int64 orderNumber = 7; + case 7: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 56)) { + ordernumber_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr); + CHK_(ptr); + } else goto handle_unusual; + continue; + // int64 stamp = 8; + case 8: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 64)) { + stamp_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr); + CHK_(ptr); + } else goto handle_unusual; + continue; + default: { + handle_unusual: + if ((tag & 7) == 4 || tag == 0) { + ctx->SetLastTag(tag); + goto success; + } + ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx); + CHK_(ptr != nullptr); + continue; + } + } // switch + } // while +success: + return ptr; +failure: + ptr = nullptr; + goto success; +#undef CHK_ +} + +::PROTOBUF_NAMESPACE_ID::uint8* Order_V1::_InternalSerialize( + ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:api.Order_V1) + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + // string uuid = 1; + if (this->uuid().size() > 0) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_uuid().data(), static_cast<int>(this->_internal_uuid().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "api.Order_V1.uuid"); + target = stream->WriteStringMaybeAliased( + 1, this->_internal_uuid(), target); + } + + // string invoiceFilename = 2; + if (this->invoicefilename().size() > 0) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_invoicefilename().data(), static_cast<int>(this->_internal_invoicefilename().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "api.Order_V1.invoiceFilename"); + target = stream->WriteStringMaybeAliased( + 2, this->_internal_invoicefilename(), target); + } + + // map<string, string> operationUUIDS = 3; + if (!this->_internal_operationuuids().empty()) { + typedef ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >::const_pointer + ConstPtr; + typedef ConstPtr SortItem; + typedef ::PROTOBUF_NAMESPACE_ID::internal::CompareByDerefFirst<SortItem> Less; + struct Utf8Check { + static void Check(ConstPtr p) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + p->first.data(), static_cast<int>(p->first.length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "api.Order_V1.OperationUUIDSEntry.key"); + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + p->second.data(), static_cast<int>(p->second.length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "api.Order_V1.OperationUUIDSEntry.value"); + } + }; + + if (stream->IsSerializationDeterministic() && + this->_internal_operationuuids().size() > 1) { + ::std::unique_ptr<SortItem[]> items( + new SortItem[this->_internal_operationuuids().size()]); + typedef ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >::size_type size_type; + size_type n = 0; + for (::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >::const_iterator + it = this->_internal_operationuuids().begin(); + it != this->_internal_operationuuids().end(); ++it, ++n) { + items[static_cast<ptrdiff_t>(n)] = SortItem(&*it); + } + ::std::sort(&items[0], &items[static_cast<ptrdiff_t>(n)], Less()); + for (size_type i = 0; i < n; i++) { + target = Order_V1_OperationUUIDSEntry_DoNotUse::Funcs::InternalSerialize(3, items[static_cast<ptrdiff_t>(i)]->first, items[static_cast<ptrdiff_t>(i)]->second, target, stream); + Utf8Check::Check(&(*items[static_cast<ptrdiff_t>(i)])); + } + } else { + for (::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >::const_iterator + it = this->_internal_operationuuids().begin(); + it != this->_internal_operationuuids().end(); ++it) { + target = Order_V1_OperationUUIDSEntry_DoNotUse::Funcs::InternalSerialize(3, it->first, it->second, target, stream); + Utf8Check::Check(&(*it)); + } + } + } + + // .api.OrderStatus status = 4; + if (this->status() != 0) { + target = stream->EnsureSpace(target); + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray( + 4, this->_internal_status(), target); + } + + // map<string, string> data = 5; + if (!this->_internal_data().empty()) { + typedef ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >::const_pointer + ConstPtr; + typedef ConstPtr SortItem; + typedef ::PROTOBUF_NAMESPACE_ID::internal::CompareByDerefFirst<SortItem> Less; + struct Utf8Check { + static void Check(ConstPtr p) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + p->first.data(), static_cast<int>(p->first.length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "api.Order_V1.DataEntry.key"); + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + p->second.data(), static_cast<int>(p->second.length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "api.Order_V1.DataEntry.value"); + } + }; + + if (stream->IsSerializationDeterministic() && + this->_internal_data().size() > 1) { + ::std::unique_ptr<SortItem[]> items( + new SortItem[this->_internal_data().size()]); + typedef ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >::size_type size_type; + size_type n = 0; + for (::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >::const_iterator + it = this->_internal_data().begin(); + it != this->_internal_data().end(); ++it, ++n) { + items[static_cast<ptrdiff_t>(n)] = SortItem(&*it); + } + ::std::sort(&items[0], &items[static_cast<ptrdiff_t>(n)], Less()); + for (size_type i = 0; i < n; i++) { + target = Order_V1_DataEntry_DoNotUse::Funcs::InternalSerialize(5, items[static_cast<ptrdiff_t>(i)]->first, items[static_cast<ptrdiff_t>(i)]->second, target, stream); + Utf8Check::Check(&(*items[static_cast<ptrdiff_t>(i)])); + } + } else { + for (::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >::const_iterator + it = this->_internal_data().begin(); + it != this->_internal_data().end(); ++it) { + target = Order_V1_DataEntry_DoNotUse::Funcs::InternalSerialize(5, it->first, it->second, target, stream); + Utf8Check::Check(&(*it)); + } + } + } + + // int64 invoiceNumber = 6; + if (this->invoicenumber() != 0) { + target = stream->EnsureSpace(target); + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(6, this->_internal_invoicenumber(), target); + } + + // int64 orderNumber = 7; + if (this->ordernumber() != 0) { + target = stream->EnsureSpace(target); + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(7, this->_internal_ordernumber(), target); + } + + // int64 stamp = 8; + if (this->stamp() != 0) { + target = stream->EnsureSpace(target); + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(8, this->_internal_stamp(), target); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields(), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:api.Order_V1) + return target; +} + +size_t Order_V1::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:api.Order_V1) + size_t total_size = 0; + + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // map<string, string> operationUUIDS = 3; + total_size += 1 * + ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(this->_internal_operationuuids_size()); + for (::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >::const_iterator + it = this->_internal_operationuuids().begin(); + it != this->_internal_operationuuids().end(); ++it) { + total_size += Order_V1_OperationUUIDSEntry_DoNotUse::Funcs::ByteSizeLong(it->first, it->second); + } + + // map<string, string> data = 5; + total_size += 1 * + ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(this->_internal_data_size()); + for (::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >::const_iterator + it = this->_internal_data().begin(); + it != this->_internal_data().end(); ++it) { + total_size += Order_V1_DataEntry_DoNotUse::Funcs::ByteSizeLong(it->first, it->second); + } + + // string uuid = 1; + if (this->uuid().size() > 0) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_uuid()); + } + + // string invoiceFilename = 2; + if (this->invoicefilename().size() > 0) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_invoicefilename()); + } + + // int64 invoiceNumber = 6; + if (this->invoicenumber() != 0) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size( + this->_internal_invoicenumber()); + } + + // int64 orderNumber = 7; + if (this->ordernumber() != 0) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size( + this->_internal_ordernumber()); + } + + // int64 stamp = 8; + if (this->stamp() != 0) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size( + this->_internal_stamp()); + } + + // .api.OrderStatus status = 4; + if (this->status() != 0) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_status()); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize( + _internal_metadata_, total_size, &_cached_size_); + } + int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size); + SetCachedSize(cached_size); + return total_size; +} + +void Order_V1::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { +// @@protoc_insertion_point(generalized_merge_from_start:api.Order_V1) + GOOGLE_DCHECK_NE(&from, this); + const Order_V1* source = + ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<Order_V1>( + &from); + if (source == nullptr) { + // @@protoc_insertion_point(generalized_merge_from_cast_fail:api.Order_V1) + ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this); + } else { + // @@protoc_insertion_point(generalized_merge_from_cast_success:api.Order_V1) + MergeFrom(*source); + } +} + +void Order_V1::MergeFrom(const Order_V1& from) { +// @@protoc_insertion_point(class_specific_merge_from_start:api.Order_V1) + GOOGLE_DCHECK_NE(&from, this); + _internal_metadata_.MergeFrom(from._internal_metadata_); + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + operationuuids_.MergeFrom(from.operationuuids_); + data_.MergeFrom(from.data_); + if (from.uuid().size() > 0) { + + uuid_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.uuid_); + } + if (from.invoicefilename().size() > 0) { + + invoicefilename_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.invoicefilename_); + } + if (from.invoicenumber() != 0) { + _internal_set_invoicenumber(from._internal_invoicenumber()); + } + if (from.ordernumber() != 0) { + _internal_set_ordernumber(from._internal_ordernumber()); + } + if (from.stamp() != 0) { + _internal_set_stamp(from._internal_stamp()); + } + if (from.status() != 0) { + _internal_set_status(from._internal_status()); + } +} + +void Order_V1::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { +// @@protoc_insertion_point(generalized_copy_from_start:api.Order_V1) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +void Order_V1::CopyFrom(const Order_V1& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:api.Order_V1) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool Order_V1::IsInitialized() const { + return true; +} + +void Order_V1::InternalSwap(Order_V1* other) { + using std::swap; + _internal_metadata_.Swap(&other->_internal_metadata_); + operationuuids_.Swap(&other->operationuuids_); + data_.Swap(&other->data_); + uuid_.Swap(&other->uuid_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); + invoicefilename_.Swap(&other->invoicefilename_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); + swap(invoicenumber_, other->invoicenumber_); + swap(ordernumber_, other->ordernumber_); + swap(stamp_, other->stamp_); + swap(status_, other->status_); +} + +::PROTOBUF_NAMESPACE_ID::Metadata Order_V1::GetMetadata() const { + return GetMetadataStatic(); +} + + +// =================================================================== + +EntityMessage_V1_ClaimsEntry_DoNotUse::EntityMessage_V1_ClaimsEntry_DoNotUse() {} +EntityMessage_V1_ClaimsEntry_DoNotUse::EntityMessage_V1_ClaimsEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena) + : SuperType(arena) {} +void EntityMessage_V1_ClaimsEntry_DoNotUse::MergeFrom(const EntityMessage_V1_ClaimsEntry_DoNotUse& other) { + MergeFromInternal(other); +} +::PROTOBUF_NAMESPACE_ID::Metadata EntityMessage_V1_ClaimsEntry_DoNotUse::GetMetadata() const { + return GetMetadataStatic(); +} +void EntityMessage_V1_ClaimsEntry_DoNotUse::MergeFrom( + const ::PROTOBUF_NAMESPACE_ID::Message& other) { + ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom(other); +} + + +// =================================================================== + +EntityMessage_V1_PassportsCountersEntry_DoNotUse::EntityMessage_V1_PassportsCountersEntry_DoNotUse() {} +EntityMessage_V1_PassportsCountersEntry_DoNotUse::EntityMessage_V1_PassportsCountersEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena) + : SuperType(arena) {} +void EntityMessage_V1_PassportsCountersEntry_DoNotUse::MergeFrom(const EntityMessage_V1_PassportsCountersEntry_DoNotUse& other) { + MergeFromInternal(other); +} +::PROTOBUF_NAMESPACE_ID::Metadata EntityMessage_V1_PassportsCountersEntry_DoNotUse::GetMetadata() const { + return GetMetadataStatic(); +} +void EntityMessage_V1_PassportsCountersEntry_DoNotUse::MergeFrom( + const ::PROTOBUF_NAMESPACE_ID::Message& other) { + ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom(other); +} + + +// =================================================================== + +EntityMessage_V1_ContactStatusesEntry_DoNotUse::EntityMessage_V1_ContactStatusesEntry_DoNotUse() {} +EntityMessage_V1_ContactStatusesEntry_DoNotUse::EntityMessage_V1_ContactStatusesEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena) + : SuperType(arena) {} +void EntityMessage_V1_ContactStatusesEntry_DoNotUse::MergeFrom(const EntityMessage_V1_ContactStatusesEntry_DoNotUse& other) { + MergeFromInternal(other); +} +::PROTOBUF_NAMESPACE_ID::Metadata EntityMessage_V1_ContactStatusesEntry_DoNotUse::GetMetadata() const { + return GetMetadataStatic(); +} +void EntityMessage_V1_ContactStatusesEntry_DoNotUse::MergeFrom( + const ::PROTOBUF_NAMESPACE_ID::Message& other) { + ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom(other); +} + + +// =================================================================== + +void EntityMessage_V1::InitAsDefaultInstance() { +} +class EntityMessage_V1::_Internal { + public: +}; + +EntityMessage_V1::EntityMessage_V1() + : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) { + SharedCtor(); + // @@protoc_insertion_point(constructor:api.EntityMessage_V1) +} +EntityMessage_V1::EntityMessage_V1(const EntityMessage_V1& from) + : ::PROTOBUF_NAMESPACE_ID::Message(), + _internal_metadata_(nullptr), + guarded_(from.guarded_), + guardians_(from.guardians_), + members_(from.members_), + memberof_(from.memberof_), + parents_(from.parents_), + children_(from.children_), + viewed_(from.viewed_), + viewers_(from.viewers_), + authenticationkeys_(from.authenticationkeys_), + certificates_(from.certificates_), + symmetrickeys_(from.symmetrickeys_), + pendingsharingrequests_(from.pendingsharingrequests_), + rejectedsharingrequests_(from.rejectedsharingrequests_) { + _internal_metadata_.MergeFrom(from._internal_metadata_); + claims_.MergeFrom(from.claims_); + passportscounters_.MergeFrom(from.passportscounters_); + contactstatuses_.MergeFrom(from.contactstatuses_); + uuid_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + if (!from._internal_uuid().empty()) { + uuid_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.uuid_); + } + otpsecret_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + if (!from._internal_otpsecret().empty()) { + otpsecret_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.otpsecret_); + } + entitycertificate_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + if (!from._internal_entitycertificate().empty()) { + entitycertificate_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.entitycertificate_); + } + ::memcpy(&stamp_, &from.stamp_, + static_cast<size_t>(reinterpret_cast<char*>(&created_) - + reinterpret_cast<char*>(&stamp_)) + sizeof(created_)); + // @@protoc_insertion_point(copy_constructor:api.EntityMessage_V1) +} + +void EntityMessage_V1::SharedCtor() { + ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_EntityMessage_V1_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base); + uuid_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + otpsecret_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + entitycertificate_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + ::memset(&stamp_, 0, static_cast<size_t>( + reinterpret_cast<char*>(&created_) - + reinterpret_cast<char*>(&stamp_)) + sizeof(created_)); +} + +EntityMessage_V1::~EntityMessage_V1() { + // @@protoc_insertion_point(destructor:api.EntityMessage_V1) + SharedDtor(); +} + +void EntityMessage_V1::SharedDtor() { + uuid_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + otpsecret_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + entitycertificate_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} + +void EntityMessage_V1::SetCachedSize(int size) const { + _cached_size_.Set(size); +} +const EntityMessage_V1& EntityMessage_V1::default_instance() { + ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_EntityMessage_V1_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base); + return *internal_default_instance(); +} + + +void EntityMessage_V1::Clear() { +// @@protoc_insertion_point(message_clear_start:api.EntityMessage_V1) + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + claims_.Clear(); + guarded_.Clear(); + guardians_.Clear(); + members_.Clear(); + memberof_.Clear(); + parents_.Clear(); + children_.Clear(); + viewed_.Clear(); + viewers_.Clear(); + authenticationkeys_.Clear(); + certificates_.Clear(); + symmetrickeys_.Clear(); + passportscounters_.Clear(); + contactstatuses_.Clear(); + pendingsharingrequests_.Clear(); + rejectedsharingrequests_.Clear(); + uuid_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + otpsecret_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + entitycertificate_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + ::memset(&stamp_, 0, static_cast<size_t>( + reinterpret_cast<char*>(&created_) - + reinterpret_cast<char*>(&stamp_)) + sizeof(created_)); + _internal_metadata_.Clear(); +} + +const char* EntityMessage_V1::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + ::PROTOBUF_NAMESPACE_ID::uint32 tag; + ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag); + CHK_(ptr); + switch (tag >> 3) { + // string uuid = 1; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) { + auto str = _internal_mutable_uuid(); + ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); + CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "api.EntityMessage_V1.uuid")); + CHK_(ptr); + } else goto handle_unusual; + continue; + // .api.EntityType type = 2; + case 2: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) { + ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr); + CHK_(ptr); + _internal_set_type(static_cast<::api::EntityType>(val)); + } else goto handle_unusual; + continue; + // map<string, .api.ClaimTagsMap_V1> claims = 3; + case 3: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) { + ptr -= 1; + do { + ptr += 1; + ptr = ctx->ParseMessage(&claims_, ptr); + CHK_(ptr); + if (!ctx->DataAvailable(ptr)) break; + } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<26>(ptr)); + } else goto handle_unusual; + continue; + // repeated string guarded = 4; + case 4: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) { + ptr -= 1; + do { + ptr += 1; + auto str = _internal_add_guarded(); + ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); + CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "api.EntityMessage_V1.guarded")); + CHK_(ptr); + if (!ctx->DataAvailable(ptr)) break; + } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<34>(ptr)); + } else goto handle_unusual; + continue; + // repeated string guardians = 5; + case 5: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) { + ptr -= 1; + do { + ptr += 1; + auto str = _internal_add_guardians(); + ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); + CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "api.EntityMessage_V1.guardians")); + CHK_(ptr); + if (!ctx->DataAvailable(ptr)) break; + } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<42>(ptr)); + } else goto handle_unusual; + continue; + // repeated string members = 6; + case 6: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 50)) { + ptr -= 1; + do { + ptr += 1; + auto str = _internal_add_members(); + ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); + CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "api.EntityMessage_V1.members")); + CHK_(ptr); + if (!ctx->DataAvailable(ptr)) break; + } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<50>(ptr)); + } else goto handle_unusual; + continue; + // repeated string memberOf = 7; + case 7: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 58)) { + ptr -= 1; + do { + ptr += 1; + auto str = _internal_add_memberof(); + ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); + CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "api.EntityMessage_V1.memberOf")); + CHK_(ptr); + if (!ctx->DataAvailable(ptr)) break; + } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<58>(ptr)); + } else goto handle_unusual; + continue; + // repeated string parents = 8; + case 8: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 66)) { + ptr -= 1; + do { + ptr += 1; + auto str = _internal_add_parents(); + ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); + CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "api.EntityMessage_V1.parents")); + CHK_(ptr); + if (!ctx->DataAvailable(ptr)) break; + } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<66>(ptr)); + } else goto handle_unusual; + continue; + // repeated string children = 9; + case 9: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 74)) { + ptr -= 1; + do { + ptr += 1; + auto str = _internal_add_children(); + ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); + CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "api.EntityMessage_V1.children")); + CHK_(ptr); + if (!ctx->DataAvailable(ptr)) break; + } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<74>(ptr)); + } else goto handle_unusual; + continue; + // int64 stamp = 11; + case 11: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 88)) { + stamp_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr); + CHK_(ptr); + } else goto handle_unusual; + continue; + // repeated string viewed = 12; + case 12: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 98)) { + ptr -= 1; + do { + ptr += 1; + auto str = _internal_add_viewed(); + ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); + CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "api.EntityMessage_V1.viewed")); + CHK_(ptr); + if (!ctx->DataAvailable(ptr)) break; + } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<98>(ptr)); + } else goto handle_unusual; + continue; + // repeated string viewers = 13; + case 13: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 106)) { + ptr -= 1; + do { + ptr += 1; + auto str = _internal_add_viewers(); + ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); + CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "api.EntityMessage_V1.viewers")); + CHK_(ptr); + if (!ctx->DataAvailable(ptr)) break; + } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<106>(ptr)); + } else goto handle_unusual; + continue; + // string otpSecret = 14; + case 14: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 114)) { + auto str = _internal_mutable_otpsecret(); + ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); + CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "api.EntityMessage_V1.otpSecret")); + CHK_(ptr); + } else goto handle_unusual; + continue; + // bool activated = 15; + case 15: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 120)) { + activated_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr); + CHK_(ptr); + } else goto handle_unusual; + continue; + // repeated string authenticationKeys = 16; + case 16: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 130)) { + ptr -= 2; + do { + ptr += 2; + auto str = _internal_add_authenticationkeys(); + ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); + CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "api.EntityMessage_V1.authenticationKeys")); + CHK_(ptr); + if (!ctx->DataAvailable(ptr)) break; + } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<130>(ptr)); + } else goto handle_unusual; + continue; + // repeated string certificates = 17; + case 17: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 138)) { + ptr -= 2; + do { + ptr += 2; + auto str = _internal_add_certificates(); + ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); + CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "api.EntityMessage_V1.certificates")); + CHK_(ptr); + if (!ctx->DataAvailable(ptr)) break; + } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<138>(ptr)); + } else goto handle_unusual; + continue; + // string entityCertificate = 18; + case 18: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 146)) { + auto str = _internal_mutable_entitycertificate(); + ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); + CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "api.EntityMessage_V1.entityCertificate")); + CHK_(ptr); + } else goto handle_unusual; + continue; + // repeated string symmetricKeys = 19; + case 19: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 154)) { + ptr -= 2; + do { + ptr += 2; + auto str = _internal_add_symmetrickeys(); + ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); + CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "api.EntityMessage_V1.symmetricKeys")); + CHK_(ptr); + if (!ctx->DataAvailable(ptr)) break; + } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<154>(ptr)); + } else goto handle_unusual; + continue; + // int64 created = 20; + case 20: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 160)) { + created_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr); + CHK_(ptr); + } else goto handle_unusual; + continue; + // map<string, int64> passportsCounters = 21; + case 21: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 170)) { + ptr -= 2; + do { + ptr += 2; + ptr = ctx->ParseMessage(&passportscounters_, ptr); + CHK_(ptr); + if (!ctx->DataAvailable(ptr)) break; + } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<170>(ptr)); + } else goto handle_unusual; + continue; + // map<string, .api.ContactStatus> contactStatuses = 22; + case 22: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 178)) { + ptr -= 2; + do { + ptr += 2; + ptr = ctx->ParseMessage(&contactstatuses_, ptr); + CHK_(ptr); + if (!ctx->DataAvailable(ptr)) break; + } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<178>(ptr)); + } else goto handle_unusual; + continue; + // bool temporary = 23; + case 23: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 184)) { + temporary_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr); + CHK_(ptr); + } else goto handle_unusual; + continue; + // repeated string pendingSharingRequests = 24; + case 24: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 194)) { + ptr -= 2; + do { + ptr += 2; + auto str = _internal_add_pendingsharingrequests(); + ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); + CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "api.EntityMessage_V1.pendingSharingRequests")); + CHK_(ptr); + if (!ctx->DataAvailable(ptr)) break; + } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<194>(ptr)); + } else goto handle_unusual; + continue; + // repeated string rejectedSharingRequests = 25; + case 25: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 202)) { + ptr -= 2; + do { + ptr += 2; + auto str = _internal_add_rejectedsharingrequests(); + ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); + CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "api.EntityMessage_V1.rejectedSharingRequests")); + CHK_(ptr); + if (!ctx->DataAvailable(ptr)) break; + } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<202>(ptr)); + } else goto handle_unusual; + continue; + default: { + handle_unusual: + if ((tag & 7) == 4 || tag == 0) { + ctx->SetLastTag(tag); + goto success; + } + ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx); + CHK_(ptr != nullptr); + continue; + } + } // switch + } // while +success: + return ptr; +failure: + ptr = nullptr; + goto success; +#undef CHK_ +} + +::PROTOBUF_NAMESPACE_ID::uint8* EntityMessage_V1::_InternalSerialize( + ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:api.EntityMessage_V1) + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + // string uuid = 1; + if (this->uuid().size() > 0) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_uuid().data(), static_cast<int>(this->_internal_uuid().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "api.EntityMessage_V1.uuid"); + target = stream->WriteStringMaybeAliased( + 1, this->_internal_uuid(), target); + } + + // .api.EntityType type = 2; + if (this->type() != 0) { + target = stream->EnsureSpace(target); + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray( + 2, this->_internal_type(), target); + } + + // map<string, .api.ClaimTagsMap_V1> claims = 3; + if (!this->_internal_claims().empty()) { + typedef ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::ClaimTagsMap_V1 >::const_pointer + ConstPtr; + typedef ConstPtr SortItem; + typedef ::PROTOBUF_NAMESPACE_ID::internal::CompareByDerefFirst<SortItem> Less; + struct Utf8Check { + static void Check(ConstPtr p) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + p->first.data(), static_cast<int>(p->first.length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "api.EntityMessage_V1.ClaimsEntry.key"); + } + }; + + if (stream->IsSerializationDeterministic() && + this->_internal_claims().size() > 1) { + ::std::unique_ptr<SortItem[]> items( + new SortItem[this->_internal_claims().size()]); + typedef ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::ClaimTagsMap_V1 >::size_type size_type; + size_type n = 0; + for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::ClaimTagsMap_V1 >::const_iterator + it = this->_internal_claims().begin(); + it != this->_internal_claims().end(); ++it, ++n) { + items[static_cast<ptrdiff_t>(n)] = SortItem(&*it); + } + ::std::sort(&items[0], &items[static_cast<ptrdiff_t>(n)], Less()); + for (size_type i = 0; i < n; i++) { + target = EntityMessage_V1_ClaimsEntry_DoNotUse::Funcs::InternalSerialize(3, items[static_cast<ptrdiff_t>(i)]->first, items[static_cast<ptrdiff_t>(i)]->second, target, stream); + Utf8Check::Check(&(*items[static_cast<ptrdiff_t>(i)])); + } + } else { + for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::ClaimTagsMap_V1 >::const_iterator + it = this->_internal_claims().begin(); + it != this->_internal_claims().end(); ++it) { + target = EntityMessage_V1_ClaimsEntry_DoNotUse::Funcs::InternalSerialize(3, it->first, it->second, target, stream); + Utf8Check::Check(&(*it)); + } + } + } + + // repeated string guarded = 4; + for (int i = 0, n = this->_internal_guarded_size(); i < n; i++) { + const auto& s = this->_internal_guarded(i); + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + s.data(), static_cast<int>(s.length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "api.EntityMessage_V1.guarded"); + target = stream->WriteString(4, s, target); + } + + // repeated string guardians = 5; + for (int i = 0, n = this->_internal_guardians_size(); i < n; i++) { + const auto& s = this->_internal_guardians(i); + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + s.data(), static_cast<int>(s.length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "api.EntityMessage_V1.guardians"); + target = stream->WriteString(5, s, target); + } + + // repeated string members = 6; + for (int i = 0, n = this->_internal_members_size(); i < n; i++) { + const auto& s = this->_internal_members(i); + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + s.data(), static_cast<int>(s.length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "api.EntityMessage_V1.members"); + target = stream->WriteString(6, s, target); + } + + // repeated string memberOf = 7; + for (int i = 0, n = this->_internal_memberof_size(); i < n; i++) { + const auto& s = this->_internal_memberof(i); + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + s.data(), static_cast<int>(s.length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "api.EntityMessage_V1.memberOf"); + target = stream->WriteString(7, s, target); + } + + // repeated string parents = 8; + for (int i = 0, n = this->_internal_parents_size(); i < n; i++) { + const auto& s = this->_internal_parents(i); + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + s.data(), static_cast<int>(s.length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "api.EntityMessage_V1.parents"); + target = stream->WriteString(8, s, target); + } + + // repeated string children = 9; + for (int i = 0, n = this->_internal_children_size(); i < n; i++) { + const auto& s = this->_internal_children(i); + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + s.data(), static_cast<int>(s.length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "api.EntityMessage_V1.children"); + target = stream->WriteString(9, s, target); + } + + // int64 stamp = 11; + if (this->stamp() != 0) { + target = stream->EnsureSpace(target); + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(11, this->_internal_stamp(), target); + } + + // repeated string viewed = 12; + for (int i = 0, n = this->_internal_viewed_size(); i < n; i++) { + const auto& s = this->_internal_viewed(i); + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + s.data(), static_cast<int>(s.length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "api.EntityMessage_V1.viewed"); + target = stream->WriteString(12, s, target); + } + + // repeated string viewers = 13; + for (int i = 0, n = this->_internal_viewers_size(); i < n; i++) { + const auto& s = this->_internal_viewers(i); + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + s.data(), static_cast<int>(s.length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "api.EntityMessage_V1.viewers"); + target = stream->WriteString(13, s, target); + } + + // string otpSecret = 14; + if (this->otpsecret().size() > 0) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_otpsecret().data(), static_cast<int>(this->_internal_otpsecret().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "api.EntityMessage_V1.otpSecret"); + target = stream->WriteStringMaybeAliased( + 14, this->_internal_otpsecret(), target); + } + + // bool activated = 15; + if (this->activated() != 0) { + target = stream->EnsureSpace(target); + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(15, this->_internal_activated(), target); + } + + // repeated string authenticationKeys = 16; + for (int i = 0, n = this->_internal_authenticationkeys_size(); i < n; i++) { + const auto& s = this->_internal_authenticationkeys(i); + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + s.data(), static_cast<int>(s.length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "api.EntityMessage_V1.authenticationKeys"); + target = stream->WriteString(16, s, target); + } + + // repeated string certificates = 17; + for (int i = 0, n = this->_internal_certificates_size(); i < n; i++) { + const auto& s = this->_internal_certificates(i); + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + s.data(), static_cast<int>(s.length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "api.EntityMessage_V1.certificates"); + target = stream->WriteString(17, s, target); + } + + // string entityCertificate = 18; + if (this->entitycertificate().size() > 0) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_entitycertificate().data(), static_cast<int>(this->_internal_entitycertificate().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "api.EntityMessage_V1.entityCertificate"); + target = stream->WriteStringMaybeAliased( + 18, this->_internal_entitycertificate(), target); + } + + // repeated string symmetricKeys = 19; + for (int i = 0, n = this->_internal_symmetrickeys_size(); i < n; i++) { + const auto& s = this->_internal_symmetrickeys(i); + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + s.data(), static_cast<int>(s.length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "api.EntityMessage_V1.symmetricKeys"); + target = stream->WriteString(19, s, target); + } + + // int64 created = 20; + if (this->created() != 0) { + target = stream->EnsureSpace(target); + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(20, this->_internal_created(), target); + } + + // map<string, int64> passportsCounters = 21; + if (!this->_internal_passportscounters().empty()) { + typedef ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::PROTOBUF_NAMESPACE_ID::int64 >::const_pointer + ConstPtr; + typedef ConstPtr SortItem; + typedef ::PROTOBUF_NAMESPACE_ID::internal::CompareByDerefFirst<SortItem> Less; + struct Utf8Check { + static void Check(ConstPtr p) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + p->first.data(), static_cast<int>(p->first.length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "api.EntityMessage_V1.PassportsCountersEntry.key"); + } + }; + + if (stream->IsSerializationDeterministic() && + this->_internal_passportscounters().size() > 1) { + ::std::unique_ptr<SortItem[]> items( + new SortItem[this->_internal_passportscounters().size()]); + typedef ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::PROTOBUF_NAMESPACE_ID::int64 >::size_type size_type; + size_type n = 0; + for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::PROTOBUF_NAMESPACE_ID::int64 >::const_iterator + it = this->_internal_passportscounters().begin(); + it != this->_internal_passportscounters().end(); ++it, ++n) { + items[static_cast<ptrdiff_t>(n)] = SortItem(&*it); + } + ::std::sort(&items[0], &items[static_cast<ptrdiff_t>(n)], Less()); + for (size_type i = 0; i < n; i++) { + target = EntityMessage_V1_PassportsCountersEntry_DoNotUse::Funcs::InternalSerialize(21, items[static_cast<ptrdiff_t>(i)]->first, items[static_cast<ptrdiff_t>(i)]->second, target, stream); + Utf8Check::Check(&(*items[static_cast<ptrdiff_t>(i)])); + } + } else { + for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::PROTOBUF_NAMESPACE_ID::int64 >::const_iterator + it = this->_internal_passportscounters().begin(); + it != this->_internal_passportscounters().end(); ++it) { + target = EntityMessage_V1_PassportsCountersEntry_DoNotUse::Funcs::InternalSerialize(21, it->first, it->second, target, stream); + Utf8Check::Check(&(*it)); + } + } + } + + // map<string, .api.ContactStatus> contactStatuses = 22; + if (!this->_internal_contactstatuses().empty()) { + typedef ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::ContactStatus >::const_pointer + ConstPtr; + typedef ConstPtr SortItem; + typedef ::PROTOBUF_NAMESPACE_ID::internal::CompareByDerefFirst<SortItem> Less; + struct Utf8Check { + static void Check(ConstPtr p) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + p->first.data(), static_cast<int>(p->first.length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "api.EntityMessage_V1.ContactStatusesEntry.key"); + } + }; + + if (stream->IsSerializationDeterministic() && + this->_internal_contactstatuses().size() > 1) { + ::std::unique_ptr<SortItem[]> items( + new SortItem[this->_internal_contactstatuses().size()]); + typedef ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::ContactStatus >::size_type size_type; + size_type n = 0; + for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::ContactStatus >::const_iterator + it = this->_internal_contactstatuses().begin(); + it != this->_internal_contactstatuses().end(); ++it, ++n) { + items[static_cast<ptrdiff_t>(n)] = SortItem(&*it); + } + ::std::sort(&items[0], &items[static_cast<ptrdiff_t>(n)], Less()); + for (size_type i = 0; i < n; i++) { + target = EntityMessage_V1_ContactStatusesEntry_DoNotUse::Funcs::InternalSerialize(22, items[static_cast<ptrdiff_t>(i)]->first, items[static_cast<ptrdiff_t>(i)]->second, target, stream); + Utf8Check::Check(&(*items[static_cast<ptrdiff_t>(i)])); + } + } else { + for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::ContactStatus >::const_iterator + it = this->_internal_contactstatuses().begin(); + it != this->_internal_contactstatuses().end(); ++it) { + target = EntityMessage_V1_ContactStatusesEntry_DoNotUse::Funcs::InternalSerialize(22, it->first, it->second, target, stream); + Utf8Check::Check(&(*it)); + } + } + } + + // bool temporary = 23; + if (this->temporary() != 0) { + target = stream->EnsureSpace(target); + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(23, this->_internal_temporary(), target); + } + + // repeated string pendingSharingRequests = 24; + for (int i = 0, n = this->_internal_pendingsharingrequests_size(); i < n; i++) { + const auto& s = this->_internal_pendingsharingrequests(i); + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + s.data(), static_cast<int>(s.length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "api.EntityMessage_V1.pendingSharingRequests"); + target = stream->WriteString(24, s, target); + } + + // repeated string rejectedSharingRequests = 25; + for (int i = 0, n = this->_internal_rejectedsharingrequests_size(); i < n; i++) { + const auto& s = this->_internal_rejectedsharingrequests(i); + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + s.data(), static_cast<int>(s.length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "api.EntityMessage_V1.rejectedSharingRequests"); + target = stream->WriteString(25, s, target); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields(), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:api.EntityMessage_V1) + return target; +} + +size_t EntityMessage_V1::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:api.EntityMessage_V1) + size_t total_size = 0; + + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // map<string, .api.ClaimTagsMap_V1> claims = 3; + total_size += 1 * + ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(this->_internal_claims_size()); + for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::ClaimTagsMap_V1 >::const_iterator + it = this->_internal_claims().begin(); + it != this->_internal_claims().end(); ++it) { + total_size += EntityMessage_V1_ClaimsEntry_DoNotUse::Funcs::ByteSizeLong(it->first, it->second); + } + + // repeated string guarded = 4; + total_size += 1 * + ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(guarded_.size()); + for (int i = 0, n = guarded_.size(); i < n; i++) { + total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + guarded_.Get(i)); + } + + // repeated string guardians = 5; + total_size += 1 * + ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(guardians_.size()); + for (int i = 0, n = guardians_.size(); i < n; i++) { + total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + guardians_.Get(i)); + } + + // repeated string members = 6; + total_size += 1 * + ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(members_.size()); + for (int i = 0, n = members_.size(); i < n; i++) { + total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + members_.Get(i)); + } + + // repeated string memberOf = 7; + total_size += 1 * + ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(memberof_.size()); + for (int i = 0, n = memberof_.size(); i < n; i++) { + total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + memberof_.Get(i)); + } + + // repeated string parents = 8; + total_size += 1 * + ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(parents_.size()); + for (int i = 0, n = parents_.size(); i < n; i++) { + total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + parents_.Get(i)); + } + + // repeated string children = 9; + total_size += 1 * + ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(children_.size()); + for (int i = 0, n = children_.size(); i < n; i++) { + total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + children_.Get(i)); + } + + // repeated string viewed = 12; + total_size += 1 * + ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(viewed_.size()); + for (int i = 0, n = viewed_.size(); i < n; i++) { + total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + viewed_.Get(i)); + } + + // repeated string viewers = 13; + total_size += 1 * + ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(viewers_.size()); + for (int i = 0, n = viewers_.size(); i < n; i++) { + total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + viewers_.Get(i)); + } + + // repeated string authenticationKeys = 16; + total_size += 2 * + ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(authenticationkeys_.size()); + for (int i = 0, n = authenticationkeys_.size(); i < n; i++) { + total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + authenticationkeys_.Get(i)); + } + + // repeated string certificates = 17; + total_size += 2 * + ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(certificates_.size()); + for (int i = 0, n = certificates_.size(); i < n; i++) { + total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + certificates_.Get(i)); + } + + // repeated string symmetricKeys = 19; + total_size += 2 * + ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(symmetrickeys_.size()); + for (int i = 0, n = symmetrickeys_.size(); i < n; i++) { + total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + symmetrickeys_.Get(i)); + } + + // map<string, int64> passportsCounters = 21; + total_size += 2 * + ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(this->_internal_passportscounters_size()); + for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::PROTOBUF_NAMESPACE_ID::int64 >::const_iterator + it = this->_internal_passportscounters().begin(); + it != this->_internal_passportscounters().end(); ++it) { + total_size += EntityMessage_V1_PassportsCountersEntry_DoNotUse::Funcs::ByteSizeLong(it->first, it->second); + } + + // map<string, .api.ContactStatus> contactStatuses = 22; + total_size += 2 * + ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(this->_internal_contactstatuses_size()); + for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::ContactStatus >::const_iterator + it = this->_internal_contactstatuses().begin(); + it != this->_internal_contactstatuses().end(); ++it) { + total_size += EntityMessage_V1_ContactStatusesEntry_DoNotUse::Funcs::ByteSizeLong(it->first, it->second); + } + + // repeated string pendingSharingRequests = 24; + total_size += 2 * + ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(pendingsharingrequests_.size()); + for (int i = 0, n = pendingsharingrequests_.size(); i < n; i++) { + total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + pendingsharingrequests_.Get(i)); + } + + // repeated string rejectedSharingRequests = 25; + total_size += 2 * + ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(rejectedsharingrequests_.size()); + for (int i = 0, n = rejectedsharingrequests_.size(); i < n; i++) { + total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + rejectedsharingrequests_.Get(i)); + } + + // string uuid = 1; + if (this->uuid().size() > 0) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_uuid()); + } + + // string otpSecret = 14; + if (this->otpsecret().size() > 0) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_otpsecret()); + } + + // string entityCertificate = 18; + if (this->entitycertificate().size() > 0) { + total_size += 2 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_entitycertificate()); + } + + // int64 stamp = 11; + if (this->stamp() != 0) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size( + this->_internal_stamp()); + } + + // .api.EntityType type = 2; + if (this->type() != 0) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_type()); + } + + // bool activated = 15; + if (this->activated() != 0) { + total_size += 1 + 1; + } + + // bool temporary = 23; + if (this->temporary() != 0) { + total_size += 2 + 1; + } + + // int64 created = 20; + if (this->created() != 0) { + total_size += 2 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size( + this->_internal_created()); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize( + _internal_metadata_, total_size, &_cached_size_); + } + int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size); + SetCachedSize(cached_size); + return total_size; +} + +void EntityMessage_V1::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { +// @@protoc_insertion_point(generalized_merge_from_start:api.EntityMessage_V1) + GOOGLE_DCHECK_NE(&from, this); + const EntityMessage_V1* source = + ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<EntityMessage_V1>( + &from); + if (source == nullptr) { + // @@protoc_insertion_point(generalized_merge_from_cast_fail:api.EntityMessage_V1) + ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this); + } else { + // @@protoc_insertion_point(generalized_merge_from_cast_success:api.EntityMessage_V1) + MergeFrom(*source); + } +} + +void EntityMessage_V1::MergeFrom(const EntityMessage_V1& from) { +// @@protoc_insertion_point(class_specific_merge_from_start:api.EntityMessage_V1) + GOOGLE_DCHECK_NE(&from, this); + _internal_metadata_.MergeFrom(from._internal_metadata_); + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + claims_.MergeFrom(from.claims_); + guarded_.MergeFrom(from.guarded_); + guardians_.MergeFrom(from.guardians_); + members_.MergeFrom(from.members_); + memberof_.MergeFrom(from.memberof_); + parents_.MergeFrom(from.parents_); + children_.MergeFrom(from.children_); + viewed_.MergeFrom(from.viewed_); + viewers_.MergeFrom(from.viewers_); + authenticationkeys_.MergeFrom(from.authenticationkeys_); + certificates_.MergeFrom(from.certificates_); + symmetrickeys_.MergeFrom(from.symmetrickeys_); + passportscounters_.MergeFrom(from.passportscounters_); + contactstatuses_.MergeFrom(from.contactstatuses_); + pendingsharingrequests_.MergeFrom(from.pendingsharingrequests_); + rejectedsharingrequests_.MergeFrom(from.rejectedsharingrequests_); + if (from.uuid().size() > 0) { + + uuid_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.uuid_); + } + if (from.otpsecret().size() > 0) { + + otpsecret_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.otpsecret_); + } + if (from.entitycertificate().size() > 0) { + + entitycertificate_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.entitycertificate_); + } + if (from.stamp() != 0) { + _internal_set_stamp(from._internal_stamp()); + } + if (from.type() != 0) { + _internal_set_type(from._internal_type()); + } + if (from.activated() != 0) { + _internal_set_activated(from._internal_activated()); + } + if (from.temporary() != 0) { + _internal_set_temporary(from._internal_temporary()); + } + if (from.created() != 0) { + _internal_set_created(from._internal_created()); + } +} + +void EntityMessage_V1::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { +// @@protoc_insertion_point(generalized_copy_from_start:api.EntityMessage_V1) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +void EntityMessage_V1::CopyFrom(const EntityMessage_V1& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:api.EntityMessage_V1) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool EntityMessage_V1::IsInitialized() const { + return true; +} + +void EntityMessage_V1::InternalSwap(EntityMessage_V1* other) { + using std::swap; + _internal_metadata_.Swap(&other->_internal_metadata_); + claims_.Swap(&other->claims_); + guarded_.InternalSwap(&other->guarded_); + guardians_.InternalSwap(&other->guardians_); + members_.InternalSwap(&other->members_); + memberof_.InternalSwap(&other->memberof_); + parents_.InternalSwap(&other->parents_); + children_.InternalSwap(&other->children_); + viewed_.InternalSwap(&other->viewed_); + viewers_.InternalSwap(&other->viewers_); + authenticationkeys_.InternalSwap(&other->authenticationkeys_); + certificates_.InternalSwap(&other->certificates_); + symmetrickeys_.InternalSwap(&other->symmetrickeys_); + passportscounters_.Swap(&other->passportscounters_); + contactstatuses_.Swap(&other->contactstatuses_); + pendingsharingrequests_.InternalSwap(&other->pendingsharingrequests_); + rejectedsharingrequests_.InternalSwap(&other->rejectedsharingrequests_); + uuid_.Swap(&other->uuid_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); + otpsecret_.Swap(&other->otpsecret_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); + entitycertificate_.Swap(&other->entitycertificate_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); + swap(stamp_, other->stamp_); + swap(type_, other->type_); + swap(activated_, other->activated_); + swap(temporary_, other->temporary_); + swap(created_, other->created_); +} + +::PROTOBUF_NAMESPACE_ID::Metadata EntityMessage_V1::GetMetadata() const { + return GetMetadataStatic(); +} + + +// =================================================================== + +EntityMessage_V2_ClaimsEntry_DoNotUse::EntityMessage_V2_ClaimsEntry_DoNotUse() {} +EntityMessage_V2_ClaimsEntry_DoNotUse::EntityMessage_V2_ClaimsEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena) + : SuperType(arena) {} +void EntityMessage_V2_ClaimsEntry_DoNotUse::MergeFrom(const EntityMessage_V2_ClaimsEntry_DoNotUse& other) { + MergeFromInternal(other); +} +::PROTOBUF_NAMESPACE_ID::Metadata EntityMessage_V2_ClaimsEntry_DoNotUse::GetMetadata() const { + return GetMetadataStatic(); +} +void EntityMessage_V2_ClaimsEntry_DoNotUse::MergeFrom( + const ::PROTOBUF_NAMESPACE_ID::Message& other) { + ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom(other); +} + + +// =================================================================== + +EntityMessage_V2_GuardedEntry_DoNotUse::EntityMessage_V2_GuardedEntry_DoNotUse() {} +EntityMessage_V2_GuardedEntry_DoNotUse::EntityMessage_V2_GuardedEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena) + : SuperType(arena) {} +void EntityMessage_V2_GuardedEntry_DoNotUse::MergeFrom(const EntityMessage_V2_GuardedEntry_DoNotUse& other) { + MergeFromInternal(other); +} +::PROTOBUF_NAMESPACE_ID::Metadata EntityMessage_V2_GuardedEntry_DoNotUse::GetMetadata() const { + return GetMetadataStatic(); +} +void EntityMessage_V2_GuardedEntry_DoNotUse::MergeFrom( + const ::PROTOBUF_NAMESPACE_ID::Message& other) { + ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom(other); +} + + +// =================================================================== + +EntityMessage_V2_GuardiansEntry_DoNotUse::EntityMessage_V2_GuardiansEntry_DoNotUse() {} +EntityMessage_V2_GuardiansEntry_DoNotUse::EntityMessage_V2_GuardiansEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena) + : SuperType(arena) {} +void EntityMessage_V2_GuardiansEntry_DoNotUse::MergeFrom(const EntityMessage_V2_GuardiansEntry_DoNotUse& other) { + MergeFromInternal(other); +} +::PROTOBUF_NAMESPACE_ID::Metadata EntityMessage_V2_GuardiansEntry_DoNotUse::GetMetadata() const { + return GetMetadataStatic(); +} +void EntityMessage_V2_GuardiansEntry_DoNotUse::MergeFrom( + const ::PROTOBUF_NAMESPACE_ID::Message& other) { + ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom(other); +} + + +// =================================================================== + +EntityMessage_V2_MembersEntry_DoNotUse::EntityMessage_V2_MembersEntry_DoNotUse() {} +EntityMessage_V2_MembersEntry_DoNotUse::EntityMessage_V2_MembersEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena) + : SuperType(arena) {} +void EntityMessage_V2_MembersEntry_DoNotUse::MergeFrom(const EntityMessage_V2_MembersEntry_DoNotUse& other) { + MergeFromInternal(other); +} +::PROTOBUF_NAMESPACE_ID::Metadata EntityMessage_V2_MembersEntry_DoNotUse::GetMetadata() const { + return GetMetadataStatic(); +} +void EntityMessage_V2_MembersEntry_DoNotUse::MergeFrom( + const ::PROTOBUF_NAMESPACE_ID::Message& other) { + ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom(other); +} + + +// =================================================================== + +EntityMessage_V2_MemberOfEntry_DoNotUse::EntityMessage_V2_MemberOfEntry_DoNotUse() {} +EntityMessage_V2_MemberOfEntry_DoNotUse::EntityMessage_V2_MemberOfEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena) + : SuperType(arena) {} +void EntityMessage_V2_MemberOfEntry_DoNotUse::MergeFrom(const EntityMessage_V2_MemberOfEntry_DoNotUse& other) { + MergeFromInternal(other); +} +::PROTOBUF_NAMESPACE_ID::Metadata EntityMessage_V2_MemberOfEntry_DoNotUse::GetMetadata() const { + return GetMetadataStatic(); +} +void EntityMessage_V2_MemberOfEntry_DoNotUse::MergeFrom( + const ::PROTOBUF_NAMESPACE_ID::Message& other) { + ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom(other); +} + + +// =================================================================== + +EntityMessage_V2_ParentsEntry_DoNotUse::EntityMessage_V2_ParentsEntry_DoNotUse() {} +EntityMessage_V2_ParentsEntry_DoNotUse::EntityMessage_V2_ParentsEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena) + : SuperType(arena) {} +void EntityMessage_V2_ParentsEntry_DoNotUse::MergeFrom(const EntityMessage_V2_ParentsEntry_DoNotUse& other) { + MergeFromInternal(other); +} +::PROTOBUF_NAMESPACE_ID::Metadata EntityMessage_V2_ParentsEntry_DoNotUse::GetMetadata() const { + return GetMetadataStatic(); +} +void EntityMessage_V2_ParentsEntry_DoNotUse::MergeFrom( + const ::PROTOBUF_NAMESPACE_ID::Message& other) { + ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom(other); +} + + +// =================================================================== + +EntityMessage_V2_ChildrenEntry_DoNotUse::EntityMessage_V2_ChildrenEntry_DoNotUse() {} +EntityMessage_V2_ChildrenEntry_DoNotUse::EntityMessage_V2_ChildrenEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena) + : SuperType(arena) {} +void EntityMessage_V2_ChildrenEntry_DoNotUse::MergeFrom(const EntityMessage_V2_ChildrenEntry_DoNotUse& other) { + MergeFromInternal(other); +} +::PROTOBUF_NAMESPACE_ID::Metadata EntityMessage_V2_ChildrenEntry_DoNotUse::GetMetadata() const { + return GetMetadataStatic(); +} +void EntityMessage_V2_ChildrenEntry_DoNotUse::MergeFrom( + const ::PROTOBUF_NAMESPACE_ID::Message& other) { + ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom(other); +} + + +// =================================================================== + +EntityMessage_V2_ViewedEntry_DoNotUse::EntityMessage_V2_ViewedEntry_DoNotUse() {} +EntityMessage_V2_ViewedEntry_DoNotUse::EntityMessage_V2_ViewedEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena) + : SuperType(arena) {} +void EntityMessage_V2_ViewedEntry_DoNotUse::MergeFrom(const EntityMessage_V2_ViewedEntry_DoNotUse& other) { + MergeFromInternal(other); +} +::PROTOBUF_NAMESPACE_ID::Metadata EntityMessage_V2_ViewedEntry_DoNotUse::GetMetadata() const { + return GetMetadataStatic(); +} +void EntityMessage_V2_ViewedEntry_DoNotUse::MergeFrom( + const ::PROTOBUF_NAMESPACE_ID::Message& other) { + ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom(other); +} + + +// =================================================================== + +EntityMessage_V2_ViewersEntry_DoNotUse::EntityMessage_V2_ViewersEntry_DoNotUse() {} +EntityMessage_V2_ViewersEntry_DoNotUse::EntityMessage_V2_ViewersEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena) + : SuperType(arena) {} +void EntityMessage_V2_ViewersEntry_DoNotUse::MergeFrom(const EntityMessage_V2_ViewersEntry_DoNotUse& other) { + MergeFromInternal(other); +} +::PROTOBUF_NAMESPACE_ID::Metadata EntityMessage_V2_ViewersEntry_DoNotUse::GetMetadata() const { + return GetMetadataStatic(); +} +void EntityMessage_V2_ViewersEntry_DoNotUse::MergeFrom( + const ::PROTOBUF_NAMESPACE_ID::Message& other) { + ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom(other); +} + + +// =================================================================== + +EntityMessage_V2_PassportsCountersEntry_DoNotUse::EntityMessage_V2_PassportsCountersEntry_DoNotUse() {} +EntityMessage_V2_PassportsCountersEntry_DoNotUse::EntityMessage_V2_PassportsCountersEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena) + : SuperType(arena) {} +void EntityMessage_V2_PassportsCountersEntry_DoNotUse::MergeFrom(const EntityMessage_V2_PassportsCountersEntry_DoNotUse& other) { + MergeFromInternal(other); +} +::PROTOBUF_NAMESPACE_ID::Metadata EntityMessage_V2_PassportsCountersEntry_DoNotUse::GetMetadata() const { + return GetMetadataStatic(); +} +void EntityMessage_V2_PassportsCountersEntry_DoNotUse::MergeFrom( + const ::PROTOBUF_NAMESPACE_ID::Message& other) { + ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom(other); +} + + +// =================================================================== + +EntityMessage_V2_ContactStatusesEntry_DoNotUse::EntityMessage_V2_ContactStatusesEntry_DoNotUse() {} +EntityMessage_V2_ContactStatusesEntry_DoNotUse::EntityMessage_V2_ContactStatusesEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena) + : SuperType(arena) {} +void EntityMessage_V2_ContactStatusesEntry_DoNotUse::MergeFrom(const EntityMessage_V2_ContactStatusesEntry_DoNotUse& other) { + MergeFromInternal(other); +} +::PROTOBUF_NAMESPACE_ID::Metadata EntityMessage_V2_ContactStatusesEntry_DoNotUse::GetMetadata() const { + return GetMetadataStatic(); +} +void EntityMessage_V2_ContactStatusesEntry_DoNotUse::MergeFrom( + const ::PROTOBUF_NAMESPACE_ID::Message& other) { + ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom(other); +} + + +// =================================================================== + +EntityMessage_V2_OrdersEntry_DoNotUse::EntityMessage_V2_OrdersEntry_DoNotUse() {} +EntityMessage_V2_OrdersEntry_DoNotUse::EntityMessage_V2_OrdersEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena) + : SuperType(arena) {} +void EntityMessage_V2_OrdersEntry_DoNotUse::MergeFrom(const EntityMessage_V2_OrdersEntry_DoNotUse& other) { + MergeFromInternal(other); +} +::PROTOBUF_NAMESPACE_ID::Metadata EntityMessage_V2_OrdersEntry_DoNotUse::GetMetadata() const { + return GetMetadataStatic(); +} +void EntityMessage_V2_OrdersEntry_DoNotUse::MergeFrom( + const ::PROTOBUF_NAMESPACE_ID::Message& other) { + ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom(other); +} + + +// =================================================================== + +EntityMessage_V2_SystemParentsEntry_DoNotUse::EntityMessage_V2_SystemParentsEntry_DoNotUse() {} +EntityMessage_V2_SystemParentsEntry_DoNotUse::EntityMessage_V2_SystemParentsEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena) + : SuperType(arena) {} +void EntityMessage_V2_SystemParentsEntry_DoNotUse::MergeFrom(const EntityMessage_V2_SystemParentsEntry_DoNotUse& other) { + MergeFromInternal(other); +} +::PROTOBUF_NAMESPACE_ID::Metadata EntityMessage_V2_SystemParentsEntry_DoNotUse::GetMetadata() const { + return GetMetadataStatic(); +} +void EntityMessage_V2_SystemParentsEntry_DoNotUse::MergeFrom( + const ::PROTOBUF_NAMESPACE_ID::Message& other) { + ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom(other); +} + + +// =================================================================== + +EntityMessage_V2_SystemChildrenEntry_DoNotUse::EntityMessage_V2_SystemChildrenEntry_DoNotUse() {} +EntityMessage_V2_SystemChildrenEntry_DoNotUse::EntityMessage_V2_SystemChildrenEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena) + : SuperType(arena) {} +void EntityMessage_V2_SystemChildrenEntry_DoNotUse::MergeFrom(const EntityMessage_V2_SystemChildrenEntry_DoNotUse& other) { + MergeFromInternal(other); +} +::PROTOBUF_NAMESPACE_ID::Metadata EntityMessage_V2_SystemChildrenEntry_DoNotUse::GetMetadata() const { + return GetMetadataStatic(); +} +void EntityMessage_V2_SystemChildrenEntry_DoNotUse::MergeFrom( + const ::PROTOBUF_NAMESPACE_ID::Message& other) { + ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom(other); +} + + +// =================================================================== + +void EntityMessage_V2::InitAsDefaultInstance() { +} +class EntityMessage_V2::_Internal { + public: +}; + +EntityMessage_V2::EntityMessage_V2() + : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) { + SharedCtor(); + // @@protoc_insertion_point(constructor:api.EntityMessage_V2) +} +EntityMessage_V2::EntityMessage_V2(const EntityMessage_V2& from) + : ::PROTOBUF_NAMESPACE_ID::Message(), + _internal_metadata_(nullptr), + authenticationkeys_(from.authenticationkeys_), + certificates_(from.certificates_), + symmetrickeys_(from.symmetrickeys_), + pendingsharingrequests_(from.pendingsharingrequests_), + rejectedsharingrequests_(from.rejectedsharingrequests_) { + _internal_metadata_.MergeFrom(from._internal_metadata_); + claims_.MergeFrom(from.claims_); + guarded_.MergeFrom(from.guarded_); + guardians_.MergeFrom(from.guardians_); + members_.MergeFrom(from.members_); + memberof_.MergeFrom(from.memberof_); + parents_.MergeFrom(from.parents_); + children_.MergeFrom(from.children_); + viewed_.MergeFrom(from.viewed_); + viewers_.MergeFrom(from.viewers_); + passportscounters_.MergeFrom(from.passportscounters_); + contactstatuses_.MergeFrom(from.contactstatuses_); + orders_.MergeFrom(from.orders_); + systemparents_.MergeFrom(from.systemparents_); + systemchildren_.MergeFrom(from.systemchildren_); + uuid_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + if (!from._internal_uuid().empty()) { + uuid_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.uuid_); + } + otpsecret_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + if (!from._internal_otpsecret().empty()) { + otpsecret_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.otpsecret_); + } + entitycertificate_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + if (!from._internal_entitycertificate().empty()) { + entitycertificate_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.entitycertificate_); + } + ::memcpy(&stamp_, &from.stamp_, + static_cast<size_t>(reinterpret_cast<char*>(&shared_) - + reinterpret_cast<char*>(&stamp_)) + sizeof(shared_)); + // @@protoc_insertion_point(copy_constructor:api.EntityMessage_V2) +} + +void EntityMessage_V2::SharedCtor() { + ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_EntityMessage_V2_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base); + uuid_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + otpsecret_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + entitycertificate_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + ::memset(&stamp_, 0, static_cast<size_t>( + reinterpret_cast<char*>(&shared_) - + reinterpret_cast<char*>(&stamp_)) + sizeof(shared_)); +} + +EntityMessage_V2::~EntityMessage_V2() { + // @@protoc_insertion_point(destructor:api.EntityMessage_V2) + SharedDtor(); +} + +void EntityMessage_V2::SharedDtor() { + uuid_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + otpsecret_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + entitycertificate_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} + +void EntityMessage_V2::SetCachedSize(int size) const { + _cached_size_.Set(size); +} +const EntityMessage_V2& EntityMessage_V2::default_instance() { + ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_EntityMessage_V2_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base); + return *internal_default_instance(); +} + + +void EntityMessage_V2::Clear() { +// @@protoc_insertion_point(message_clear_start:api.EntityMessage_V2) + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + claims_.Clear(); + guarded_.Clear(); + guardians_.Clear(); + members_.Clear(); + memberof_.Clear(); + parents_.Clear(); + children_.Clear(); + viewed_.Clear(); + viewers_.Clear(); + authenticationkeys_.Clear(); + certificates_.Clear(); + symmetrickeys_.Clear(); + passportscounters_.Clear(); + contactstatuses_.Clear(); + pendingsharingrequests_.Clear(); + rejectedsharingrequests_.Clear(); + orders_.Clear(); + systemparents_.Clear(); + systemchildren_.Clear(); + uuid_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + otpsecret_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + entitycertificate_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + ::memset(&stamp_, 0, static_cast<size_t>( + reinterpret_cast<char*>(&shared_) - + reinterpret_cast<char*>(&stamp_)) + sizeof(shared_)); + _internal_metadata_.Clear(); +} + +const char* EntityMessage_V2::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + ::PROTOBUF_NAMESPACE_ID::uint32 tag; + ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag); + CHK_(ptr); + switch (tag >> 3) { + // string uuid = 1; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) { + auto str = _internal_mutable_uuid(); + ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); + CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "api.EntityMessage_V2.uuid")); + CHK_(ptr); + } else goto handle_unusual; + continue; + // .api.EntityType type = 2; + case 2: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) { + ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr); + CHK_(ptr); + _internal_set_type(static_cast<::api::EntityType>(val)); + } else goto handle_unusual; + continue; + // map<string, .api.ClaimTagsMap_V1> claims = 3; + case 3: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) { + ptr -= 1; + do { + ptr += 1; + ptr = ctx->ParseMessage(&claims_, ptr); + CHK_(ptr); + if (!ctx->DataAvailable(ptr)) break; + } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<26>(ptr)); + } else goto handle_unusual; + continue; + // map<string, .api.RelationStatus> guarded = 4; + case 4: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) { + ptr -= 1; + do { + ptr += 1; + ptr = ctx->ParseMessage(&guarded_, ptr); + CHK_(ptr); + if (!ctx->DataAvailable(ptr)) break; + } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<34>(ptr)); + } else goto handle_unusual; + continue; + // map<string, .api.RelationStatus> guardians = 5; + case 5: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) { + ptr -= 1; + do { + ptr += 1; + ptr = ctx->ParseMessage(&guardians_, ptr); + CHK_(ptr); + if (!ctx->DataAvailable(ptr)) break; + } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<42>(ptr)); + } else goto handle_unusual; + continue; + // map<string, .api.RelationStatus> members = 6; + case 6: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 50)) { + ptr -= 1; + do { + ptr += 1; + ptr = ctx->ParseMessage(&members_, ptr); + CHK_(ptr); + if (!ctx->DataAvailable(ptr)) break; + } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<50>(ptr)); + } else goto handle_unusual; + continue; + // map<string, .api.RelationStatus> memberOf = 7; + case 7: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 58)) { + ptr -= 1; + do { + ptr += 1; + ptr = ctx->ParseMessage(&memberof_, ptr); + CHK_(ptr); + if (!ctx->DataAvailable(ptr)) break; + } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<58>(ptr)); + } else goto handle_unusual; + continue; + // map<string, .api.RelationStatus> parents = 8; + case 8: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 66)) { + ptr -= 1; + do { + ptr += 1; + ptr = ctx->ParseMessage(&parents_, ptr); + CHK_(ptr); + if (!ctx->DataAvailable(ptr)) break; + } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<66>(ptr)); + } else goto handle_unusual; + continue; + // map<string, .api.RelationStatus> children = 9; + case 9: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 74)) { + ptr -= 1; + do { + ptr += 1; + ptr = ctx->ParseMessage(&children_, ptr); + CHK_(ptr); + if (!ctx->DataAvailable(ptr)) break; + } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<74>(ptr)); + } else goto handle_unusual; + continue; + // int64 stamp = 11; + case 11: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 88)) { + stamp_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr); + CHK_(ptr); + } else goto handle_unusual; + continue; + // map<string, .api.RelationStatus> viewed = 12; + case 12: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 98)) { + ptr -= 1; + do { + ptr += 1; + ptr = ctx->ParseMessage(&viewed_, ptr); + CHK_(ptr); + if (!ctx->DataAvailable(ptr)) break; + } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<98>(ptr)); + } else goto handle_unusual; + continue; + // map<string, .api.RelationStatus> viewers = 13; + case 13: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 106)) { + ptr -= 1; + do { + ptr += 1; + ptr = ctx->ParseMessage(&viewers_, ptr); + CHK_(ptr); + if (!ctx->DataAvailable(ptr)) break; + } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<106>(ptr)); + } else goto handle_unusual; + continue; + // string otpSecret = 14; + case 14: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 114)) { + auto str = _internal_mutable_otpsecret(); + ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); + CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "api.EntityMessage_V2.otpSecret")); + CHK_(ptr); + } else goto handle_unusual; + continue; + // bool activated = 15; + case 15: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 120)) { + activated_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr); + CHK_(ptr); + } else goto handle_unusual; + continue; + // repeated string authenticationKeys = 16; + case 16: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 130)) { + ptr -= 2; + do { + ptr += 2; + auto str = _internal_add_authenticationkeys(); + ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); + CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "api.EntityMessage_V2.authenticationKeys")); + CHK_(ptr); + if (!ctx->DataAvailable(ptr)) break; + } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<130>(ptr)); + } else goto handle_unusual; + continue; + // repeated string certificates = 17; + case 17: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 138)) { + ptr -= 2; + do { + ptr += 2; + auto str = _internal_add_certificates(); + ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); + CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "api.EntityMessage_V2.certificates")); + CHK_(ptr); + if (!ctx->DataAvailable(ptr)) break; + } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<138>(ptr)); + } else goto handle_unusual; + continue; + // string entityCertificate = 18; + case 18: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 146)) { + auto str = _internal_mutable_entitycertificate(); + ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); + CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "api.EntityMessage_V2.entityCertificate")); + CHK_(ptr); + } else goto handle_unusual; + continue; + // repeated string symmetricKeys = 19; + case 19: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 154)) { + ptr -= 2; + do { + ptr += 2; + auto str = _internal_add_symmetrickeys(); + ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); + CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "api.EntityMessage_V2.symmetricKeys")); + CHK_(ptr); + if (!ctx->DataAvailable(ptr)) break; + } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<154>(ptr)); + } else goto handle_unusual; + continue; + // int64 created = 20; + case 20: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 160)) { + created_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr); + CHK_(ptr); + } else goto handle_unusual; + continue; + // map<string, int64> passportsCounters = 21; + case 21: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 170)) { + ptr -= 2; + do { + ptr += 2; + ptr = ctx->ParseMessage(&passportscounters_, ptr); + CHK_(ptr); + if (!ctx->DataAvailable(ptr)) break; + } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<170>(ptr)); + } else goto handle_unusual; + continue; + // map<string, .api.ContactStatus> contactStatuses = 22; + case 22: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 178)) { + ptr -= 2; + do { + ptr += 2; + ptr = ctx->ParseMessage(&contactstatuses_, ptr); + CHK_(ptr); + if (!ctx->DataAvailable(ptr)) break; + } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<178>(ptr)); + } else goto handle_unusual; + continue; + // bool temporary = 23; + case 23: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 184)) { + temporary_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr); + CHK_(ptr); + } else goto handle_unusual; + continue; + // repeated string pendingSharingRequests = 24; + case 24: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 194)) { + ptr -= 2; + do { + ptr += 2; + auto str = _internal_add_pendingsharingrequests(); + ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); + CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "api.EntityMessage_V2.pendingSharingRequests")); + CHK_(ptr); + if (!ctx->DataAvailable(ptr)) break; + } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<194>(ptr)); + } else goto handle_unusual; + continue; + // repeated string rejectedSharingRequests = 25; + case 25: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 202)) { + ptr -= 2; + do { + ptr += 2; + auto str = _internal_add_rejectedsharingrequests(); + ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); + CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "api.EntityMessage_V2.rejectedSharingRequests")); + CHK_(ptr); + if (!ctx->DataAvailable(ptr)) break; + } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<202>(ptr)); + } else goto handle_unusual; + continue; + // bool deleted = 26; + case 26: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 208)) { + deleted_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr); + CHK_(ptr); + } else goto handle_unusual; + continue; + // map<string, .api.OrderStatus> orders = 27; + case 27: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 218)) { + ptr -= 2; + do { + ptr += 2; + ptr = ctx->ParseMessage(&orders_, ptr); + CHK_(ptr); + if (!ctx->DataAvailable(ptr)) break; + } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<218>(ptr)); + } else goto handle_unusual; + continue; + // map<string, .api.RelationStatus> systemParents = 28; + case 28: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 226)) { + ptr -= 2; + do { + ptr += 2; + ptr = ctx->ParseMessage(&systemparents_, ptr); + CHK_(ptr); + if (!ctx->DataAvailable(ptr)) break; + } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<226>(ptr)); + } else goto handle_unusual; + continue; + // map<string, .api.RelationStatus> systemChildren = 29; + case 29: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 234)) { + ptr -= 2; + do { + ptr += 2; + ptr = ctx->ParseMessage(&systemchildren_, ptr); + CHK_(ptr); + if (!ctx->DataAvailable(ptr)) break; + } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<234>(ptr)); + } else goto handle_unusual; + continue; + // bool shared = 30; + case 30: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 240)) { + shared_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr); + CHK_(ptr); + } else goto handle_unusual; + continue; + // bool blocked = 31; + case 31: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 248)) { + blocked_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr); + CHK_(ptr); + } else goto handle_unusual; + continue; + // int64 lastLogin = 32; + case 32: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 0)) { + lastlogin_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr); + CHK_(ptr); + } else goto handle_unusual; + continue; + default: { + handle_unusual: + if ((tag & 7) == 4 || tag == 0) { + ctx->SetLastTag(tag); + goto success; + } + ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx); + CHK_(ptr != nullptr); + continue; + } + } // switch + } // while +success: + return ptr; +failure: + ptr = nullptr; + goto success; +#undef CHK_ +} + +::PROTOBUF_NAMESPACE_ID::uint8* EntityMessage_V2::_InternalSerialize( + ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:api.EntityMessage_V2) + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + // string uuid = 1; + if (this->uuid().size() > 0) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_uuid().data(), static_cast<int>(this->_internal_uuid().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "api.EntityMessage_V2.uuid"); + target = stream->WriteStringMaybeAliased( + 1, this->_internal_uuid(), target); + } + + // .api.EntityType type = 2; + if (this->type() != 0) { + target = stream->EnsureSpace(target); + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray( + 2, this->_internal_type(), target); + } + + // map<string, .api.ClaimTagsMap_V1> claims = 3; + if (!this->_internal_claims().empty()) { + typedef ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::ClaimTagsMap_V1 >::const_pointer + ConstPtr; + typedef ConstPtr SortItem; + typedef ::PROTOBUF_NAMESPACE_ID::internal::CompareByDerefFirst<SortItem> Less; + struct Utf8Check { + static void Check(ConstPtr p) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + p->first.data(), static_cast<int>(p->first.length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "api.EntityMessage_V2.ClaimsEntry.key"); + } + }; + + if (stream->IsSerializationDeterministic() && + this->_internal_claims().size() > 1) { + ::std::unique_ptr<SortItem[]> items( + new SortItem[this->_internal_claims().size()]); + typedef ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::ClaimTagsMap_V1 >::size_type size_type; + size_type n = 0; + for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::ClaimTagsMap_V1 >::const_iterator + it = this->_internal_claims().begin(); + it != this->_internal_claims().end(); ++it, ++n) { + items[static_cast<ptrdiff_t>(n)] = SortItem(&*it); + } + ::std::sort(&items[0], &items[static_cast<ptrdiff_t>(n)], Less()); + for (size_type i = 0; i < n; i++) { + target = EntityMessage_V2_ClaimsEntry_DoNotUse::Funcs::InternalSerialize(3, items[static_cast<ptrdiff_t>(i)]->first, items[static_cast<ptrdiff_t>(i)]->second, target, stream); + Utf8Check::Check(&(*items[static_cast<ptrdiff_t>(i)])); + } + } else { + for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::ClaimTagsMap_V1 >::const_iterator + it = this->_internal_claims().begin(); + it != this->_internal_claims().end(); ++it) { + target = EntityMessage_V2_ClaimsEntry_DoNotUse::Funcs::InternalSerialize(3, it->first, it->second, target, stream); + Utf8Check::Check(&(*it)); + } + } + } + + // map<string, .api.RelationStatus> guarded = 4; + if (!this->_internal_guarded().empty()) { + typedef ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >::const_pointer + ConstPtr; + typedef ConstPtr SortItem; + typedef ::PROTOBUF_NAMESPACE_ID::internal::CompareByDerefFirst<SortItem> Less; + struct Utf8Check { + static void Check(ConstPtr p) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + p->first.data(), static_cast<int>(p->first.length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "api.EntityMessage_V2.GuardedEntry.key"); + } + }; + + if (stream->IsSerializationDeterministic() && + this->_internal_guarded().size() > 1) { + ::std::unique_ptr<SortItem[]> items( + new SortItem[this->_internal_guarded().size()]); + typedef ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >::size_type size_type; + size_type n = 0; + for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >::const_iterator + it = this->_internal_guarded().begin(); + it != this->_internal_guarded().end(); ++it, ++n) { + items[static_cast<ptrdiff_t>(n)] = SortItem(&*it); + } + ::std::sort(&items[0], &items[static_cast<ptrdiff_t>(n)], Less()); + for (size_type i = 0; i < n; i++) { + target = EntityMessage_V2_GuardedEntry_DoNotUse::Funcs::InternalSerialize(4, items[static_cast<ptrdiff_t>(i)]->first, items[static_cast<ptrdiff_t>(i)]->second, target, stream); + Utf8Check::Check(&(*items[static_cast<ptrdiff_t>(i)])); + } + } else { + for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >::const_iterator + it = this->_internal_guarded().begin(); + it != this->_internal_guarded().end(); ++it) { + target = EntityMessage_V2_GuardedEntry_DoNotUse::Funcs::InternalSerialize(4, it->first, it->second, target, stream); + Utf8Check::Check(&(*it)); + } + } + } + + // map<string, .api.RelationStatus> guardians = 5; + if (!this->_internal_guardians().empty()) { + typedef ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >::const_pointer + ConstPtr; + typedef ConstPtr SortItem; + typedef ::PROTOBUF_NAMESPACE_ID::internal::CompareByDerefFirst<SortItem> Less; + struct Utf8Check { + static void Check(ConstPtr p) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + p->first.data(), static_cast<int>(p->first.length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "api.EntityMessage_V2.GuardiansEntry.key"); + } + }; + + if (stream->IsSerializationDeterministic() && + this->_internal_guardians().size() > 1) { + ::std::unique_ptr<SortItem[]> items( + new SortItem[this->_internal_guardians().size()]); + typedef ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >::size_type size_type; + size_type n = 0; + for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >::const_iterator + it = this->_internal_guardians().begin(); + it != this->_internal_guardians().end(); ++it, ++n) { + items[static_cast<ptrdiff_t>(n)] = SortItem(&*it); + } + ::std::sort(&items[0], &items[static_cast<ptrdiff_t>(n)], Less()); + for (size_type i = 0; i < n; i++) { + target = EntityMessage_V2_GuardiansEntry_DoNotUse::Funcs::InternalSerialize(5, items[static_cast<ptrdiff_t>(i)]->first, items[static_cast<ptrdiff_t>(i)]->second, target, stream); + Utf8Check::Check(&(*items[static_cast<ptrdiff_t>(i)])); + } + } else { + for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >::const_iterator + it = this->_internal_guardians().begin(); + it != this->_internal_guardians().end(); ++it) { + target = EntityMessage_V2_GuardiansEntry_DoNotUse::Funcs::InternalSerialize(5, it->first, it->second, target, stream); + Utf8Check::Check(&(*it)); + } + } + } + + // map<string, .api.RelationStatus> members = 6; + if (!this->_internal_members().empty()) { + typedef ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >::const_pointer + ConstPtr; + typedef ConstPtr SortItem; + typedef ::PROTOBUF_NAMESPACE_ID::internal::CompareByDerefFirst<SortItem> Less; + struct Utf8Check { + static void Check(ConstPtr p) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + p->first.data(), static_cast<int>(p->first.length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "api.EntityMessage_V2.MembersEntry.key"); + } + }; + + if (stream->IsSerializationDeterministic() && + this->_internal_members().size() > 1) { + ::std::unique_ptr<SortItem[]> items( + new SortItem[this->_internal_members().size()]); + typedef ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >::size_type size_type; + size_type n = 0; + for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >::const_iterator + it = this->_internal_members().begin(); + it != this->_internal_members().end(); ++it, ++n) { + items[static_cast<ptrdiff_t>(n)] = SortItem(&*it); + } + ::std::sort(&items[0], &items[static_cast<ptrdiff_t>(n)], Less()); + for (size_type i = 0; i < n; i++) { + target = EntityMessage_V2_MembersEntry_DoNotUse::Funcs::InternalSerialize(6, items[static_cast<ptrdiff_t>(i)]->first, items[static_cast<ptrdiff_t>(i)]->second, target, stream); + Utf8Check::Check(&(*items[static_cast<ptrdiff_t>(i)])); + } + } else { + for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >::const_iterator + it = this->_internal_members().begin(); + it != this->_internal_members().end(); ++it) { + target = EntityMessage_V2_MembersEntry_DoNotUse::Funcs::InternalSerialize(6, it->first, it->second, target, stream); + Utf8Check::Check(&(*it)); + } + } + } + + // map<string, .api.RelationStatus> memberOf = 7; + if (!this->_internal_memberof().empty()) { + typedef ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >::const_pointer + ConstPtr; + typedef ConstPtr SortItem; + typedef ::PROTOBUF_NAMESPACE_ID::internal::CompareByDerefFirst<SortItem> Less; + struct Utf8Check { + static void Check(ConstPtr p) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + p->first.data(), static_cast<int>(p->first.length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "api.EntityMessage_V2.MemberOfEntry.key"); + } + }; + + if (stream->IsSerializationDeterministic() && + this->_internal_memberof().size() > 1) { + ::std::unique_ptr<SortItem[]> items( + new SortItem[this->_internal_memberof().size()]); + typedef ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >::size_type size_type; + size_type n = 0; + for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >::const_iterator + it = this->_internal_memberof().begin(); + it != this->_internal_memberof().end(); ++it, ++n) { + items[static_cast<ptrdiff_t>(n)] = SortItem(&*it); + } + ::std::sort(&items[0], &items[static_cast<ptrdiff_t>(n)], Less()); + for (size_type i = 0; i < n; i++) { + target = EntityMessage_V2_MemberOfEntry_DoNotUse::Funcs::InternalSerialize(7, items[static_cast<ptrdiff_t>(i)]->first, items[static_cast<ptrdiff_t>(i)]->second, target, stream); + Utf8Check::Check(&(*items[static_cast<ptrdiff_t>(i)])); + } + } else { + for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >::const_iterator + it = this->_internal_memberof().begin(); + it != this->_internal_memberof().end(); ++it) { + target = EntityMessage_V2_MemberOfEntry_DoNotUse::Funcs::InternalSerialize(7, it->first, it->second, target, stream); + Utf8Check::Check(&(*it)); + } + } + } + + // map<string, .api.RelationStatus> parents = 8; + if (!this->_internal_parents().empty()) { + typedef ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >::const_pointer + ConstPtr; + typedef ConstPtr SortItem; + typedef ::PROTOBUF_NAMESPACE_ID::internal::CompareByDerefFirst<SortItem> Less; + struct Utf8Check { + static void Check(ConstPtr p) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + p->first.data(), static_cast<int>(p->first.length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "api.EntityMessage_V2.ParentsEntry.key"); + } + }; + + if (stream->IsSerializationDeterministic() && + this->_internal_parents().size() > 1) { + ::std::unique_ptr<SortItem[]> items( + new SortItem[this->_internal_parents().size()]); + typedef ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >::size_type size_type; + size_type n = 0; + for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >::const_iterator + it = this->_internal_parents().begin(); + it != this->_internal_parents().end(); ++it, ++n) { + items[static_cast<ptrdiff_t>(n)] = SortItem(&*it); + } + ::std::sort(&items[0], &items[static_cast<ptrdiff_t>(n)], Less()); + for (size_type i = 0; i < n; i++) { + target = EntityMessage_V2_ParentsEntry_DoNotUse::Funcs::InternalSerialize(8, items[static_cast<ptrdiff_t>(i)]->first, items[static_cast<ptrdiff_t>(i)]->second, target, stream); + Utf8Check::Check(&(*items[static_cast<ptrdiff_t>(i)])); + } + } else { + for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >::const_iterator + it = this->_internal_parents().begin(); + it != this->_internal_parents().end(); ++it) { + target = EntityMessage_V2_ParentsEntry_DoNotUse::Funcs::InternalSerialize(8, it->first, it->second, target, stream); + Utf8Check::Check(&(*it)); + } + } + } + + // map<string, .api.RelationStatus> children = 9; + if (!this->_internal_children().empty()) { + typedef ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >::const_pointer + ConstPtr; + typedef ConstPtr SortItem; + typedef ::PROTOBUF_NAMESPACE_ID::internal::CompareByDerefFirst<SortItem> Less; + struct Utf8Check { + static void Check(ConstPtr p) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + p->first.data(), static_cast<int>(p->first.length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "api.EntityMessage_V2.ChildrenEntry.key"); + } + }; + + if (stream->IsSerializationDeterministic() && + this->_internal_children().size() > 1) { + ::std::unique_ptr<SortItem[]> items( + new SortItem[this->_internal_children().size()]); + typedef ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >::size_type size_type; + size_type n = 0; + for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >::const_iterator + it = this->_internal_children().begin(); + it != this->_internal_children().end(); ++it, ++n) { + items[static_cast<ptrdiff_t>(n)] = SortItem(&*it); + } + ::std::sort(&items[0], &items[static_cast<ptrdiff_t>(n)], Less()); + for (size_type i = 0; i < n; i++) { + target = EntityMessage_V2_ChildrenEntry_DoNotUse::Funcs::InternalSerialize(9, items[static_cast<ptrdiff_t>(i)]->first, items[static_cast<ptrdiff_t>(i)]->second, target, stream); + Utf8Check::Check(&(*items[static_cast<ptrdiff_t>(i)])); + } + } else { + for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >::const_iterator + it = this->_internal_children().begin(); + it != this->_internal_children().end(); ++it) { + target = EntityMessage_V2_ChildrenEntry_DoNotUse::Funcs::InternalSerialize(9, it->first, it->second, target, stream); + Utf8Check::Check(&(*it)); + } + } + } + + // int64 stamp = 11; + if (this->stamp() != 0) { + target = stream->EnsureSpace(target); + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(11, this->_internal_stamp(), target); + } + + // map<string, .api.RelationStatus> viewed = 12; + if (!this->_internal_viewed().empty()) { + typedef ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >::const_pointer + ConstPtr; + typedef ConstPtr SortItem; + typedef ::PROTOBUF_NAMESPACE_ID::internal::CompareByDerefFirst<SortItem> Less; + struct Utf8Check { + static void Check(ConstPtr p) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + p->first.data(), static_cast<int>(p->first.length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "api.EntityMessage_V2.ViewedEntry.key"); + } + }; + + if (stream->IsSerializationDeterministic() && + this->_internal_viewed().size() > 1) { + ::std::unique_ptr<SortItem[]> items( + new SortItem[this->_internal_viewed().size()]); + typedef ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >::size_type size_type; + size_type n = 0; + for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >::const_iterator + it = this->_internal_viewed().begin(); + it != this->_internal_viewed().end(); ++it, ++n) { + items[static_cast<ptrdiff_t>(n)] = SortItem(&*it); + } + ::std::sort(&items[0], &items[static_cast<ptrdiff_t>(n)], Less()); + for (size_type i = 0; i < n; i++) { + target = EntityMessage_V2_ViewedEntry_DoNotUse::Funcs::InternalSerialize(12, items[static_cast<ptrdiff_t>(i)]->first, items[static_cast<ptrdiff_t>(i)]->second, target, stream); + Utf8Check::Check(&(*items[static_cast<ptrdiff_t>(i)])); + } + } else { + for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >::const_iterator + it = this->_internal_viewed().begin(); + it != this->_internal_viewed().end(); ++it) { + target = EntityMessage_V2_ViewedEntry_DoNotUse::Funcs::InternalSerialize(12, it->first, it->second, target, stream); + Utf8Check::Check(&(*it)); + } + } + } + + // map<string, .api.RelationStatus> viewers = 13; + if (!this->_internal_viewers().empty()) { + typedef ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >::const_pointer + ConstPtr; + typedef ConstPtr SortItem; + typedef ::PROTOBUF_NAMESPACE_ID::internal::CompareByDerefFirst<SortItem> Less; + struct Utf8Check { + static void Check(ConstPtr p) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + p->first.data(), static_cast<int>(p->first.length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "api.EntityMessage_V2.ViewersEntry.key"); + } + }; + + if (stream->IsSerializationDeterministic() && + this->_internal_viewers().size() > 1) { + ::std::unique_ptr<SortItem[]> items( + new SortItem[this->_internal_viewers().size()]); + typedef ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >::size_type size_type; + size_type n = 0; + for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >::const_iterator + it = this->_internal_viewers().begin(); + it != this->_internal_viewers().end(); ++it, ++n) { + items[static_cast<ptrdiff_t>(n)] = SortItem(&*it); + } + ::std::sort(&items[0], &items[static_cast<ptrdiff_t>(n)], Less()); + for (size_type i = 0; i < n; i++) { + target = EntityMessage_V2_ViewersEntry_DoNotUse::Funcs::InternalSerialize(13, items[static_cast<ptrdiff_t>(i)]->first, items[static_cast<ptrdiff_t>(i)]->second, target, stream); + Utf8Check::Check(&(*items[static_cast<ptrdiff_t>(i)])); + } + } else { + for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >::const_iterator + it = this->_internal_viewers().begin(); + it != this->_internal_viewers().end(); ++it) { + target = EntityMessage_V2_ViewersEntry_DoNotUse::Funcs::InternalSerialize(13, it->first, it->second, target, stream); + Utf8Check::Check(&(*it)); + } + } + } + + // string otpSecret = 14; + if (this->otpsecret().size() > 0) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_otpsecret().data(), static_cast<int>(this->_internal_otpsecret().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "api.EntityMessage_V2.otpSecret"); + target = stream->WriteStringMaybeAliased( + 14, this->_internal_otpsecret(), target); + } + + // bool activated = 15; + if (this->activated() != 0) { + target = stream->EnsureSpace(target); + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(15, this->_internal_activated(), target); + } + + // repeated string authenticationKeys = 16; + for (int i = 0, n = this->_internal_authenticationkeys_size(); i < n; i++) { + const auto& s = this->_internal_authenticationkeys(i); + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + s.data(), static_cast<int>(s.length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "api.EntityMessage_V2.authenticationKeys"); + target = stream->WriteString(16, s, target); + } + + // repeated string certificates = 17; + for (int i = 0, n = this->_internal_certificates_size(); i < n; i++) { + const auto& s = this->_internal_certificates(i); + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + s.data(), static_cast<int>(s.length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "api.EntityMessage_V2.certificates"); + target = stream->WriteString(17, s, target); + } + + // string entityCertificate = 18; + if (this->entitycertificate().size() > 0) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_entitycertificate().data(), static_cast<int>(this->_internal_entitycertificate().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "api.EntityMessage_V2.entityCertificate"); + target = stream->WriteStringMaybeAliased( + 18, this->_internal_entitycertificate(), target); + } + + // repeated string symmetricKeys = 19; + for (int i = 0, n = this->_internal_symmetrickeys_size(); i < n; i++) { + const auto& s = this->_internal_symmetrickeys(i); + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + s.data(), static_cast<int>(s.length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "api.EntityMessage_V2.symmetricKeys"); + target = stream->WriteString(19, s, target); + } + + // int64 created = 20; + if (this->created() != 0) { + target = stream->EnsureSpace(target); + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(20, this->_internal_created(), target); + } + + // map<string, int64> passportsCounters = 21; + if (!this->_internal_passportscounters().empty()) { + typedef ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::PROTOBUF_NAMESPACE_ID::int64 >::const_pointer + ConstPtr; + typedef ConstPtr SortItem; + typedef ::PROTOBUF_NAMESPACE_ID::internal::CompareByDerefFirst<SortItem> Less; + struct Utf8Check { + static void Check(ConstPtr p) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + p->first.data(), static_cast<int>(p->first.length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "api.EntityMessage_V2.PassportsCountersEntry.key"); + } + }; + + if (stream->IsSerializationDeterministic() && + this->_internal_passportscounters().size() > 1) { + ::std::unique_ptr<SortItem[]> items( + new SortItem[this->_internal_passportscounters().size()]); + typedef ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::PROTOBUF_NAMESPACE_ID::int64 >::size_type size_type; + size_type n = 0; + for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::PROTOBUF_NAMESPACE_ID::int64 >::const_iterator + it = this->_internal_passportscounters().begin(); + it != this->_internal_passportscounters().end(); ++it, ++n) { + items[static_cast<ptrdiff_t>(n)] = SortItem(&*it); + } + ::std::sort(&items[0], &items[static_cast<ptrdiff_t>(n)], Less()); + for (size_type i = 0; i < n; i++) { + target = EntityMessage_V2_PassportsCountersEntry_DoNotUse::Funcs::InternalSerialize(21, items[static_cast<ptrdiff_t>(i)]->first, items[static_cast<ptrdiff_t>(i)]->second, target, stream); + Utf8Check::Check(&(*items[static_cast<ptrdiff_t>(i)])); + } + } else { + for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::PROTOBUF_NAMESPACE_ID::int64 >::const_iterator + it = this->_internal_passportscounters().begin(); + it != this->_internal_passportscounters().end(); ++it) { + target = EntityMessage_V2_PassportsCountersEntry_DoNotUse::Funcs::InternalSerialize(21, it->first, it->second, target, stream); + Utf8Check::Check(&(*it)); + } + } + } + + // map<string, .api.ContactStatus> contactStatuses = 22; + if (!this->_internal_contactstatuses().empty()) { + typedef ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::ContactStatus >::const_pointer + ConstPtr; + typedef ConstPtr SortItem; + typedef ::PROTOBUF_NAMESPACE_ID::internal::CompareByDerefFirst<SortItem> Less; + struct Utf8Check { + static void Check(ConstPtr p) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + p->first.data(), static_cast<int>(p->first.length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "api.EntityMessage_V2.ContactStatusesEntry.key"); + } + }; + + if (stream->IsSerializationDeterministic() && + this->_internal_contactstatuses().size() > 1) { + ::std::unique_ptr<SortItem[]> items( + new SortItem[this->_internal_contactstatuses().size()]); + typedef ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::ContactStatus >::size_type size_type; + size_type n = 0; + for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::ContactStatus >::const_iterator + it = this->_internal_contactstatuses().begin(); + it != this->_internal_contactstatuses().end(); ++it, ++n) { + items[static_cast<ptrdiff_t>(n)] = SortItem(&*it); + } + ::std::sort(&items[0], &items[static_cast<ptrdiff_t>(n)], Less()); + for (size_type i = 0; i < n; i++) { + target = EntityMessage_V2_ContactStatusesEntry_DoNotUse::Funcs::InternalSerialize(22, items[static_cast<ptrdiff_t>(i)]->first, items[static_cast<ptrdiff_t>(i)]->second, target, stream); + Utf8Check::Check(&(*items[static_cast<ptrdiff_t>(i)])); + } + } else { + for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::ContactStatus >::const_iterator + it = this->_internal_contactstatuses().begin(); + it != this->_internal_contactstatuses().end(); ++it) { + target = EntityMessage_V2_ContactStatusesEntry_DoNotUse::Funcs::InternalSerialize(22, it->first, it->second, target, stream); + Utf8Check::Check(&(*it)); + } + } + } + + // bool temporary = 23; + if (this->temporary() != 0) { + target = stream->EnsureSpace(target); + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(23, this->_internal_temporary(), target); + } + + // repeated string pendingSharingRequests = 24; + for (int i = 0, n = this->_internal_pendingsharingrequests_size(); i < n; i++) { + const auto& s = this->_internal_pendingsharingrequests(i); + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + s.data(), static_cast<int>(s.length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "api.EntityMessage_V2.pendingSharingRequests"); + target = stream->WriteString(24, s, target); + } + + // repeated string rejectedSharingRequests = 25; + for (int i = 0, n = this->_internal_rejectedsharingrequests_size(); i < n; i++) { + const auto& s = this->_internal_rejectedsharingrequests(i); + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + s.data(), static_cast<int>(s.length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "api.EntityMessage_V2.rejectedSharingRequests"); + target = stream->WriteString(25, s, target); + } + + // bool deleted = 26; + if (this->deleted() != 0) { + target = stream->EnsureSpace(target); + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(26, this->_internal_deleted(), target); + } + + // map<string, .api.OrderStatus> orders = 27; + if (!this->_internal_orders().empty()) { + typedef ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::OrderStatus >::const_pointer + ConstPtr; + typedef ConstPtr SortItem; + typedef ::PROTOBUF_NAMESPACE_ID::internal::CompareByDerefFirst<SortItem> Less; + struct Utf8Check { + static void Check(ConstPtr p) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + p->first.data(), static_cast<int>(p->first.length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "api.EntityMessage_V2.OrdersEntry.key"); + } + }; + + if (stream->IsSerializationDeterministic() && + this->_internal_orders().size() > 1) { + ::std::unique_ptr<SortItem[]> items( + new SortItem[this->_internal_orders().size()]); + typedef ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::OrderStatus >::size_type size_type; + size_type n = 0; + for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::OrderStatus >::const_iterator + it = this->_internal_orders().begin(); + it != this->_internal_orders().end(); ++it, ++n) { + items[static_cast<ptrdiff_t>(n)] = SortItem(&*it); + } + ::std::sort(&items[0], &items[static_cast<ptrdiff_t>(n)], Less()); + for (size_type i = 0; i < n; i++) { + target = EntityMessage_V2_OrdersEntry_DoNotUse::Funcs::InternalSerialize(27, items[static_cast<ptrdiff_t>(i)]->first, items[static_cast<ptrdiff_t>(i)]->second, target, stream); + Utf8Check::Check(&(*items[static_cast<ptrdiff_t>(i)])); + } + } else { + for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::OrderStatus >::const_iterator + it = this->_internal_orders().begin(); + it != this->_internal_orders().end(); ++it) { + target = EntityMessage_V2_OrdersEntry_DoNotUse::Funcs::InternalSerialize(27, it->first, it->second, target, stream); + Utf8Check::Check(&(*it)); + } + } + } + + // map<string, .api.RelationStatus> systemParents = 28; + if (!this->_internal_systemparents().empty()) { + typedef ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >::const_pointer + ConstPtr; + typedef ConstPtr SortItem; + typedef ::PROTOBUF_NAMESPACE_ID::internal::CompareByDerefFirst<SortItem> Less; + struct Utf8Check { + static void Check(ConstPtr p) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + p->first.data(), static_cast<int>(p->first.length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "api.EntityMessage_V2.SystemParentsEntry.key"); + } + }; + + if (stream->IsSerializationDeterministic() && + this->_internal_systemparents().size() > 1) { + ::std::unique_ptr<SortItem[]> items( + new SortItem[this->_internal_systemparents().size()]); + typedef ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >::size_type size_type; + size_type n = 0; + for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >::const_iterator + it = this->_internal_systemparents().begin(); + it != this->_internal_systemparents().end(); ++it, ++n) { + items[static_cast<ptrdiff_t>(n)] = SortItem(&*it); + } + ::std::sort(&items[0], &items[static_cast<ptrdiff_t>(n)], Less()); + for (size_type i = 0; i < n; i++) { + target = EntityMessage_V2_SystemParentsEntry_DoNotUse::Funcs::InternalSerialize(28, items[static_cast<ptrdiff_t>(i)]->first, items[static_cast<ptrdiff_t>(i)]->second, target, stream); + Utf8Check::Check(&(*items[static_cast<ptrdiff_t>(i)])); + } + } else { + for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >::const_iterator + it = this->_internal_systemparents().begin(); + it != this->_internal_systemparents().end(); ++it) { + target = EntityMessage_V2_SystemParentsEntry_DoNotUse::Funcs::InternalSerialize(28, it->first, it->second, target, stream); + Utf8Check::Check(&(*it)); + } + } + } + + // map<string, .api.RelationStatus> systemChildren = 29; + if (!this->_internal_systemchildren().empty()) { + typedef ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >::const_pointer + ConstPtr; + typedef ConstPtr SortItem; + typedef ::PROTOBUF_NAMESPACE_ID::internal::CompareByDerefFirst<SortItem> Less; + struct Utf8Check { + static void Check(ConstPtr p) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + p->first.data(), static_cast<int>(p->first.length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "api.EntityMessage_V2.SystemChildrenEntry.key"); + } + }; + + if (stream->IsSerializationDeterministic() && + this->_internal_systemchildren().size() > 1) { + ::std::unique_ptr<SortItem[]> items( + new SortItem[this->_internal_systemchildren().size()]); + typedef ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >::size_type size_type; + size_type n = 0; + for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >::const_iterator + it = this->_internal_systemchildren().begin(); + it != this->_internal_systemchildren().end(); ++it, ++n) { + items[static_cast<ptrdiff_t>(n)] = SortItem(&*it); + } + ::std::sort(&items[0], &items[static_cast<ptrdiff_t>(n)], Less()); + for (size_type i = 0; i < n; i++) { + target = EntityMessage_V2_SystemChildrenEntry_DoNotUse::Funcs::InternalSerialize(29, items[static_cast<ptrdiff_t>(i)]->first, items[static_cast<ptrdiff_t>(i)]->second, target, stream); + Utf8Check::Check(&(*items[static_cast<ptrdiff_t>(i)])); + } + } else { + for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >::const_iterator + it = this->_internal_systemchildren().begin(); + it != this->_internal_systemchildren().end(); ++it) { + target = EntityMessage_V2_SystemChildrenEntry_DoNotUse::Funcs::InternalSerialize(29, it->first, it->second, target, stream); + Utf8Check::Check(&(*it)); + } + } + } + + // bool shared = 30; + if (this->shared() != 0) { + target = stream->EnsureSpace(target); + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(30, this->_internal_shared(), target); + } + + // bool blocked = 31; + if (this->blocked() != 0) { + target = stream->EnsureSpace(target); + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(31, this->_internal_blocked(), target); + } + + // int64 lastLogin = 32; + if (this->lastlogin() != 0) { + target = stream->EnsureSpace(target); + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(32, this->_internal_lastlogin(), target); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields(), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:api.EntityMessage_V2) + return target; +} + +size_t EntityMessage_V2::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:api.EntityMessage_V2) + size_t total_size = 0; + + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // map<string, .api.ClaimTagsMap_V1> claims = 3; + total_size += 1 * + ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(this->_internal_claims_size()); + for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::ClaimTagsMap_V1 >::const_iterator + it = this->_internal_claims().begin(); + it != this->_internal_claims().end(); ++it) { + total_size += EntityMessage_V2_ClaimsEntry_DoNotUse::Funcs::ByteSizeLong(it->first, it->second); + } + + // map<string, .api.RelationStatus> guarded = 4; + total_size += 1 * + ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(this->_internal_guarded_size()); + for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >::const_iterator + it = this->_internal_guarded().begin(); + it != this->_internal_guarded().end(); ++it) { + total_size += EntityMessage_V2_GuardedEntry_DoNotUse::Funcs::ByteSizeLong(it->first, it->second); + } + + // map<string, .api.RelationStatus> guardians = 5; + total_size += 1 * + ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(this->_internal_guardians_size()); + for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >::const_iterator + it = this->_internal_guardians().begin(); + it != this->_internal_guardians().end(); ++it) { + total_size += EntityMessage_V2_GuardiansEntry_DoNotUse::Funcs::ByteSizeLong(it->first, it->second); + } + + // map<string, .api.RelationStatus> members = 6; + total_size += 1 * + ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(this->_internal_members_size()); + for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >::const_iterator + it = this->_internal_members().begin(); + it != this->_internal_members().end(); ++it) { + total_size += EntityMessage_V2_MembersEntry_DoNotUse::Funcs::ByteSizeLong(it->first, it->second); + } + + // map<string, .api.RelationStatus> memberOf = 7; + total_size += 1 * + ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(this->_internal_memberof_size()); + for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >::const_iterator + it = this->_internal_memberof().begin(); + it != this->_internal_memberof().end(); ++it) { + total_size += EntityMessage_V2_MemberOfEntry_DoNotUse::Funcs::ByteSizeLong(it->first, it->second); + } + + // map<string, .api.RelationStatus> parents = 8; + total_size += 1 * + ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(this->_internal_parents_size()); + for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >::const_iterator + it = this->_internal_parents().begin(); + it != this->_internal_parents().end(); ++it) { + total_size += EntityMessage_V2_ParentsEntry_DoNotUse::Funcs::ByteSizeLong(it->first, it->second); + } + + // map<string, .api.RelationStatus> children = 9; + total_size += 1 * + ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(this->_internal_children_size()); + for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >::const_iterator + it = this->_internal_children().begin(); + it != this->_internal_children().end(); ++it) { + total_size += EntityMessage_V2_ChildrenEntry_DoNotUse::Funcs::ByteSizeLong(it->first, it->second); + } + + // map<string, .api.RelationStatus> viewed = 12; + total_size += 1 * + ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(this->_internal_viewed_size()); + for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >::const_iterator + it = this->_internal_viewed().begin(); + it != this->_internal_viewed().end(); ++it) { + total_size += EntityMessage_V2_ViewedEntry_DoNotUse::Funcs::ByteSizeLong(it->first, it->second); + } + + // map<string, .api.RelationStatus> viewers = 13; + total_size += 1 * + ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(this->_internal_viewers_size()); + for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >::const_iterator + it = this->_internal_viewers().begin(); + it != this->_internal_viewers().end(); ++it) { + total_size += EntityMessage_V2_ViewersEntry_DoNotUse::Funcs::ByteSizeLong(it->first, it->second); + } + + // repeated string authenticationKeys = 16; + total_size += 2 * + ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(authenticationkeys_.size()); + for (int i = 0, n = authenticationkeys_.size(); i < n; i++) { + total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + authenticationkeys_.Get(i)); + } + + // repeated string certificates = 17; + total_size += 2 * + ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(certificates_.size()); + for (int i = 0, n = certificates_.size(); i < n; i++) { + total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + certificates_.Get(i)); + } + + // repeated string symmetricKeys = 19; + total_size += 2 * + ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(symmetrickeys_.size()); + for (int i = 0, n = symmetrickeys_.size(); i < n; i++) { + total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + symmetrickeys_.Get(i)); + } + + // map<string, int64> passportsCounters = 21; + total_size += 2 * + ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(this->_internal_passportscounters_size()); + for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::PROTOBUF_NAMESPACE_ID::int64 >::const_iterator + it = this->_internal_passportscounters().begin(); + it != this->_internal_passportscounters().end(); ++it) { + total_size += EntityMessage_V2_PassportsCountersEntry_DoNotUse::Funcs::ByteSizeLong(it->first, it->second); + } + + // map<string, .api.ContactStatus> contactStatuses = 22; + total_size += 2 * + ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(this->_internal_contactstatuses_size()); + for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::ContactStatus >::const_iterator + it = this->_internal_contactstatuses().begin(); + it != this->_internal_contactstatuses().end(); ++it) { + total_size += EntityMessage_V2_ContactStatusesEntry_DoNotUse::Funcs::ByteSizeLong(it->first, it->second); + } + + // repeated string pendingSharingRequests = 24; + total_size += 2 * + ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(pendingsharingrequests_.size()); + for (int i = 0, n = pendingsharingrequests_.size(); i < n; i++) { + total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + pendingsharingrequests_.Get(i)); + } + + // repeated string rejectedSharingRequests = 25; + total_size += 2 * + ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(rejectedsharingrequests_.size()); + for (int i = 0, n = rejectedsharingrequests_.size(); i < n; i++) { + total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + rejectedsharingrequests_.Get(i)); + } + + // map<string, .api.OrderStatus> orders = 27; + total_size += 2 * + ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(this->_internal_orders_size()); + for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::OrderStatus >::const_iterator + it = this->_internal_orders().begin(); + it != this->_internal_orders().end(); ++it) { + total_size += EntityMessage_V2_OrdersEntry_DoNotUse::Funcs::ByteSizeLong(it->first, it->second); + } + + // map<string, .api.RelationStatus> systemParents = 28; + total_size += 2 * + ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(this->_internal_systemparents_size()); + for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >::const_iterator + it = this->_internal_systemparents().begin(); + it != this->_internal_systemparents().end(); ++it) { + total_size += EntityMessage_V2_SystemParentsEntry_DoNotUse::Funcs::ByteSizeLong(it->first, it->second); + } + + // map<string, .api.RelationStatus> systemChildren = 29; + total_size += 2 * + ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(this->_internal_systemchildren_size()); + for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >::const_iterator + it = this->_internal_systemchildren().begin(); + it != this->_internal_systemchildren().end(); ++it) { + total_size += EntityMessage_V2_SystemChildrenEntry_DoNotUse::Funcs::ByteSizeLong(it->first, it->second); + } + + // string uuid = 1; + if (this->uuid().size() > 0) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_uuid()); + } + + // string otpSecret = 14; + if (this->otpsecret().size() > 0) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_otpsecret()); + } + + // string entityCertificate = 18; + if (this->entitycertificate().size() > 0) { + total_size += 2 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_entitycertificate()); + } + + // int64 stamp = 11; + if (this->stamp() != 0) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size( + this->_internal_stamp()); + } + + // .api.EntityType type = 2; + if (this->type() != 0) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_type()); + } + + // bool activated = 15; + if (this->activated() != 0) { + total_size += 1 + 1; + } + + // bool blocked = 31; + if (this->blocked() != 0) { + total_size += 2 + 1; + } + + // bool temporary = 23; + if (this->temporary() != 0) { + total_size += 2 + 1; + } + + // bool deleted = 26; + if (this->deleted() != 0) { + total_size += 2 + 1; + } + + // int64 created = 20; + if (this->created() != 0) { + total_size += 2 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size( + this->_internal_created()); + } + + // int64 lastLogin = 32; + if (this->lastlogin() != 0) { + total_size += 2 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size( + this->_internal_lastlogin()); + } + + // bool shared = 30; + if (this->shared() != 0) { + total_size += 2 + 1; + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize( + _internal_metadata_, total_size, &_cached_size_); + } + int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size); + SetCachedSize(cached_size); + return total_size; +} + +void EntityMessage_V2::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { +// @@protoc_insertion_point(generalized_merge_from_start:api.EntityMessage_V2) + GOOGLE_DCHECK_NE(&from, this); + const EntityMessage_V2* source = + ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<EntityMessage_V2>( + &from); + if (source == nullptr) { + // @@protoc_insertion_point(generalized_merge_from_cast_fail:api.EntityMessage_V2) + ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this); + } else { + // @@protoc_insertion_point(generalized_merge_from_cast_success:api.EntityMessage_V2) + MergeFrom(*source); + } +} + +void EntityMessage_V2::MergeFrom(const EntityMessage_V2& from) { +// @@protoc_insertion_point(class_specific_merge_from_start:api.EntityMessage_V2) + GOOGLE_DCHECK_NE(&from, this); + _internal_metadata_.MergeFrom(from._internal_metadata_); + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + claims_.MergeFrom(from.claims_); + guarded_.MergeFrom(from.guarded_); + guardians_.MergeFrom(from.guardians_); + members_.MergeFrom(from.members_); + memberof_.MergeFrom(from.memberof_); + parents_.MergeFrom(from.parents_); + children_.MergeFrom(from.children_); + viewed_.MergeFrom(from.viewed_); + viewers_.MergeFrom(from.viewers_); + authenticationkeys_.MergeFrom(from.authenticationkeys_); + certificates_.MergeFrom(from.certificates_); + symmetrickeys_.MergeFrom(from.symmetrickeys_); + passportscounters_.MergeFrom(from.passportscounters_); + contactstatuses_.MergeFrom(from.contactstatuses_); + pendingsharingrequests_.MergeFrom(from.pendingsharingrequests_); + rejectedsharingrequests_.MergeFrom(from.rejectedsharingrequests_); + orders_.MergeFrom(from.orders_); + systemparents_.MergeFrom(from.systemparents_); + systemchildren_.MergeFrom(from.systemchildren_); + if (from.uuid().size() > 0) { + + uuid_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.uuid_); + } + if (from.otpsecret().size() > 0) { + + otpsecret_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.otpsecret_); + } + if (from.entitycertificate().size() > 0) { + + entitycertificate_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.entitycertificate_); + } + if (from.stamp() != 0) { + _internal_set_stamp(from._internal_stamp()); + } + if (from.type() != 0) { + _internal_set_type(from._internal_type()); + } + if (from.activated() != 0) { + _internal_set_activated(from._internal_activated()); + } + if (from.blocked() != 0) { + _internal_set_blocked(from._internal_blocked()); + } + if (from.temporary() != 0) { + _internal_set_temporary(from._internal_temporary()); + } + if (from.deleted() != 0) { + _internal_set_deleted(from._internal_deleted()); + } + if (from.created() != 0) { + _internal_set_created(from._internal_created()); + } + if (from.lastlogin() != 0) { + _internal_set_lastlogin(from._internal_lastlogin()); + } + if (from.shared() != 0) { + _internal_set_shared(from._internal_shared()); + } +} + +void EntityMessage_V2::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { +// @@protoc_insertion_point(generalized_copy_from_start:api.EntityMessage_V2) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +void EntityMessage_V2::CopyFrom(const EntityMessage_V2& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:api.EntityMessage_V2) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool EntityMessage_V2::IsInitialized() const { + return true; +} + +void EntityMessage_V2::InternalSwap(EntityMessage_V2* other) { + using std::swap; + _internal_metadata_.Swap(&other->_internal_metadata_); + claims_.Swap(&other->claims_); + guarded_.Swap(&other->guarded_); + guardians_.Swap(&other->guardians_); + members_.Swap(&other->members_); + memberof_.Swap(&other->memberof_); + parents_.Swap(&other->parents_); + children_.Swap(&other->children_); + viewed_.Swap(&other->viewed_); + viewers_.Swap(&other->viewers_); + authenticationkeys_.InternalSwap(&other->authenticationkeys_); + certificates_.InternalSwap(&other->certificates_); + symmetrickeys_.InternalSwap(&other->symmetrickeys_); + passportscounters_.Swap(&other->passportscounters_); + contactstatuses_.Swap(&other->contactstatuses_); + pendingsharingrequests_.InternalSwap(&other->pendingsharingrequests_); + rejectedsharingrequests_.InternalSwap(&other->rejectedsharingrequests_); + orders_.Swap(&other->orders_); + systemparents_.Swap(&other->systemparents_); + systemchildren_.Swap(&other->systemchildren_); + uuid_.Swap(&other->uuid_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); + otpsecret_.Swap(&other->otpsecret_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); + entitycertificate_.Swap(&other->entitycertificate_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); + swap(stamp_, other->stamp_); + swap(type_, other->type_); + swap(activated_, other->activated_); + swap(blocked_, other->blocked_); + swap(temporary_, other->temporary_); + swap(deleted_, other->deleted_); + swap(created_, other->created_); + swap(lastlogin_, other->lastlogin_); + swap(shared_, other->shared_); +} + +::PROTOBUF_NAMESPACE_ID::Metadata EntityMessage_V2::GetMetadata() const { + return GetMetadataStatic(); +} + + +// =================================================================== + +void EntityMessageResponse::InitAsDefaultInstance() { +} +class EntityMessageResponse::_Internal { + public: +}; + +EntityMessageResponse::EntityMessageResponse() + : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) { + SharedCtor(); + // @@protoc_insertion_point(constructor:api.EntityMessageResponse) +} +EntityMessageResponse::EntityMessageResponse(const EntityMessageResponse& from) + : ::PROTOBUF_NAMESPACE_ID::Message(), + _internal_metadata_(nullptr) { + _internal_metadata_.MergeFrom(from._internal_metadata_); + // @@protoc_insertion_point(copy_constructor:api.EntityMessageResponse) +} + +void EntityMessageResponse::SharedCtor() { +} + +EntityMessageResponse::~EntityMessageResponse() { + // @@protoc_insertion_point(destructor:api.EntityMessageResponse) + SharedDtor(); +} + +void EntityMessageResponse::SharedDtor() { +} + +void EntityMessageResponse::SetCachedSize(int size) const { + _cached_size_.Set(size); +} +const EntityMessageResponse& EntityMessageResponse::default_instance() { + ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_EntityMessageResponse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base); + return *internal_default_instance(); +} + + +void EntityMessageResponse::Clear() { +// @@protoc_insertion_point(message_clear_start:api.EntityMessageResponse) + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + _internal_metadata_.Clear(); +} + +const char* EntityMessageResponse::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + ::PROTOBUF_NAMESPACE_ID::uint32 tag; + ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag); + CHK_(ptr); + if ((tag & 7) == 4 || tag == 0) { + ctx->SetLastTag(tag); + goto success; + } + ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx); + CHK_(ptr != nullptr); + continue; + } // while +success: + return ptr; +failure: + ptr = nullptr; + goto success; +#undef CHK_ +} + +::PROTOBUF_NAMESPACE_ID::uint8* EntityMessageResponse::_InternalSerialize( + ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:api.EntityMessageResponse) + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields(), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:api.EntityMessageResponse) + return target; +} + +size_t EntityMessageResponse::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:api.EntityMessageResponse) + size_t total_size = 0; + + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize( + _internal_metadata_, total_size, &_cached_size_); + } + int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size); + SetCachedSize(cached_size); + return total_size; +} + +void EntityMessageResponse::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { +// @@protoc_insertion_point(generalized_merge_from_start:api.EntityMessageResponse) + GOOGLE_DCHECK_NE(&from, this); + const EntityMessageResponse* source = + ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<EntityMessageResponse>( + &from); + if (source == nullptr) { + // @@protoc_insertion_point(generalized_merge_from_cast_fail:api.EntityMessageResponse) + ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this); + } else { + // @@protoc_insertion_point(generalized_merge_from_cast_success:api.EntityMessageResponse) + MergeFrom(*source); + } +} + +void EntityMessageResponse::MergeFrom(const EntityMessageResponse& from) { +// @@protoc_insertion_point(class_specific_merge_from_start:api.EntityMessageResponse) + GOOGLE_DCHECK_NE(&from, this); + _internal_metadata_.MergeFrom(from._internal_metadata_); + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + (void) cached_has_bits; + +} + +void EntityMessageResponse::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { +// @@protoc_insertion_point(generalized_copy_from_start:api.EntityMessageResponse) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +void EntityMessageResponse::CopyFrom(const EntityMessageResponse& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:api.EntityMessageResponse) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool EntityMessageResponse::IsInitialized() const { + return true; +} + +void EntityMessageResponse::InternalSwap(EntityMessageResponse* other) { + using std::swap; + _internal_metadata_.Swap(&other->_internal_metadata_); +} + +::PROTOBUF_NAMESPACE_ID::Metadata EntityMessageResponse::GetMetadata() const { + return GetMetadataStatic(); +} + + +// =================================================================== + +void EntityList::InitAsDefaultInstance() { +} +class EntityList::_Internal { + public: +}; + +EntityList::EntityList() + : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) { + SharedCtor(); + // @@protoc_insertion_point(constructor:api.EntityList) +} +EntityList::EntityList(const EntityList& from) + : ::PROTOBUF_NAMESPACE_ID::Message(), + _internal_metadata_(nullptr), + history_(from.history_) { + _internal_metadata_.MergeFrom(from._internal_metadata_); + // @@protoc_insertion_point(copy_constructor:api.EntityList) +} + +void EntityList::SharedCtor() { + ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_EntityList_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base); +} + +EntityList::~EntityList() { + // @@protoc_insertion_point(destructor:api.EntityList) + SharedDtor(); +} + +void EntityList::SharedDtor() { +} + +void EntityList::SetCachedSize(int size) const { + _cached_size_.Set(size); +} +const EntityList& EntityList::default_instance() { + ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_EntityList_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base); + return *internal_default_instance(); +} + + +void EntityList::Clear() { +// @@protoc_insertion_point(message_clear_start:api.EntityList) + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + history_.Clear(); + _internal_metadata_.Clear(); +} + +const char* EntityList::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + ::PROTOBUF_NAMESPACE_ID::uint32 tag; + ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag); + CHK_(ptr); + switch (tag >> 3) { + // repeated .api.EntityMessage_V2 history = 1; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) { + ptr -= 1; + do { + ptr += 1; + ptr = ctx->ParseMessage(_internal_add_history(), ptr); + CHK_(ptr); + if (!ctx->DataAvailable(ptr)) break; + } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr)); + } else goto handle_unusual; + continue; + default: { + handle_unusual: + if ((tag & 7) == 4 || tag == 0) { + ctx->SetLastTag(tag); + goto success; + } + ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx); + CHK_(ptr != nullptr); + continue; + } + } // switch + } // while +success: + return ptr; +failure: + ptr = nullptr; + goto success; +#undef CHK_ +} + +::PROTOBUF_NAMESPACE_ID::uint8* EntityList::_InternalSerialize( + ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:api.EntityList) + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + // repeated .api.EntityMessage_V2 history = 1; + for (unsigned int i = 0, + n = static_cast<unsigned int>(this->_internal_history_size()); i < n; i++) { + target = stream->EnsureSpace(target); + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: + InternalWriteMessage(1, this->_internal_history(i), target, stream); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields(), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:api.EntityList) + return target; +} + +size_t EntityList::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:api.EntityList) + size_t total_size = 0; + + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // repeated .api.EntityMessage_V2 history = 1; + total_size += 1UL * this->_internal_history_size(); + for (const auto& msg : this->history_) { + total_size += + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize( + _internal_metadata_, total_size, &_cached_size_); + } + int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size); + SetCachedSize(cached_size); + return total_size; +} + +void EntityList::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { +// @@protoc_insertion_point(generalized_merge_from_start:api.EntityList) + GOOGLE_DCHECK_NE(&from, this); + const EntityList* source = + ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<EntityList>( + &from); + if (source == nullptr) { + // @@protoc_insertion_point(generalized_merge_from_cast_fail:api.EntityList) + ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this); + } else { + // @@protoc_insertion_point(generalized_merge_from_cast_success:api.EntityList) + MergeFrom(*source); + } +} + +void EntityList::MergeFrom(const EntityList& from) { +// @@protoc_insertion_point(class_specific_merge_from_start:api.EntityList) + GOOGLE_DCHECK_NE(&from, this); + _internal_metadata_.MergeFrom(from._internal_metadata_); + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + history_.MergeFrom(from.history_); +} + +void EntityList::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { +// @@protoc_insertion_point(generalized_copy_from_start:api.EntityList) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +void EntityList::CopyFrom(const EntityList& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:api.EntityList) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool EntityList::IsInitialized() const { + return true; +} + +void EntityList::InternalSwap(EntityList* other) { + using std::swap; + _internal_metadata_.Swap(&other->_internal_metadata_); + history_.InternalSwap(&other->history_); +} + +::PROTOBUF_NAMESPACE_ID::Metadata EntityList::GetMetadata() const { + return GetMetadataStatic(); +} + + +// =================================================================== + +EntityHistoryMessage_HistoryByUUIDEntry_DoNotUse::EntityHistoryMessage_HistoryByUUIDEntry_DoNotUse() {} +EntityHistoryMessage_HistoryByUUIDEntry_DoNotUse::EntityHistoryMessage_HistoryByUUIDEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena) + : SuperType(arena) {} +void EntityHistoryMessage_HistoryByUUIDEntry_DoNotUse::MergeFrom(const EntityHistoryMessage_HistoryByUUIDEntry_DoNotUse& other) { + MergeFromInternal(other); +} +::PROTOBUF_NAMESPACE_ID::Metadata EntityHistoryMessage_HistoryByUUIDEntry_DoNotUse::GetMetadata() const { + return GetMetadataStatic(); +} +void EntityHistoryMessage_HistoryByUUIDEntry_DoNotUse::MergeFrom( + const ::PROTOBUF_NAMESPACE_ID::Message& other) { + ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom(other); +} + + +// =================================================================== + +void EntityHistoryMessage::InitAsDefaultInstance() { +} +class EntityHistoryMessage::_Internal { + public: +}; + +EntityHistoryMessage::EntityHistoryMessage() + : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) { + SharedCtor(); + // @@protoc_insertion_point(constructor:api.EntityHistoryMessage) +} +EntityHistoryMessage::EntityHistoryMessage(const EntityHistoryMessage& from) + : ::PROTOBUF_NAMESPACE_ID::Message(), + _internal_metadata_(nullptr) { + _internal_metadata_.MergeFrom(from._internal_metadata_); + historybyuuid_.MergeFrom(from.historybyuuid_); + // @@protoc_insertion_point(copy_constructor:api.EntityHistoryMessage) +} + +void EntityHistoryMessage::SharedCtor() { + ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_EntityHistoryMessage_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base); +} + +EntityHistoryMessage::~EntityHistoryMessage() { + // @@protoc_insertion_point(destructor:api.EntityHistoryMessage) + SharedDtor(); +} + +void EntityHistoryMessage::SharedDtor() { +} + +void EntityHistoryMessage::SetCachedSize(int size) const { + _cached_size_.Set(size); +} +const EntityHistoryMessage& EntityHistoryMessage::default_instance() { + ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_EntityHistoryMessage_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base); + return *internal_default_instance(); +} + + +void EntityHistoryMessage::Clear() { +// @@protoc_insertion_point(message_clear_start:api.EntityHistoryMessage) + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + historybyuuid_.Clear(); + _internal_metadata_.Clear(); +} + +const char* EntityHistoryMessage::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + ::PROTOBUF_NAMESPACE_ID::uint32 tag; + ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag); + CHK_(ptr); + switch (tag >> 3) { + // map<string, .api.EntityList> historyByUUID = 1; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) { + ptr -= 1; + do { + ptr += 1; + ptr = ctx->ParseMessage(&historybyuuid_, ptr); + CHK_(ptr); + if (!ctx->DataAvailable(ptr)) break; + } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr)); + } else goto handle_unusual; + continue; + default: { + handle_unusual: + if ((tag & 7) == 4 || tag == 0) { + ctx->SetLastTag(tag); + goto success; + } + ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx); + CHK_(ptr != nullptr); + continue; + } + } // switch + } // while +success: + return ptr; +failure: + ptr = nullptr; + goto success; +#undef CHK_ +} + +::PROTOBUF_NAMESPACE_ID::uint8* EntityHistoryMessage::_InternalSerialize( + ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:api.EntityHistoryMessage) + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + // map<string, .api.EntityList> historyByUUID = 1; + if (!this->_internal_historybyuuid().empty()) { + typedef ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::EntityList >::const_pointer + ConstPtr; + typedef ConstPtr SortItem; + typedef ::PROTOBUF_NAMESPACE_ID::internal::CompareByDerefFirst<SortItem> Less; + struct Utf8Check { + static void Check(ConstPtr p) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + p->first.data(), static_cast<int>(p->first.length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "api.EntityHistoryMessage.HistoryByUUIDEntry.key"); + } + }; + + if (stream->IsSerializationDeterministic() && + this->_internal_historybyuuid().size() > 1) { + ::std::unique_ptr<SortItem[]> items( + new SortItem[this->_internal_historybyuuid().size()]); + typedef ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::EntityList >::size_type size_type; + size_type n = 0; + for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::EntityList >::const_iterator + it = this->_internal_historybyuuid().begin(); + it != this->_internal_historybyuuid().end(); ++it, ++n) { + items[static_cast<ptrdiff_t>(n)] = SortItem(&*it); + } + ::std::sort(&items[0], &items[static_cast<ptrdiff_t>(n)], Less()); + for (size_type i = 0; i < n; i++) { + target = EntityHistoryMessage_HistoryByUUIDEntry_DoNotUse::Funcs::InternalSerialize(1, items[static_cast<ptrdiff_t>(i)]->first, items[static_cast<ptrdiff_t>(i)]->second, target, stream); + Utf8Check::Check(&(*items[static_cast<ptrdiff_t>(i)])); + } + } else { + for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::EntityList >::const_iterator + it = this->_internal_historybyuuid().begin(); + it != this->_internal_historybyuuid().end(); ++it) { + target = EntityHistoryMessage_HistoryByUUIDEntry_DoNotUse::Funcs::InternalSerialize(1, it->first, it->second, target, stream); + Utf8Check::Check(&(*it)); + } + } + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields(), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:api.EntityHistoryMessage) + return target; +} + +size_t EntityHistoryMessage::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:api.EntityHistoryMessage) + size_t total_size = 0; + + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // map<string, .api.EntityList> historyByUUID = 1; + total_size += 1 * + ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(this->_internal_historybyuuid_size()); + for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::EntityList >::const_iterator + it = this->_internal_historybyuuid().begin(); + it != this->_internal_historybyuuid().end(); ++it) { + total_size += EntityHistoryMessage_HistoryByUUIDEntry_DoNotUse::Funcs::ByteSizeLong(it->first, it->second); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize( + _internal_metadata_, total_size, &_cached_size_); + } + int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size); + SetCachedSize(cached_size); + return total_size; +} + +void EntityHistoryMessage::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { +// @@protoc_insertion_point(generalized_merge_from_start:api.EntityHistoryMessage) + GOOGLE_DCHECK_NE(&from, this); + const EntityHistoryMessage* source = + ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<EntityHistoryMessage>( + &from); + if (source == nullptr) { + // @@protoc_insertion_point(generalized_merge_from_cast_fail:api.EntityHistoryMessage) + ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this); + } else { + // @@protoc_insertion_point(generalized_merge_from_cast_success:api.EntityHistoryMessage) + MergeFrom(*source); + } +} + +void EntityHistoryMessage::MergeFrom(const EntityHistoryMessage& from) { +// @@protoc_insertion_point(class_specific_merge_from_start:api.EntityHistoryMessage) + GOOGLE_DCHECK_NE(&from, this); + _internal_metadata_.MergeFrom(from._internal_metadata_); + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + historybyuuid_.MergeFrom(from.historybyuuid_); +} + +void EntityHistoryMessage::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { +// @@protoc_insertion_point(generalized_copy_from_start:api.EntityHistoryMessage) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +void EntityHistoryMessage::CopyFrom(const EntityHistoryMessage& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:api.EntityHistoryMessage) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool EntityHistoryMessage::IsInitialized() const { + return true; +} + +void EntityHistoryMessage::InternalSwap(EntityHistoryMessage* other) { + using std::swap; + _internal_metadata_.Swap(&other->_internal_metadata_); + historybyuuid_.Swap(&other->historybyuuid_); +} + +::PROTOBUF_NAMESPACE_ID::Metadata EntityHistoryMessage::GetMetadata() const { + return GetMetadataStatic(); +} + + +// =================================================================== + +void EntitySearchMessage::InitAsDefaultInstance() { +} +class EntitySearchMessage::_Internal { + public: +}; + +EntitySearchMessage::EntitySearchMessage() + : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) { + SharedCtor(); + // @@protoc_insertion_point(constructor:api.EntitySearchMessage) +} +EntitySearchMessage::EntitySearchMessage(const EntitySearchMessage& from) + : ::PROTOBUF_NAMESPACE_ID::Message(), + _internal_metadata_(nullptr) { + _internal_metadata_.MergeFrom(from._internal_metadata_); + uuid_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + if (!from._internal_uuid().empty()) { + uuid_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.uuid_); + } + from_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + if (!from._internal_from().empty()) { + from_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.from_); + } + to_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + if (!from._internal_to().empty()) { + to_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.to_); + } + ::memcpy(&type_, &from.type_, + static_cast<size_t>(reinterpret_cast<char*>(&searchtype_) - + reinterpret_cast<char*>(&type_)) + sizeof(searchtype_)); + // @@protoc_insertion_point(copy_constructor:api.EntitySearchMessage) +} + +void EntitySearchMessage::SharedCtor() { + ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_EntitySearchMessage_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base); + uuid_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + from_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + to_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + ::memset(&type_, 0, static_cast<size_t>( + reinterpret_cast<char*>(&searchtype_) - + reinterpret_cast<char*>(&type_)) + sizeof(searchtype_)); +} + +EntitySearchMessage::~EntitySearchMessage() { + // @@protoc_insertion_point(destructor:api.EntitySearchMessage) + SharedDtor(); +} + +void EntitySearchMessage::SharedDtor() { + uuid_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + from_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + to_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} + +void EntitySearchMessage::SetCachedSize(int size) const { + _cached_size_.Set(size); +} +const EntitySearchMessage& EntitySearchMessage::default_instance() { + ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_EntitySearchMessage_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base); + return *internal_default_instance(); +} + + +void EntitySearchMessage::Clear() { +// @@protoc_insertion_point(message_clear_start:api.EntitySearchMessage) + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + uuid_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + from_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + to_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + ::memset(&type_, 0, static_cast<size_t>( + reinterpret_cast<char*>(&searchtype_) - + reinterpret_cast<char*>(&type_)) + sizeof(searchtype_)); + _internal_metadata_.Clear(); +} + +const char* EntitySearchMessage::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + ::PROTOBUF_NAMESPACE_ID::uint32 tag; + ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag); + CHK_(ptr); + switch (tag >> 3) { + // string uuid = 1; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) { + auto str = _internal_mutable_uuid(); + ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); + CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "api.EntitySearchMessage.uuid")); + CHK_(ptr); + } else goto handle_unusual; + continue; + // string from = 2; + case 2: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) { + auto str = _internal_mutable_from(); + ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); + CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "api.EntitySearchMessage.from")); + CHK_(ptr); + } else goto handle_unusual; + continue; + // string to = 3; + case 3: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) { + auto str = _internal_mutable_to(); + ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); + CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "api.EntitySearchMessage.to")); + CHK_(ptr); + } else goto handle_unusual; + continue; + // .api.EntityType type = 4; + case 4: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 32)) { + ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr); + CHK_(ptr); + _internal_set_type(static_cast<::api::EntityType>(val)); + } else goto handle_unusual; + continue; + // .api.SearchType searchType = 5; + case 5: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 40)) { + ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr); + CHK_(ptr); + _internal_set_searchtype(static_cast<::api::SearchType>(val)); + } else goto handle_unusual; + continue; + default: { + handle_unusual: + if ((tag & 7) == 4 || tag == 0) { + ctx->SetLastTag(tag); + goto success; + } + ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx); + CHK_(ptr != nullptr); + continue; + } + } // switch + } // while +success: + return ptr; +failure: + ptr = nullptr; + goto success; +#undef CHK_ +} + +::PROTOBUF_NAMESPACE_ID::uint8* EntitySearchMessage::_InternalSerialize( + ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:api.EntitySearchMessage) + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + // string uuid = 1; + if (this->uuid().size() > 0) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_uuid().data(), static_cast<int>(this->_internal_uuid().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "api.EntitySearchMessage.uuid"); + target = stream->WriteStringMaybeAliased( + 1, this->_internal_uuid(), target); + } + + // string from = 2; + if (this->from().size() > 0) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_from().data(), static_cast<int>(this->_internal_from().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "api.EntitySearchMessage.from"); + target = stream->WriteStringMaybeAliased( + 2, this->_internal_from(), target); + } + + // string to = 3; + if (this->to().size() > 0) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_to().data(), static_cast<int>(this->_internal_to().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "api.EntitySearchMessage.to"); + target = stream->WriteStringMaybeAliased( + 3, this->_internal_to(), target); + } + + // .api.EntityType type = 4; + if (this->type() != 0) { + target = stream->EnsureSpace(target); + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray( + 4, this->_internal_type(), target); + } + + // .api.SearchType searchType = 5; + if (this->searchtype() != 0) { + target = stream->EnsureSpace(target); + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray( + 5, this->_internal_searchtype(), target); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields(), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:api.EntitySearchMessage) + return target; +} + +size_t EntitySearchMessage::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:api.EntitySearchMessage) + size_t total_size = 0; + + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // string uuid = 1; + if (this->uuid().size() > 0) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_uuid()); + } + + // string from = 2; + if (this->from().size() > 0) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_from()); + } + + // string to = 3; + if (this->to().size() > 0) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_to()); + } + + // .api.EntityType type = 4; + if (this->type() != 0) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_type()); + } + + // .api.SearchType searchType = 5; + if (this->searchtype() != 0) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_searchtype()); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize( + _internal_metadata_, total_size, &_cached_size_); + } + int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size); + SetCachedSize(cached_size); + return total_size; +} + +void EntitySearchMessage::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { +// @@protoc_insertion_point(generalized_merge_from_start:api.EntitySearchMessage) + GOOGLE_DCHECK_NE(&from, this); + const EntitySearchMessage* source = + ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<EntitySearchMessage>( + &from); + if (source == nullptr) { + // @@protoc_insertion_point(generalized_merge_from_cast_fail:api.EntitySearchMessage) + ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this); + } else { + // @@protoc_insertion_point(generalized_merge_from_cast_success:api.EntitySearchMessage) + MergeFrom(*source); + } +} + +void EntitySearchMessage::MergeFrom(const EntitySearchMessage& from) { +// @@protoc_insertion_point(class_specific_merge_from_start:api.EntitySearchMessage) + GOOGLE_DCHECK_NE(&from, this); + _internal_metadata_.MergeFrom(from._internal_metadata_); + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + if (from.uuid().size() > 0) { + + uuid_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.uuid_); + } + if (from.from().size() > 0) { + + from_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.from_); + } + if (from.to().size() > 0) { + + to_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.to_); + } + if (from.type() != 0) { + _internal_set_type(from._internal_type()); + } + if (from.searchtype() != 0) { + _internal_set_searchtype(from._internal_searchtype()); + } +} + +void EntitySearchMessage::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { +// @@protoc_insertion_point(generalized_copy_from_start:api.EntitySearchMessage) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +void EntitySearchMessage::CopyFrom(const EntitySearchMessage& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:api.EntitySearchMessage) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool EntitySearchMessage::IsInitialized() const { + return true; +} + +void EntitySearchMessage::InternalSwap(EntitySearchMessage* other) { + using std::swap; + _internal_metadata_.Swap(&other->_internal_metadata_); + uuid_.Swap(&other->uuid_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); + from_.Swap(&other->from_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); + to_.Swap(&other->to_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); + swap(type_, other->type_); + swap(searchtype_, other->searchtype_); +} + +::PROTOBUF_NAMESPACE_ID::Metadata EntitySearchMessage::GetMetadata() const { + return GetMetadataStatic(); +} + + +// =================================================================== + +void ClaimInvitationMessage::InitAsDefaultInstance() { +} +class ClaimInvitationMessage::_Internal { + public: +}; + +ClaimInvitationMessage::ClaimInvitationMessage() + : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) { + SharedCtor(); + // @@protoc_insertion_point(constructor:api.ClaimInvitationMessage) +} +ClaimInvitationMessage::ClaimInvitationMessage(const ClaimInvitationMessage& from) + : ::PROTOBUF_NAMESPACE_ID::Message(), + _internal_metadata_(nullptr) { + _internal_metadata_.MergeFrom(from._internal_metadata_); + fromuuid_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + if (!from._internal_fromuuid().empty()) { + fromuuid_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.fromuuid_); + } + touuid_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + if (!from._internal_touuid().empty()) { + touuid_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.touuid_); + } + claimname_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + if (!from._internal_claimname().empty()) { + claimname_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.claimname_); + } + ::memcpy(&stamp_, &from.stamp_, + static_cast<size_t>(reinterpret_cast<char*>(&status_) - + reinterpret_cast<char*>(&stamp_)) + sizeof(status_)); + // @@protoc_insertion_point(copy_constructor:api.ClaimInvitationMessage) +} + +void ClaimInvitationMessage::SharedCtor() { + ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_ClaimInvitationMessage_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base); + fromuuid_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + touuid_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + claimname_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + ::memset(&stamp_, 0, static_cast<size_t>( + reinterpret_cast<char*>(&status_) - + reinterpret_cast<char*>(&stamp_)) + sizeof(status_)); +} + +ClaimInvitationMessage::~ClaimInvitationMessage() { + // @@protoc_insertion_point(destructor:api.ClaimInvitationMessage) + SharedDtor(); +} + +void ClaimInvitationMessage::SharedDtor() { + fromuuid_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + touuid_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + claimname_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} + +void ClaimInvitationMessage::SetCachedSize(int size) const { + _cached_size_.Set(size); +} +const ClaimInvitationMessage& ClaimInvitationMessage::default_instance() { + ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_ClaimInvitationMessage_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base); + return *internal_default_instance(); +} + + +void ClaimInvitationMessage::Clear() { +// @@protoc_insertion_point(message_clear_start:api.ClaimInvitationMessage) + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + fromuuid_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + touuid_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + claimname_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + ::memset(&stamp_, 0, static_cast<size_t>( + reinterpret_cast<char*>(&status_) - + reinterpret_cast<char*>(&stamp_)) + sizeof(status_)); + _internal_metadata_.Clear(); +} + +const char* ClaimInvitationMessage::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + ::PROTOBUF_NAMESPACE_ID::uint32 tag; + ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag); + CHK_(ptr); + switch (tag >> 3) { + // string fromUUID = 1; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) { + auto str = _internal_mutable_fromuuid(); + ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); + CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "api.ClaimInvitationMessage.fromUUID")); + CHK_(ptr); + } else goto handle_unusual; + continue; + // string toUUID = 2; + case 2: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) { + auto str = _internal_mutable_touuid(); + ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); + CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "api.ClaimInvitationMessage.toUUID")); + CHK_(ptr); + } else goto handle_unusual; + continue; + // string claimName = 3; + case 3: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) { + auto str = _internal_mutable_claimname(); + ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); + CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "api.ClaimInvitationMessage.claimName")); + CHK_(ptr); + } else goto handle_unusual; + continue; + // .api.ClaimInvitationStatus status = 4; + case 4: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 32)) { + ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr); + CHK_(ptr); + _internal_set_status(static_cast<::api::ClaimInvitationStatus>(val)); + } else goto handle_unusual; + continue; + // int64 stamp = 5; + case 5: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 40)) { + stamp_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr); + CHK_(ptr); + } else goto handle_unusual; + continue; + default: { + handle_unusual: + if ((tag & 7) == 4 || tag == 0) { + ctx->SetLastTag(tag); + goto success; + } + ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx); + CHK_(ptr != nullptr); + continue; + } + } // switch + } // while +success: + return ptr; +failure: + ptr = nullptr; + goto success; +#undef CHK_ +} + +::PROTOBUF_NAMESPACE_ID::uint8* ClaimInvitationMessage::_InternalSerialize( + ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:api.ClaimInvitationMessage) + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + // string fromUUID = 1; + if (this->fromuuid().size() > 0) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_fromuuid().data(), static_cast<int>(this->_internal_fromuuid().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "api.ClaimInvitationMessage.fromUUID"); + target = stream->WriteStringMaybeAliased( + 1, this->_internal_fromuuid(), target); + } + + // string toUUID = 2; + if (this->touuid().size() > 0) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_touuid().data(), static_cast<int>(this->_internal_touuid().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "api.ClaimInvitationMessage.toUUID"); + target = stream->WriteStringMaybeAliased( + 2, this->_internal_touuid(), target); + } + + // string claimName = 3; + if (this->claimname().size() > 0) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_claimname().data(), static_cast<int>(this->_internal_claimname().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "api.ClaimInvitationMessage.claimName"); + target = stream->WriteStringMaybeAliased( + 3, this->_internal_claimname(), target); + } + + // .api.ClaimInvitationStatus status = 4; + if (this->status() != 0) { + target = stream->EnsureSpace(target); + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray( + 4, this->_internal_status(), target); + } + + // int64 stamp = 5; + if (this->stamp() != 0) { + target = stream->EnsureSpace(target); + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(5, this->_internal_stamp(), target); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields(), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:api.ClaimInvitationMessage) + return target; +} + +size_t ClaimInvitationMessage::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:api.ClaimInvitationMessage) + size_t total_size = 0; + + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // string fromUUID = 1; + if (this->fromuuid().size() > 0) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_fromuuid()); + } + + // string toUUID = 2; + if (this->touuid().size() > 0) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_touuid()); + } + + // string claimName = 3; + if (this->claimname().size() > 0) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_claimname()); + } + + // int64 stamp = 5; + if (this->stamp() != 0) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size( + this->_internal_stamp()); + } + + // .api.ClaimInvitationStatus status = 4; + if (this->status() != 0) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_status()); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize( + _internal_metadata_, total_size, &_cached_size_); + } + int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size); + SetCachedSize(cached_size); + return total_size; +} + +void ClaimInvitationMessage::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { +// @@protoc_insertion_point(generalized_merge_from_start:api.ClaimInvitationMessage) + GOOGLE_DCHECK_NE(&from, this); + const ClaimInvitationMessage* source = + ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<ClaimInvitationMessage>( + &from); + if (source == nullptr) { + // @@protoc_insertion_point(generalized_merge_from_cast_fail:api.ClaimInvitationMessage) + ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this); + } else { + // @@protoc_insertion_point(generalized_merge_from_cast_success:api.ClaimInvitationMessage) + MergeFrom(*source); + } +} + +void ClaimInvitationMessage::MergeFrom(const ClaimInvitationMessage& from) { +// @@protoc_insertion_point(class_specific_merge_from_start:api.ClaimInvitationMessage) + GOOGLE_DCHECK_NE(&from, this); + _internal_metadata_.MergeFrom(from._internal_metadata_); + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + if (from.fromuuid().size() > 0) { + + fromuuid_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.fromuuid_); + } + if (from.touuid().size() > 0) { + + touuid_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.touuid_); + } + if (from.claimname().size() > 0) { + + claimname_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.claimname_); + } + if (from.stamp() != 0) { + _internal_set_stamp(from._internal_stamp()); + } + if (from.status() != 0) { + _internal_set_status(from._internal_status()); + } +} + +void ClaimInvitationMessage::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { +// @@protoc_insertion_point(generalized_copy_from_start:api.ClaimInvitationMessage) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +void ClaimInvitationMessage::CopyFrom(const ClaimInvitationMessage& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:api.ClaimInvitationMessage) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool ClaimInvitationMessage::IsInitialized() const { + return true; +} + +void ClaimInvitationMessage::InternalSwap(ClaimInvitationMessage* other) { + using std::swap; + _internal_metadata_.Swap(&other->_internal_metadata_); + fromuuid_.Swap(&other->fromuuid_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); + touuid_.Swap(&other->touuid_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); + claimname_.Swap(&other->claimname_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); + swap(stamp_, other->stamp_); + swap(status_, other->status_); +} + +::PROTOBUF_NAMESPACE_ID::Metadata ClaimInvitationMessage::GetMetadata() const { + return GetMetadataStatic(); +} + + +// =================================================================== + +void ClaimInvitationMessageResponse::InitAsDefaultInstance() { +} +class ClaimInvitationMessageResponse::_Internal { + public: +}; + +ClaimInvitationMessageResponse::ClaimInvitationMessageResponse() + : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) { + SharedCtor(); + // @@protoc_insertion_point(constructor:api.ClaimInvitationMessageResponse) +} +ClaimInvitationMessageResponse::ClaimInvitationMessageResponse(const ClaimInvitationMessageResponse& from) + : ::PROTOBUF_NAMESPACE_ID::Message(), + _internal_metadata_(nullptr) { + _internal_metadata_.MergeFrom(from._internal_metadata_); + // @@protoc_insertion_point(copy_constructor:api.ClaimInvitationMessageResponse) +} + +void ClaimInvitationMessageResponse::SharedCtor() { +} + +ClaimInvitationMessageResponse::~ClaimInvitationMessageResponse() { + // @@protoc_insertion_point(destructor:api.ClaimInvitationMessageResponse) + SharedDtor(); +} + +void ClaimInvitationMessageResponse::SharedDtor() { +} + +void ClaimInvitationMessageResponse::SetCachedSize(int size) const { + _cached_size_.Set(size); +} +const ClaimInvitationMessageResponse& ClaimInvitationMessageResponse::default_instance() { + ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_ClaimInvitationMessageResponse_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base); + return *internal_default_instance(); +} + + +void ClaimInvitationMessageResponse::Clear() { +// @@protoc_insertion_point(message_clear_start:api.ClaimInvitationMessageResponse) + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + _internal_metadata_.Clear(); +} + +const char* ClaimInvitationMessageResponse::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + ::PROTOBUF_NAMESPACE_ID::uint32 tag; + ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag); + CHK_(ptr); + if ((tag & 7) == 4 || tag == 0) { + ctx->SetLastTag(tag); + goto success; + } + ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx); + CHK_(ptr != nullptr); + continue; + } // while +success: + return ptr; +failure: + ptr = nullptr; + goto success; +#undef CHK_ +} + +::PROTOBUF_NAMESPACE_ID::uint8* ClaimInvitationMessageResponse::_InternalSerialize( + ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:api.ClaimInvitationMessageResponse) + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields(), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:api.ClaimInvitationMessageResponse) + return target; +} + +size_t ClaimInvitationMessageResponse::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:api.ClaimInvitationMessageResponse) + size_t total_size = 0; + + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize( + _internal_metadata_, total_size, &_cached_size_); + } + int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size); + SetCachedSize(cached_size); + return total_size; +} + +void ClaimInvitationMessageResponse::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { +// @@protoc_insertion_point(generalized_merge_from_start:api.ClaimInvitationMessageResponse) + GOOGLE_DCHECK_NE(&from, this); + const ClaimInvitationMessageResponse* source = + ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<ClaimInvitationMessageResponse>( + &from); + if (source == nullptr) { + // @@protoc_insertion_point(generalized_merge_from_cast_fail:api.ClaimInvitationMessageResponse) + ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this); + } else { + // @@protoc_insertion_point(generalized_merge_from_cast_success:api.ClaimInvitationMessageResponse) + MergeFrom(*source); + } +} + +void ClaimInvitationMessageResponse::MergeFrom(const ClaimInvitationMessageResponse& from) { +// @@protoc_insertion_point(class_specific_merge_from_start:api.ClaimInvitationMessageResponse) + GOOGLE_DCHECK_NE(&from, this); + _internal_metadata_.MergeFrom(from._internal_metadata_); + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + (void) cached_has_bits; + +} + +void ClaimInvitationMessageResponse::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { +// @@protoc_insertion_point(generalized_copy_from_start:api.ClaimInvitationMessageResponse) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +void ClaimInvitationMessageResponse::CopyFrom(const ClaimInvitationMessageResponse& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:api.ClaimInvitationMessageResponse) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool ClaimInvitationMessageResponse::IsInitialized() const { + return true; +} + +void ClaimInvitationMessageResponse::InternalSwap(ClaimInvitationMessageResponse* other) { + using std::swap; + _internal_metadata_.Swap(&other->_internal_metadata_); +} + +::PROTOBUF_NAMESPACE_ID::Metadata ClaimInvitationMessageResponse::GetMetadata() const { + return GetMetadataStatic(); +} + + +// =================================================================== + +void ClaimInvitationSearchMessage::InitAsDefaultInstance() { +} +class ClaimInvitationSearchMessage::_Internal { + public: +}; + +ClaimInvitationSearchMessage::ClaimInvitationSearchMessage() + : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) { + SharedCtor(); + // @@protoc_insertion_point(constructor:api.ClaimInvitationSearchMessage) +} +ClaimInvitationSearchMessage::ClaimInvitationSearchMessage(const ClaimInvitationSearchMessage& from) + : ::PROTOBUF_NAMESPACE_ID::Message(), + _internal_metadata_(nullptr) { + _internal_metadata_.MergeFrom(from._internal_metadata_); + fromuuid_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + if (!from._internal_fromuuid().empty()) { + fromuuid_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.fromuuid_); + } + touuid_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + if (!from._internal_touuid().empty()) { + touuid_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.touuid_); + } + claimname_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + if (!from._internal_claimname().empty()) { + claimname_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.claimname_); + } + from_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + if (!from._internal_from().empty()) { + from_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.from_); + } + to_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + if (!from._internal_to().empty()) { + to_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.to_); + } + searchtype_ = from.searchtype_; + // @@protoc_insertion_point(copy_constructor:api.ClaimInvitationSearchMessage) +} + +void ClaimInvitationSearchMessage::SharedCtor() { + ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_ClaimInvitationSearchMessage_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base); + fromuuid_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + touuid_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + claimname_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + from_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + to_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + searchtype_ = 0; +} + +ClaimInvitationSearchMessage::~ClaimInvitationSearchMessage() { + // @@protoc_insertion_point(destructor:api.ClaimInvitationSearchMessage) + SharedDtor(); +} + +void ClaimInvitationSearchMessage::SharedDtor() { + fromuuid_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + touuid_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + claimname_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + from_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + to_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} + +void ClaimInvitationSearchMessage::SetCachedSize(int size) const { + _cached_size_.Set(size); +} +const ClaimInvitationSearchMessage& ClaimInvitationSearchMessage::default_instance() { + ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_ClaimInvitationSearchMessage_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base); + return *internal_default_instance(); +} + + +void ClaimInvitationSearchMessage::Clear() { +// @@protoc_insertion_point(message_clear_start:api.ClaimInvitationSearchMessage) + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + fromuuid_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + touuid_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + claimname_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + from_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + to_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + searchtype_ = 0; + _internal_metadata_.Clear(); +} + +const char* ClaimInvitationSearchMessage::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + ::PROTOBUF_NAMESPACE_ID::uint32 tag; + ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag); + CHK_(ptr); + switch (tag >> 3) { + // string fromUUID = 1; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) { + auto str = _internal_mutable_fromuuid(); + ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); + CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "api.ClaimInvitationSearchMessage.fromUUID")); + CHK_(ptr); + } else goto handle_unusual; + continue; + // string toUUID = 2; + case 2: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) { + auto str = _internal_mutable_touuid(); + ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); + CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "api.ClaimInvitationSearchMessage.toUUID")); + CHK_(ptr); + } else goto handle_unusual; + continue; + // string claimName = 3; + case 3: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) { + auto str = _internal_mutable_claimname(); + ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); + CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "api.ClaimInvitationSearchMessage.claimName")); + CHK_(ptr); + } else goto handle_unusual; + continue; + // string from = 4; + case 4: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) { + auto str = _internal_mutable_from(); + ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); + CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "api.ClaimInvitationSearchMessage.from")); + CHK_(ptr); + } else goto handle_unusual; + continue; + // string to = 5; + case 5: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) { + auto str = _internal_mutable_to(); + ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); + CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "api.ClaimInvitationSearchMessage.to")); + CHK_(ptr); + } else goto handle_unusual; + continue; + // .api.SearchType searchType = 6; + case 6: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 48)) { + ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr); + CHK_(ptr); + _internal_set_searchtype(static_cast<::api::SearchType>(val)); + } else goto handle_unusual; + continue; + default: { + handle_unusual: + if ((tag & 7) == 4 || tag == 0) { + ctx->SetLastTag(tag); + goto success; + } + ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx); + CHK_(ptr != nullptr); + continue; + } + } // switch + } // while +success: + return ptr; +failure: + ptr = nullptr; + goto success; +#undef CHK_ +} + +::PROTOBUF_NAMESPACE_ID::uint8* ClaimInvitationSearchMessage::_InternalSerialize( + ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:api.ClaimInvitationSearchMessage) + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + // string fromUUID = 1; + if (this->fromuuid().size() > 0) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_fromuuid().data(), static_cast<int>(this->_internal_fromuuid().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "api.ClaimInvitationSearchMessage.fromUUID"); + target = stream->WriteStringMaybeAliased( + 1, this->_internal_fromuuid(), target); + } + + // string toUUID = 2; + if (this->touuid().size() > 0) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_touuid().data(), static_cast<int>(this->_internal_touuid().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "api.ClaimInvitationSearchMessage.toUUID"); + target = stream->WriteStringMaybeAliased( + 2, this->_internal_touuid(), target); + } + + // string claimName = 3; + if (this->claimname().size() > 0) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_claimname().data(), static_cast<int>(this->_internal_claimname().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "api.ClaimInvitationSearchMessage.claimName"); + target = stream->WriteStringMaybeAliased( + 3, this->_internal_claimname(), target); + } + + // string from = 4; + if (this->from().size() > 0) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_from().data(), static_cast<int>(this->_internal_from().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "api.ClaimInvitationSearchMessage.from"); + target = stream->WriteStringMaybeAliased( + 4, this->_internal_from(), target); + } + + // string to = 5; + if (this->to().size() > 0) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_to().data(), static_cast<int>(this->_internal_to().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "api.ClaimInvitationSearchMessage.to"); + target = stream->WriteStringMaybeAliased( + 5, this->_internal_to(), target); + } + + // .api.SearchType searchType = 6; + if (this->searchtype() != 0) { + target = stream->EnsureSpace(target); + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray( + 6, this->_internal_searchtype(), target); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields(), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:api.ClaimInvitationSearchMessage) + return target; +} + +size_t ClaimInvitationSearchMessage::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:api.ClaimInvitationSearchMessage) + size_t total_size = 0; + + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // string fromUUID = 1; + if (this->fromuuid().size() > 0) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_fromuuid()); + } + + // string toUUID = 2; + if (this->touuid().size() > 0) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_touuid()); + } + + // string claimName = 3; + if (this->claimname().size() > 0) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_claimname()); + } + + // string from = 4; + if (this->from().size() > 0) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_from()); + } + + // string to = 5; + if (this->to().size() > 0) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_to()); + } + + // .api.SearchType searchType = 6; + if (this->searchtype() != 0) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_searchtype()); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize( + _internal_metadata_, total_size, &_cached_size_); + } + int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size); + SetCachedSize(cached_size); + return total_size; +} + +void ClaimInvitationSearchMessage::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { +// @@protoc_insertion_point(generalized_merge_from_start:api.ClaimInvitationSearchMessage) + GOOGLE_DCHECK_NE(&from, this); + const ClaimInvitationSearchMessage* source = + ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<ClaimInvitationSearchMessage>( + &from); + if (source == nullptr) { + // @@protoc_insertion_point(generalized_merge_from_cast_fail:api.ClaimInvitationSearchMessage) + ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this); + } else { + // @@protoc_insertion_point(generalized_merge_from_cast_success:api.ClaimInvitationSearchMessage) + MergeFrom(*source); + } +} + +void ClaimInvitationSearchMessage::MergeFrom(const ClaimInvitationSearchMessage& from) { +// @@protoc_insertion_point(class_specific_merge_from_start:api.ClaimInvitationSearchMessage) + GOOGLE_DCHECK_NE(&from, this); + _internal_metadata_.MergeFrom(from._internal_metadata_); + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + if (from.fromuuid().size() > 0) { + + fromuuid_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.fromuuid_); + } + if (from.touuid().size() > 0) { + + touuid_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.touuid_); + } + if (from.claimname().size() > 0) { + + claimname_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.claimname_); + } + if (from.from().size() > 0) { + + from_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.from_); + } + if (from.to().size() > 0) { + + to_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.to_); + } + if (from.searchtype() != 0) { + _internal_set_searchtype(from._internal_searchtype()); + } +} + +void ClaimInvitationSearchMessage::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { +// @@protoc_insertion_point(generalized_copy_from_start:api.ClaimInvitationSearchMessage) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +void ClaimInvitationSearchMessage::CopyFrom(const ClaimInvitationSearchMessage& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:api.ClaimInvitationSearchMessage) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool ClaimInvitationSearchMessage::IsInitialized() const { + return true; +} + +void ClaimInvitationSearchMessage::InternalSwap(ClaimInvitationSearchMessage* other) { + using std::swap; + _internal_metadata_.Swap(&other->_internal_metadata_); + fromuuid_.Swap(&other->fromuuid_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); + touuid_.Swap(&other->touuid_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); + claimname_.Swap(&other->claimname_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); + from_.Swap(&other->from_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); + to_.Swap(&other->to_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); + swap(searchtype_, other->searchtype_); +} + +::PROTOBUF_NAMESPACE_ID::Metadata ClaimInvitationSearchMessage::GetMetadata() const { + return GetMetadataStatic(); +} + + +// =================================================================== + +void ClaimInvitationList::InitAsDefaultInstance() { +} +class ClaimInvitationList::_Internal { + public: +}; + +ClaimInvitationList::ClaimInvitationList() + : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) { + SharedCtor(); + // @@protoc_insertion_point(constructor:api.ClaimInvitationList) +} +ClaimInvitationList::ClaimInvitationList(const ClaimInvitationList& from) + : ::PROTOBUF_NAMESPACE_ID::Message(), + _internal_metadata_(nullptr), + history_(from.history_) { + _internal_metadata_.MergeFrom(from._internal_metadata_); + // @@protoc_insertion_point(copy_constructor:api.ClaimInvitationList) +} + +void ClaimInvitationList::SharedCtor() { + ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_ClaimInvitationList_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base); +} + +ClaimInvitationList::~ClaimInvitationList() { + // @@protoc_insertion_point(destructor:api.ClaimInvitationList) + SharedDtor(); +} + +void ClaimInvitationList::SharedDtor() { +} + +void ClaimInvitationList::SetCachedSize(int size) const { + _cached_size_.Set(size); +} +const ClaimInvitationList& ClaimInvitationList::default_instance() { + ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_ClaimInvitationList_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base); + return *internal_default_instance(); +} + + +void ClaimInvitationList::Clear() { +// @@protoc_insertion_point(message_clear_start:api.ClaimInvitationList) + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + history_.Clear(); + _internal_metadata_.Clear(); +} + +const char* ClaimInvitationList::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + ::PROTOBUF_NAMESPACE_ID::uint32 tag; + ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag); + CHK_(ptr); + switch (tag >> 3) { + // repeated .api.ClaimInvitationMessage history = 1; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) { + ptr -= 1; + do { + ptr += 1; + ptr = ctx->ParseMessage(_internal_add_history(), ptr); + CHK_(ptr); + if (!ctx->DataAvailable(ptr)) break; + } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr)); + } else goto handle_unusual; + continue; + default: { + handle_unusual: + if ((tag & 7) == 4 || tag == 0) { + ctx->SetLastTag(tag); + goto success; + } + ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx); + CHK_(ptr != nullptr); + continue; + } + } // switch + } // while +success: + return ptr; +failure: + ptr = nullptr; + goto success; +#undef CHK_ +} + +::PROTOBUF_NAMESPACE_ID::uint8* ClaimInvitationList::_InternalSerialize( + ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:api.ClaimInvitationList) + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + // repeated .api.ClaimInvitationMessage history = 1; + for (unsigned int i = 0, + n = static_cast<unsigned int>(this->_internal_history_size()); i < n; i++) { + target = stream->EnsureSpace(target); + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: + InternalWriteMessage(1, this->_internal_history(i), target, stream); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields(), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:api.ClaimInvitationList) + return target; +} + +size_t ClaimInvitationList::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:api.ClaimInvitationList) + size_t total_size = 0; + + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // repeated .api.ClaimInvitationMessage history = 1; + total_size += 1UL * this->_internal_history_size(); + for (const auto& msg : this->history_) { + total_size += + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize( + _internal_metadata_, total_size, &_cached_size_); + } + int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size); + SetCachedSize(cached_size); + return total_size; +} + +void ClaimInvitationList::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { +// @@protoc_insertion_point(generalized_merge_from_start:api.ClaimInvitationList) + GOOGLE_DCHECK_NE(&from, this); + const ClaimInvitationList* source = + ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<ClaimInvitationList>( + &from); + if (source == nullptr) { + // @@protoc_insertion_point(generalized_merge_from_cast_fail:api.ClaimInvitationList) + ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this); + } else { + // @@protoc_insertion_point(generalized_merge_from_cast_success:api.ClaimInvitationList) + MergeFrom(*source); + } +} + +void ClaimInvitationList::MergeFrom(const ClaimInvitationList& from) { +// @@protoc_insertion_point(class_specific_merge_from_start:api.ClaimInvitationList) + GOOGLE_DCHECK_NE(&from, this); + _internal_metadata_.MergeFrom(from._internal_metadata_); + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + history_.MergeFrom(from.history_); +} + +void ClaimInvitationList::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { +// @@protoc_insertion_point(generalized_copy_from_start:api.ClaimInvitationList) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +void ClaimInvitationList::CopyFrom(const ClaimInvitationList& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:api.ClaimInvitationList) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool ClaimInvitationList::IsInitialized() const { + return true; +} + +void ClaimInvitationList::InternalSwap(ClaimInvitationList* other) { + using std::swap; + _internal_metadata_.Swap(&other->_internal_metadata_); + history_.InternalSwap(&other->history_); +} + +::PROTOBUF_NAMESPACE_ID::Metadata ClaimInvitationList::GetMetadata() const { + return GetMetadataStatic(); +} + + +// =================================================================== + +ClaimInvitationHistoryMessage_HistoryByClaimInvitationEntry_DoNotUse::ClaimInvitationHistoryMessage_HistoryByClaimInvitationEntry_DoNotUse() {} +ClaimInvitationHistoryMessage_HistoryByClaimInvitationEntry_DoNotUse::ClaimInvitationHistoryMessage_HistoryByClaimInvitationEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena) + : SuperType(arena) {} +void ClaimInvitationHistoryMessage_HistoryByClaimInvitationEntry_DoNotUse::MergeFrom(const ClaimInvitationHistoryMessage_HistoryByClaimInvitationEntry_DoNotUse& other) { + MergeFromInternal(other); +} +::PROTOBUF_NAMESPACE_ID::Metadata ClaimInvitationHistoryMessage_HistoryByClaimInvitationEntry_DoNotUse::GetMetadata() const { + return GetMetadataStatic(); +} +void ClaimInvitationHistoryMessage_HistoryByClaimInvitationEntry_DoNotUse::MergeFrom( + const ::PROTOBUF_NAMESPACE_ID::Message& other) { + ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom(other); +} + + +// =================================================================== + +void ClaimInvitationHistoryMessage::InitAsDefaultInstance() { +} +class ClaimInvitationHistoryMessage::_Internal { + public: +}; + +ClaimInvitationHistoryMessage::ClaimInvitationHistoryMessage() + : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) { + SharedCtor(); + // @@protoc_insertion_point(constructor:api.ClaimInvitationHistoryMessage) +} +ClaimInvitationHistoryMessage::ClaimInvitationHistoryMessage(const ClaimInvitationHistoryMessage& from) + : ::PROTOBUF_NAMESPACE_ID::Message(), + _internal_metadata_(nullptr) { + _internal_metadata_.MergeFrom(from._internal_metadata_); + historybyclaiminvitation_.MergeFrom(from.historybyclaiminvitation_); + // @@protoc_insertion_point(copy_constructor:api.ClaimInvitationHistoryMessage) +} + +void ClaimInvitationHistoryMessage::SharedCtor() { + ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_ClaimInvitationHistoryMessage_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base); +} + +ClaimInvitationHistoryMessage::~ClaimInvitationHistoryMessage() { + // @@protoc_insertion_point(destructor:api.ClaimInvitationHistoryMessage) + SharedDtor(); +} + +void ClaimInvitationHistoryMessage::SharedDtor() { +} + +void ClaimInvitationHistoryMessage::SetCachedSize(int size) const { + _cached_size_.Set(size); +} +const ClaimInvitationHistoryMessage& ClaimInvitationHistoryMessage::default_instance() { + ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_ClaimInvitationHistoryMessage_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base); + return *internal_default_instance(); +} + + +void ClaimInvitationHistoryMessage::Clear() { +// @@protoc_insertion_point(message_clear_start:api.ClaimInvitationHistoryMessage) + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + historybyclaiminvitation_.Clear(); + _internal_metadata_.Clear(); +} + +const char* ClaimInvitationHistoryMessage::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + ::PROTOBUF_NAMESPACE_ID::uint32 tag; + ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag); + CHK_(ptr); + switch (tag >> 3) { + // map<string, .api.ClaimInvitationList> historyByClaimInvitation = 1; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) { + ptr -= 1; + do { + ptr += 1; + ptr = ctx->ParseMessage(&historybyclaiminvitation_, ptr); + CHK_(ptr); + if (!ctx->DataAvailable(ptr)) break; + } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr)); + } else goto handle_unusual; + continue; + default: { + handle_unusual: + if ((tag & 7) == 4 || tag == 0) { + ctx->SetLastTag(tag); + goto success; + } + ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx); + CHK_(ptr != nullptr); + continue; + } + } // switch + } // while +success: + return ptr; +failure: + ptr = nullptr; + goto success; +#undef CHK_ +} + +::PROTOBUF_NAMESPACE_ID::uint8* ClaimInvitationHistoryMessage::_InternalSerialize( + ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:api.ClaimInvitationHistoryMessage) + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + // map<string, .api.ClaimInvitationList> historyByClaimInvitation = 1; + if (!this->_internal_historybyclaiminvitation().empty()) { + typedef ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::ClaimInvitationList >::const_pointer + ConstPtr; + typedef ConstPtr SortItem; + typedef ::PROTOBUF_NAMESPACE_ID::internal::CompareByDerefFirst<SortItem> Less; + struct Utf8Check { + static void Check(ConstPtr p) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + p->first.data(), static_cast<int>(p->first.length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "api.ClaimInvitationHistoryMessage.HistoryByClaimInvitationEntry.key"); + } + }; + + if (stream->IsSerializationDeterministic() && + this->_internal_historybyclaiminvitation().size() > 1) { + ::std::unique_ptr<SortItem[]> items( + new SortItem[this->_internal_historybyclaiminvitation().size()]); + typedef ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::ClaimInvitationList >::size_type size_type; + size_type n = 0; + for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::ClaimInvitationList >::const_iterator + it = this->_internal_historybyclaiminvitation().begin(); + it != this->_internal_historybyclaiminvitation().end(); ++it, ++n) { + items[static_cast<ptrdiff_t>(n)] = SortItem(&*it); + } + ::std::sort(&items[0], &items[static_cast<ptrdiff_t>(n)], Less()); + for (size_type i = 0; i < n; i++) { + target = ClaimInvitationHistoryMessage_HistoryByClaimInvitationEntry_DoNotUse::Funcs::InternalSerialize(1, items[static_cast<ptrdiff_t>(i)]->first, items[static_cast<ptrdiff_t>(i)]->second, target, stream); + Utf8Check::Check(&(*items[static_cast<ptrdiff_t>(i)])); + } + } else { + for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::ClaimInvitationList >::const_iterator + it = this->_internal_historybyclaiminvitation().begin(); + it != this->_internal_historybyclaiminvitation().end(); ++it) { + target = ClaimInvitationHistoryMessage_HistoryByClaimInvitationEntry_DoNotUse::Funcs::InternalSerialize(1, it->first, it->second, target, stream); + Utf8Check::Check(&(*it)); + } + } + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields(), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:api.ClaimInvitationHistoryMessage) + return target; +} + +size_t ClaimInvitationHistoryMessage::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:api.ClaimInvitationHistoryMessage) + size_t total_size = 0; + + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // map<string, .api.ClaimInvitationList> historyByClaimInvitation = 1; + total_size += 1 * + ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(this->_internal_historybyclaiminvitation_size()); + for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::ClaimInvitationList >::const_iterator + it = this->_internal_historybyclaiminvitation().begin(); + it != this->_internal_historybyclaiminvitation().end(); ++it) { + total_size += ClaimInvitationHistoryMessage_HistoryByClaimInvitationEntry_DoNotUse::Funcs::ByteSizeLong(it->first, it->second); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize( + _internal_metadata_, total_size, &_cached_size_); + } + int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size); + SetCachedSize(cached_size); + return total_size; +} + +void ClaimInvitationHistoryMessage::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { +// @@protoc_insertion_point(generalized_merge_from_start:api.ClaimInvitationHistoryMessage) + GOOGLE_DCHECK_NE(&from, this); + const ClaimInvitationHistoryMessage* source = + ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<ClaimInvitationHistoryMessage>( + &from); + if (source == nullptr) { + // @@protoc_insertion_point(generalized_merge_from_cast_fail:api.ClaimInvitationHistoryMessage) + ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this); + } else { + // @@protoc_insertion_point(generalized_merge_from_cast_success:api.ClaimInvitationHistoryMessage) + MergeFrom(*source); + } +} + +void ClaimInvitationHistoryMessage::MergeFrom(const ClaimInvitationHistoryMessage& from) { +// @@protoc_insertion_point(class_specific_merge_from_start:api.ClaimInvitationHistoryMessage) + GOOGLE_DCHECK_NE(&from, this); + _internal_metadata_.MergeFrom(from._internal_metadata_); + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + historybyclaiminvitation_.MergeFrom(from.historybyclaiminvitation_); +} + +void ClaimInvitationHistoryMessage::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { +// @@protoc_insertion_point(generalized_copy_from_start:api.ClaimInvitationHistoryMessage) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +void ClaimInvitationHistoryMessage::CopyFrom(const ClaimInvitationHistoryMessage& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:api.ClaimInvitationHistoryMessage) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool ClaimInvitationHistoryMessage::IsInitialized() const { + return true; +} + +void ClaimInvitationHistoryMessage::InternalSwap(ClaimInvitationHistoryMessage* other) { + using std::swap; + _internal_metadata_.Swap(&other->_internal_metadata_); + historybyclaiminvitation_.Swap(&other->historybyclaiminvitation_); +} + +::PROTOBUF_NAMESPACE_ID::Metadata ClaimInvitationHistoryMessage::GetMetadata() const { + return GetMetadataStatic(); +} + + +// =================================================================== + +void GetVersionEMAMessage::InitAsDefaultInstance() { +} +class GetVersionEMAMessage::_Internal { + public: +}; + +GetVersionEMAMessage::GetVersionEMAMessage() + : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) { + SharedCtor(); + // @@protoc_insertion_point(constructor:api.GetVersionEMAMessage) +} +GetVersionEMAMessage::GetVersionEMAMessage(const GetVersionEMAMessage& from) + : ::PROTOBUF_NAMESPACE_ID::Message(), + _internal_metadata_(nullptr) { + _internal_metadata_.MergeFrom(from._internal_metadata_); + // @@protoc_insertion_point(copy_constructor:api.GetVersionEMAMessage) +} + +void GetVersionEMAMessage::SharedCtor() { +} + +GetVersionEMAMessage::~GetVersionEMAMessage() { + // @@protoc_insertion_point(destructor:api.GetVersionEMAMessage) + SharedDtor(); +} + +void GetVersionEMAMessage::SharedDtor() { +} + +void GetVersionEMAMessage::SetCachedSize(int size) const { + _cached_size_.Set(size); +} +const GetVersionEMAMessage& GetVersionEMAMessage::default_instance() { + ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_GetVersionEMAMessage_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base); + return *internal_default_instance(); +} + + +void GetVersionEMAMessage::Clear() { +// @@protoc_insertion_point(message_clear_start:api.GetVersionEMAMessage) + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + _internal_metadata_.Clear(); +} + +const char* GetVersionEMAMessage::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + ::PROTOBUF_NAMESPACE_ID::uint32 tag; + ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag); + CHK_(ptr); + if ((tag & 7) == 4 || tag == 0) { + ctx->SetLastTag(tag); + goto success; + } + ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx); + CHK_(ptr != nullptr); + continue; + } // while +success: + return ptr; +failure: + ptr = nullptr; + goto success; +#undef CHK_ +} + +::PROTOBUF_NAMESPACE_ID::uint8* GetVersionEMAMessage::_InternalSerialize( + ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:api.GetVersionEMAMessage) + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields(), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:api.GetVersionEMAMessage) + return target; +} + +size_t GetVersionEMAMessage::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:api.GetVersionEMAMessage) + size_t total_size = 0; + + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize( + _internal_metadata_, total_size, &_cached_size_); + } + int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size); + SetCachedSize(cached_size); + return total_size; +} + +void GetVersionEMAMessage::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { +// @@protoc_insertion_point(generalized_merge_from_start:api.GetVersionEMAMessage) + GOOGLE_DCHECK_NE(&from, this); + const GetVersionEMAMessage* source = + ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<GetVersionEMAMessage>( + &from); + if (source == nullptr) { + // @@protoc_insertion_point(generalized_merge_from_cast_fail:api.GetVersionEMAMessage) + ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this); + } else { + // @@protoc_insertion_point(generalized_merge_from_cast_success:api.GetVersionEMAMessage) + MergeFrom(*source); + } +} + +void GetVersionEMAMessage::MergeFrom(const GetVersionEMAMessage& from) { +// @@protoc_insertion_point(class_specific_merge_from_start:api.GetVersionEMAMessage) + GOOGLE_DCHECK_NE(&from, this); + _internal_metadata_.MergeFrom(from._internal_metadata_); + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + (void) cached_has_bits; + +} + +void GetVersionEMAMessage::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { +// @@protoc_insertion_point(generalized_copy_from_start:api.GetVersionEMAMessage) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +void GetVersionEMAMessage::CopyFrom(const GetVersionEMAMessage& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:api.GetVersionEMAMessage) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool GetVersionEMAMessage::IsInitialized() const { + return true; +} + +void GetVersionEMAMessage::InternalSwap(GetVersionEMAMessage* other) { + using std::swap; + _internal_metadata_.Swap(&other->_internal_metadata_); +} + +::PROTOBUF_NAMESPACE_ID::Metadata GetVersionEMAMessage::GetMetadata() const { + return GetMetadataStatic(); +} + + +// =================================================================== + +void GetVersionEMAResponseMessage::InitAsDefaultInstance() { +} +class GetVersionEMAResponseMessage::_Internal { + public: +}; + +GetVersionEMAResponseMessage::GetVersionEMAResponseMessage() + : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) { + SharedCtor(); + // @@protoc_insertion_point(constructor:api.GetVersionEMAResponseMessage) +} +GetVersionEMAResponseMessage::GetVersionEMAResponseMessage(const GetVersionEMAResponseMessage& from) + : ::PROTOBUF_NAMESPACE_ID::Message(), + _internal_metadata_(nullptr) { + _internal_metadata_.MergeFrom(from._internal_metadata_); + version_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + if (!from._internal_version().empty()) { + version_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.version_); + } + // @@protoc_insertion_point(copy_constructor:api.GetVersionEMAResponseMessage) +} + +void GetVersionEMAResponseMessage::SharedCtor() { + ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_GetVersionEMAResponseMessage_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base); + version_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} + +GetVersionEMAResponseMessage::~GetVersionEMAResponseMessage() { + // @@protoc_insertion_point(destructor:api.GetVersionEMAResponseMessage) + SharedDtor(); +} + +void GetVersionEMAResponseMessage::SharedDtor() { + version_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} + +void GetVersionEMAResponseMessage::SetCachedSize(int size) const { + _cached_size_.Set(size); +} +const GetVersionEMAResponseMessage& GetVersionEMAResponseMessage::default_instance() { + ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_GetVersionEMAResponseMessage_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base); + return *internal_default_instance(); +} + + +void GetVersionEMAResponseMessage::Clear() { +// @@protoc_insertion_point(message_clear_start:api.GetVersionEMAResponseMessage) + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + version_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + _internal_metadata_.Clear(); +} + +const char* GetVersionEMAResponseMessage::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + ::PROTOBUF_NAMESPACE_ID::uint32 tag; + ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag); + CHK_(ptr); + switch (tag >> 3) { + // string version = 1; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) { + auto str = _internal_mutable_version(); + ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); + CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "api.GetVersionEMAResponseMessage.version")); + CHK_(ptr); + } else goto handle_unusual; + continue; + default: { + handle_unusual: + if ((tag & 7) == 4 || tag == 0) { + ctx->SetLastTag(tag); + goto success; + } + ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx); + CHK_(ptr != nullptr); + continue; + } + } // switch + } // while +success: + return ptr; +failure: + ptr = nullptr; + goto success; +#undef CHK_ +} + +::PROTOBUF_NAMESPACE_ID::uint8* GetVersionEMAResponseMessage::_InternalSerialize( + ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:api.GetVersionEMAResponseMessage) + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + // string version = 1; + if (this->version().size() > 0) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_version().data(), static_cast<int>(this->_internal_version().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "api.GetVersionEMAResponseMessage.version"); + target = stream->WriteStringMaybeAliased( + 1, this->_internal_version(), target); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields(), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:api.GetVersionEMAResponseMessage) + return target; +} + +size_t GetVersionEMAResponseMessage::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:api.GetVersionEMAResponseMessage) + size_t total_size = 0; + + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // string version = 1; + if (this->version().size() > 0) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_version()); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize( + _internal_metadata_, total_size, &_cached_size_); + } + int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size); + SetCachedSize(cached_size); + return total_size; +} + +void GetVersionEMAResponseMessage::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { +// @@protoc_insertion_point(generalized_merge_from_start:api.GetVersionEMAResponseMessage) + GOOGLE_DCHECK_NE(&from, this); + const GetVersionEMAResponseMessage* source = + ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<GetVersionEMAResponseMessage>( + &from); + if (source == nullptr) { + // @@protoc_insertion_point(generalized_merge_from_cast_fail:api.GetVersionEMAResponseMessage) + ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this); + } else { + // @@protoc_insertion_point(generalized_merge_from_cast_success:api.GetVersionEMAResponseMessage) + MergeFrom(*source); + } +} + +void GetVersionEMAResponseMessage::MergeFrom(const GetVersionEMAResponseMessage& from) { +// @@protoc_insertion_point(class_specific_merge_from_start:api.GetVersionEMAResponseMessage) + GOOGLE_DCHECK_NE(&from, this); + _internal_metadata_.MergeFrom(from._internal_metadata_); + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + if (from.version().size() > 0) { + + version_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.version_); + } +} + +void GetVersionEMAResponseMessage::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { +// @@protoc_insertion_point(generalized_copy_from_start:api.GetVersionEMAResponseMessage) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +void GetVersionEMAResponseMessage::CopyFrom(const GetVersionEMAResponseMessage& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:api.GetVersionEMAResponseMessage) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool GetVersionEMAResponseMessage::IsInitialized() const { + return true; +} + +void GetVersionEMAResponseMessage::InternalSwap(GetVersionEMAResponseMessage* other) { + using std::swap; + _internal_metadata_.Swap(&other->_internal_metadata_); + version_.Swap(&other->version_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); +} + +::PROTOBUF_NAMESPACE_ID::Metadata GetVersionEMAResponseMessage::GetMetadata() const { + return GetMetadataStatic(); +} + + +// =================================================================== + +void GetEntitiesTailsMessage::InitAsDefaultInstance() { +} +class GetEntitiesTailsMessage::_Internal { + public: +}; + +GetEntitiesTailsMessage::GetEntitiesTailsMessage() + : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) { + SharedCtor(); + // @@protoc_insertion_point(constructor:api.GetEntitiesTailsMessage) +} +GetEntitiesTailsMessage::GetEntitiesTailsMessage(const GetEntitiesTailsMessage& from) + : ::PROTOBUF_NAMESPACE_ID::Message(), + _internal_metadata_(nullptr), + uuids_(from.uuids_) { + _internal_metadata_.MergeFrom(from._internal_metadata_); + // @@protoc_insertion_point(copy_constructor:api.GetEntitiesTailsMessage) +} + +void GetEntitiesTailsMessage::SharedCtor() { + ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_GetEntitiesTailsMessage_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base); +} + +GetEntitiesTailsMessage::~GetEntitiesTailsMessage() { + // @@protoc_insertion_point(destructor:api.GetEntitiesTailsMessage) + SharedDtor(); +} + +void GetEntitiesTailsMessage::SharedDtor() { +} + +void GetEntitiesTailsMessage::SetCachedSize(int size) const { + _cached_size_.Set(size); +} +const GetEntitiesTailsMessage& GetEntitiesTailsMessage::default_instance() { + ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_GetEntitiesTailsMessage_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base); + return *internal_default_instance(); +} + + +void GetEntitiesTailsMessage::Clear() { +// @@protoc_insertion_point(message_clear_start:api.GetEntitiesTailsMessage) + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + uuids_.Clear(); + _internal_metadata_.Clear(); +} + +const char* GetEntitiesTailsMessage::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + ::PROTOBUF_NAMESPACE_ID::uint32 tag; + ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag); + CHK_(ptr); + switch (tag >> 3) { + // repeated string uuids = 1; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) { + ptr -= 1; + do { + ptr += 1; + auto str = _internal_add_uuids(); + ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); + CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "api.GetEntitiesTailsMessage.uuids")); + CHK_(ptr); + if (!ctx->DataAvailable(ptr)) break; + } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr)); + } else goto handle_unusual; + continue; + default: { + handle_unusual: + if ((tag & 7) == 4 || tag == 0) { + ctx->SetLastTag(tag); + goto success; + } + ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx); + CHK_(ptr != nullptr); + continue; + } + } // switch + } // while +success: + return ptr; +failure: + ptr = nullptr; + goto success; +#undef CHK_ +} + +::PROTOBUF_NAMESPACE_ID::uint8* GetEntitiesTailsMessage::_InternalSerialize( + ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:api.GetEntitiesTailsMessage) + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + // repeated string uuids = 1; + for (int i = 0, n = this->_internal_uuids_size(); i < n; i++) { + const auto& s = this->_internal_uuids(i); + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + s.data(), static_cast<int>(s.length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "api.GetEntitiesTailsMessage.uuids"); + target = stream->WriteString(1, s, target); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields(), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:api.GetEntitiesTailsMessage) + return target; +} + +size_t GetEntitiesTailsMessage::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:api.GetEntitiesTailsMessage) + size_t total_size = 0; + + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // repeated string uuids = 1; + total_size += 1 * + ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(uuids_.size()); + for (int i = 0, n = uuids_.size(); i < n; i++) { + total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + uuids_.Get(i)); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize( + _internal_metadata_, total_size, &_cached_size_); + } + int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size); + SetCachedSize(cached_size); + return total_size; +} + +void GetEntitiesTailsMessage::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { +// @@protoc_insertion_point(generalized_merge_from_start:api.GetEntitiesTailsMessage) + GOOGLE_DCHECK_NE(&from, this); + const GetEntitiesTailsMessage* source = + ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<GetEntitiesTailsMessage>( + &from); + if (source == nullptr) { + // @@protoc_insertion_point(generalized_merge_from_cast_fail:api.GetEntitiesTailsMessage) + ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this); + } else { + // @@protoc_insertion_point(generalized_merge_from_cast_success:api.GetEntitiesTailsMessage) + MergeFrom(*source); + } +} + +void GetEntitiesTailsMessage::MergeFrom(const GetEntitiesTailsMessage& from) { +// @@protoc_insertion_point(class_specific_merge_from_start:api.GetEntitiesTailsMessage) + GOOGLE_DCHECK_NE(&from, this); + _internal_metadata_.MergeFrom(from._internal_metadata_); + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + uuids_.MergeFrom(from.uuids_); +} + +void GetEntitiesTailsMessage::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { +// @@protoc_insertion_point(generalized_copy_from_start:api.GetEntitiesTailsMessage) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +void GetEntitiesTailsMessage::CopyFrom(const GetEntitiesTailsMessage& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:api.GetEntitiesTailsMessage) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool GetEntitiesTailsMessage::IsInitialized() const { + return true; +} + +void GetEntitiesTailsMessage::InternalSwap(GetEntitiesTailsMessage* other) { + using std::swap; + _internal_metadata_.Swap(&other->_internal_metadata_); + uuids_.InternalSwap(&other->uuids_); +} + +::PROTOBUF_NAMESPACE_ID::Metadata GetEntitiesTailsMessage::GetMetadata() const { + return GetMetadataStatic(); +} + + +// =================================================================== + +GetEntitiesTailsResponseMessage_EntitiesEntry_DoNotUse::GetEntitiesTailsResponseMessage_EntitiesEntry_DoNotUse() {} +GetEntitiesTailsResponseMessage_EntitiesEntry_DoNotUse::GetEntitiesTailsResponseMessage_EntitiesEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena) + : SuperType(arena) {} +void GetEntitiesTailsResponseMessage_EntitiesEntry_DoNotUse::MergeFrom(const GetEntitiesTailsResponseMessage_EntitiesEntry_DoNotUse& other) { + MergeFromInternal(other); +} +::PROTOBUF_NAMESPACE_ID::Metadata GetEntitiesTailsResponseMessage_EntitiesEntry_DoNotUse::GetMetadata() const { + return GetMetadataStatic(); +} +void GetEntitiesTailsResponseMessage_EntitiesEntry_DoNotUse::MergeFrom( + const ::PROTOBUF_NAMESPACE_ID::Message& other) { + ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom(other); +} + + +// =================================================================== + +void GetEntitiesTailsResponseMessage::InitAsDefaultInstance() { +} +class GetEntitiesTailsResponseMessage::_Internal { + public: +}; + +GetEntitiesTailsResponseMessage::GetEntitiesTailsResponseMessage() + : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) { + SharedCtor(); + // @@protoc_insertion_point(constructor:api.GetEntitiesTailsResponseMessage) +} +GetEntitiesTailsResponseMessage::GetEntitiesTailsResponseMessage(const GetEntitiesTailsResponseMessage& from) + : ::PROTOBUF_NAMESPACE_ID::Message(), + _internal_metadata_(nullptr) { + _internal_metadata_.MergeFrom(from._internal_metadata_); + entities_.MergeFrom(from.entities_); + // @@protoc_insertion_point(copy_constructor:api.GetEntitiesTailsResponseMessage) +} + +void GetEntitiesTailsResponseMessage::SharedCtor() { + ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_GetEntitiesTailsResponseMessage_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base); +} + +GetEntitiesTailsResponseMessage::~GetEntitiesTailsResponseMessage() { + // @@protoc_insertion_point(destructor:api.GetEntitiesTailsResponseMessage) + SharedDtor(); +} + +void GetEntitiesTailsResponseMessage::SharedDtor() { +} + +void GetEntitiesTailsResponseMessage::SetCachedSize(int size) const { + _cached_size_.Set(size); +} +const GetEntitiesTailsResponseMessage& GetEntitiesTailsResponseMessage::default_instance() { + ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_GetEntitiesTailsResponseMessage_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base); + return *internal_default_instance(); +} + + +void GetEntitiesTailsResponseMessage::Clear() { +// @@protoc_insertion_point(message_clear_start:api.GetEntitiesTailsResponseMessage) + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + entities_.Clear(); + _internal_metadata_.Clear(); +} + +const char* GetEntitiesTailsResponseMessage::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + ::PROTOBUF_NAMESPACE_ID::uint32 tag; + ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag); + CHK_(ptr); + switch (tag >> 3) { + // map<string, .api.EntityMessage_V2> entities = 1; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) { + ptr -= 1; + do { + ptr += 1; + ptr = ctx->ParseMessage(&entities_, ptr); + CHK_(ptr); + if (!ctx->DataAvailable(ptr)) break; + } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr)); + } else goto handle_unusual; + continue; + default: { + handle_unusual: + if ((tag & 7) == 4 || tag == 0) { + ctx->SetLastTag(tag); + goto success; + } + ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx); + CHK_(ptr != nullptr); + continue; + } + } // switch + } // while +success: + return ptr; +failure: + ptr = nullptr; + goto success; +#undef CHK_ +} + +::PROTOBUF_NAMESPACE_ID::uint8* GetEntitiesTailsResponseMessage::_InternalSerialize( + ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:api.GetEntitiesTailsResponseMessage) + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + // map<string, .api.EntityMessage_V2> entities = 1; + if (!this->_internal_entities().empty()) { + typedef ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::EntityMessage_V2 >::const_pointer + ConstPtr; + typedef ConstPtr SortItem; + typedef ::PROTOBUF_NAMESPACE_ID::internal::CompareByDerefFirst<SortItem> Less; + struct Utf8Check { + static void Check(ConstPtr p) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + p->first.data(), static_cast<int>(p->first.length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "api.GetEntitiesTailsResponseMessage.EntitiesEntry.key"); + } + }; + + if (stream->IsSerializationDeterministic() && + this->_internal_entities().size() > 1) { + ::std::unique_ptr<SortItem[]> items( + new SortItem[this->_internal_entities().size()]); + typedef ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::EntityMessage_V2 >::size_type size_type; + size_type n = 0; + for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::EntityMessage_V2 >::const_iterator + it = this->_internal_entities().begin(); + it != this->_internal_entities().end(); ++it, ++n) { + items[static_cast<ptrdiff_t>(n)] = SortItem(&*it); + } + ::std::sort(&items[0], &items[static_cast<ptrdiff_t>(n)], Less()); + for (size_type i = 0; i < n; i++) { + target = GetEntitiesTailsResponseMessage_EntitiesEntry_DoNotUse::Funcs::InternalSerialize(1, items[static_cast<ptrdiff_t>(i)]->first, items[static_cast<ptrdiff_t>(i)]->second, target, stream); + Utf8Check::Check(&(*items[static_cast<ptrdiff_t>(i)])); + } + } else { + for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::EntityMessage_V2 >::const_iterator + it = this->_internal_entities().begin(); + it != this->_internal_entities().end(); ++it) { + target = GetEntitiesTailsResponseMessage_EntitiesEntry_DoNotUse::Funcs::InternalSerialize(1, it->first, it->second, target, stream); + Utf8Check::Check(&(*it)); + } + } + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields(), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:api.GetEntitiesTailsResponseMessage) + return target; +} + +size_t GetEntitiesTailsResponseMessage::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:api.GetEntitiesTailsResponseMessage) + size_t total_size = 0; + + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // map<string, .api.EntityMessage_V2> entities = 1; + total_size += 1 * + ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(this->_internal_entities_size()); + for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::EntityMessage_V2 >::const_iterator + it = this->_internal_entities().begin(); + it != this->_internal_entities().end(); ++it) { + total_size += GetEntitiesTailsResponseMessage_EntitiesEntry_DoNotUse::Funcs::ByteSizeLong(it->first, it->second); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize( + _internal_metadata_, total_size, &_cached_size_); + } + int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size); + SetCachedSize(cached_size); + return total_size; +} + +void GetEntitiesTailsResponseMessage::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { +// @@protoc_insertion_point(generalized_merge_from_start:api.GetEntitiesTailsResponseMessage) + GOOGLE_DCHECK_NE(&from, this); + const GetEntitiesTailsResponseMessage* source = + ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<GetEntitiesTailsResponseMessage>( + &from); + if (source == nullptr) { + // @@protoc_insertion_point(generalized_merge_from_cast_fail:api.GetEntitiesTailsResponseMessage) + ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this); + } else { + // @@protoc_insertion_point(generalized_merge_from_cast_success:api.GetEntitiesTailsResponseMessage) + MergeFrom(*source); + } +} + +void GetEntitiesTailsResponseMessage::MergeFrom(const GetEntitiesTailsResponseMessage& from) { +// @@protoc_insertion_point(class_specific_merge_from_start:api.GetEntitiesTailsResponseMessage) + GOOGLE_DCHECK_NE(&from, this); + _internal_metadata_.MergeFrom(from._internal_metadata_); + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + entities_.MergeFrom(from.entities_); +} + +void GetEntitiesTailsResponseMessage::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { +// @@protoc_insertion_point(generalized_copy_from_start:api.GetEntitiesTailsResponseMessage) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +void GetEntitiesTailsResponseMessage::CopyFrom(const GetEntitiesTailsResponseMessage& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:api.GetEntitiesTailsResponseMessage) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool GetEntitiesTailsResponseMessage::IsInitialized() const { + return true; +} + +void GetEntitiesTailsResponseMessage::InternalSwap(GetEntitiesTailsResponseMessage* other) { + using std::swap; + _internal_metadata_.Swap(&other->_internal_metadata_); + entities_.Swap(&other->entities_); +} + +::PROTOBUF_NAMESPACE_ID::Metadata GetEntitiesTailsResponseMessage::GetMetadata() const { + return GetMetadataStatic(); +} + + +// =================================================================== + +void GetEntitiesCountersMessage::InitAsDefaultInstance() { +} +class GetEntitiesCountersMessage::_Internal { + public: +}; + +GetEntitiesCountersMessage::GetEntitiesCountersMessage() + : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) { + SharedCtor(); + // @@protoc_insertion_point(constructor:api.GetEntitiesCountersMessage) +} +GetEntitiesCountersMessage::GetEntitiesCountersMessage(const GetEntitiesCountersMessage& from) + : ::PROTOBUF_NAMESPACE_ID::Message(), + _internal_metadata_(nullptr), + uuids_(from.uuids_) { + _internal_metadata_.MergeFrom(from._internal_metadata_); + // @@protoc_insertion_point(copy_constructor:api.GetEntitiesCountersMessage) +} + +void GetEntitiesCountersMessage::SharedCtor() { + ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_GetEntitiesCountersMessage_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base); +} + +GetEntitiesCountersMessage::~GetEntitiesCountersMessage() { + // @@protoc_insertion_point(destructor:api.GetEntitiesCountersMessage) + SharedDtor(); +} + +void GetEntitiesCountersMessage::SharedDtor() { +} + +void GetEntitiesCountersMessage::SetCachedSize(int size) const { + _cached_size_.Set(size); +} +const GetEntitiesCountersMessage& GetEntitiesCountersMessage::default_instance() { + ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_GetEntitiesCountersMessage_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base); + return *internal_default_instance(); +} + + +void GetEntitiesCountersMessage::Clear() { +// @@protoc_insertion_point(message_clear_start:api.GetEntitiesCountersMessage) + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + uuids_.Clear(); + _internal_metadata_.Clear(); +} + +const char* GetEntitiesCountersMessage::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + ::PROTOBUF_NAMESPACE_ID::uint32 tag; + ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag); + CHK_(ptr); + switch (tag >> 3) { + // repeated string uuids = 1; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) { + ptr -= 1; + do { + ptr += 1; + auto str = _internal_add_uuids(); + ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); + CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "api.GetEntitiesCountersMessage.uuids")); + CHK_(ptr); + if (!ctx->DataAvailable(ptr)) break; + } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr)); + } else goto handle_unusual; + continue; + default: { + handle_unusual: + if ((tag & 7) == 4 || tag == 0) { + ctx->SetLastTag(tag); + goto success; + } + ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx); + CHK_(ptr != nullptr); + continue; + } + } // switch + } // while +success: + return ptr; +failure: + ptr = nullptr; + goto success; +#undef CHK_ +} + +::PROTOBUF_NAMESPACE_ID::uint8* GetEntitiesCountersMessage::_InternalSerialize( + ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:api.GetEntitiesCountersMessage) + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + // repeated string uuids = 1; + for (int i = 0, n = this->_internal_uuids_size(); i < n; i++) { + const auto& s = this->_internal_uuids(i); + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + s.data(), static_cast<int>(s.length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "api.GetEntitiesCountersMessage.uuids"); + target = stream->WriteString(1, s, target); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields(), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:api.GetEntitiesCountersMessage) + return target; +} + +size_t GetEntitiesCountersMessage::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:api.GetEntitiesCountersMessage) + size_t total_size = 0; + + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // repeated string uuids = 1; + total_size += 1 * + ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(uuids_.size()); + for (int i = 0, n = uuids_.size(); i < n; i++) { + total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + uuids_.Get(i)); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize( + _internal_metadata_, total_size, &_cached_size_); + } + int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size); + SetCachedSize(cached_size); + return total_size; +} + +void GetEntitiesCountersMessage::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { +// @@protoc_insertion_point(generalized_merge_from_start:api.GetEntitiesCountersMessage) + GOOGLE_DCHECK_NE(&from, this); + const GetEntitiesCountersMessage* source = + ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<GetEntitiesCountersMessage>( + &from); + if (source == nullptr) { + // @@protoc_insertion_point(generalized_merge_from_cast_fail:api.GetEntitiesCountersMessage) + ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this); + } else { + // @@protoc_insertion_point(generalized_merge_from_cast_success:api.GetEntitiesCountersMessage) + MergeFrom(*source); + } +} + +void GetEntitiesCountersMessage::MergeFrom(const GetEntitiesCountersMessage& from) { +// @@protoc_insertion_point(class_specific_merge_from_start:api.GetEntitiesCountersMessage) + GOOGLE_DCHECK_NE(&from, this); + _internal_metadata_.MergeFrom(from._internal_metadata_); + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + uuids_.MergeFrom(from.uuids_); +} + +void GetEntitiesCountersMessage::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { +// @@protoc_insertion_point(generalized_copy_from_start:api.GetEntitiesCountersMessage) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +void GetEntitiesCountersMessage::CopyFrom(const GetEntitiesCountersMessage& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:api.GetEntitiesCountersMessage) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool GetEntitiesCountersMessage::IsInitialized() const { + return true; +} + +void GetEntitiesCountersMessage::InternalSwap(GetEntitiesCountersMessage* other) { + using std::swap; + _internal_metadata_.Swap(&other->_internal_metadata_); + uuids_.InternalSwap(&other->uuids_); +} + +::PROTOBUF_NAMESPACE_ID::Metadata GetEntitiesCountersMessage::GetMetadata() const { + return GetMetadataStatic(); +} + + +// =================================================================== + +GetEntitiesCountersResponseMessage_CountersEntry_DoNotUse::GetEntitiesCountersResponseMessage_CountersEntry_DoNotUse() {} +GetEntitiesCountersResponseMessage_CountersEntry_DoNotUse::GetEntitiesCountersResponseMessage_CountersEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena) + : SuperType(arena) {} +void GetEntitiesCountersResponseMessage_CountersEntry_DoNotUse::MergeFrom(const GetEntitiesCountersResponseMessage_CountersEntry_DoNotUse& other) { + MergeFromInternal(other); +} +::PROTOBUF_NAMESPACE_ID::Metadata GetEntitiesCountersResponseMessage_CountersEntry_DoNotUse::GetMetadata() const { + return GetMetadataStatic(); +} +void GetEntitiesCountersResponseMessage_CountersEntry_DoNotUse::MergeFrom( + const ::PROTOBUF_NAMESPACE_ID::Message& other) { + ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom(other); +} + + +// =================================================================== + +void GetEntitiesCountersResponseMessage::InitAsDefaultInstance() { +} +class GetEntitiesCountersResponseMessage::_Internal { + public: +}; + +GetEntitiesCountersResponseMessage::GetEntitiesCountersResponseMessage() + : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) { + SharedCtor(); + // @@protoc_insertion_point(constructor:api.GetEntitiesCountersResponseMessage) +} +GetEntitiesCountersResponseMessage::GetEntitiesCountersResponseMessage(const GetEntitiesCountersResponseMessage& from) + : ::PROTOBUF_NAMESPACE_ID::Message(), + _internal_metadata_(nullptr) { + _internal_metadata_.MergeFrom(from._internal_metadata_); + counters_.MergeFrom(from.counters_); + // @@protoc_insertion_point(copy_constructor:api.GetEntitiesCountersResponseMessage) +} + +void GetEntitiesCountersResponseMessage::SharedCtor() { + ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_GetEntitiesCountersResponseMessage_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base); +} + +GetEntitiesCountersResponseMessage::~GetEntitiesCountersResponseMessage() { + // @@protoc_insertion_point(destructor:api.GetEntitiesCountersResponseMessage) + SharedDtor(); +} + +void GetEntitiesCountersResponseMessage::SharedDtor() { +} + +void GetEntitiesCountersResponseMessage::SetCachedSize(int size) const { + _cached_size_.Set(size); +} +const GetEntitiesCountersResponseMessage& GetEntitiesCountersResponseMessage::default_instance() { + ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_GetEntitiesCountersResponseMessage_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base); + return *internal_default_instance(); +} + + +void GetEntitiesCountersResponseMessage::Clear() { +// @@protoc_insertion_point(message_clear_start:api.GetEntitiesCountersResponseMessage) + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + counters_.Clear(); + _internal_metadata_.Clear(); +} + +const char* GetEntitiesCountersResponseMessage::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + ::PROTOBUF_NAMESPACE_ID::uint32 tag; + ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag); + CHK_(ptr); + switch (tag >> 3) { + // map<string, int64> counters = 1; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) { + ptr -= 1; + do { + ptr += 1; + ptr = ctx->ParseMessage(&counters_, ptr); + CHK_(ptr); + if (!ctx->DataAvailable(ptr)) break; + } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr)); + } else goto handle_unusual; + continue; + default: { + handle_unusual: + if ((tag & 7) == 4 || tag == 0) { + ctx->SetLastTag(tag); + goto success; + } + ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx); + CHK_(ptr != nullptr); + continue; + } + } // switch + } // while +success: + return ptr; +failure: + ptr = nullptr; + goto success; +#undef CHK_ +} + +::PROTOBUF_NAMESPACE_ID::uint8* GetEntitiesCountersResponseMessage::_InternalSerialize( + ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:api.GetEntitiesCountersResponseMessage) + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + // map<string, int64> counters = 1; + if (!this->_internal_counters().empty()) { + typedef ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::PROTOBUF_NAMESPACE_ID::int64 >::const_pointer + ConstPtr; + typedef ConstPtr SortItem; + typedef ::PROTOBUF_NAMESPACE_ID::internal::CompareByDerefFirst<SortItem> Less; + struct Utf8Check { + static void Check(ConstPtr p) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + p->first.data(), static_cast<int>(p->first.length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "api.GetEntitiesCountersResponseMessage.CountersEntry.key"); + } + }; + + if (stream->IsSerializationDeterministic() && + this->_internal_counters().size() > 1) { + ::std::unique_ptr<SortItem[]> items( + new SortItem[this->_internal_counters().size()]); + typedef ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::PROTOBUF_NAMESPACE_ID::int64 >::size_type size_type; + size_type n = 0; + for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::PROTOBUF_NAMESPACE_ID::int64 >::const_iterator + it = this->_internal_counters().begin(); + it != this->_internal_counters().end(); ++it, ++n) { + items[static_cast<ptrdiff_t>(n)] = SortItem(&*it); + } + ::std::sort(&items[0], &items[static_cast<ptrdiff_t>(n)], Less()); + for (size_type i = 0; i < n; i++) { + target = GetEntitiesCountersResponseMessage_CountersEntry_DoNotUse::Funcs::InternalSerialize(1, items[static_cast<ptrdiff_t>(i)]->first, items[static_cast<ptrdiff_t>(i)]->second, target, stream); + Utf8Check::Check(&(*items[static_cast<ptrdiff_t>(i)])); + } + } else { + for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::PROTOBUF_NAMESPACE_ID::int64 >::const_iterator + it = this->_internal_counters().begin(); + it != this->_internal_counters().end(); ++it) { + target = GetEntitiesCountersResponseMessage_CountersEntry_DoNotUse::Funcs::InternalSerialize(1, it->first, it->second, target, stream); + Utf8Check::Check(&(*it)); + } + } + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields(), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:api.GetEntitiesCountersResponseMessage) + return target; +} + +size_t GetEntitiesCountersResponseMessage::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:api.GetEntitiesCountersResponseMessage) + size_t total_size = 0; + + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // map<string, int64> counters = 1; + total_size += 1 * + ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(this->_internal_counters_size()); + for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::PROTOBUF_NAMESPACE_ID::int64 >::const_iterator + it = this->_internal_counters().begin(); + it != this->_internal_counters().end(); ++it) { + total_size += GetEntitiesCountersResponseMessage_CountersEntry_DoNotUse::Funcs::ByteSizeLong(it->first, it->second); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize( + _internal_metadata_, total_size, &_cached_size_); + } + int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size); + SetCachedSize(cached_size); + return total_size; +} + +void GetEntitiesCountersResponseMessage::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { +// @@protoc_insertion_point(generalized_merge_from_start:api.GetEntitiesCountersResponseMessage) + GOOGLE_DCHECK_NE(&from, this); + const GetEntitiesCountersResponseMessage* source = + ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<GetEntitiesCountersResponseMessage>( + &from); + if (source == nullptr) { + // @@protoc_insertion_point(generalized_merge_from_cast_fail:api.GetEntitiesCountersResponseMessage) + ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this); + } else { + // @@protoc_insertion_point(generalized_merge_from_cast_success:api.GetEntitiesCountersResponseMessage) + MergeFrom(*source); + } +} + +void GetEntitiesCountersResponseMessage::MergeFrom(const GetEntitiesCountersResponseMessage& from) { +// @@protoc_insertion_point(class_specific_merge_from_start:api.GetEntitiesCountersResponseMessage) + GOOGLE_DCHECK_NE(&from, this); + _internal_metadata_.MergeFrom(from._internal_metadata_); + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + counters_.MergeFrom(from.counters_); +} + +void GetEntitiesCountersResponseMessage::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { +// @@protoc_insertion_point(generalized_copy_from_start:api.GetEntitiesCountersResponseMessage) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +void GetEntitiesCountersResponseMessage::CopyFrom(const GetEntitiesCountersResponseMessage& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:api.GetEntitiesCountersResponseMessage) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool GetEntitiesCountersResponseMessage::IsInitialized() const { + return true; +} + +void GetEntitiesCountersResponseMessage::InternalSwap(GetEntitiesCountersResponseMessage* other) { + using std::swap; + _internal_metadata_.Swap(&other->_internal_metadata_); + counters_.Swap(&other->counters_); +} + +::PROTOBUF_NAMESPACE_ID::Metadata GetEntitiesCountersResponseMessage::GetMetadata() const { + return GetMetadataStatic(); +} + + +// =================================================================== + +void EntityReplaceMessage::InitAsDefaultInstance() { +} +class EntityReplaceMessage::_Internal { + public: +}; + +EntityReplaceMessage::EntityReplaceMessage() + : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) { + SharedCtor(); + // @@protoc_insertion_point(constructor:api.EntityReplaceMessage) +} +EntityReplaceMessage::EntityReplaceMessage(const EntityReplaceMessage& from) + : ::PROTOBUF_NAMESPACE_ID::Message(), + _internal_metadata_(nullptr), + history_(from.history_) { + _internal_metadata_.MergeFrom(from._internal_metadata_); + uuid_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + if (!from._internal_uuid().empty()) { + uuid_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.uuid_); + } + // @@protoc_insertion_point(copy_constructor:api.EntityReplaceMessage) +} + +void EntityReplaceMessage::SharedCtor() { + ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_EntityReplaceMessage_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base); + uuid_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} + +EntityReplaceMessage::~EntityReplaceMessage() { + // @@protoc_insertion_point(destructor:api.EntityReplaceMessage) + SharedDtor(); +} + +void EntityReplaceMessage::SharedDtor() { + uuid_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} + +void EntityReplaceMessage::SetCachedSize(int size) const { + _cached_size_.Set(size); +} +const EntityReplaceMessage& EntityReplaceMessage::default_instance() { + ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_EntityReplaceMessage_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base); + return *internal_default_instance(); +} + + +void EntityReplaceMessage::Clear() { +// @@protoc_insertion_point(message_clear_start:api.EntityReplaceMessage) + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + history_.Clear(); + uuid_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + _internal_metadata_.Clear(); +} + +const char* EntityReplaceMessage::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + ::PROTOBUF_NAMESPACE_ID::uint32 tag; + ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag); + CHK_(ptr); + switch (tag >> 3) { + // repeated .api.EntityMessage_V2 history = 1; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) { + ptr -= 1; + do { + ptr += 1; + ptr = ctx->ParseMessage(_internal_add_history(), ptr); + CHK_(ptr); + if (!ctx->DataAvailable(ptr)) break; + } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr)); + } else goto handle_unusual; + continue; + // string uuid = 2; + case 2: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) { + auto str = _internal_mutable_uuid(); + ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); + CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "api.EntityReplaceMessage.uuid")); + CHK_(ptr); + } else goto handle_unusual; + continue; + default: { + handle_unusual: + if ((tag & 7) == 4 || tag == 0) { + ctx->SetLastTag(tag); + goto success; + } + ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx); + CHK_(ptr != nullptr); + continue; + } + } // switch + } // while +success: + return ptr; +failure: + ptr = nullptr; + goto success; +#undef CHK_ +} + +::PROTOBUF_NAMESPACE_ID::uint8* EntityReplaceMessage::_InternalSerialize( + ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:api.EntityReplaceMessage) + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + // repeated .api.EntityMessage_V2 history = 1; + for (unsigned int i = 0, + n = static_cast<unsigned int>(this->_internal_history_size()); i < n; i++) { + target = stream->EnsureSpace(target); + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: + InternalWriteMessage(1, this->_internal_history(i), target, stream); + } + + // string uuid = 2; + if (this->uuid().size() > 0) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_uuid().data(), static_cast<int>(this->_internal_uuid().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "api.EntityReplaceMessage.uuid"); + target = stream->WriteStringMaybeAliased( + 2, this->_internal_uuid(), target); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields(), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:api.EntityReplaceMessage) + return target; +} + +size_t EntityReplaceMessage::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:api.EntityReplaceMessage) + size_t total_size = 0; + + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // repeated .api.EntityMessage_V2 history = 1; + total_size += 1UL * this->_internal_history_size(); + for (const auto& msg : this->history_) { + total_size += + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg); + } + + // string uuid = 2; + if (this->uuid().size() > 0) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_uuid()); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize( + _internal_metadata_, total_size, &_cached_size_); + } + int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size); + SetCachedSize(cached_size); + return total_size; +} + +void EntityReplaceMessage::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { +// @@protoc_insertion_point(generalized_merge_from_start:api.EntityReplaceMessage) + GOOGLE_DCHECK_NE(&from, this); + const EntityReplaceMessage* source = + ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<EntityReplaceMessage>( + &from); + if (source == nullptr) { + // @@protoc_insertion_point(generalized_merge_from_cast_fail:api.EntityReplaceMessage) + ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this); + } else { + // @@protoc_insertion_point(generalized_merge_from_cast_success:api.EntityReplaceMessage) + MergeFrom(*source); + } +} + +void EntityReplaceMessage::MergeFrom(const EntityReplaceMessage& from) { +// @@protoc_insertion_point(class_specific_merge_from_start:api.EntityReplaceMessage) + GOOGLE_DCHECK_NE(&from, this); + _internal_metadata_.MergeFrom(from._internal_metadata_); + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + history_.MergeFrom(from.history_); + if (from.uuid().size() > 0) { + + uuid_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.uuid_); + } +} + +void EntityReplaceMessage::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { +// @@protoc_insertion_point(generalized_copy_from_start:api.EntityReplaceMessage) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +void EntityReplaceMessage::CopyFrom(const EntityReplaceMessage& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:api.EntityReplaceMessage) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool EntityReplaceMessage::IsInitialized() const { + return true; +} + +void EntityReplaceMessage::InternalSwap(EntityReplaceMessage* other) { + using std::swap; + _internal_metadata_.Swap(&other->_internal_metadata_); + history_.InternalSwap(&other->history_); + uuid_.Swap(&other->uuid_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); +} + +::PROTOBUF_NAMESPACE_ID::Metadata EntityReplaceMessage::GetMetadata() const { + return GetMetadataStatic(); +} + + +// @@protoc_insertion_point(namespace_scope) +} // namespace api +PROTOBUF_NAMESPACE_OPEN +template<> PROTOBUF_NOINLINE ::api::Claim_V1_ValueEntry_DoNotUse* Arena::CreateMaybeMessage< ::api::Claim_V1_ValueEntry_DoNotUse >(Arena* arena) { + return Arena::CreateInternal< ::api::Claim_V1_ValueEntry_DoNotUse >(arena); +} +template<> PROTOBUF_NOINLINE ::api::Claim_V1* Arena::CreateMaybeMessage< ::api::Claim_V1 >(Arena* arena) { + return Arena::CreateInternal< ::api::Claim_V1 >(arena); +} +template<> PROTOBUF_NOINLINE ::api::ClaimTagsMap_V1_TagsEntry_DoNotUse* Arena::CreateMaybeMessage< ::api::ClaimTagsMap_V1_TagsEntry_DoNotUse >(Arena* arena) { + return Arena::CreateInternal< ::api::ClaimTagsMap_V1_TagsEntry_DoNotUse >(arena); +} +template<> PROTOBUF_NOINLINE ::api::ClaimTagsMap_V1* Arena::CreateMaybeMessage< ::api::ClaimTagsMap_V1 >(Arena* arena) { + return Arena::CreateInternal< ::api::ClaimTagsMap_V1 >(arena); +} +template<> PROTOBUF_NOINLINE ::api::Order_V1_OperationUUIDSEntry_DoNotUse* Arena::CreateMaybeMessage< ::api::Order_V1_OperationUUIDSEntry_DoNotUse >(Arena* arena) { + return Arena::CreateInternal< ::api::Order_V1_OperationUUIDSEntry_DoNotUse >(arena); +} +template<> PROTOBUF_NOINLINE ::api::Order_V1_DataEntry_DoNotUse* Arena::CreateMaybeMessage< ::api::Order_V1_DataEntry_DoNotUse >(Arena* arena) { + return Arena::CreateInternal< ::api::Order_V1_DataEntry_DoNotUse >(arena); +} +template<> PROTOBUF_NOINLINE ::api::Order_V1* Arena::CreateMaybeMessage< ::api::Order_V1 >(Arena* arena) { + return Arena::CreateInternal< ::api::Order_V1 >(arena); +} +template<> PROTOBUF_NOINLINE ::api::EntityMessage_V1_ClaimsEntry_DoNotUse* Arena::CreateMaybeMessage< ::api::EntityMessage_V1_ClaimsEntry_DoNotUse >(Arena* arena) { + return Arena::CreateInternal< ::api::EntityMessage_V1_ClaimsEntry_DoNotUse >(arena); +} +template<> PROTOBUF_NOINLINE ::api::EntityMessage_V1_PassportsCountersEntry_DoNotUse* Arena::CreateMaybeMessage< ::api::EntityMessage_V1_PassportsCountersEntry_DoNotUse >(Arena* arena) { + return Arena::CreateInternal< ::api::EntityMessage_V1_PassportsCountersEntry_DoNotUse >(arena); +} +template<> PROTOBUF_NOINLINE ::api::EntityMessage_V1_ContactStatusesEntry_DoNotUse* Arena::CreateMaybeMessage< ::api::EntityMessage_V1_ContactStatusesEntry_DoNotUse >(Arena* arena) { + return Arena::CreateInternal< ::api::EntityMessage_V1_ContactStatusesEntry_DoNotUse >(arena); +} +template<> PROTOBUF_NOINLINE ::api::EntityMessage_V1* Arena::CreateMaybeMessage< ::api::EntityMessage_V1 >(Arena* arena) { + return Arena::CreateInternal< ::api::EntityMessage_V1 >(arena); +} +template<> PROTOBUF_NOINLINE ::api::EntityMessage_V2_ClaimsEntry_DoNotUse* Arena::CreateMaybeMessage< ::api::EntityMessage_V2_ClaimsEntry_DoNotUse >(Arena* arena) { + return Arena::CreateInternal< ::api::EntityMessage_V2_ClaimsEntry_DoNotUse >(arena); +} +template<> PROTOBUF_NOINLINE ::api::EntityMessage_V2_GuardedEntry_DoNotUse* Arena::CreateMaybeMessage< ::api::EntityMessage_V2_GuardedEntry_DoNotUse >(Arena* arena) { + return Arena::CreateInternal< ::api::EntityMessage_V2_GuardedEntry_DoNotUse >(arena); +} +template<> PROTOBUF_NOINLINE ::api::EntityMessage_V2_GuardiansEntry_DoNotUse* Arena::CreateMaybeMessage< ::api::EntityMessage_V2_GuardiansEntry_DoNotUse >(Arena* arena) { + return Arena::CreateInternal< ::api::EntityMessage_V2_GuardiansEntry_DoNotUse >(arena); +} +template<> PROTOBUF_NOINLINE ::api::EntityMessage_V2_MembersEntry_DoNotUse* Arena::CreateMaybeMessage< ::api::EntityMessage_V2_MembersEntry_DoNotUse >(Arena* arena) { + return Arena::CreateInternal< ::api::EntityMessage_V2_MembersEntry_DoNotUse >(arena); +} +template<> PROTOBUF_NOINLINE ::api::EntityMessage_V2_MemberOfEntry_DoNotUse* Arena::CreateMaybeMessage< ::api::EntityMessage_V2_MemberOfEntry_DoNotUse >(Arena* arena) { + return Arena::CreateInternal< ::api::EntityMessage_V2_MemberOfEntry_DoNotUse >(arena); +} +template<> PROTOBUF_NOINLINE ::api::EntityMessage_V2_ParentsEntry_DoNotUse* Arena::CreateMaybeMessage< ::api::EntityMessage_V2_ParentsEntry_DoNotUse >(Arena* arena) { + return Arena::CreateInternal< ::api::EntityMessage_V2_ParentsEntry_DoNotUse >(arena); +} +template<> PROTOBUF_NOINLINE ::api::EntityMessage_V2_ChildrenEntry_DoNotUse* Arena::CreateMaybeMessage< ::api::EntityMessage_V2_ChildrenEntry_DoNotUse >(Arena* arena) { + return Arena::CreateInternal< ::api::EntityMessage_V2_ChildrenEntry_DoNotUse >(arena); +} +template<> PROTOBUF_NOINLINE ::api::EntityMessage_V2_ViewedEntry_DoNotUse* Arena::CreateMaybeMessage< ::api::EntityMessage_V2_ViewedEntry_DoNotUse >(Arena* arena) { + return Arena::CreateInternal< ::api::EntityMessage_V2_ViewedEntry_DoNotUse >(arena); +} +template<> PROTOBUF_NOINLINE ::api::EntityMessage_V2_ViewersEntry_DoNotUse* Arena::CreateMaybeMessage< ::api::EntityMessage_V2_ViewersEntry_DoNotUse >(Arena* arena) { + return Arena::CreateInternal< ::api::EntityMessage_V2_ViewersEntry_DoNotUse >(arena); +} +template<> PROTOBUF_NOINLINE ::api::EntityMessage_V2_PassportsCountersEntry_DoNotUse* Arena::CreateMaybeMessage< ::api::EntityMessage_V2_PassportsCountersEntry_DoNotUse >(Arena* arena) { + return Arena::CreateInternal< ::api::EntityMessage_V2_PassportsCountersEntry_DoNotUse >(arena); +} +template<> PROTOBUF_NOINLINE ::api::EntityMessage_V2_ContactStatusesEntry_DoNotUse* Arena::CreateMaybeMessage< ::api::EntityMessage_V2_ContactStatusesEntry_DoNotUse >(Arena* arena) { + return Arena::CreateInternal< ::api::EntityMessage_V2_ContactStatusesEntry_DoNotUse >(arena); +} +template<> PROTOBUF_NOINLINE ::api::EntityMessage_V2_OrdersEntry_DoNotUse* Arena::CreateMaybeMessage< ::api::EntityMessage_V2_OrdersEntry_DoNotUse >(Arena* arena) { + return Arena::CreateInternal< ::api::EntityMessage_V2_OrdersEntry_DoNotUse >(arena); +} +template<> PROTOBUF_NOINLINE ::api::EntityMessage_V2_SystemParentsEntry_DoNotUse* Arena::CreateMaybeMessage< ::api::EntityMessage_V2_SystemParentsEntry_DoNotUse >(Arena* arena) { + return Arena::CreateInternal< ::api::EntityMessage_V2_SystemParentsEntry_DoNotUse >(arena); +} +template<> PROTOBUF_NOINLINE ::api::EntityMessage_V2_SystemChildrenEntry_DoNotUse* Arena::CreateMaybeMessage< ::api::EntityMessage_V2_SystemChildrenEntry_DoNotUse >(Arena* arena) { + return Arena::CreateInternal< ::api::EntityMessage_V2_SystemChildrenEntry_DoNotUse >(arena); +} +template<> PROTOBUF_NOINLINE ::api::EntityMessage_V2* Arena::CreateMaybeMessage< ::api::EntityMessage_V2 >(Arena* arena) { + return Arena::CreateInternal< ::api::EntityMessage_V2 >(arena); +} +template<> PROTOBUF_NOINLINE ::api::EntityMessageResponse* Arena::CreateMaybeMessage< ::api::EntityMessageResponse >(Arena* arena) { + return Arena::CreateInternal< ::api::EntityMessageResponse >(arena); +} +template<> PROTOBUF_NOINLINE ::api::EntityList* Arena::CreateMaybeMessage< ::api::EntityList >(Arena* arena) { + return Arena::CreateInternal< ::api::EntityList >(arena); +} +template<> PROTOBUF_NOINLINE ::api::EntityHistoryMessage_HistoryByUUIDEntry_DoNotUse* Arena::CreateMaybeMessage< ::api::EntityHistoryMessage_HistoryByUUIDEntry_DoNotUse >(Arena* arena) { + return Arena::CreateInternal< ::api::EntityHistoryMessage_HistoryByUUIDEntry_DoNotUse >(arena); +} +template<> PROTOBUF_NOINLINE ::api::EntityHistoryMessage* Arena::CreateMaybeMessage< ::api::EntityHistoryMessage >(Arena* arena) { + return Arena::CreateInternal< ::api::EntityHistoryMessage >(arena); +} +template<> PROTOBUF_NOINLINE ::api::EntitySearchMessage* Arena::CreateMaybeMessage< ::api::EntitySearchMessage >(Arena* arena) { + return Arena::CreateInternal< ::api::EntitySearchMessage >(arena); +} +template<> PROTOBUF_NOINLINE ::api::ClaimInvitationMessage* Arena::CreateMaybeMessage< ::api::ClaimInvitationMessage >(Arena* arena) { + return Arena::CreateInternal< ::api::ClaimInvitationMessage >(arena); +} +template<> PROTOBUF_NOINLINE ::api::ClaimInvitationMessageResponse* Arena::CreateMaybeMessage< ::api::ClaimInvitationMessageResponse >(Arena* arena) { + return Arena::CreateInternal< ::api::ClaimInvitationMessageResponse >(arena); +} +template<> PROTOBUF_NOINLINE ::api::ClaimInvitationSearchMessage* Arena::CreateMaybeMessage< ::api::ClaimInvitationSearchMessage >(Arena* arena) { + return Arena::CreateInternal< ::api::ClaimInvitationSearchMessage >(arena); +} +template<> PROTOBUF_NOINLINE ::api::ClaimInvitationList* Arena::CreateMaybeMessage< ::api::ClaimInvitationList >(Arena* arena) { + return Arena::CreateInternal< ::api::ClaimInvitationList >(arena); +} +template<> PROTOBUF_NOINLINE ::api::ClaimInvitationHistoryMessage_HistoryByClaimInvitationEntry_DoNotUse* Arena::CreateMaybeMessage< ::api::ClaimInvitationHistoryMessage_HistoryByClaimInvitationEntry_DoNotUse >(Arena* arena) { + return Arena::CreateInternal< ::api::ClaimInvitationHistoryMessage_HistoryByClaimInvitationEntry_DoNotUse >(arena); +} +template<> PROTOBUF_NOINLINE ::api::ClaimInvitationHistoryMessage* Arena::CreateMaybeMessage< ::api::ClaimInvitationHistoryMessage >(Arena* arena) { + return Arena::CreateInternal< ::api::ClaimInvitationHistoryMessage >(arena); +} +template<> PROTOBUF_NOINLINE ::api::GetVersionEMAMessage* Arena::CreateMaybeMessage< ::api::GetVersionEMAMessage >(Arena* arena) { + return Arena::CreateInternal< ::api::GetVersionEMAMessage >(arena); +} +template<> PROTOBUF_NOINLINE ::api::GetVersionEMAResponseMessage* Arena::CreateMaybeMessage< ::api::GetVersionEMAResponseMessage >(Arena* arena) { + return Arena::CreateInternal< ::api::GetVersionEMAResponseMessage >(arena); +} +template<> PROTOBUF_NOINLINE ::api::GetEntitiesTailsMessage* Arena::CreateMaybeMessage< ::api::GetEntitiesTailsMessage >(Arena* arena) { + return Arena::CreateInternal< ::api::GetEntitiesTailsMessage >(arena); +} +template<> PROTOBUF_NOINLINE ::api::GetEntitiesTailsResponseMessage_EntitiesEntry_DoNotUse* Arena::CreateMaybeMessage< ::api::GetEntitiesTailsResponseMessage_EntitiesEntry_DoNotUse >(Arena* arena) { + return Arena::CreateInternal< ::api::GetEntitiesTailsResponseMessage_EntitiesEntry_DoNotUse >(arena); +} +template<> PROTOBUF_NOINLINE ::api::GetEntitiesTailsResponseMessage* Arena::CreateMaybeMessage< ::api::GetEntitiesTailsResponseMessage >(Arena* arena) { + return Arena::CreateInternal< ::api::GetEntitiesTailsResponseMessage >(arena); +} +template<> PROTOBUF_NOINLINE ::api::GetEntitiesCountersMessage* Arena::CreateMaybeMessage< ::api::GetEntitiesCountersMessage >(Arena* arena) { + return Arena::CreateInternal< ::api::GetEntitiesCountersMessage >(arena); +} +template<> PROTOBUF_NOINLINE ::api::GetEntitiesCountersResponseMessage_CountersEntry_DoNotUse* Arena::CreateMaybeMessage< ::api::GetEntitiesCountersResponseMessage_CountersEntry_DoNotUse >(Arena* arena) { + return Arena::CreateInternal< ::api::GetEntitiesCountersResponseMessage_CountersEntry_DoNotUse >(arena); +} +template<> PROTOBUF_NOINLINE ::api::GetEntitiesCountersResponseMessage* Arena::CreateMaybeMessage< ::api::GetEntitiesCountersResponseMessage >(Arena* arena) { + return Arena::CreateInternal< ::api::GetEntitiesCountersResponseMessage >(arena); +} +template<> PROTOBUF_NOINLINE ::api::EntityReplaceMessage* Arena::CreateMaybeMessage< ::api::EntityReplaceMessage >(Arena* arena) { + return Arena::CreateInternal< ::api::EntityReplaceMessage >(arena); +} +PROTOBUF_NAMESPACE_CLOSE + +// @@protoc_insertion_point(global_scope) +#include <google/protobuf/port_undef.inc> diff --git a/cpp/src/vereign/v1pb/code.vereign.com/code/viam-apis/entities-management-agent/api/api.pb.h b/cpp/src/vereign/v1pb/code.vereign.com/code/viam-apis/entities-management-agent/api/api.pb.h new file mode 100644 index 0000000000000000000000000000000000000000..a29ffc8a5c3fb9bc6dd59710f30077eb225243d4 --- /dev/null +++ b/cpp/src/vereign/v1pb/code.vereign.com/code/viam-apis/entities-management-agent/api/api.pb.h @@ -0,0 +1,10396 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: code.vereign.com/code/viam-apis/entities-management-agent/api/api.proto + +#ifndef GOOGLE_PROTOBUF_INCLUDED_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto +#define GOOGLE_PROTOBUF_INCLUDED_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto + +#include <limits> +#include <string> + +#include <google/protobuf/port_def.inc> +#if PROTOBUF_VERSION < 3011000 +#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 3011002 < 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/port_undef.inc> +#include <google/protobuf/io/coded_stream.h> +#include <google/protobuf/arena.h> +#include <google/protobuf/arenastring.h> +#include <google/protobuf/generated_message_table_driven.h> +#include <google/protobuf/generated_message_util.h> +#include <google/protobuf/inlined_string_field.h> +#include <google/protobuf/metadata.h> +#include <google/protobuf/generated_message_reflection.h> +#include <google/protobuf/message.h> +#include <google/protobuf/repeated_field.h> // IWYU pragma: export +#include <google/protobuf/extension_set.h> // IWYU pragma: export +#include <google/protobuf/map.h> // IWYU pragma: export +#include <google/protobuf/map_entry.h> +#include <google/protobuf/map_field_inl.h> +#include <google/protobuf/generated_enum_reflection.h> +#include <google/protobuf/unknown_field_set.h> +#include "google/api/annotations.pb.h" +#include "code.vereign.com/code/viam-apis/versions/api/api.pb.h" +// @@protoc_insertion_point(includes) +#include <google/protobuf/port_def.inc> +#define PROTOBUF_INTERNAL_EXPORT_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto +PROTOBUF_NAMESPACE_OPEN +namespace internal { +class AnyMetadata; +} // namespace internal +PROTOBUF_NAMESPACE_CLOSE + +// Internal implementation detail -- do not use these members. +struct TableStruct_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto { + static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTableField entries[] + PROTOBUF_SECTION_VARIABLE(protodesc_cold); + static const ::PROTOBUF_NAMESPACE_ID::internal::AuxillaryParseTableField aux[] + PROTOBUF_SECTION_VARIABLE(protodesc_cold); + static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTable schema[46] + PROTOBUF_SECTION_VARIABLE(protodesc_cold); + static const ::PROTOBUF_NAMESPACE_ID::internal::FieldMetadata field_metadata[]; + static const ::PROTOBUF_NAMESPACE_ID::internal::SerializationTable serialization_table[]; + static const ::PROTOBUF_NAMESPACE_ID::uint32 offsets[]; +}; +extern const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto; +namespace api { +class ClaimInvitationHistoryMessage; +class ClaimInvitationHistoryMessageDefaultTypeInternal; +extern ClaimInvitationHistoryMessageDefaultTypeInternal _ClaimInvitationHistoryMessage_default_instance_; +class ClaimInvitationHistoryMessage_HistoryByClaimInvitationEntry_DoNotUse; +class ClaimInvitationHistoryMessage_HistoryByClaimInvitationEntry_DoNotUseDefaultTypeInternal; +extern ClaimInvitationHistoryMessage_HistoryByClaimInvitationEntry_DoNotUseDefaultTypeInternal _ClaimInvitationHistoryMessage_HistoryByClaimInvitationEntry_DoNotUse_default_instance_; +class ClaimInvitationList; +class ClaimInvitationListDefaultTypeInternal; +extern ClaimInvitationListDefaultTypeInternal _ClaimInvitationList_default_instance_; +class ClaimInvitationMessage; +class ClaimInvitationMessageDefaultTypeInternal; +extern ClaimInvitationMessageDefaultTypeInternal _ClaimInvitationMessage_default_instance_; +class ClaimInvitationMessageResponse; +class ClaimInvitationMessageResponseDefaultTypeInternal; +extern ClaimInvitationMessageResponseDefaultTypeInternal _ClaimInvitationMessageResponse_default_instance_; +class ClaimInvitationSearchMessage; +class ClaimInvitationSearchMessageDefaultTypeInternal; +extern ClaimInvitationSearchMessageDefaultTypeInternal _ClaimInvitationSearchMessage_default_instance_; +class ClaimTagsMap_V1; +class ClaimTagsMap_V1DefaultTypeInternal; +extern ClaimTagsMap_V1DefaultTypeInternal _ClaimTagsMap_V1_default_instance_; +class ClaimTagsMap_V1_TagsEntry_DoNotUse; +class ClaimTagsMap_V1_TagsEntry_DoNotUseDefaultTypeInternal; +extern ClaimTagsMap_V1_TagsEntry_DoNotUseDefaultTypeInternal _ClaimTagsMap_V1_TagsEntry_DoNotUse_default_instance_; +class Claim_V1; +class Claim_V1DefaultTypeInternal; +extern Claim_V1DefaultTypeInternal _Claim_V1_default_instance_; +class Claim_V1_ValueEntry_DoNotUse; +class Claim_V1_ValueEntry_DoNotUseDefaultTypeInternal; +extern Claim_V1_ValueEntry_DoNotUseDefaultTypeInternal _Claim_V1_ValueEntry_DoNotUse_default_instance_; +class EntityHistoryMessage; +class EntityHistoryMessageDefaultTypeInternal; +extern EntityHistoryMessageDefaultTypeInternal _EntityHistoryMessage_default_instance_; +class EntityHistoryMessage_HistoryByUUIDEntry_DoNotUse; +class EntityHistoryMessage_HistoryByUUIDEntry_DoNotUseDefaultTypeInternal; +extern EntityHistoryMessage_HistoryByUUIDEntry_DoNotUseDefaultTypeInternal _EntityHistoryMessage_HistoryByUUIDEntry_DoNotUse_default_instance_; +class EntityList; +class EntityListDefaultTypeInternal; +extern EntityListDefaultTypeInternal _EntityList_default_instance_; +class EntityMessageResponse; +class EntityMessageResponseDefaultTypeInternal; +extern EntityMessageResponseDefaultTypeInternal _EntityMessageResponse_default_instance_; +class EntityMessage_V1; +class EntityMessage_V1DefaultTypeInternal; +extern EntityMessage_V1DefaultTypeInternal _EntityMessage_V1_default_instance_; +class EntityMessage_V1_ClaimsEntry_DoNotUse; +class EntityMessage_V1_ClaimsEntry_DoNotUseDefaultTypeInternal; +extern EntityMessage_V1_ClaimsEntry_DoNotUseDefaultTypeInternal _EntityMessage_V1_ClaimsEntry_DoNotUse_default_instance_; +class EntityMessage_V1_ContactStatusesEntry_DoNotUse; +class EntityMessage_V1_ContactStatusesEntry_DoNotUseDefaultTypeInternal; +extern EntityMessage_V1_ContactStatusesEntry_DoNotUseDefaultTypeInternal _EntityMessage_V1_ContactStatusesEntry_DoNotUse_default_instance_; +class EntityMessage_V1_PassportsCountersEntry_DoNotUse; +class EntityMessage_V1_PassportsCountersEntry_DoNotUseDefaultTypeInternal; +extern EntityMessage_V1_PassportsCountersEntry_DoNotUseDefaultTypeInternal _EntityMessage_V1_PassportsCountersEntry_DoNotUse_default_instance_; +class EntityMessage_V2; +class EntityMessage_V2DefaultTypeInternal; +extern EntityMessage_V2DefaultTypeInternal _EntityMessage_V2_default_instance_; +class EntityMessage_V2_ChildrenEntry_DoNotUse; +class EntityMessage_V2_ChildrenEntry_DoNotUseDefaultTypeInternal; +extern EntityMessage_V2_ChildrenEntry_DoNotUseDefaultTypeInternal _EntityMessage_V2_ChildrenEntry_DoNotUse_default_instance_; +class EntityMessage_V2_ClaimsEntry_DoNotUse; +class EntityMessage_V2_ClaimsEntry_DoNotUseDefaultTypeInternal; +extern EntityMessage_V2_ClaimsEntry_DoNotUseDefaultTypeInternal _EntityMessage_V2_ClaimsEntry_DoNotUse_default_instance_; +class EntityMessage_V2_ContactStatusesEntry_DoNotUse; +class EntityMessage_V2_ContactStatusesEntry_DoNotUseDefaultTypeInternal; +extern EntityMessage_V2_ContactStatusesEntry_DoNotUseDefaultTypeInternal _EntityMessage_V2_ContactStatusesEntry_DoNotUse_default_instance_; +class EntityMessage_V2_GuardedEntry_DoNotUse; +class EntityMessage_V2_GuardedEntry_DoNotUseDefaultTypeInternal; +extern EntityMessage_V2_GuardedEntry_DoNotUseDefaultTypeInternal _EntityMessage_V2_GuardedEntry_DoNotUse_default_instance_; +class EntityMessage_V2_GuardiansEntry_DoNotUse; +class EntityMessage_V2_GuardiansEntry_DoNotUseDefaultTypeInternal; +extern EntityMessage_V2_GuardiansEntry_DoNotUseDefaultTypeInternal _EntityMessage_V2_GuardiansEntry_DoNotUse_default_instance_; +class EntityMessage_V2_MemberOfEntry_DoNotUse; +class EntityMessage_V2_MemberOfEntry_DoNotUseDefaultTypeInternal; +extern EntityMessage_V2_MemberOfEntry_DoNotUseDefaultTypeInternal _EntityMessage_V2_MemberOfEntry_DoNotUse_default_instance_; +class EntityMessage_V2_MembersEntry_DoNotUse; +class EntityMessage_V2_MembersEntry_DoNotUseDefaultTypeInternal; +extern EntityMessage_V2_MembersEntry_DoNotUseDefaultTypeInternal _EntityMessage_V2_MembersEntry_DoNotUse_default_instance_; +class EntityMessage_V2_OrdersEntry_DoNotUse; +class EntityMessage_V2_OrdersEntry_DoNotUseDefaultTypeInternal; +extern EntityMessage_V2_OrdersEntry_DoNotUseDefaultTypeInternal _EntityMessage_V2_OrdersEntry_DoNotUse_default_instance_; +class EntityMessage_V2_ParentsEntry_DoNotUse; +class EntityMessage_V2_ParentsEntry_DoNotUseDefaultTypeInternal; +extern EntityMessage_V2_ParentsEntry_DoNotUseDefaultTypeInternal _EntityMessage_V2_ParentsEntry_DoNotUse_default_instance_; +class EntityMessage_V2_PassportsCountersEntry_DoNotUse; +class EntityMessage_V2_PassportsCountersEntry_DoNotUseDefaultTypeInternal; +extern EntityMessage_V2_PassportsCountersEntry_DoNotUseDefaultTypeInternal _EntityMessage_V2_PassportsCountersEntry_DoNotUse_default_instance_; +class EntityMessage_V2_SystemChildrenEntry_DoNotUse; +class EntityMessage_V2_SystemChildrenEntry_DoNotUseDefaultTypeInternal; +extern EntityMessage_V2_SystemChildrenEntry_DoNotUseDefaultTypeInternal _EntityMessage_V2_SystemChildrenEntry_DoNotUse_default_instance_; +class EntityMessage_V2_SystemParentsEntry_DoNotUse; +class EntityMessage_V2_SystemParentsEntry_DoNotUseDefaultTypeInternal; +extern EntityMessage_V2_SystemParentsEntry_DoNotUseDefaultTypeInternal _EntityMessage_V2_SystemParentsEntry_DoNotUse_default_instance_; +class EntityMessage_V2_ViewedEntry_DoNotUse; +class EntityMessage_V2_ViewedEntry_DoNotUseDefaultTypeInternal; +extern EntityMessage_V2_ViewedEntry_DoNotUseDefaultTypeInternal _EntityMessage_V2_ViewedEntry_DoNotUse_default_instance_; +class EntityMessage_V2_ViewersEntry_DoNotUse; +class EntityMessage_V2_ViewersEntry_DoNotUseDefaultTypeInternal; +extern EntityMessage_V2_ViewersEntry_DoNotUseDefaultTypeInternal _EntityMessage_V2_ViewersEntry_DoNotUse_default_instance_; +class EntityReplaceMessage; +class EntityReplaceMessageDefaultTypeInternal; +extern EntityReplaceMessageDefaultTypeInternal _EntityReplaceMessage_default_instance_; +class EntitySearchMessage; +class EntitySearchMessageDefaultTypeInternal; +extern EntitySearchMessageDefaultTypeInternal _EntitySearchMessage_default_instance_; +class GetEntitiesCountersMessage; +class GetEntitiesCountersMessageDefaultTypeInternal; +extern GetEntitiesCountersMessageDefaultTypeInternal _GetEntitiesCountersMessage_default_instance_; +class GetEntitiesCountersResponseMessage; +class GetEntitiesCountersResponseMessageDefaultTypeInternal; +extern GetEntitiesCountersResponseMessageDefaultTypeInternal _GetEntitiesCountersResponseMessage_default_instance_; +class GetEntitiesCountersResponseMessage_CountersEntry_DoNotUse; +class GetEntitiesCountersResponseMessage_CountersEntry_DoNotUseDefaultTypeInternal; +extern GetEntitiesCountersResponseMessage_CountersEntry_DoNotUseDefaultTypeInternal _GetEntitiesCountersResponseMessage_CountersEntry_DoNotUse_default_instance_; +class GetEntitiesTailsMessage; +class GetEntitiesTailsMessageDefaultTypeInternal; +extern GetEntitiesTailsMessageDefaultTypeInternal _GetEntitiesTailsMessage_default_instance_; +class GetEntitiesTailsResponseMessage; +class GetEntitiesTailsResponseMessageDefaultTypeInternal; +extern GetEntitiesTailsResponseMessageDefaultTypeInternal _GetEntitiesTailsResponseMessage_default_instance_; +class GetEntitiesTailsResponseMessage_EntitiesEntry_DoNotUse; +class GetEntitiesTailsResponseMessage_EntitiesEntry_DoNotUseDefaultTypeInternal; +extern GetEntitiesTailsResponseMessage_EntitiesEntry_DoNotUseDefaultTypeInternal _GetEntitiesTailsResponseMessage_EntitiesEntry_DoNotUse_default_instance_; +class GetVersionEMAMessage; +class GetVersionEMAMessageDefaultTypeInternal; +extern GetVersionEMAMessageDefaultTypeInternal _GetVersionEMAMessage_default_instance_; +class GetVersionEMAResponseMessage; +class GetVersionEMAResponseMessageDefaultTypeInternal; +extern GetVersionEMAResponseMessageDefaultTypeInternal _GetVersionEMAResponseMessage_default_instance_; +class Order_V1; +class Order_V1DefaultTypeInternal; +extern Order_V1DefaultTypeInternal _Order_V1_default_instance_; +class Order_V1_DataEntry_DoNotUse; +class Order_V1_DataEntry_DoNotUseDefaultTypeInternal; +extern Order_V1_DataEntry_DoNotUseDefaultTypeInternal _Order_V1_DataEntry_DoNotUse_default_instance_; +class Order_V1_OperationUUIDSEntry_DoNotUse; +class Order_V1_OperationUUIDSEntry_DoNotUseDefaultTypeInternal; +extern Order_V1_OperationUUIDSEntry_DoNotUseDefaultTypeInternal _Order_V1_OperationUUIDSEntry_DoNotUse_default_instance_; +} // namespace api +PROTOBUF_NAMESPACE_OPEN +template<> ::api::ClaimInvitationHistoryMessage* Arena::CreateMaybeMessage<::api::ClaimInvitationHistoryMessage>(Arena*); +template<> ::api::ClaimInvitationHistoryMessage_HistoryByClaimInvitationEntry_DoNotUse* Arena::CreateMaybeMessage<::api::ClaimInvitationHistoryMessage_HistoryByClaimInvitationEntry_DoNotUse>(Arena*); +template<> ::api::ClaimInvitationList* Arena::CreateMaybeMessage<::api::ClaimInvitationList>(Arena*); +template<> ::api::ClaimInvitationMessage* Arena::CreateMaybeMessage<::api::ClaimInvitationMessage>(Arena*); +template<> ::api::ClaimInvitationMessageResponse* Arena::CreateMaybeMessage<::api::ClaimInvitationMessageResponse>(Arena*); +template<> ::api::ClaimInvitationSearchMessage* Arena::CreateMaybeMessage<::api::ClaimInvitationSearchMessage>(Arena*); +template<> ::api::ClaimTagsMap_V1* Arena::CreateMaybeMessage<::api::ClaimTagsMap_V1>(Arena*); +template<> ::api::ClaimTagsMap_V1_TagsEntry_DoNotUse* Arena::CreateMaybeMessage<::api::ClaimTagsMap_V1_TagsEntry_DoNotUse>(Arena*); +template<> ::api::Claim_V1* Arena::CreateMaybeMessage<::api::Claim_V1>(Arena*); +template<> ::api::Claim_V1_ValueEntry_DoNotUse* Arena::CreateMaybeMessage<::api::Claim_V1_ValueEntry_DoNotUse>(Arena*); +template<> ::api::EntityHistoryMessage* Arena::CreateMaybeMessage<::api::EntityHistoryMessage>(Arena*); +template<> ::api::EntityHistoryMessage_HistoryByUUIDEntry_DoNotUse* Arena::CreateMaybeMessage<::api::EntityHistoryMessage_HistoryByUUIDEntry_DoNotUse>(Arena*); +template<> ::api::EntityList* Arena::CreateMaybeMessage<::api::EntityList>(Arena*); +template<> ::api::EntityMessageResponse* Arena::CreateMaybeMessage<::api::EntityMessageResponse>(Arena*); +template<> ::api::EntityMessage_V1* Arena::CreateMaybeMessage<::api::EntityMessage_V1>(Arena*); +template<> ::api::EntityMessage_V1_ClaimsEntry_DoNotUse* Arena::CreateMaybeMessage<::api::EntityMessage_V1_ClaimsEntry_DoNotUse>(Arena*); +template<> ::api::EntityMessage_V1_ContactStatusesEntry_DoNotUse* Arena::CreateMaybeMessage<::api::EntityMessage_V1_ContactStatusesEntry_DoNotUse>(Arena*); +template<> ::api::EntityMessage_V1_PassportsCountersEntry_DoNotUse* Arena::CreateMaybeMessage<::api::EntityMessage_V1_PassportsCountersEntry_DoNotUse>(Arena*); +template<> ::api::EntityMessage_V2* Arena::CreateMaybeMessage<::api::EntityMessage_V2>(Arena*); +template<> ::api::EntityMessage_V2_ChildrenEntry_DoNotUse* Arena::CreateMaybeMessage<::api::EntityMessage_V2_ChildrenEntry_DoNotUse>(Arena*); +template<> ::api::EntityMessage_V2_ClaimsEntry_DoNotUse* Arena::CreateMaybeMessage<::api::EntityMessage_V2_ClaimsEntry_DoNotUse>(Arena*); +template<> ::api::EntityMessage_V2_ContactStatusesEntry_DoNotUse* Arena::CreateMaybeMessage<::api::EntityMessage_V2_ContactStatusesEntry_DoNotUse>(Arena*); +template<> ::api::EntityMessage_V2_GuardedEntry_DoNotUse* Arena::CreateMaybeMessage<::api::EntityMessage_V2_GuardedEntry_DoNotUse>(Arena*); +template<> ::api::EntityMessage_V2_GuardiansEntry_DoNotUse* Arena::CreateMaybeMessage<::api::EntityMessage_V2_GuardiansEntry_DoNotUse>(Arena*); +template<> ::api::EntityMessage_V2_MemberOfEntry_DoNotUse* Arena::CreateMaybeMessage<::api::EntityMessage_V2_MemberOfEntry_DoNotUse>(Arena*); +template<> ::api::EntityMessage_V2_MembersEntry_DoNotUse* Arena::CreateMaybeMessage<::api::EntityMessage_V2_MembersEntry_DoNotUse>(Arena*); +template<> ::api::EntityMessage_V2_OrdersEntry_DoNotUse* Arena::CreateMaybeMessage<::api::EntityMessage_V2_OrdersEntry_DoNotUse>(Arena*); +template<> ::api::EntityMessage_V2_ParentsEntry_DoNotUse* Arena::CreateMaybeMessage<::api::EntityMessage_V2_ParentsEntry_DoNotUse>(Arena*); +template<> ::api::EntityMessage_V2_PassportsCountersEntry_DoNotUse* Arena::CreateMaybeMessage<::api::EntityMessage_V2_PassportsCountersEntry_DoNotUse>(Arena*); +template<> ::api::EntityMessage_V2_SystemChildrenEntry_DoNotUse* Arena::CreateMaybeMessage<::api::EntityMessage_V2_SystemChildrenEntry_DoNotUse>(Arena*); +template<> ::api::EntityMessage_V2_SystemParentsEntry_DoNotUse* Arena::CreateMaybeMessage<::api::EntityMessage_V2_SystemParentsEntry_DoNotUse>(Arena*); +template<> ::api::EntityMessage_V2_ViewedEntry_DoNotUse* Arena::CreateMaybeMessage<::api::EntityMessage_V2_ViewedEntry_DoNotUse>(Arena*); +template<> ::api::EntityMessage_V2_ViewersEntry_DoNotUse* Arena::CreateMaybeMessage<::api::EntityMessage_V2_ViewersEntry_DoNotUse>(Arena*); +template<> ::api::EntityReplaceMessage* Arena::CreateMaybeMessage<::api::EntityReplaceMessage>(Arena*); +template<> ::api::EntitySearchMessage* Arena::CreateMaybeMessage<::api::EntitySearchMessage>(Arena*); +template<> ::api::GetEntitiesCountersMessage* Arena::CreateMaybeMessage<::api::GetEntitiesCountersMessage>(Arena*); +template<> ::api::GetEntitiesCountersResponseMessage* Arena::CreateMaybeMessage<::api::GetEntitiesCountersResponseMessage>(Arena*); +template<> ::api::GetEntitiesCountersResponseMessage_CountersEntry_DoNotUse* Arena::CreateMaybeMessage<::api::GetEntitiesCountersResponseMessage_CountersEntry_DoNotUse>(Arena*); +template<> ::api::GetEntitiesTailsMessage* Arena::CreateMaybeMessage<::api::GetEntitiesTailsMessage>(Arena*); +template<> ::api::GetEntitiesTailsResponseMessage* Arena::CreateMaybeMessage<::api::GetEntitiesTailsResponseMessage>(Arena*); +template<> ::api::GetEntitiesTailsResponseMessage_EntitiesEntry_DoNotUse* Arena::CreateMaybeMessage<::api::GetEntitiesTailsResponseMessage_EntitiesEntry_DoNotUse>(Arena*); +template<> ::api::GetVersionEMAMessage* Arena::CreateMaybeMessage<::api::GetVersionEMAMessage>(Arena*); +template<> ::api::GetVersionEMAResponseMessage* Arena::CreateMaybeMessage<::api::GetVersionEMAResponseMessage>(Arena*); +template<> ::api::Order_V1* Arena::CreateMaybeMessage<::api::Order_V1>(Arena*); +template<> ::api::Order_V1_DataEntry_DoNotUse* Arena::CreateMaybeMessage<::api::Order_V1_DataEntry_DoNotUse>(Arena*); +template<> ::api::Order_V1_OperationUUIDSEntry_DoNotUse* Arena::CreateMaybeMessage<::api::Order_V1_OperationUUIDSEntry_DoNotUse>(Arena*); +PROTOBUF_NAMESPACE_CLOSE +namespace api { + +enum ClaimType : int { + NONE_CLAIM_TYPE = 0, + INTERNAL = 1, + UNIVERSAL = 2, + EXTERNAL = 3, + FUNCTIONAL = 4, + FILE = 5, + ClaimType_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::min(), + ClaimType_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::max() +}; +bool ClaimType_IsValid(int value); +constexpr ClaimType ClaimType_MIN = NONE_CLAIM_TYPE; +constexpr ClaimType ClaimType_MAX = FILE; +constexpr int ClaimType_ARRAYSIZE = ClaimType_MAX + 1; + +const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* ClaimType_descriptor(); +template<typename T> +inline const std::string& ClaimType_Name(T enum_t_value) { + static_assert(::std::is_same<T, ClaimType>::value || + ::std::is_integral<T>::value, + "Incorrect type passed to function ClaimType_Name."); + return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum( + ClaimType_descriptor(), enum_t_value); +} +inline bool ClaimType_Parse( + const std::string& name, ClaimType* value) { + return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<ClaimType>( + ClaimType_descriptor(), name, value); +} +enum AccessType : int { + NONE_ACCESS_TYPE = 0, + PRIVATE = 1, + INVITATIONAL = 2, + PUBLIC = 3, + AccessType_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::min(), + AccessType_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::max() +}; +bool AccessType_IsValid(int value); +constexpr AccessType AccessType_MIN = NONE_ACCESS_TYPE; +constexpr AccessType AccessType_MAX = PUBLIC; +constexpr int AccessType_ARRAYSIZE = AccessType_MAX + 1; + +const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* AccessType_descriptor(); +template<typename T> +inline const std::string& AccessType_Name(T enum_t_value) { + static_assert(::std::is_same<T, AccessType>::value || + ::std::is_integral<T>::value, + "Incorrect type passed to function AccessType_Name."); + return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum( + AccessType_descriptor(), enum_t_value); +} +inline bool AccessType_Parse( + const std::string& name, AccessType* value) { + return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<AccessType>( + AccessType_descriptor(), name, value); +} +enum SearchType : int { + NONE_SEARCH_TYPE = 0, + BYRANK = 1, + BYSCORE = 2, + SearchType_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::min(), + SearchType_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::max() +}; +bool SearchType_IsValid(int value); +constexpr SearchType SearchType_MIN = NONE_SEARCH_TYPE; +constexpr SearchType SearchType_MAX = BYSCORE; +constexpr int SearchType_ARRAYSIZE = SearchType_MAX + 1; + +const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* SearchType_descriptor(); +template<typename T> +inline const std::string& SearchType_Name(T enum_t_value) { + static_assert(::std::is_same<T, SearchType>::value || + ::std::is_integral<T>::value, + "Incorrect type passed to function SearchType_Name."); + return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum( + SearchType_descriptor(), enum_t_value); +} +inline bool SearchType_Parse( + const std::string& name, SearchType* value) { + return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<SearchType>( + SearchType_descriptor(), name, value); +} +enum ValueType : int { + NONE_KEY_VALUE = 0, + NON_COMPOSITE = 1, + COMPOSITE = 2, + ValueType_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::min(), + ValueType_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::max() +}; +bool ValueType_IsValid(int value); +constexpr ValueType ValueType_MIN = NONE_KEY_VALUE; +constexpr ValueType ValueType_MAX = COMPOSITE; +constexpr int ValueType_ARRAYSIZE = ValueType_MAX + 1; + +const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* ValueType_descriptor(); +template<typename T> +inline const std::string& ValueType_Name(T enum_t_value) { + static_assert(::std::is_same<T, ValueType>::value || + ::std::is_integral<T>::value, + "Incorrect type passed to function ValueType_Name."); + return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum( + ValueType_descriptor(), enum_t_value); +} +inline bool ValueType_Parse( + const std::string& name, ValueType* value) { + return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<ValueType>( + ValueType_descriptor(), name, value); +} +enum EntityType : int { + NONE_ENTITY_TYPE = 0, + PERSON = 1, + ORGANIZATION = 2, + ASSET = 3, + PASSPORT = 4, + DOCUMENT = 5, + CONVERSATION = 6, + CONTACT = 7, + EntityType_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::min(), + EntityType_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::max() +}; +bool EntityType_IsValid(int value); +constexpr EntityType EntityType_MIN = NONE_ENTITY_TYPE; +constexpr EntityType EntityType_MAX = CONTACT; +constexpr int EntityType_ARRAYSIZE = EntityType_MAX + 1; + +const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* EntityType_descriptor(); +template<typename T> +inline const std::string& EntityType_Name(T enum_t_value) { + static_assert(::std::is_same<T, EntityType>::value || + ::std::is_integral<T>::value, + "Incorrect type passed to function EntityType_Name."); + return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum( + EntityType_descriptor(), enum_t_value); +} +inline bool EntityType_Parse( + const std::string& name, EntityType* value) { + return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<EntityType>( + EntityType_descriptor(), name, value); +} +enum ContactStatus : int { + ACTIVE = 0, + ARCHIVED = 1, + BLOCKED = 2, + ContactStatus_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::min(), + ContactStatus_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::max() +}; +bool ContactStatus_IsValid(int value); +constexpr ContactStatus ContactStatus_MIN = ACTIVE; +constexpr ContactStatus ContactStatus_MAX = BLOCKED; +constexpr int ContactStatus_ARRAYSIZE = ContactStatus_MAX + 1; + +const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* ContactStatus_descriptor(); +template<typename T> +inline const std::string& ContactStatus_Name(T enum_t_value) { + static_assert(::std::is_same<T, ContactStatus>::value || + ::std::is_integral<T>::value, + "Incorrect type passed to function ContactStatus_Name."); + return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum( + ContactStatus_descriptor(), enum_t_value); +} +inline bool ContactStatus_Parse( + const std::string& name, ContactStatus* value) { + return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<ContactStatus>( + ContactStatus_descriptor(), name, value); +} +enum OrderStatus : int { + NO_ORDER_STATUS = 0, + ORDER_STATUS_NEW = 1, + ORDER_STATUS_IN_PROGRESS = 2, + ORDER_STATUS_WAITING_PAYMENT = 3, + ORDER_STATUS_PAYMENT_FAILED = 4, + ORDER_STATUS_PAYMENT_RECEIVED = 5, + ORDER_STATUS_PAYMENT_COMPLETED = 6, + ORDER_STATUS_PAYMENT_CANCELED = 7, + OrderStatus_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::min(), + OrderStatus_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::max() +}; +bool OrderStatus_IsValid(int value); +constexpr OrderStatus OrderStatus_MIN = NO_ORDER_STATUS; +constexpr OrderStatus OrderStatus_MAX = ORDER_STATUS_PAYMENT_CANCELED; +constexpr int OrderStatus_ARRAYSIZE = OrderStatus_MAX + 1; + +const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* OrderStatus_descriptor(); +template<typename T> +inline const std::string& OrderStatus_Name(T enum_t_value) { + static_assert(::std::is_same<T, OrderStatus>::value || + ::std::is_integral<T>::value, + "Incorrect type passed to function OrderStatus_Name."); + return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum( + OrderStatus_descriptor(), enum_t_value); +} +inline bool OrderStatus_Parse( + const std::string& name, OrderStatus* value) { + return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<OrderStatus>( + OrderStatus_descriptor(), name, value); +} +enum RelationStatus : int { + LIVE_RELATION = 0, + DELETED_RELATION = 1, + BLOCKED_RELATION = 2, + RelationStatus_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::min(), + RelationStatus_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::max() +}; +bool RelationStatus_IsValid(int value); +constexpr RelationStatus RelationStatus_MIN = LIVE_RELATION; +constexpr RelationStatus RelationStatus_MAX = BLOCKED_RELATION; +constexpr int RelationStatus_ARRAYSIZE = RelationStatus_MAX + 1; + +const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* RelationStatus_descriptor(); +template<typename T> +inline const std::string& RelationStatus_Name(T enum_t_value) { + static_assert(::std::is_same<T, RelationStatus>::value || + ::std::is_integral<T>::value, + "Incorrect type passed to function RelationStatus_Name."); + return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum( + RelationStatus_descriptor(), enum_t_value); +} +inline bool RelationStatus_Parse( + const std::string& name, RelationStatus* value) { + return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<RelationStatus>( + RelationStatus_descriptor(), name, value); +} +enum ClaimInvitationStatus : int { + NONE_CLAIM_INVITATION_STATUS = 0, + NOTVERIFIED = 1, + REJECTED = 2, + VERIFIED = 3, + REVOKED = 4, + ClaimInvitationStatus_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::min(), + ClaimInvitationStatus_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::max() +}; +bool ClaimInvitationStatus_IsValid(int value); +constexpr ClaimInvitationStatus ClaimInvitationStatus_MIN = NONE_CLAIM_INVITATION_STATUS; +constexpr ClaimInvitationStatus ClaimInvitationStatus_MAX = REVOKED; +constexpr int ClaimInvitationStatus_ARRAYSIZE = ClaimInvitationStatus_MAX + 1; + +const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* ClaimInvitationStatus_descriptor(); +template<typename T> +inline const std::string& ClaimInvitationStatus_Name(T enum_t_value) { + static_assert(::std::is_same<T, ClaimInvitationStatus>::value || + ::std::is_integral<T>::value, + "Incorrect type passed to function ClaimInvitationStatus_Name."); + return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum( + ClaimInvitationStatus_descriptor(), enum_t_value); +} +inline bool ClaimInvitationStatus_Parse( + const std::string& name, ClaimInvitationStatus* value) { + return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<ClaimInvitationStatus>( + ClaimInvitationStatus_descriptor(), name, value); +} +// =================================================================== + +class Claim_V1_ValueEntry_DoNotUse : public ::PROTOBUF_NAMESPACE_ID::internal::MapEntry<Claim_V1_ValueEntry_DoNotUse, + std::string, std::string, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + 0 > { +public: + typedef ::PROTOBUF_NAMESPACE_ID::internal::MapEntry<Claim_V1_ValueEntry_DoNotUse, + std::string, std::string, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + 0 > SuperType; + Claim_V1_ValueEntry_DoNotUse(); + Claim_V1_ValueEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena); + void MergeFrom(const Claim_V1_ValueEntry_DoNotUse& other); + static const Claim_V1_ValueEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const Claim_V1_ValueEntry_DoNotUse*>(&_Claim_V1_ValueEntry_DoNotUse_default_instance_); } + static bool ValidateKey(std::string* s) { + return ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(s->data(), static_cast<int>(s->size()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE, "api.Claim_V1.ValueEntry.key"); + } + static bool ValidateValue(std::string* s) { + return ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(s->data(), static_cast<int>(s->size()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE, "api.Claim_V1.ValueEntry.value"); + } + void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& other) final; + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + private: + static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() { + ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto); + return ::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.file_level_metadata[0]; + } + + public: +}; + +// ------------------------------------------------------------------- + +class Claim_V1 : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:api.Claim_V1) */ { + public: + Claim_V1(); + virtual ~Claim_V1(); + + Claim_V1(const Claim_V1& from); + Claim_V1(Claim_V1&& from) noexcept + : Claim_V1() { + *this = ::std::move(from); + } + + inline Claim_V1& operator=(const Claim_V1& from) { + CopyFrom(from); + return *this; + } + inline Claim_V1& operator=(Claim_V1&& from) noexcept { + if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) { + if (this != &from) InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return GetMetadataStatic().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return GetMetadataStatic().reflection; + } + static const Claim_V1& default_instance(); + + static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY + static inline const Claim_V1* internal_default_instance() { + return reinterpret_cast<const Claim_V1*>( + &_Claim_V1_default_instance_); + } + static constexpr int kIndexInFileMessages = + 1; + + friend void swap(Claim_V1& a, Claim_V1& b) { + a.Swap(&b); + } + inline void Swap(Claim_V1* other) { + if (other == this) return; + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + inline Claim_V1* New() const final { + return CreateMaybeMessage<Claim_V1>(nullptr); + } + + Claim_V1* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final { + return CreateMaybeMessage<Claim_V1>(arena); + } + void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; + void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; + void CopyFrom(const Claim_V1& from); + void MergeFrom(const Claim_V1& from); + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize( + ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _cached_size_.Get(); } + + private: + inline void SharedCtor(); + inline void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(Claim_V1* other); + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "api.Claim_V1"; + } + private: + inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const { + return nullptr; + } + inline void* MaybeArenaPtr() const { + return nullptr; + } + public: + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + private: + static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() { + ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto); + return ::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.file_level_metadata[kIndexInFileMessages]; + } + + public: + + // nested types ---------------------------------------------------- + + + // accessors ------------------------------------------------------- + + enum : int { + kValueFieldNumber = 1, + kFunctionPointerFieldNumber = 3, + kSymlinkFieldNumber = 5, + kCalculatedValueFieldNumber = 7, + kTypeFieldNumber = 2, + kAccessTypeFieldNumber = 4, + kValueTypeFieldNumber = 8, + kDefaultClaimFieldNumber = 6, + kVerifiedFieldNumber = 9, + kCanEditFieldNumber = 10, + kCompanyOnlyFieldNumber = 11, + kRequiredFieldNumber = 12, + }; + // map<string, string> value = 1; + int value_size() const; + private: + int _internal_value_size() const; + public: + void clear_value(); + private: + const ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >& + _internal_value() const; + ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >* + _internal_mutable_value(); + public: + const ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >& + value() const; + ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >* + mutable_value(); + + // string functionPointer = 3; + void clear_functionpointer(); + const std::string& functionpointer() const; + void set_functionpointer(const std::string& value); + void set_functionpointer(std::string&& value); + void set_functionpointer(const char* value); + void set_functionpointer(const char* value, size_t size); + std::string* mutable_functionpointer(); + std::string* release_functionpointer(); + void set_allocated_functionpointer(std::string* functionpointer); + private: + const std::string& _internal_functionpointer() const; + void _internal_set_functionpointer(const std::string& value); + std::string* _internal_mutable_functionpointer(); + public: + + // string symlink = 5; + void clear_symlink(); + const std::string& symlink() const; + void set_symlink(const std::string& value); + void set_symlink(std::string&& value); + void set_symlink(const char* value); + void set_symlink(const char* value, size_t size); + std::string* mutable_symlink(); + std::string* release_symlink(); + void set_allocated_symlink(std::string* symlink); + private: + const std::string& _internal_symlink() const; + void _internal_set_symlink(const std::string& value); + std::string* _internal_mutable_symlink(); + public: + + // string calculatedValue = 7; + void clear_calculatedvalue(); + const std::string& calculatedvalue() const; + void set_calculatedvalue(const std::string& value); + void set_calculatedvalue(std::string&& value); + void set_calculatedvalue(const char* value); + void set_calculatedvalue(const char* value, size_t size); + std::string* mutable_calculatedvalue(); + std::string* release_calculatedvalue(); + void set_allocated_calculatedvalue(std::string* calculatedvalue); + private: + const std::string& _internal_calculatedvalue() const; + void _internal_set_calculatedvalue(const std::string& value); + std::string* _internal_mutable_calculatedvalue(); + public: + + // .api.ClaimType type = 2; + void clear_type(); + ::api::ClaimType type() const; + void set_type(::api::ClaimType value); + private: + ::api::ClaimType _internal_type() const; + void _internal_set_type(::api::ClaimType value); + public: + + // .api.AccessType AccessType = 4; + void clear_accesstype(); + ::api::AccessType accesstype() const; + void set_accesstype(::api::AccessType value); + private: + ::api::AccessType _internal_accesstype() const; + void _internal_set_accesstype(::api::AccessType value); + public: + + // .api.ValueType valueType = 8; + void clear_valuetype(); + ::api::ValueType valuetype() const; + void set_valuetype(::api::ValueType value); + private: + ::api::ValueType _internal_valuetype() const; + void _internal_set_valuetype(::api::ValueType value); + public: + + // bool defaultClaim = 6; + void clear_defaultclaim(); + bool defaultclaim() const; + void set_defaultclaim(bool value); + private: + bool _internal_defaultclaim() const; + void _internal_set_defaultclaim(bool value); + public: + + // bool verified = 9; + void clear_verified(); + bool verified() const; + void set_verified(bool value); + private: + bool _internal_verified() const; + void _internal_set_verified(bool value); + public: + + // bool canEdit = 10; + void clear_canedit(); + bool canedit() const; + void set_canedit(bool value); + private: + bool _internal_canedit() const; + void _internal_set_canedit(bool value); + public: + + // bool companyOnly = 11; + void clear_companyonly(); + bool companyonly() const; + void set_companyonly(bool value); + private: + bool _internal_companyonly() const; + void _internal_set_companyonly(bool value); + public: + + // bool required = 12; + void clear_required(); + bool required() const; + void set_required(bool value); + private: + bool _internal_required() const; + void _internal_set_required(bool value); + public: + + // @@protoc_insertion_point(class_scope:api.Claim_V1) + private: + class _Internal; + + ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_; + ::PROTOBUF_NAMESPACE_ID::internal::MapField< + Claim_V1_ValueEntry_DoNotUse, + std::string, std::string, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + 0 > value_; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr functionpointer_; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr symlink_; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr calculatedvalue_; + int type_; + int accesstype_; + int valuetype_; + bool defaultclaim_; + bool verified_; + bool canedit_; + bool companyonly_; + bool required_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + friend struct ::TableStruct_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto; +}; +// ------------------------------------------------------------------- + +class ClaimTagsMap_V1_TagsEntry_DoNotUse : public ::PROTOBUF_NAMESPACE_ID::internal::MapEntry<ClaimTagsMap_V1_TagsEntry_DoNotUse, + std::string, ::api::Claim_V1, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_MESSAGE, + 0 > { +public: + typedef ::PROTOBUF_NAMESPACE_ID::internal::MapEntry<ClaimTagsMap_V1_TagsEntry_DoNotUse, + std::string, ::api::Claim_V1, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_MESSAGE, + 0 > SuperType; + ClaimTagsMap_V1_TagsEntry_DoNotUse(); + ClaimTagsMap_V1_TagsEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena); + void MergeFrom(const ClaimTagsMap_V1_TagsEntry_DoNotUse& other); + static const ClaimTagsMap_V1_TagsEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const ClaimTagsMap_V1_TagsEntry_DoNotUse*>(&_ClaimTagsMap_V1_TagsEntry_DoNotUse_default_instance_); } + static bool ValidateKey(std::string* s) { + return ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(s->data(), static_cast<int>(s->size()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE, "api.ClaimTagsMap_V1.TagsEntry.key"); + } + static bool ValidateValue(void*) { return true; } + void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& other) final; + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + private: + static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() { + ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto); + return ::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.file_level_metadata[2]; + } + + public: +}; + +// ------------------------------------------------------------------- + +class ClaimTagsMap_V1 : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:api.ClaimTagsMap_V1) */ { + public: + ClaimTagsMap_V1(); + virtual ~ClaimTagsMap_V1(); + + ClaimTagsMap_V1(const ClaimTagsMap_V1& from); + ClaimTagsMap_V1(ClaimTagsMap_V1&& from) noexcept + : ClaimTagsMap_V1() { + *this = ::std::move(from); + } + + inline ClaimTagsMap_V1& operator=(const ClaimTagsMap_V1& from) { + CopyFrom(from); + return *this; + } + inline ClaimTagsMap_V1& operator=(ClaimTagsMap_V1&& from) noexcept { + if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) { + if (this != &from) InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return GetMetadataStatic().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return GetMetadataStatic().reflection; + } + static const ClaimTagsMap_V1& default_instance(); + + static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY + static inline const ClaimTagsMap_V1* internal_default_instance() { + return reinterpret_cast<const ClaimTagsMap_V1*>( + &_ClaimTagsMap_V1_default_instance_); + } + static constexpr int kIndexInFileMessages = + 3; + + friend void swap(ClaimTagsMap_V1& a, ClaimTagsMap_V1& b) { + a.Swap(&b); + } + inline void Swap(ClaimTagsMap_V1* other) { + if (other == this) return; + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + inline ClaimTagsMap_V1* New() const final { + return CreateMaybeMessage<ClaimTagsMap_V1>(nullptr); + } + + ClaimTagsMap_V1* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final { + return CreateMaybeMessage<ClaimTagsMap_V1>(arena); + } + void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; + void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; + void CopyFrom(const ClaimTagsMap_V1& from); + void MergeFrom(const ClaimTagsMap_V1& from); + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize( + ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _cached_size_.Get(); } + + private: + inline void SharedCtor(); + inline void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(ClaimTagsMap_V1* other); + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "api.ClaimTagsMap_V1"; + } + private: + inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const { + return nullptr; + } + inline void* MaybeArenaPtr() const { + return nullptr; + } + public: + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + private: + static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() { + ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto); + return ::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.file_level_metadata[kIndexInFileMessages]; + } + + public: + + // nested types ---------------------------------------------------- + + + // accessors ------------------------------------------------------- + + enum : int { + kTagsFieldNumber = 1, + }; + // map<string, .api.Claim_V1> tags = 1; + int tags_size() const; + private: + int _internal_tags_size() const; + public: + void clear_tags(); + private: + const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::Claim_V1 >& + _internal_tags() const; + ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::Claim_V1 >* + _internal_mutable_tags(); + public: + const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::Claim_V1 >& + tags() const; + ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::Claim_V1 >* + mutable_tags(); + + // @@protoc_insertion_point(class_scope:api.ClaimTagsMap_V1) + private: + class _Internal; + + ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_; + ::PROTOBUF_NAMESPACE_ID::internal::MapField< + ClaimTagsMap_V1_TagsEntry_DoNotUse, + std::string, ::api::Claim_V1, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_MESSAGE, + 0 > tags_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + friend struct ::TableStruct_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto; +}; +// ------------------------------------------------------------------- + +class Order_V1_OperationUUIDSEntry_DoNotUse : public ::PROTOBUF_NAMESPACE_ID::internal::MapEntry<Order_V1_OperationUUIDSEntry_DoNotUse, + std::string, std::string, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + 0 > { +public: + typedef ::PROTOBUF_NAMESPACE_ID::internal::MapEntry<Order_V1_OperationUUIDSEntry_DoNotUse, + std::string, std::string, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + 0 > SuperType; + Order_V1_OperationUUIDSEntry_DoNotUse(); + Order_V1_OperationUUIDSEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena); + void MergeFrom(const Order_V1_OperationUUIDSEntry_DoNotUse& other); + static const Order_V1_OperationUUIDSEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const Order_V1_OperationUUIDSEntry_DoNotUse*>(&_Order_V1_OperationUUIDSEntry_DoNotUse_default_instance_); } + static bool ValidateKey(std::string* s) { + return ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(s->data(), static_cast<int>(s->size()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE, "api.Order_V1.OperationUUIDSEntry.key"); + } + static bool ValidateValue(std::string* s) { + return ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(s->data(), static_cast<int>(s->size()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE, "api.Order_V1.OperationUUIDSEntry.value"); + } + void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& other) final; + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + private: + static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() { + ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto); + return ::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.file_level_metadata[4]; + } + + public: +}; + +// ------------------------------------------------------------------- + +class Order_V1_DataEntry_DoNotUse : public ::PROTOBUF_NAMESPACE_ID::internal::MapEntry<Order_V1_DataEntry_DoNotUse, + std::string, std::string, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + 0 > { +public: + typedef ::PROTOBUF_NAMESPACE_ID::internal::MapEntry<Order_V1_DataEntry_DoNotUse, + std::string, std::string, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + 0 > SuperType; + Order_V1_DataEntry_DoNotUse(); + Order_V1_DataEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena); + void MergeFrom(const Order_V1_DataEntry_DoNotUse& other); + static const Order_V1_DataEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const Order_V1_DataEntry_DoNotUse*>(&_Order_V1_DataEntry_DoNotUse_default_instance_); } + static bool ValidateKey(std::string* s) { + return ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(s->data(), static_cast<int>(s->size()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE, "api.Order_V1.DataEntry.key"); + } + static bool ValidateValue(std::string* s) { + return ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(s->data(), static_cast<int>(s->size()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE, "api.Order_V1.DataEntry.value"); + } + void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& other) final; + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + private: + static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() { + ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto); + return ::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.file_level_metadata[5]; + } + + public: +}; + +// ------------------------------------------------------------------- + +class Order_V1 : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:api.Order_V1) */ { + public: + Order_V1(); + virtual ~Order_V1(); + + Order_V1(const Order_V1& from); + Order_V1(Order_V1&& from) noexcept + : Order_V1() { + *this = ::std::move(from); + } + + inline Order_V1& operator=(const Order_V1& from) { + CopyFrom(from); + return *this; + } + inline Order_V1& operator=(Order_V1&& from) noexcept { + if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) { + if (this != &from) InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return GetMetadataStatic().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return GetMetadataStatic().reflection; + } + static const Order_V1& default_instance(); + + static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY + static inline const Order_V1* internal_default_instance() { + return reinterpret_cast<const Order_V1*>( + &_Order_V1_default_instance_); + } + static constexpr int kIndexInFileMessages = + 6; + + friend void swap(Order_V1& a, Order_V1& b) { + a.Swap(&b); + } + inline void Swap(Order_V1* other) { + if (other == this) return; + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + inline Order_V1* New() const final { + return CreateMaybeMessage<Order_V1>(nullptr); + } + + Order_V1* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final { + return CreateMaybeMessage<Order_V1>(arena); + } + void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; + void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; + void CopyFrom(const Order_V1& from); + void MergeFrom(const Order_V1& from); + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize( + ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _cached_size_.Get(); } + + private: + inline void SharedCtor(); + inline void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(Order_V1* other); + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "api.Order_V1"; + } + private: + inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const { + return nullptr; + } + inline void* MaybeArenaPtr() const { + return nullptr; + } + public: + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + private: + static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() { + ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto); + return ::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.file_level_metadata[kIndexInFileMessages]; + } + + public: + + // nested types ---------------------------------------------------- + + + // accessors ------------------------------------------------------- + + enum : int { + kOperationUUIDSFieldNumber = 3, + kDataFieldNumber = 5, + kUuidFieldNumber = 1, + kInvoiceFilenameFieldNumber = 2, + kInvoiceNumberFieldNumber = 6, + kOrderNumberFieldNumber = 7, + kStampFieldNumber = 8, + kStatusFieldNumber = 4, + }; + // map<string, string> operationUUIDS = 3; + int operationuuids_size() const; + private: + int _internal_operationuuids_size() const; + public: + void clear_operationuuids(); + private: + const ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >& + _internal_operationuuids() const; + ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >* + _internal_mutable_operationuuids(); + public: + const ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >& + operationuuids() const; + ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >* + mutable_operationuuids(); + + // map<string, string> data = 5; + int data_size() const; + private: + int _internal_data_size() const; + public: + void clear_data(); + private: + const ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >& + _internal_data() const; + ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >* + _internal_mutable_data(); + public: + const ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >& + data() const; + ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >* + mutable_data(); + + // string uuid = 1; + void clear_uuid(); + const std::string& uuid() const; + void set_uuid(const std::string& value); + void set_uuid(std::string&& value); + void set_uuid(const char* value); + void set_uuid(const char* value, size_t size); + std::string* mutable_uuid(); + std::string* release_uuid(); + void set_allocated_uuid(std::string* uuid); + private: + const std::string& _internal_uuid() const; + void _internal_set_uuid(const std::string& value); + std::string* _internal_mutable_uuid(); + public: + + // string invoiceFilename = 2; + void clear_invoicefilename(); + const std::string& invoicefilename() const; + void set_invoicefilename(const std::string& value); + void set_invoicefilename(std::string&& value); + void set_invoicefilename(const char* value); + void set_invoicefilename(const char* value, size_t size); + std::string* mutable_invoicefilename(); + std::string* release_invoicefilename(); + void set_allocated_invoicefilename(std::string* invoicefilename); + private: + const std::string& _internal_invoicefilename() const; + void _internal_set_invoicefilename(const std::string& value); + std::string* _internal_mutable_invoicefilename(); + public: + + // int64 invoiceNumber = 6; + void clear_invoicenumber(); + ::PROTOBUF_NAMESPACE_ID::int64 invoicenumber() const; + void set_invoicenumber(::PROTOBUF_NAMESPACE_ID::int64 value); + private: + ::PROTOBUF_NAMESPACE_ID::int64 _internal_invoicenumber() const; + void _internal_set_invoicenumber(::PROTOBUF_NAMESPACE_ID::int64 value); + public: + + // int64 orderNumber = 7; + void clear_ordernumber(); + ::PROTOBUF_NAMESPACE_ID::int64 ordernumber() const; + void set_ordernumber(::PROTOBUF_NAMESPACE_ID::int64 value); + private: + ::PROTOBUF_NAMESPACE_ID::int64 _internal_ordernumber() const; + void _internal_set_ordernumber(::PROTOBUF_NAMESPACE_ID::int64 value); + public: + + // int64 stamp = 8; + void clear_stamp(); + ::PROTOBUF_NAMESPACE_ID::int64 stamp() const; + void set_stamp(::PROTOBUF_NAMESPACE_ID::int64 value); + private: + ::PROTOBUF_NAMESPACE_ID::int64 _internal_stamp() const; + void _internal_set_stamp(::PROTOBUF_NAMESPACE_ID::int64 value); + public: + + // .api.OrderStatus status = 4; + void clear_status(); + ::api::OrderStatus status() const; + void set_status(::api::OrderStatus value); + private: + ::api::OrderStatus _internal_status() const; + void _internal_set_status(::api::OrderStatus value); + public: + + // @@protoc_insertion_point(class_scope:api.Order_V1) + private: + class _Internal; + + ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_; + ::PROTOBUF_NAMESPACE_ID::internal::MapField< + Order_V1_OperationUUIDSEntry_DoNotUse, + std::string, std::string, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + 0 > operationuuids_; + ::PROTOBUF_NAMESPACE_ID::internal::MapField< + Order_V1_DataEntry_DoNotUse, + std::string, std::string, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + 0 > data_; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr uuid_; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr invoicefilename_; + ::PROTOBUF_NAMESPACE_ID::int64 invoicenumber_; + ::PROTOBUF_NAMESPACE_ID::int64 ordernumber_; + ::PROTOBUF_NAMESPACE_ID::int64 stamp_; + int status_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + friend struct ::TableStruct_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto; +}; +// ------------------------------------------------------------------- + +class EntityMessage_V1_ClaimsEntry_DoNotUse : public ::PROTOBUF_NAMESPACE_ID::internal::MapEntry<EntityMessage_V1_ClaimsEntry_DoNotUse, + std::string, ::api::ClaimTagsMap_V1, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_MESSAGE, + 0 > { +public: + typedef ::PROTOBUF_NAMESPACE_ID::internal::MapEntry<EntityMessage_V1_ClaimsEntry_DoNotUse, + std::string, ::api::ClaimTagsMap_V1, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_MESSAGE, + 0 > SuperType; + EntityMessage_V1_ClaimsEntry_DoNotUse(); + EntityMessage_V1_ClaimsEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena); + void MergeFrom(const EntityMessage_V1_ClaimsEntry_DoNotUse& other); + static const EntityMessage_V1_ClaimsEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const EntityMessage_V1_ClaimsEntry_DoNotUse*>(&_EntityMessage_V1_ClaimsEntry_DoNotUse_default_instance_); } + static bool ValidateKey(std::string* s) { + return ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(s->data(), static_cast<int>(s->size()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE, "api.EntityMessage_V1.ClaimsEntry.key"); + } + static bool ValidateValue(void*) { return true; } + void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& other) final; + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + private: + static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() { + ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto); + return ::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.file_level_metadata[7]; + } + + public: +}; + +// ------------------------------------------------------------------- + +class EntityMessage_V1_PassportsCountersEntry_DoNotUse : public ::PROTOBUF_NAMESPACE_ID::internal::MapEntry<EntityMessage_V1_PassportsCountersEntry_DoNotUse, + std::string, ::PROTOBUF_NAMESPACE_ID::int64, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_INT64, + 0 > { +public: + typedef ::PROTOBUF_NAMESPACE_ID::internal::MapEntry<EntityMessage_V1_PassportsCountersEntry_DoNotUse, + std::string, ::PROTOBUF_NAMESPACE_ID::int64, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_INT64, + 0 > SuperType; + EntityMessage_V1_PassportsCountersEntry_DoNotUse(); + EntityMessage_V1_PassportsCountersEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena); + void MergeFrom(const EntityMessage_V1_PassportsCountersEntry_DoNotUse& other); + static const EntityMessage_V1_PassportsCountersEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const EntityMessage_V1_PassportsCountersEntry_DoNotUse*>(&_EntityMessage_V1_PassportsCountersEntry_DoNotUse_default_instance_); } + static bool ValidateKey(std::string* s) { + return ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(s->data(), static_cast<int>(s->size()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE, "api.EntityMessage_V1.PassportsCountersEntry.key"); + } + static bool ValidateValue(void*) { return true; } + void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& other) final; + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + private: + static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() { + ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto); + return ::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.file_level_metadata[8]; + } + + public: +}; + +// ------------------------------------------------------------------- + +class EntityMessage_V1_ContactStatusesEntry_DoNotUse : public ::PROTOBUF_NAMESPACE_ID::internal::MapEntry<EntityMessage_V1_ContactStatusesEntry_DoNotUse, + std::string, ::api::ContactStatus, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_ENUM, + 0 > { +public: + typedef ::PROTOBUF_NAMESPACE_ID::internal::MapEntry<EntityMessage_V1_ContactStatusesEntry_DoNotUse, + std::string, ::api::ContactStatus, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_ENUM, + 0 > SuperType; + EntityMessage_V1_ContactStatusesEntry_DoNotUse(); + EntityMessage_V1_ContactStatusesEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena); + void MergeFrom(const EntityMessage_V1_ContactStatusesEntry_DoNotUse& other); + static const EntityMessage_V1_ContactStatusesEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const EntityMessage_V1_ContactStatusesEntry_DoNotUse*>(&_EntityMessage_V1_ContactStatusesEntry_DoNotUse_default_instance_); } + static bool ValidateKey(std::string* s) { + return ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(s->data(), static_cast<int>(s->size()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE, "api.EntityMessage_V1.ContactStatusesEntry.key"); + } + static bool ValidateValue(void*) { return true; } + void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& other) final; + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + private: + static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() { + ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto); + return ::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.file_level_metadata[9]; + } + + public: +}; + +// ------------------------------------------------------------------- + +class EntityMessage_V1 : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:api.EntityMessage_V1) */ { + public: + EntityMessage_V1(); + virtual ~EntityMessage_V1(); + + EntityMessage_V1(const EntityMessage_V1& from); + EntityMessage_V1(EntityMessage_V1&& from) noexcept + : EntityMessage_V1() { + *this = ::std::move(from); + } + + inline EntityMessage_V1& operator=(const EntityMessage_V1& from) { + CopyFrom(from); + return *this; + } + inline EntityMessage_V1& operator=(EntityMessage_V1&& from) noexcept { + if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) { + if (this != &from) InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return GetMetadataStatic().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return GetMetadataStatic().reflection; + } + static const EntityMessage_V1& default_instance(); + + static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY + static inline const EntityMessage_V1* internal_default_instance() { + return reinterpret_cast<const EntityMessage_V1*>( + &_EntityMessage_V1_default_instance_); + } + static constexpr int kIndexInFileMessages = + 10; + + friend void swap(EntityMessage_V1& a, EntityMessage_V1& b) { + a.Swap(&b); + } + inline void Swap(EntityMessage_V1* other) { + if (other == this) return; + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + inline EntityMessage_V1* New() const final { + return CreateMaybeMessage<EntityMessage_V1>(nullptr); + } + + EntityMessage_V1* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final { + return CreateMaybeMessage<EntityMessage_V1>(arena); + } + void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; + void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; + void CopyFrom(const EntityMessage_V1& from); + void MergeFrom(const EntityMessage_V1& from); + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize( + ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _cached_size_.Get(); } + + private: + inline void SharedCtor(); + inline void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(EntityMessage_V1* other); + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "api.EntityMessage_V1"; + } + private: + inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const { + return nullptr; + } + inline void* MaybeArenaPtr() const { + return nullptr; + } + public: + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + private: + static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() { + ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto); + return ::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.file_level_metadata[kIndexInFileMessages]; + } + + public: + + // nested types ---------------------------------------------------- + + + // accessors ------------------------------------------------------- + + enum : int { + kClaimsFieldNumber = 3, + kGuardedFieldNumber = 4, + kGuardiansFieldNumber = 5, + kMembersFieldNumber = 6, + kMemberOfFieldNumber = 7, + kParentsFieldNumber = 8, + kChildrenFieldNumber = 9, + kViewedFieldNumber = 12, + kViewersFieldNumber = 13, + kAuthenticationKeysFieldNumber = 16, + kCertificatesFieldNumber = 17, + kSymmetricKeysFieldNumber = 19, + kPassportsCountersFieldNumber = 21, + kContactStatusesFieldNumber = 22, + kPendingSharingRequestsFieldNumber = 24, + kRejectedSharingRequestsFieldNumber = 25, + kUuidFieldNumber = 1, + kOtpSecretFieldNumber = 14, + kEntityCertificateFieldNumber = 18, + kStampFieldNumber = 11, + kTypeFieldNumber = 2, + kActivatedFieldNumber = 15, + kTemporaryFieldNumber = 23, + kCreatedFieldNumber = 20, + }; + // map<string, .api.ClaimTagsMap_V1> claims = 3; + int claims_size() const; + private: + int _internal_claims_size() const; + public: + void clear_claims(); + private: + const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::ClaimTagsMap_V1 >& + _internal_claims() const; + ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::ClaimTagsMap_V1 >* + _internal_mutable_claims(); + public: + const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::ClaimTagsMap_V1 >& + claims() const; + ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::ClaimTagsMap_V1 >* + mutable_claims(); + + // repeated string guarded = 4; + int guarded_size() const; + private: + int _internal_guarded_size() const; + public: + void clear_guarded(); + const std::string& guarded(int index) const; + std::string* mutable_guarded(int index); + void set_guarded(int index, const std::string& value); + void set_guarded(int index, std::string&& value); + void set_guarded(int index, const char* value); + void set_guarded(int index, const char* value, size_t size); + std::string* add_guarded(); + void add_guarded(const std::string& value); + void add_guarded(std::string&& value); + void add_guarded(const char* value); + void add_guarded(const char* value, size_t size); + const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& guarded() const; + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* mutable_guarded(); + private: + const std::string& _internal_guarded(int index) const; + std::string* _internal_add_guarded(); + public: + + // repeated string guardians = 5; + int guardians_size() const; + private: + int _internal_guardians_size() const; + public: + void clear_guardians(); + const std::string& guardians(int index) const; + std::string* mutable_guardians(int index); + void set_guardians(int index, const std::string& value); + void set_guardians(int index, std::string&& value); + void set_guardians(int index, const char* value); + void set_guardians(int index, const char* value, size_t size); + std::string* add_guardians(); + void add_guardians(const std::string& value); + void add_guardians(std::string&& value); + void add_guardians(const char* value); + void add_guardians(const char* value, size_t size); + const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& guardians() const; + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* mutable_guardians(); + private: + const std::string& _internal_guardians(int index) const; + std::string* _internal_add_guardians(); + public: + + // repeated string members = 6; + int members_size() const; + private: + int _internal_members_size() const; + public: + void clear_members(); + const std::string& members(int index) const; + std::string* mutable_members(int index); + void set_members(int index, const std::string& value); + void set_members(int index, std::string&& value); + void set_members(int index, const char* value); + void set_members(int index, const char* value, size_t size); + std::string* add_members(); + void add_members(const std::string& value); + void add_members(std::string&& value); + void add_members(const char* value); + void add_members(const char* value, size_t size); + const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& members() const; + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* mutable_members(); + private: + const std::string& _internal_members(int index) const; + std::string* _internal_add_members(); + public: + + // repeated string memberOf = 7; + int memberof_size() const; + private: + int _internal_memberof_size() const; + public: + void clear_memberof(); + const std::string& memberof(int index) const; + std::string* mutable_memberof(int index); + void set_memberof(int index, const std::string& value); + void set_memberof(int index, std::string&& value); + void set_memberof(int index, const char* value); + void set_memberof(int index, const char* value, size_t size); + std::string* add_memberof(); + void add_memberof(const std::string& value); + void add_memberof(std::string&& value); + void add_memberof(const char* value); + void add_memberof(const char* value, size_t size); + const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& memberof() const; + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* mutable_memberof(); + private: + const std::string& _internal_memberof(int index) const; + std::string* _internal_add_memberof(); + public: + + // repeated string parents = 8; + int parents_size() const; + private: + int _internal_parents_size() const; + public: + void clear_parents(); + const std::string& parents(int index) const; + std::string* mutable_parents(int index); + void set_parents(int index, const std::string& value); + void set_parents(int index, std::string&& value); + void set_parents(int index, const char* value); + void set_parents(int index, const char* value, size_t size); + std::string* add_parents(); + void add_parents(const std::string& value); + void add_parents(std::string&& value); + void add_parents(const char* value); + void add_parents(const char* value, size_t size); + const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& parents() const; + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* mutable_parents(); + private: + const std::string& _internal_parents(int index) const; + std::string* _internal_add_parents(); + public: + + // repeated string children = 9; + int children_size() const; + private: + int _internal_children_size() const; + public: + void clear_children(); + const std::string& children(int index) const; + std::string* mutable_children(int index); + void set_children(int index, const std::string& value); + void set_children(int index, std::string&& value); + void set_children(int index, const char* value); + void set_children(int index, const char* value, size_t size); + std::string* add_children(); + void add_children(const std::string& value); + void add_children(std::string&& value); + void add_children(const char* value); + void add_children(const char* value, size_t size); + const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& children() const; + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* mutable_children(); + private: + const std::string& _internal_children(int index) const; + std::string* _internal_add_children(); + public: + + // repeated string viewed = 12; + int viewed_size() const; + private: + int _internal_viewed_size() const; + public: + void clear_viewed(); + const std::string& viewed(int index) const; + std::string* mutable_viewed(int index); + void set_viewed(int index, const std::string& value); + void set_viewed(int index, std::string&& value); + void set_viewed(int index, const char* value); + void set_viewed(int index, const char* value, size_t size); + std::string* add_viewed(); + void add_viewed(const std::string& value); + void add_viewed(std::string&& value); + void add_viewed(const char* value); + void add_viewed(const char* value, size_t size); + const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& viewed() const; + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* mutable_viewed(); + private: + const std::string& _internal_viewed(int index) const; + std::string* _internal_add_viewed(); + public: + + // repeated string viewers = 13; + int viewers_size() const; + private: + int _internal_viewers_size() const; + public: + void clear_viewers(); + const std::string& viewers(int index) const; + std::string* mutable_viewers(int index); + void set_viewers(int index, const std::string& value); + void set_viewers(int index, std::string&& value); + void set_viewers(int index, const char* value); + void set_viewers(int index, const char* value, size_t size); + std::string* add_viewers(); + void add_viewers(const std::string& value); + void add_viewers(std::string&& value); + void add_viewers(const char* value); + void add_viewers(const char* value, size_t size); + const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& viewers() const; + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* mutable_viewers(); + private: + const std::string& _internal_viewers(int index) const; + std::string* _internal_add_viewers(); + public: + + // repeated string authenticationKeys = 16; + int authenticationkeys_size() const; + private: + int _internal_authenticationkeys_size() const; + public: + void clear_authenticationkeys(); + const std::string& authenticationkeys(int index) const; + std::string* mutable_authenticationkeys(int index); + void set_authenticationkeys(int index, const std::string& value); + void set_authenticationkeys(int index, std::string&& value); + void set_authenticationkeys(int index, const char* value); + void set_authenticationkeys(int index, const char* value, size_t size); + std::string* add_authenticationkeys(); + void add_authenticationkeys(const std::string& value); + void add_authenticationkeys(std::string&& value); + void add_authenticationkeys(const char* value); + void add_authenticationkeys(const char* value, size_t size); + const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& authenticationkeys() const; + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* mutable_authenticationkeys(); + private: + const std::string& _internal_authenticationkeys(int index) const; + std::string* _internal_add_authenticationkeys(); + public: + + // repeated string certificates = 17; + int certificates_size() const; + private: + int _internal_certificates_size() const; + public: + void clear_certificates(); + const std::string& certificates(int index) const; + std::string* mutable_certificates(int index); + void set_certificates(int index, const std::string& value); + void set_certificates(int index, std::string&& value); + void set_certificates(int index, const char* value); + void set_certificates(int index, const char* value, size_t size); + std::string* add_certificates(); + void add_certificates(const std::string& value); + void add_certificates(std::string&& value); + void add_certificates(const char* value); + void add_certificates(const char* value, size_t size); + const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& certificates() const; + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* mutable_certificates(); + private: + const std::string& _internal_certificates(int index) const; + std::string* _internal_add_certificates(); + public: + + // repeated string symmetricKeys = 19; + int symmetrickeys_size() const; + private: + int _internal_symmetrickeys_size() const; + public: + void clear_symmetrickeys(); + const std::string& symmetrickeys(int index) const; + std::string* mutable_symmetrickeys(int index); + void set_symmetrickeys(int index, const std::string& value); + void set_symmetrickeys(int index, std::string&& value); + void set_symmetrickeys(int index, const char* value); + void set_symmetrickeys(int index, const char* value, size_t size); + std::string* add_symmetrickeys(); + void add_symmetrickeys(const std::string& value); + void add_symmetrickeys(std::string&& value); + void add_symmetrickeys(const char* value); + void add_symmetrickeys(const char* value, size_t size); + const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& symmetrickeys() const; + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* mutable_symmetrickeys(); + private: + const std::string& _internal_symmetrickeys(int index) const; + std::string* _internal_add_symmetrickeys(); + public: + + // map<string, int64> passportsCounters = 21; + int passportscounters_size() const; + private: + int _internal_passportscounters_size() const; + public: + void clear_passportscounters(); + private: + const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::PROTOBUF_NAMESPACE_ID::int64 >& + _internal_passportscounters() const; + ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::PROTOBUF_NAMESPACE_ID::int64 >* + _internal_mutable_passportscounters(); + public: + const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::PROTOBUF_NAMESPACE_ID::int64 >& + passportscounters() const; + ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::PROTOBUF_NAMESPACE_ID::int64 >* + mutable_passportscounters(); + + // map<string, .api.ContactStatus> contactStatuses = 22; + int contactstatuses_size() const; + private: + int _internal_contactstatuses_size() const; + public: + void clear_contactstatuses(); + private: + const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::ContactStatus >& + _internal_contactstatuses() const; + ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::ContactStatus >* + _internal_mutable_contactstatuses(); + public: + const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::ContactStatus >& + contactstatuses() const; + ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::ContactStatus >* + mutable_contactstatuses(); + + // repeated string pendingSharingRequests = 24; + int pendingsharingrequests_size() const; + private: + int _internal_pendingsharingrequests_size() const; + public: + void clear_pendingsharingrequests(); + const std::string& pendingsharingrequests(int index) const; + std::string* mutable_pendingsharingrequests(int index); + void set_pendingsharingrequests(int index, const std::string& value); + void set_pendingsharingrequests(int index, std::string&& value); + void set_pendingsharingrequests(int index, const char* value); + void set_pendingsharingrequests(int index, const char* value, size_t size); + std::string* add_pendingsharingrequests(); + void add_pendingsharingrequests(const std::string& value); + void add_pendingsharingrequests(std::string&& value); + void add_pendingsharingrequests(const char* value); + void add_pendingsharingrequests(const char* value, size_t size); + const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& pendingsharingrequests() const; + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* mutable_pendingsharingrequests(); + private: + const std::string& _internal_pendingsharingrequests(int index) const; + std::string* _internal_add_pendingsharingrequests(); + public: + + // repeated string rejectedSharingRequests = 25; + int rejectedsharingrequests_size() const; + private: + int _internal_rejectedsharingrequests_size() const; + public: + void clear_rejectedsharingrequests(); + const std::string& rejectedsharingrequests(int index) const; + std::string* mutable_rejectedsharingrequests(int index); + void set_rejectedsharingrequests(int index, const std::string& value); + void set_rejectedsharingrequests(int index, std::string&& value); + void set_rejectedsharingrequests(int index, const char* value); + void set_rejectedsharingrequests(int index, const char* value, size_t size); + std::string* add_rejectedsharingrequests(); + void add_rejectedsharingrequests(const std::string& value); + void add_rejectedsharingrequests(std::string&& value); + void add_rejectedsharingrequests(const char* value); + void add_rejectedsharingrequests(const char* value, size_t size); + const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& rejectedsharingrequests() const; + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* mutable_rejectedsharingrequests(); + private: + const std::string& _internal_rejectedsharingrequests(int index) const; + std::string* _internal_add_rejectedsharingrequests(); + public: + + // string uuid = 1; + void clear_uuid(); + const std::string& uuid() const; + void set_uuid(const std::string& value); + void set_uuid(std::string&& value); + void set_uuid(const char* value); + void set_uuid(const char* value, size_t size); + std::string* mutable_uuid(); + std::string* release_uuid(); + void set_allocated_uuid(std::string* uuid); + private: + const std::string& _internal_uuid() const; + void _internal_set_uuid(const std::string& value); + std::string* _internal_mutable_uuid(); + public: + + // string otpSecret = 14; + void clear_otpsecret(); + const std::string& otpsecret() const; + void set_otpsecret(const std::string& value); + void set_otpsecret(std::string&& value); + void set_otpsecret(const char* value); + void set_otpsecret(const char* value, size_t size); + std::string* mutable_otpsecret(); + std::string* release_otpsecret(); + void set_allocated_otpsecret(std::string* otpsecret); + private: + const std::string& _internal_otpsecret() const; + void _internal_set_otpsecret(const std::string& value); + std::string* _internal_mutable_otpsecret(); + public: + + // string entityCertificate = 18; + void clear_entitycertificate(); + const std::string& entitycertificate() const; + void set_entitycertificate(const std::string& value); + void set_entitycertificate(std::string&& value); + void set_entitycertificate(const char* value); + void set_entitycertificate(const char* value, size_t size); + std::string* mutable_entitycertificate(); + std::string* release_entitycertificate(); + void set_allocated_entitycertificate(std::string* entitycertificate); + private: + const std::string& _internal_entitycertificate() const; + void _internal_set_entitycertificate(const std::string& value); + std::string* _internal_mutable_entitycertificate(); + public: + + // int64 stamp = 11; + void clear_stamp(); + ::PROTOBUF_NAMESPACE_ID::int64 stamp() const; + void set_stamp(::PROTOBUF_NAMESPACE_ID::int64 value); + private: + ::PROTOBUF_NAMESPACE_ID::int64 _internal_stamp() const; + void _internal_set_stamp(::PROTOBUF_NAMESPACE_ID::int64 value); + public: + + // .api.EntityType type = 2; + void clear_type(); + ::api::EntityType type() const; + void set_type(::api::EntityType value); + private: + ::api::EntityType _internal_type() const; + void _internal_set_type(::api::EntityType value); + public: + + // bool activated = 15; + void clear_activated(); + bool activated() const; + void set_activated(bool value); + private: + bool _internal_activated() const; + void _internal_set_activated(bool value); + public: + + // bool temporary = 23; + void clear_temporary(); + bool temporary() const; + void set_temporary(bool value); + private: + bool _internal_temporary() const; + void _internal_set_temporary(bool value); + public: + + // int64 created = 20; + void clear_created(); + ::PROTOBUF_NAMESPACE_ID::int64 created() const; + void set_created(::PROTOBUF_NAMESPACE_ID::int64 value); + private: + ::PROTOBUF_NAMESPACE_ID::int64 _internal_created() const; + void _internal_set_created(::PROTOBUF_NAMESPACE_ID::int64 value); + public: + + // @@protoc_insertion_point(class_scope:api.EntityMessage_V1) + private: + class _Internal; + + ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_; + ::PROTOBUF_NAMESPACE_ID::internal::MapField< + EntityMessage_V1_ClaimsEntry_DoNotUse, + std::string, ::api::ClaimTagsMap_V1, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_MESSAGE, + 0 > claims_; + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string> guarded_; + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string> guardians_; + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string> members_; + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string> memberof_; + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string> parents_; + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string> children_; + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string> viewed_; + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string> viewers_; + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string> authenticationkeys_; + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string> certificates_; + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string> symmetrickeys_; + ::PROTOBUF_NAMESPACE_ID::internal::MapField< + EntityMessage_V1_PassportsCountersEntry_DoNotUse, + std::string, ::PROTOBUF_NAMESPACE_ID::int64, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_INT64, + 0 > passportscounters_; + ::PROTOBUF_NAMESPACE_ID::internal::MapField< + EntityMessage_V1_ContactStatusesEntry_DoNotUse, + std::string, ::api::ContactStatus, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_ENUM, + 0 > contactstatuses_; + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string> pendingsharingrequests_; + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string> rejectedsharingrequests_; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr uuid_; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr otpsecret_; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr entitycertificate_; + ::PROTOBUF_NAMESPACE_ID::int64 stamp_; + int type_; + bool activated_; + bool temporary_; + ::PROTOBUF_NAMESPACE_ID::int64 created_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + friend struct ::TableStruct_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto; +}; +// ------------------------------------------------------------------- + +class EntityMessage_V2_ClaimsEntry_DoNotUse : public ::PROTOBUF_NAMESPACE_ID::internal::MapEntry<EntityMessage_V2_ClaimsEntry_DoNotUse, + std::string, ::api::ClaimTagsMap_V1, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_MESSAGE, + 0 > { +public: + typedef ::PROTOBUF_NAMESPACE_ID::internal::MapEntry<EntityMessage_V2_ClaimsEntry_DoNotUse, + std::string, ::api::ClaimTagsMap_V1, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_MESSAGE, + 0 > SuperType; + EntityMessage_V2_ClaimsEntry_DoNotUse(); + EntityMessage_V2_ClaimsEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena); + void MergeFrom(const EntityMessage_V2_ClaimsEntry_DoNotUse& other); + static const EntityMessage_V2_ClaimsEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const EntityMessage_V2_ClaimsEntry_DoNotUse*>(&_EntityMessage_V2_ClaimsEntry_DoNotUse_default_instance_); } + static bool ValidateKey(std::string* s) { + return ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(s->data(), static_cast<int>(s->size()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE, "api.EntityMessage_V2.ClaimsEntry.key"); + } + static bool ValidateValue(void*) { return true; } + void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& other) final; + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + private: + static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() { + ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto); + return ::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.file_level_metadata[11]; + } + + public: +}; + +// ------------------------------------------------------------------- + +class EntityMessage_V2_GuardedEntry_DoNotUse : public ::PROTOBUF_NAMESPACE_ID::internal::MapEntry<EntityMessage_V2_GuardedEntry_DoNotUse, + std::string, ::api::RelationStatus, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_ENUM, + 0 > { +public: + typedef ::PROTOBUF_NAMESPACE_ID::internal::MapEntry<EntityMessage_V2_GuardedEntry_DoNotUse, + std::string, ::api::RelationStatus, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_ENUM, + 0 > SuperType; + EntityMessage_V2_GuardedEntry_DoNotUse(); + EntityMessage_V2_GuardedEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena); + void MergeFrom(const EntityMessage_V2_GuardedEntry_DoNotUse& other); + static const EntityMessage_V2_GuardedEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const EntityMessage_V2_GuardedEntry_DoNotUse*>(&_EntityMessage_V2_GuardedEntry_DoNotUse_default_instance_); } + static bool ValidateKey(std::string* s) { + return ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(s->data(), static_cast<int>(s->size()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE, "api.EntityMessage_V2.GuardedEntry.key"); + } + static bool ValidateValue(void*) { return true; } + void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& other) final; + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + private: + static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() { + ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto); + return ::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.file_level_metadata[12]; + } + + public: +}; + +// ------------------------------------------------------------------- + +class EntityMessage_V2_GuardiansEntry_DoNotUse : public ::PROTOBUF_NAMESPACE_ID::internal::MapEntry<EntityMessage_V2_GuardiansEntry_DoNotUse, + std::string, ::api::RelationStatus, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_ENUM, + 0 > { +public: + typedef ::PROTOBUF_NAMESPACE_ID::internal::MapEntry<EntityMessage_V2_GuardiansEntry_DoNotUse, + std::string, ::api::RelationStatus, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_ENUM, + 0 > SuperType; + EntityMessage_V2_GuardiansEntry_DoNotUse(); + EntityMessage_V2_GuardiansEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena); + void MergeFrom(const EntityMessage_V2_GuardiansEntry_DoNotUse& other); + static const EntityMessage_V2_GuardiansEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const EntityMessage_V2_GuardiansEntry_DoNotUse*>(&_EntityMessage_V2_GuardiansEntry_DoNotUse_default_instance_); } + static bool ValidateKey(std::string* s) { + return ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(s->data(), static_cast<int>(s->size()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE, "api.EntityMessage_V2.GuardiansEntry.key"); + } + static bool ValidateValue(void*) { return true; } + void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& other) final; + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + private: + static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() { + ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto); + return ::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.file_level_metadata[13]; + } + + public: +}; + +// ------------------------------------------------------------------- + +class EntityMessage_V2_MembersEntry_DoNotUse : public ::PROTOBUF_NAMESPACE_ID::internal::MapEntry<EntityMessage_V2_MembersEntry_DoNotUse, + std::string, ::api::RelationStatus, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_ENUM, + 0 > { +public: + typedef ::PROTOBUF_NAMESPACE_ID::internal::MapEntry<EntityMessage_V2_MembersEntry_DoNotUse, + std::string, ::api::RelationStatus, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_ENUM, + 0 > SuperType; + EntityMessage_V2_MembersEntry_DoNotUse(); + EntityMessage_V2_MembersEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena); + void MergeFrom(const EntityMessage_V2_MembersEntry_DoNotUse& other); + static const EntityMessage_V2_MembersEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const EntityMessage_V2_MembersEntry_DoNotUse*>(&_EntityMessage_V2_MembersEntry_DoNotUse_default_instance_); } + static bool ValidateKey(std::string* s) { + return ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(s->data(), static_cast<int>(s->size()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE, "api.EntityMessage_V2.MembersEntry.key"); + } + static bool ValidateValue(void*) { return true; } + void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& other) final; + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + private: + static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() { + ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto); + return ::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.file_level_metadata[14]; + } + + public: +}; + +// ------------------------------------------------------------------- + +class EntityMessage_V2_MemberOfEntry_DoNotUse : public ::PROTOBUF_NAMESPACE_ID::internal::MapEntry<EntityMessage_V2_MemberOfEntry_DoNotUse, + std::string, ::api::RelationStatus, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_ENUM, + 0 > { +public: + typedef ::PROTOBUF_NAMESPACE_ID::internal::MapEntry<EntityMessage_V2_MemberOfEntry_DoNotUse, + std::string, ::api::RelationStatus, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_ENUM, + 0 > SuperType; + EntityMessage_V2_MemberOfEntry_DoNotUse(); + EntityMessage_V2_MemberOfEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena); + void MergeFrom(const EntityMessage_V2_MemberOfEntry_DoNotUse& other); + static const EntityMessage_V2_MemberOfEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const EntityMessage_V2_MemberOfEntry_DoNotUse*>(&_EntityMessage_V2_MemberOfEntry_DoNotUse_default_instance_); } + static bool ValidateKey(std::string* s) { + return ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(s->data(), static_cast<int>(s->size()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE, "api.EntityMessage_V2.MemberOfEntry.key"); + } + static bool ValidateValue(void*) { return true; } + void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& other) final; + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + private: + static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() { + ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto); + return ::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.file_level_metadata[15]; + } + + public: +}; + +// ------------------------------------------------------------------- + +class EntityMessage_V2_ParentsEntry_DoNotUse : public ::PROTOBUF_NAMESPACE_ID::internal::MapEntry<EntityMessage_V2_ParentsEntry_DoNotUse, + std::string, ::api::RelationStatus, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_ENUM, + 0 > { +public: + typedef ::PROTOBUF_NAMESPACE_ID::internal::MapEntry<EntityMessage_V2_ParentsEntry_DoNotUse, + std::string, ::api::RelationStatus, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_ENUM, + 0 > SuperType; + EntityMessage_V2_ParentsEntry_DoNotUse(); + EntityMessage_V2_ParentsEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena); + void MergeFrom(const EntityMessage_V2_ParentsEntry_DoNotUse& other); + static const EntityMessage_V2_ParentsEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const EntityMessage_V2_ParentsEntry_DoNotUse*>(&_EntityMessage_V2_ParentsEntry_DoNotUse_default_instance_); } + static bool ValidateKey(std::string* s) { + return ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(s->data(), static_cast<int>(s->size()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE, "api.EntityMessage_V2.ParentsEntry.key"); + } + static bool ValidateValue(void*) { return true; } + void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& other) final; + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + private: + static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() { + ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto); + return ::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.file_level_metadata[16]; + } + + public: +}; + +// ------------------------------------------------------------------- + +class EntityMessage_V2_ChildrenEntry_DoNotUse : public ::PROTOBUF_NAMESPACE_ID::internal::MapEntry<EntityMessage_V2_ChildrenEntry_DoNotUse, + std::string, ::api::RelationStatus, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_ENUM, + 0 > { +public: + typedef ::PROTOBUF_NAMESPACE_ID::internal::MapEntry<EntityMessage_V2_ChildrenEntry_DoNotUse, + std::string, ::api::RelationStatus, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_ENUM, + 0 > SuperType; + EntityMessage_V2_ChildrenEntry_DoNotUse(); + EntityMessage_V2_ChildrenEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena); + void MergeFrom(const EntityMessage_V2_ChildrenEntry_DoNotUse& other); + static const EntityMessage_V2_ChildrenEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const EntityMessage_V2_ChildrenEntry_DoNotUse*>(&_EntityMessage_V2_ChildrenEntry_DoNotUse_default_instance_); } + static bool ValidateKey(std::string* s) { + return ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(s->data(), static_cast<int>(s->size()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE, "api.EntityMessage_V2.ChildrenEntry.key"); + } + static bool ValidateValue(void*) { return true; } + void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& other) final; + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + private: + static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() { + ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto); + return ::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.file_level_metadata[17]; + } + + public: +}; + +// ------------------------------------------------------------------- + +class EntityMessage_V2_ViewedEntry_DoNotUse : public ::PROTOBUF_NAMESPACE_ID::internal::MapEntry<EntityMessage_V2_ViewedEntry_DoNotUse, + std::string, ::api::RelationStatus, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_ENUM, + 0 > { +public: + typedef ::PROTOBUF_NAMESPACE_ID::internal::MapEntry<EntityMessage_V2_ViewedEntry_DoNotUse, + std::string, ::api::RelationStatus, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_ENUM, + 0 > SuperType; + EntityMessage_V2_ViewedEntry_DoNotUse(); + EntityMessage_V2_ViewedEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena); + void MergeFrom(const EntityMessage_V2_ViewedEntry_DoNotUse& other); + static const EntityMessage_V2_ViewedEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const EntityMessage_V2_ViewedEntry_DoNotUse*>(&_EntityMessage_V2_ViewedEntry_DoNotUse_default_instance_); } + static bool ValidateKey(std::string* s) { + return ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(s->data(), static_cast<int>(s->size()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE, "api.EntityMessage_V2.ViewedEntry.key"); + } + static bool ValidateValue(void*) { return true; } + void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& other) final; + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + private: + static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() { + ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto); + return ::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.file_level_metadata[18]; + } + + public: +}; + +// ------------------------------------------------------------------- + +class EntityMessage_V2_ViewersEntry_DoNotUse : public ::PROTOBUF_NAMESPACE_ID::internal::MapEntry<EntityMessage_V2_ViewersEntry_DoNotUse, + std::string, ::api::RelationStatus, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_ENUM, + 0 > { +public: + typedef ::PROTOBUF_NAMESPACE_ID::internal::MapEntry<EntityMessage_V2_ViewersEntry_DoNotUse, + std::string, ::api::RelationStatus, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_ENUM, + 0 > SuperType; + EntityMessage_V2_ViewersEntry_DoNotUse(); + EntityMessage_V2_ViewersEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena); + void MergeFrom(const EntityMessage_V2_ViewersEntry_DoNotUse& other); + static const EntityMessage_V2_ViewersEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const EntityMessage_V2_ViewersEntry_DoNotUse*>(&_EntityMessage_V2_ViewersEntry_DoNotUse_default_instance_); } + static bool ValidateKey(std::string* s) { + return ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(s->data(), static_cast<int>(s->size()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE, "api.EntityMessage_V2.ViewersEntry.key"); + } + static bool ValidateValue(void*) { return true; } + void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& other) final; + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + private: + static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() { + ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto); + return ::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.file_level_metadata[19]; + } + + public: +}; + +// ------------------------------------------------------------------- + +class EntityMessage_V2_PassportsCountersEntry_DoNotUse : public ::PROTOBUF_NAMESPACE_ID::internal::MapEntry<EntityMessage_V2_PassportsCountersEntry_DoNotUse, + std::string, ::PROTOBUF_NAMESPACE_ID::int64, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_INT64, + 0 > { +public: + typedef ::PROTOBUF_NAMESPACE_ID::internal::MapEntry<EntityMessage_V2_PassportsCountersEntry_DoNotUse, + std::string, ::PROTOBUF_NAMESPACE_ID::int64, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_INT64, + 0 > SuperType; + EntityMessage_V2_PassportsCountersEntry_DoNotUse(); + EntityMessage_V2_PassportsCountersEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena); + void MergeFrom(const EntityMessage_V2_PassportsCountersEntry_DoNotUse& other); + static const EntityMessage_V2_PassportsCountersEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const EntityMessage_V2_PassportsCountersEntry_DoNotUse*>(&_EntityMessage_V2_PassportsCountersEntry_DoNotUse_default_instance_); } + static bool ValidateKey(std::string* s) { + return ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(s->data(), static_cast<int>(s->size()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE, "api.EntityMessage_V2.PassportsCountersEntry.key"); + } + static bool ValidateValue(void*) { return true; } + void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& other) final; + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + private: + static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() { + ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto); + return ::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.file_level_metadata[20]; + } + + public: +}; + +// ------------------------------------------------------------------- + +class EntityMessage_V2_ContactStatusesEntry_DoNotUse : public ::PROTOBUF_NAMESPACE_ID::internal::MapEntry<EntityMessage_V2_ContactStatusesEntry_DoNotUse, + std::string, ::api::ContactStatus, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_ENUM, + 0 > { +public: + typedef ::PROTOBUF_NAMESPACE_ID::internal::MapEntry<EntityMessage_V2_ContactStatusesEntry_DoNotUse, + std::string, ::api::ContactStatus, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_ENUM, + 0 > SuperType; + EntityMessage_V2_ContactStatusesEntry_DoNotUse(); + EntityMessage_V2_ContactStatusesEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena); + void MergeFrom(const EntityMessage_V2_ContactStatusesEntry_DoNotUse& other); + static const EntityMessage_V2_ContactStatusesEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const EntityMessage_V2_ContactStatusesEntry_DoNotUse*>(&_EntityMessage_V2_ContactStatusesEntry_DoNotUse_default_instance_); } + static bool ValidateKey(std::string* s) { + return ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(s->data(), static_cast<int>(s->size()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE, "api.EntityMessage_V2.ContactStatusesEntry.key"); + } + static bool ValidateValue(void*) { return true; } + void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& other) final; + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + private: + static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() { + ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto); + return ::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.file_level_metadata[21]; + } + + public: +}; + +// ------------------------------------------------------------------- + +class EntityMessage_V2_OrdersEntry_DoNotUse : public ::PROTOBUF_NAMESPACE_ID::internal::MapEntry<EntityMessage_V2_OrdersEntry_DoNotUse, + std::string, ::api::OrderStatus, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_ENUM, + 0 > { +public: + typedef ::PROTOBUF_NAMESPACE_ID::internal::MapEntry<EntityMessage_V2_OrdersEntry_DoNotUse, + std::string, ::api::OrderStatus, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_ENUM, + 0 > SuperType; + EntityMessage_V2_OrdersEntry_DoNotUse(); + EntityMessage_V2_OrdersEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena); + void MergeFrom(const EntityMessage_V2_OrdersEntry_DoNotUse& other); + static const EntityMessage_V2_OrdersEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const EntityMessage_V2_OrdersEntry_DoNotUse*>(&_EntityMessage_V2_OrdersEntry_DoNotUse_default_instance_); } + static bool ValidateKey(std::string* s) { + return ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(s->data(), static_cast<int>(s->size()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE, "api.EntityMessage_V2.OrdersEntry.key"); + } + static bool ValidateValue(void*) { return true; } + void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& other) final; + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + private: + static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() { + ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto); + return ::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.file_level_metadata[22]; + } + + public: +}; + +// ------------------------------------------------------------------- + +class EntityMessage_V2_SystemParentsEntry_DoNotUse : public ::PROTOBUF_NAMESPACE_ID::internal::MapEntry<EntityMessage_V2_SystemParentsEntry_DoNotUse, + std::string, ::api::RelationStatus, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_ENUM, + 0 > { +public: + typedef ::PROTOBUF_NAMESPACE_ID::internal::MapEntry<EntityMessage_V2_SystemParentsEntry_DoNotUse, + std::string, ::api::RelationStatus, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_ENUM, + 0 > SuperType; + EntityMessage_V2_SystemParentsEntry_DoNotUse(); + EntityMessage_V2_SystemParentsEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena); + void MergeFrom(const EntityMessage_V2_SystemParentsEntry_DoNotUse& other); + static const EntityMessage_V2_SystemParentsEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const EntityMessage_V2_SystemParentsEntry_DoNotUse*>(&_EntityMessage_V2_SystemParentsEntry_DoNotUse_default_instance_); } + static bool ValidateKey(std::string* s) { + return ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(s->data(), static_cast<int>(s->size()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE, "api.EntityMessage_V2.SystemParentsEntry.key"); + } + static bool ValidateValue(void*) { return true; } + void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& other) final; + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + private: + static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() { + ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto); + return ::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.file_level_metadata[23]; + } + + public: +}; + +// ------------------------------------------------------------------- + +class EntityMessage_V2_SystemChildrenEntry_DoNotUse : public ::PROTOBUF_NAMESPACE_ID::internal::MapEntry<EntityMessage_V2_SystemChildrenEntry_DoNotUse, + std::string, ::api::RelationStatus, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_ENUM, + 0 > { +public: + typedef ::PROTOBUF_NAMESPACE_ID::internal::MapEntry<EntityMessage_V2_SystemChildrenEntry_DoNotUse, + std::string, ::api::RelationStatus, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_ENUM, + 0 > SuperType; + EntityMessage_V2_SystemChildrenEntry_DoNotUse(); + EntityMessage_V2_SystemChildrenEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena); + void MergeFrom(const EntityMessage_V2_SystemChildrenEntry_DoNotUse& other); + static const EntityMessage_V2_SystemChildrenEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const EntityMessage_V2_SystemChildrenEntry_DoNotUse*>(&_EntityMessage_V2_SystemChildrenEntry_DoNotUse_default_instance_); } + static bool ValidateKey(std::string* s) { + return ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(s->data(), static_cast<int>(s->size()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE, "api.EntityMessage_V2.SystemChildrenEntry.key"); + } + static bool ValidateValue(void*) { return true; } + void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& other) final; + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + private: + static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() { + ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto); + return ::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.file_level_metadata[24]; + } + + public: +}; + +// ------------------------------------------------------------------- + +class EntityMessage_V2 : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:api.EntityMessage_V2) */ { + public: + EntityMessage_V2(); + virtual ~EntityMessage_V2(); + + EntityMessage_V2(const EntityMessage_V2& from); + EntityMessage_V2(EntityMessage_V2&& from) noexcept + : EntityMessage_V2() { + *this = ::std::move(from); + } + + inline EntityMessage_V2& operator=(const EntityMessage_V2& from) { + CopyFrom(from); + return *this; + } + inline EntityMessage_V2& operator=(EntityMessage_V2&& from) noexcept { + if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) { + if (this != &from) InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return GetMetadataStatic().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return GetMetadataStatic().reflection; + } + static const EntityMessage_V2& default_instance(); + + static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY + static inline const EntityMessage_V2* internal_default_instance() { + return reinterpret_cast<const EntityMessage_V2*>( + &_EntityMessage_V2_default_instance_); + } + static constexpr int kIndexInFileMessages = + 25; + + friend void swap(EntityMessage_V2& a, EntityMessage_V2& b) { + a.Swap(&b); + } + inline void Swap(EntityMessage_V2* other) { + if (other == this) return; + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + inline EntityMessage_V2* New() const final { + return CreateMaybeMessage<EntityMessage_V2>(nullptr); + } + + EntityMessage_V2* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final { + return CreateMaybeMessage<EntityMessage_V2>(arena); + } + void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; + void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; + void CopyFrom(const EntityMessage_V2& from); + void MergeFrom(const EntityMessage_V2& from); + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize( + ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _cached_size_.Get(); } + + private: + inline void SharedCtor(); + inline void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(EntityMessage_V2* other); + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "api.EntityMessage_V2"; + } + private: + inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const { + return nullptr; + } + inline void* MaybeArenaPtr() const { + return nullptr; + } + public: + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + private: + static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() { + ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto); + return ::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.file_level_metadata[kIndexInFileMessages]; + } + + public: + + // nested types ---------------------------------------------------- + + + // accessors ------------------------------------------------------- + + enum : int { + kClaimsFieldNumber = 3, + kGuardedFieldNumber = 4, + kGuardiansFieldNumber = 5, + kMembersFieldNumber = 6, + kMemberOfFieldNumber = 7, + kParentsFieldNumber = 8, + kChildrenFieldNumber = 9, + kViewedFieldNumber = 12, + kViewersFieldNumber = 13, + kAuthenticationKeysFieldNumber = 16, + kCertificatesFieldNumber = 17, + kSymmetricKeysFieldNumber = 19, + kPassportsCountersFieldNumber = 21, + kContactStatusesFieldNumber = 22, + kPendingSharingRequestsFieldNumber = 24, + kRejectedSharingRequestsFieldNumber = 25, + kOrdersFieldNumber = 27, + kSystemParentsFieldNumber = 28, + kSystemChildrenFieldNumber = 29, + kUuidFieldNumber = 1, + kOtpSecretFieldNumber = 14, + kEntityCertificateFieldNumber = 18, + kStampFieldNumber = 11, + kTypeFieldNumber = 2, + kActivatedFieldNumber = 15, + kBlockedFieldNumber = 31, + kTemporaryFieldNumber = 23, + kDeletedFieldNumber = 26, + kCreatedFieldNumber = 20, + kLastLoginFieldNumber = 32, + kSharedFieldNumber = 30, + }; + // map<string, .api.ClaimTagsMap_V1> claims = 3; + int claims_size() const; + private: + int _internal_claims_size() const; + public: + void clear_claims(); + private: + const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::ClaimTagsMap_V1 >& + _internal_claims() const; + ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::ClaimTagsMap_V1 >* + _internal_mutable_claims(); + public: + const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::ClaimTagsMap_V1 >& + claims() const; + ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::ClaimTagsMap_V1 >* + mutable_claims(); + + // map<string, .api.RelationStatus> guarded = 4; + int guarded_size() const; + private: + int _internal_guarded_size() const; + public: + void clear_guarded(); + private: + const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >& + _internal_guarded() const; + ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >* + _internal_mutable_guarded(); + public: + const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >& + guarded() const; + ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >* + mutable_guarded(); + + // map<string, .api.RelationStatus> guardians = 5; + int guardians_size() const; + private: + int _internal_guardians_size() const; + public: + void clear_guardians(); + private: + const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >& + _internal_guardians() const; + ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >* + _internal_mutable_guardians(); + public: + const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >& + guardians() const; + ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >* + mutable_guardians(); + + // map<string, .api.RelationStatus> members = 6; + int members_size() const; + private: + int _internal_members_size() const; + public: + void clear_members(); + private: + const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >& + _internal_members() const; + ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >* + _internal_mutable_members(); + public: + const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >& + members() const; + ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >* + mutable_members(); + + // map<string, .api.RelationStatus> memberOf = 7; + int memberof_size() const; + private: + int _internal_memberof_size() const; + public: + void clear_memberof(); + private: + const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >& + _internal_memberof() const; + ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >* + _internal_mutable_memberof(); + public: + const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >& + memberof() const; + ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >* + mutable_memberof(); + + // map<string, .api.RelationStatus> parents = 8; + int parents_size() const; + private: + int _internal_parents_size() const; + public: + void clear_parents(); + private: + const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >& + _internal_parents() const; + ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >* + _internal_mutable_parents(); + public: + const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >& + parents() const; + ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >* + mutable_parents(); + + // map<string, .api.RelationStatus> children = 9; + int children_size() const; + private: + int _internal_children_size() const; + public: + void clear_children(); + private: + const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >& + _internal_children() const; + ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >* + _internal_mutable_children(); + public: + const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >& + children() const; + ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >* + mutable_children(); + + // map<string, .api.RelationStatus> viewed = 12; + int viewed_size() const; + private: + int _internal_viewed_size() const; + public: + void clear_viewed(); + private: + const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >& + _internal_viewed() const; + ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >* + _internal_mutable_viewed(); + public: + const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >& + viewed() const; + ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >* + mutable_viewed(); + + // map<string, .api.RelationStatus> viewers = 13; + int viewers_size() const; + private: + int _internal_viewers_size() const; + public: + void clear_viewers(); + private: + const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >& + _internal_viewers() const; + ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >* + _internal_mutable_viewers(); + public: + const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >& + viewers() const; + ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >* + mutable_viewers(); + + // repeated string authenticationKeys = 16; + int authenticationkeys_size() const; + private: + int _internal_authenticationkeys_size() const; + public: + void clear_authenticationkeys(); + const std::string& authenticationkeys(int index) const; + std::string* mutable_authenticationkeys(int index); + void set_authenticationkeys(int index, const std::string& value); + void set_authenticationkeys(int index, std::string&& value); + void set_authenticationkeys(int index, const char* value); + void set_authenticationkeys(int index, const char* value, size_t size); + std::string* add_authenticationkeys(); + void add_authenticationkeys(const std::string& value); + void add_authenticationkeys(std::string&& value); + void add_authenticationkeys(const char* value); + void add_authenticationkeys(const char* value, size_t size); + const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& authenticationkeys() const; + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* mutable_authenticationkeys(); + private: + const std::string& _internal_authenticationkeys(int index) const; + std::string* _internal_add_authenticationkeys(); + public: + + // repeated string certificates = 17; + int certificates_size() const; + private: + int _internal_certificates_size() const; + public: + void clear_certificates(); + const std::string& certificates(int index) const; + std::string* mutable_certificates(int index); + void set_certificates(int index, const std::string& value); + void set_certificates(int index, std::string&& value); + void set_certificates(int index, const char* value); + void set_certificates(int index, const char* value, size_t size); + std::string* add_certificates(); + void add_certificates(const std::string& value); + void add_certificates(std::string&& value); + void add_certificates(const char* value); + void add_certificates(const char* value, size_t size); + const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& certificates() const; + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* mutable_certificates(); + private: + const std::string& _internal_certificates(int index) const; + std::string* _internal_add_certificates(); + public: + + // repeated string symmetricKeys = 19; + int symmetrickeys_size() const; + private: + int _internal_symmetrickeys_size() const; + public: + void clear_symmetrickeys(); + const std::string& symmetrickeys(int index) const; + std::string* mutable_symmetrickeys(int index); + void set_symmetrickeys(int index, const std::string& value); + void set_symmetrickeys(int index, std::string&& value); + void set_symmetrickeys(int index, const char* value); + void set_symmetrickeys(int index, const char* value, size_t size); + std::string* add_symmetrickeys(); + void add_symmetrickeys(const std::string& value); + void add_symmetrickeys(std::string&& value); + void add_symmetrickeys(const char* value); + void add_symmetrickeys(const char* value, size_t size); + const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& symmetrickeys() const; + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* mutable_symmetrickeys(); + private: + const std::string& _internal_symmetrickeys(int index) const; + std::string* _internal_add_symmetrickeys(); + public: + + // map<string, int64> passportsCounters = 21; + int passportscounters_size() const; + private: + int _internal_passportscounters_size() const; + public: + void clear_passportscounters(); + private: + const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::PROTOBUF_NAMESPACE_ID::int64 >& + _internal_passportscounters() const; + ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::PROTOBUF_NAMESPACE_ID::int64 >* + _internal_mutable_passportscounters(); + public: + const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::PROTOBUF_NAMESPACE_ID::int64 >& + passportscounters() const; + ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::PROTOBUF_NAMESPACE_ID::int64 >* + mutable_passportscounters(); + + // map<string, .api.ContactStatus> contactStatuses = 22; + int contactstatuses_size() const; + private: + int _internal_contactstatuses_size() const; + public: + void clear_contactstatuses(); + private: + const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::ContactStatus >& + _internal_contactstatuses() const; + ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::ContactStatus >* + _internal_mutable_contactstatuses(); + public: + const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::ContactStatus >& + contactstatuses() const; + ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::ContactStatus >* + mutable_contactstatuses(); + + // repeated string pendingSharingRequests = 24; + int pendingsharingrequests_size() const; + private: + int _internal_pendingsharingrequests_size() const; + public: + void clear_pendingsharingrequests(); + const std::string& pendingsharingrequests(int index) const; + std::string* mutable_pendingsharingrequests(int index); + void set_pendingsharingrequests(int index, const std::string& value); + void set_pendingsharingrequests(int index, std::string&& value); + void set_pendingsharingrequests(int index, const char* value); + void set_pendingsharingrequests(int index, const char* value, size_t size); + std::string* add_pendingsharingrequests(); + void add_pendingsharingrequests(const std::string& value); + void add_pendingsharingrequests(std::string&& value); + void add_pendingsharingrequests(const char* value); + void add_pendingsharingrequests(const char* value, size_t size); + const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& pendingsharingrequests() const; + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* mutable_pendingsharingrequests(); + private: + const std::string& _internal_pendingsharingrequests(int index) const; + std::string* _internal_add_pendingsharingrequests(); + public: + + // repeated string rejectedSharingRequests = 25; + int rejectedsharingrequests_size() const; + private: + int _internal_rejectedsharingrequests_size() const; + public: + void clear_rejectedsharingrequests(); + const std::string& rejectedsharingrequests(int index) const; + std::string* mutable_rejectedsharingrequests(int index); + void set_rejectedsharingrequests(int index, const std::string& value); + void set_rejectedsharingrequests(int index, std::string&& value); + void set_rejectedsharingrequests(int index, const char* value); + void set_rejectedsharingrequests(int index, const char* value, size_t size); + std::string* add_rejectedsharingrequests(); + void add_rejectedsharingrequests(const std::string& value); + void add_rejectedsharingrequests(std::string&& value); + void add_rejectedsharingrequests(const char* value); + void add_rejectedsharingrequests(const char* value, size_t size); + const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& rejectedsharingrequests() const; + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* mutable_rejectedsharingrequests(); + private: + const std::string& _internal_rejectedsharingrequests(int index) const; + std::string* _internal_add_rejectedsharingrequests(); + public: + + // map<string, .api.OrderStatus> orders = 27; + int orders_size() const; + private: + int _internal_orders_size() const; + public: + void clear_orders(); + private: + const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::OrderStatus >& + _internal_orders() const; + ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::OrderStatus >* + _internal_mutable_orders(); + public: + const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::OrderStatus >& + orders() const; + ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::OrderStatus >* + mutable_orders(); + + // map<string, .api.RelationStatus> systemParents = 28; + int systemparents_size() const; + private: + int _internal_systemparents_size() const; + public: + void clear_systemparents(); + private: + const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >& + _internal_systemparents() const; + ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >* + _internal_mutable_systemparents(); + public: + const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >& + systemparents() const; + ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >* + mutable_systemparents(); + + // map<string, .api.RelationStatus> systemChildren = 29; + int systemchildren_size() const; + private: + int _internal_systemchildren_size() const; + public: + void clear_systemchildren(); + private: + const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >& + _internal_systemchildren() const; + ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >* + _internal_mutable_systemchildren(); + public: + const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >& + systemchildren() const; + ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >* + mutable_systemchildren(); + + // string uuid = 1; + void clear_uuid(); + const std::string& uuid() const; + void set_uuid(const std::string& value); + void set_uuid(std::string&& value); + void set_uuid(const char* value); + void set_uuid(const char* value, size_t size); + std::string* mutable_uuid(); + std::string* release_uuid(); + void set_allocated_uuid(std::string* uuid); + private: + const std::string& _internal_uuid() const; + void _internal_set_uuid(const std::string& value); + std::string* _internal_mutable_uuid(); + public: + + // string otpSecret = 14; + void clear_otpsecret(); + const std::string& otpsecret() const; + void set_otpsecret(const std::string& value); + void set_otpsecret(std::string&& value); + void set_otpsecret(const char* value); + void set_otpsecret(const char* value, size_t size); + std::string* mutable_otpsecret(); + std::string* release_otpsecret(); + void set_allocated_otpsecret(std::string* otpsecret); + private: + const std::string& _internal_otpsecret() const; + void _internal_set_otpsecret(const std::string& value); + std::string* _internal_mutable_otpsecret(); + public: + + // string entityCertificate = 18; + void clear_entitycertificate(); + const std::string& entitycertificate() const; + void set_entitycertificate(const std::string& value); + void set_entitycertificate(std::string&& value); + void set_entitycertificate(const char* value); + void set_entitycertificate(const char* value, size_t size); + std::string* mutable_entitycertificate(); + std::string* release_entitycertificate(); + void set_allocated_entitycertificate(std::string* entitycertificate); + private: + const std::string& _internal_entitycertificate() const; + void _internal_set_entitycertificate(const std::string& value); + std::string* _internal_mutable_entitycertificate(); + public: + + // int64 stamp = 11; + void clear_stamp(); + ::PROTOBUF_NAMESPACE_ID::int64 stamp() const; + void set_stamp(::PROTOBUF_NAMESPACE_ID::int64 value); + private: + ::PROTOBUF_NAMESPACE_ID::int64 _internal_stamp() const; + void _internal_set_stamp(::PROTOBUF_NAMESPACE_ID::int64 value); + public: + + // .api.EntityType type = 2; + void clear_type(); + ::api::EntityType type() const; + void set_type(::api::EntityType value); + private: + ::api::EntityType _internal_type() const; + void _internal_set_type(::api::EntityType value); + public: + + // bool activated = 15; + void clear_activated(); + bool activated() const; + void set_activated(bool value); + private: + bool _internal_activated() const; + void _internal_set_activated(bool value); + public: + + // bool blocked = 31; + void clear_blocked(); + bool blocked() const; + void set_blocked(bool value); + private: + bool _internal_blocked() const; + void _internal_set_blocked(bool value); + public: + + // bool temporary = 23; + void clear_temporary(); + bool temporary() const; + void set_temporary(bool value); + private: + bool _internal_temporary() const; + void _internal_set_temporary(bool value); + public: + + // bool deleted = 26; + void clear_deleted(); + bool deleted() const; + void set_deleted(bool value); + private: + bool _internal_deleted() const; + void _internal_set_deleted(bool value); + public: + + // int64 created = 20; + void clear_created(); + ::PROTOBUF_NAMESPACE_ID::int64 created() const; + void set_created(::PROTOBUF_NAMESPACE_ID::int64 value); + private: + ::PROTOBUF_NAMESPACE_ID::int64 _internal_created() const; + void _internal_set_created(::PROTOBUF_NAMESPACE_ID::int64 value); + public: + + // int64 lastLogin = 32; + void clear_lastlogin(); + ::PROTOBUF_NAMESPACE_ID::int64 lastlogin() const; + void set_lastlogin(::PROTOBUF_NAMESPACE_ID::int64 value); + private: + ::PROTOBUF_NAMESPACE_ID::int64 _internal_lastlogin() const; + void _internal_set_lastlogin(::PROTOBUF_NAMESPACE_ID::int64 value); + public: + + // bool shared = 30; + void clear_shared(); + bool shared() const; + void set_shared(bool value); + private: + bool _internal_shared() const; + void _internal_set_shared(bool value); + public: + + // @@protoc_insertion_point(class_scope:api.EntityMessage_V2) + private: + class _Internal; + + ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_; + ::PROTOBUF_NAMESPACE_ID::internal::MapField< + EntityMessage_V2_ClaimsEntry_DoNotUse, + std::string, ::api::ClaimTagsMap_V1, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_MESSAGE, + 0 > claims_; + ::PROTOBUF_NAMESPACE_ID::internal::MapField< + EntityMessage_V2_GuardedEntry_DoNotUse, + std::string, ::api::RelationStatus, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_ENUM, + 0 > guarded_; + ::PROTOBUF_NAMESPACE_ID::internal::MapField< + EntityMessage_V2_GuardiansEntry_DoNotUse, + std::string, ::api::RelationStatus, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_ENUM, + 0 > guardians_; + ::PROTOBUF_NAMESPACE_ID::internal::MapField< + EntityMessage_V2_MembersEntry_DoNotUse, + std::string, ::api::RelationStatus, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_ENUM, + 0 > members_; + ::PROTOBUF_NAMESPACE_ID::internal::MapField< + EntityMessage_V2_MemberOfEntry_DoNotUse, + std::string, ::api::RelationStatus, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_ENUM, + 0 > memberof_; + ::PROTOBUF_NAMESPACE_ID::internal::MapField< + EntityMessage_V2_ParentsEntry_DoNotUse, + std::string, ::api::RelationStatus, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_ENUM, + 0 > parents_; + ::PROTOBUF_NAMESPACE_ID::internal::MapField< + EntityMessage_V2_ChildrenEntry_DoNotUse, + std::string, ::api::RelationStatus, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_ENUM, + 0 > children_; + ::PROTOBUF_NAMESPACE_ID::internal::MapField< + EntityMessage_V2_ViewedEntry_DoNotUse, + std::string, ::api::RelationStatus, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_ENUM, + 0 > viewed_; + ::PROTOBUF_NAMESPACE_ID::internal::MapField< + EntityMessage_V2_ViewersEntry_DoNotUse, + std::string, ::api::RelationStatus, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_ENUM, + 0 > viewers_; + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string> authenticationkeys_; + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string> certificates_; + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string> symmetrickeys_; + ::PROTOBUF_NAMESPACE_ID::internal::MapField< + EntityMessage_V2_PassportsCountersEntry_DoNotUse, + std::string, ::PROTOBUF_NAMESPACE_ID::int64, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_INT64, + 0 > passportscounters_; + ::PROTOBUF_NAMESPACE_ID::internal::MapField< + EntityMessage_V2_ContactStatusesEntry_DoNotUse, + std::string, ::api::ContactStatus, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_ENUM, + 0 > contactstatuses_; + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string> pendingsharingrequests_; + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string> rejectedsharingrequests_; + ::PROTOBUF_NAMESPACE_ID::internal::MapField< + EntityMessage_V2_OrdersEntry_DoNotUse, + std::string, ::api::OrderStatus, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_ENUM, + 0 > orders_; + ::PROTOBUF_NAMESPACE_ID::internal::MapField< + EntityMessage_V2_SystemParentsEntry_DoNotUse, + std::string, ::api::RelationStatus, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_ENUM, + 0 > systemparents_; + ::PROTOBUF_NAMESPACE_ID::internal::MapField< + EntityMessage_V2_SystemChildrenEntry_DoNotUse, + std::string, ::api::RelationStatus, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_ENUM, + 0 > systemchildren_; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr uuid_; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr otpsecret_; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr entitycertificate_; + ::PROTOBUF_NAMESPACE_ID::int64 stamp_; + int type_; + bool activated_; + bool blocked_; + bool temporary_; + bool deleted_; + ::PROTOBUF_NAMESPACE_ID::int64 created_; + ::PROTOBUF_NAMESPACE_ID::int64 lastlogin_; + bool shared_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + friend struct ::TableStruct_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto; +}; +// ------------------------------------------------------------------- + +class EntityMessageResponse : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:api.EntityMessageResponse) */ { + public: + EntityMessageResponse(); + virtual ~EntityMessageResponse(); + + EntityMessageResponse(const EntityMessageResponse& from); + EntityMessageResponse(EntityMessageResponse&& from) noexcept + : EntityMessageResponse() { + *this = ::std::move(from); + } + + inline EntityMessageResponse& operator=(const EntityMessageResponse& from) { + CopyFrom(from); + return *this; + } + inline EntityMessageResponse& operator=(EntityMessageResponse&& from) noexcept { + if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) { + if (this != &from) InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return GetMetadataStatic().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return GetMetadataStatic().reflection; + } + static const EntityMessageResponse& default_instance(); + + static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY + static inline const EntityMessageResponse* internal_default_instance() { + return reinterpret_cast<const EntityMessageResponse*>( + &_EntityMessageResponse_default_instance_); + } + static constexpr int kIndexInFileMessages = + 26; + + friend void swap(EntityMessageResponse& a, EntityMessageResponse& b) { + a.Swap(&b); + } + inline void Swap(EntityMessageResponse* other) { + if (other == this) return; + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + inline EntityMessageResponse* New() const final { + return CreateMaybeMessage<EntityMessageResponse>(nullptr); + } + + EntityMessageResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final { + return CreateMaybeMessage<EntityMessageResponse>(arena); + } + void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; + void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; + void CopyFrom(const EntityMessageResponse& from); + void MergeFrom(const EntityMessageResponse& from); + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize( + ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _cached_size_.Get(); } + + private: + inline void SharedCtor(); + inline void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(EntityMessageResponse* other); + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "api.EntityMessageResponse"; + } + private: + inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const { + return nullptr; + } + inline void* MaybeArenaPtr() const { + return nullptr; + } + public: + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + private: + static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() { + ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto); + return ::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.file_level_metadata[kIndexInFileMessages]; + } + + public: + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + // @@protoc_insertion_point(class_scope:api.EntityMessageResponse) + private: + class _Internal; + + ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + friend struct ::TableStruct_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto; +}; +// ------------------------------------------------------------------- + +class EntityList : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:api.EntityList) */ { + public: + EntityList(); + virtual ~EntityList(); + + EntityList(const EntityList& from); + EntityList(EntityList&& from) noexcept + : EntityList() { + *this = ::std::move(from); + } + + inline EntityList& operator=(const EntityList& from) { + CopyFrom(from); + return *this; + } + inline EntityList& operator=(EntityList&& from) noexcept { + if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) { + if (this != &from) InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return GetMetadataStatic().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return GetMetadataStatic().reflection; + } + static const EntityList& default_instance(); + + static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY + static inline const EntityList* internal_default_instance() { + return reinterpret_cast<const EntityList*>( + &_EntityList_default_instance_); + } + static constexpr int kIndexInFileMessages = + 27; + + friend void swap(EntityList& a, EntityList& b) { + a.Swap(&b); + } + inline void Swap(EntityList* other) { + if (other == this) return; + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + inline EntityList* New() const final { + return CreateMaybeMessage<EntityList>(nullptr); + } + + EntityList* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final { + return CreateMaybeMessage<EntityList>(arena); + } + void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; + void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; + void CopyFrom(const EntityList& from); + void MergeFrom(const EntityList& from); + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize( + ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _cached_size_.Get(); } + + private: + inline void SharedCtor(); + inline void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(EntityList* other); + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "api.EntityList"; + } + private: + inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const { + return nullptr; + } + inline void* MaybeArenaPtr() const { + return nullptr; + } + public: + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + private: + static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() { + ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto); + return ::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.file_level_metadata[kIndexInFileMessages]; + } + + public: + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + enum : int { + kHistoryFieldNumber = 1, + }; + // repeated .api.EntityMessage_V2 history = 1; + int history_size() const; + private: + int _internal_history_size() const; + public: + void clear_history(); + ::api::EntityMessage_V2* mutable_history(int index); + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::api::EntityMessage_V2 >* + mutable_history(); + private: + const ::api::EntityMessage_V2& _internal_history(int index) const; + ::api::EntityMessage_V2* _internal_add_history(); + public: + const ::api::EntityMessage_V2& history(int index) const; + ::api::EntityMessage_V2* add_history(); + const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::api::EntityMessage_V2 >& + history() const; + + // @@protoc_insertion_point(class_scope:api.EntityList) + private: + class _Internal; + + ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_; + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::api::EntityMessage_V2 > history_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + friend struct ::TableStruct_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto; +}; +// ------------------------------------------------------------------- + +class EntityHistoryMessage_HistoryByUUIDEntry_DoNotUse : public ::PROTOBUF_NAMESPACE_ID::internal::MapEntry<EntityHistoryMessage_HistoryByUUIDEntry_DoNotUse, + std::string, ::api::EntityList, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_MESSAGE, + 0 > { +public: + typedef ::PROTOBUF_NAMESPACE_ID::internal::MapEntry<EntityHistoryMessage_HistoryByUUIDEntry_DoNotUse, + std::string, ::api::EntityList, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_MESSAGE, + 0 > SuperType; + EntityHistoryMessage_HistoryByUUIDEntry_DoNotUse(); + EntityHistoryMessage_HistoryByUUIDEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena); + void MergeFrom(const EntityHistoryMessage_HistoryByUUIDEntry_DoNotUse& other); + static const EntityHistoryMessage_HistoryByUUIDEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const EntityHistoryMessage_HistoryByUUIDEntry_DoNotUse*>(&_EntityHistoryMessage_HistoryByUUIDEntry_DoNotUse_default_instance_); } + static bool ValidateKey(std::string* s) { + return ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(s->data(), static_cast<int>(s->size()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE, "api.EntityHistoryMessage.HistoryByUUIDEntry.key"); + } + static bool ValidateValue(void*) { return true; } + void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& other) final; + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + private: + static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() { + ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto); + return ::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.file_level_metadata[28]; + } + + public: +}; + +// ------------------------------------------------------------------- + +class EntityHistoryMessage : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:api.EntityHistoryMessage) */ { + public: + EntityHistoryMessage(); + virtual ~EntityHistoryMessage(); + + EntityHistoryMessage(const EntityHistoryMessage& from); + EntityHistoryMessage(EntityHistoryMessage&& from) noexcept + : EntityHistoryMessage() { + *this = ::std::move(from); + } + + inline EntityHistoryMessage& operator=(const EntityHistoryMessage& from) { + CopyFrom(from); + return *this; + } + inline EntityHistoryMessage& operator=(EntityHistoryMessage&& from) noexcept { + if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) { + if (this != &from) InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return GetMetadataStatic().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return GetMetadataStatic().reflection; + } + static const EntityHistoryMessage& default_instance(); + + static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY + static inline const EntityHistoryMessage* internal_default_instance() { + return reinterpret_cast<const EntityHistoryMessage*>( + &_EntityHistoryMessage_default_instance_); + } + static constexpr int kIndexInFileMessages = + 29; + + friend void swap(EntityHistoryMessage& a, EntityHistoryMessage& b) { + a.Swap(&b); + } + inline void Swap(EntityHistoryMessage* other) { + if (other == this) return; + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + inline EntityHistoryMessage* New() const final { + return CreateMaybeMessage<EntityHistoryMessage>(nullptr); + } + + EntityHistoryMessage* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final { + return CreateMaybeMessage<EntityHistoryMessage>(arena); + } + void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; + void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; + void CopyFrom(const EntityHistoryMessage& from); + void MergeFrom(const EntityHistoryMessage& from); + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize( + ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _cached_size_.Get(); } + + private: + inline void SharedCtor(); + inline void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(EntityHistoryMessage* other); + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "api.EntityHistoryMessage"; + } + private: + inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const { + return nullptr; + } + inline void* MaybeArenaPtr() const { + return nullptr; + } + public: + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + private: + static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() { + ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto); + return ::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.file_level_metadata[kIndexInFileMessages]; + } + + public: + + // nested types ---------------------------------------------------- + + + // accessors ------------------------------------------------------- + + enum : int { + kHistoryByUUIDFieldNumber = 1, + }; + // map<string, .api.EntityList> historyByUUID = 1; + int historybyuuid_size() const; + private: + int _internal_historybyuuid_size() const; + public: + void clear_historybyuuid(); + private: + const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::EntityList >& + _internal_historybyuuid() const; + ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::EntityList >* + _internal_mutable_historybyuuid(); + public: + const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::EntityList >& + historybyuuid() const; + ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::EntityList >* + mutable_historybyuuid(); + + // @@protoc_insertion_point(class_scope:api.EntityHistoryMessage) + private: + class _Internal; + + ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_; + ::PROTOBUF_NAMESPACE_ID::internal::MapField< + EntityHistoryMessage_HistoryByUUIDEntry_DoNotUse, + std::string, ::api::EntityList, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_MESSAGE, + 0 > historybyuuid_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + friend struct ::TableStruct_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto; +}; +// ------------------------------------------------------------------- + +class EntitySearchMessage : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:api.EntitySearchMessage) */ { + public: + EntitySearchMessage(); + virtual ~EntitySearchMessage(); + + EntitySearchMessage(const EntitySearchMessage& from); + EntitySearchMessage(EntitySearchMessage&& from) noexcept + : EntitySearchMessage() { + *this = ::std::move(from); + } + + inline EntitySearchMessage& operator=(const EntitySearchMessage& from) { + CopyFrom(from); + return *this; + } + inline EntitySearchMessage& operator=(EntitySearchMessage&& from) noexcept { + if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) { + if (this != &from) InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return GetMetadataStatic().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return GetMetadataStatic().reflection; + } + static const EntitySearchMessage& default_instance(); + + static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY + static inline const EntitySearchMessage* internal_default_instance() { + return reinterpret_cast<const EntitySearchMessage*>( + &_EntitySearchMessage_default_instance_); + } + static constexpr int kIndexInFileMessages = + 30; + + friend void swap(EntitySearchMessage& a, EntitySearchMessage& b) { + a.Swap(&b); + } + inline void Swap(EntitySearchMessage* other) { + if (other == this) return; + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + inline EntitySearchMessage* New() const final { + return CreateMaybeMessage<EntitySearchMessage>(nullptr); + } + + EntitySearchMessage* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final { + return CreateMaybeMessage<EntitySearchMessage>(arena); + } + void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; + void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; + void CopyFrom(const EntitySearchMessage& from); + void MergeFrom(const EntitySearchMessage& from); + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize( + ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _cached_size_.Get(); } + + private: + inline void SharedCtor(); + inline void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(EntitySearchMessage* other); + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "api.EntitySearchMessage"; + } + private: + inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const { + return nullptr; + } + inline void* MaybeArenaPtr() const { + return nullptr; + } + public: + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + private: + static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() { + ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto); + return ::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.file_level_metadata[kIndexInFileMessages]; + } + + public: + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + enum : int { + kUuidFieldNumber = 1, + kFromFieldNumber = 2, + kToFieldNumber = 3, + kTypeFieldNumber = 4, + kSearchTypeFieldNumber = 5, + }; + // string uuid = 1; + void clear_uuid(); + const std::string& uuid() const; + void set_uuid(const std::string& value); + void set_uuid(std::string&& value); + void set_uuid(const char* value); + void set_uuid(const char* value, size_t size); + std::string* mutable_uuid(); + std::string* release_uuid(); + void set_allocated_uuid(std::string* uuid); + private: + const std::string& _internal_uuid() const; + void _internal_set_uuid(const std::string& value); + std::string* _internal_mutable_uuid(); + public: + + // string from = 2; + void clear_from(); + const std::string& from() const; + void set_from(const std::string& value); + void set_from(std::string&& value); + void set_from(const char* value); + void set_from(const char* value, size_t size); + std::string* mutable_from(); + std::string* release_from(); + void set_allocated_from(std::string* from); + private: + const std::string& _internal_from() const; + void _internal_set_from(const std::string& value); + std::string* _internal_mutable_from(); + public: + + // string to = 3; + void clear_to(); + const std::string& to() const; + void set_to(const std::string& value); + void set_to(std::string&& value); + void set_to(const char* value); + void set_to(const char* value, size_t size); + std::string* mutable_to(); + std::string* release_to(); + void set_allocated_to(std::string* to); + private: + const std::string& _internal_to() const; + void _internal_set_to(const std::string& value); + std::string* _internal_mutable_to(); + public: + + // .api.EntityType type = 4; + void clear_type(); + ::api::EntityType type() const; + void set_type(::api::EntityType value); + private: + ::api::EntityType _internal_type() const; + void _internal_set_type(::api::EntityType value); + public: + + // .api.SearchType searchType = 5; + void clear_searchtype(); + ::api::SearchType searchtype() const; + void set_searchtype(::api::SearchType value); + private: + ::api::SearchType _internal_searchtype() const; + void _internal_set_searchtype(::api::SearchType value); + public: + + // @@protoc_insertion_point(class_scope:api.EntitySearchMessage) + private: + class _Internal; + + ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr uuid_; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr from_; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr to_; + int type_; + int searchtype_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + friend struct ::TableStruct_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto; +}; +// ------------------------------------------------------------------- + +class ClaimInvitationMessage : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:api.ClaimInvitationMessage) */ { + public: + ClaimInvitationMessage(); + virtual ~ClaimInvitationMessage(); + + ClaimInvitationMessage(const ClaimInvitationMessage& from); + ClaimInvitationMessage(ClaimInvitationMessage&& from) noexcept + : ClaimInvitationMessage() { + *this = ::std::move(from); + } + + inline ClaimInvitationMessage& operator=(const ClaimInvitationMessage& from) { + CopyFrom(from); + return *this; + } + inline ClaimInvitationMessage& operator=(ClaimInvitationMessage&& from) noexcept { + if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) { + if (this != &from) InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return GetMetadataStatic().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return GetMetadataStatic().reflection; + } + static const ClaimInvitationMessage& default_instance(); + + static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY + static inline const ClaimInvitationMessage* internal_default_instance() { + return reinterpret_cast<const ClaimInvitationMessage*>( + &_ClaimInvitationMessage_default_instance_); + } + static constexpr int kIndexInFileMessages = + 31; + + friend void swap(ClaimInvitationMessage& a, ClaimInvitationMessage& b) { + a.Swap(&b); + } + inline void Swap(ClaimInvitationMessage* other) { + if (other == this) return; + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + inline ClaimInvitationMessage* New() const final { + return CreateMaybeMessage<ClaimInvitationMessage>(nullptr); + } + + ClaimInvitationMessage* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final { + return CreateMaybeMessage<ClaimInvitationMessage>(arena); + } + void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; + void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; + void CopyFrom(const ClaimInvitationMessage& from); + void MergeFrom(const ClaimInvitationMessage& from); + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize( + ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _cached_size_.Get(); } + + private: + inline void SharedCtor(); + inline void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(ClaimInvitationMessage* other); + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "api.ClaimInvitationMessage"; + } + private: + inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const { + return nullptr; + } + inline void* MaybeArenaPtr() const { + return nullptr; + } + public: + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + private: + static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() { + ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto); + return ::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.file_level_metadata[kIndexInFileMessages]; + } + + public: + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + enum : int { + kFromUUIDFieldNumber = 1, + kToUUIDFieldNumber = 2, + kClaimNameFieldNumber = 3, + kStampFieldNumber = 5, + kStatusFieldNumber = 4, + }; + // string fromUUID = 1; + void clear_fromuuid(); + const std::string& fromuuid() const; + void set_fromuuid(const std::string& value); + void set_fromuuid(std::string&& value); + void set_fromuuid(const char* value); + void set_fromuuid(const char* value, size_t size); + std::string* mutable_fromuuid(); + std::string* release_fromuuid(); + void set_allocated_fromuuid(std::string* fromuuid); + private: + const std::string& _internal_fromuuid() const; + void _internal_set_fromuuid(const std::string& value); + std::string* _internal_mutable_fromuuid(); + public: + + // string toUUID = 2; + void clear_touuid(); + const std::string& touuid() const; + void set_touuid(const std::string& value); + void set_touuid(std::string&& value); + void set_touuid(const char* value); + void set_touuid(const char* value, size_t size); + std::string* mutable_touuid(); + std::string* release_touuid(); + void set_allocated_touuid(std::string* touuid); + private: + const std::string& _internal_touuid() const; + void _internal_set_touuid(const std::string& value); + std::string* _internal_mutable_touuid(); + public: + + // string claimName = 3; + void clear_claimname(); + const std::string& claimname() const; + void set_claimname(const std::string& value); + void set_claimname(std::string&& value); + void set_claimname(const char* value); + void set_claimname(const char* value, size_t size); + std::string* mutable_claimname(); + std::string* release_claimname(); + void set_allocated_claimname(std::string* claimname); + private: + const std::string& _internal_claimname() const; + void _internal_set_claimname(const std::string& value); + std::string* _internal_mutable_claimname(); + public: + + // int64 stamp = 5; + void clear_stamp(); + ::PROTOBUF_NAMESPACE_ID::int64 stamp() const; + void set_stamp(::PROTOBUF_NAMESPACE_ID::int64 value); + private: + ::PROTOBUF_NAMESPACE_ID::int64 _internal_stamp() const; + void _internal_set_stamp(::PROTOBUF_NAMESPACE_ID::int64 value); + public: + + // .api.ClaimInvitationStatus status = 4; + void clear_status(); + ::api::ClaimInvitationStatus status() const; + void set_status(::api::ClaimInvitationStatus value); + private: + ::api::ClaimInvitationStatus _internal_status() const; + void _internal_set_status(::api::ClaimInvitationStatus value); + public: + + // @@protoc_insertion_point(class_scope:api.ClaimInvitationMessage) + private: + class _Internal; + + ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr fromuuid_; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr touuid_; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr claimname_; + ::PROTOBUF_NAMESPACE_ID::int64 stamp_; + int status_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + friend struct ::TableStruct_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto; +}; +// ------------------------------------------------------------------- + +class ClaimInvitationMessageResponse : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:api.ClaimInvitationMessageResponse) */ { + public: + ClaimInvitationMessageResponse(); + virtual ~ClaimInvitationMessageResponse(); + + ClaimInvitationMessageResponse(const ClaimInvitationMessageResponse& from); + ClaimInvitationMessageResponse(ClaimInvitationMessageResponse&& from) noexcept + : ClaimInvitationMessageResponse() { + *this = ::std::move(from); + } + + inline ClaimInvitationMessageResponse& operator=(const ClaimInvitationMessageResponse& from) { + CopyFrom(from); + return *this; + } + inline ClaimInvitationMessageResponse& operator=(ClaimInvitationMessageResponse&& from) noexcept { + if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) { + if (this != &from) InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return GetMetadataStatic().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return GetMetadataStatic().reflection; + } + static const ClaimInvitationMessageResponse& default_instance(); + + static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY + static inline const ClaimInvitationMessageResponse* internal_default_instance() { + return reinterpret_cast<const ClaimInvitationMessageResponse*>( + &_ClaimInvitationMessageResponse_default_instance_); + } + static constexpr int kIndexInFileMessages = + 32; + + friend void swap(ClaimInvitationMessageResponse& a, ClaimInvitationMessageResponse& b) { + a.Swap(&b); + } + inline void Swap(ClaimInvitationMessageResponse* other) { + if (other == this) return; + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + inline ClaimInvitationMessageResponse* New() const final { + return CreateMaybeMessage<ClaimInvitationMessageResponse>(nullptr); + } + + ClaimInvitationMessageResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final { + return CreateMaybeMessage<ClaimInvitationMessageResponse>(arena); + } + void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; + void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; + void CopyFrom(const ClaimInvitationMessageResponse& from); + void MergeFrom(const ClaimInvitationMessageResponse& from); + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize( + ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _cached_size_.Get(); } + + private: + inline void SharedCtor(); + inline void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(ClaimInvitationMessageResponse* other); + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "api.ClaimInvitationMessageResponse"; + } + private: + inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const { + return nullptr; + } + inline void* MaybeArenaPtr() const { + return nullptr; + } + public: + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + private: + static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() { + ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto); + return ::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.file_level_metadata[kIndexInFileMessages]; + } + + public: + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + // @@protoc_insertion_point(class_scope:api.ClaimInvitationMessageResponse) + private: + class _Internal; + + ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + friend struct ::TableStruct_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto; +}; +// ------------------------------------------------------------------- + +class ClaimInvitationSearchMessage : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:api.ClaimInvitationSearchMessage) */ { + public: + ClaimInvitationSearchMessage(); + virtual ~ClaimInvitationSearchMessage(); + + ClaimInvitationSearchMessage(const ClaimInvitationSearchMessage& from); + ClaimInvitationSearchMessage(ClaimInvitationSearchMessage&& from) noexcept + : ClaimInvitationSearchMessage() { + *this = ::std::move(from); + } + + inline ClaimInvitationSearchMessage& operator=(const ClaimInvitationSearchMessage& from) { + CopyFrom(from); + return *this; + } + inline ClaimInvitationSearchMessage& operator=(ClaimInvitationSearchMessage&& from) noexcept { + if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) { + if (this != &from) InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return GetMetadataStatic().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return GetMetadataStatic().reflection; + } + static const ClaimInvitationSearchMessage& default_instance(); + + static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY + static inline const ClaimInvitationSearchMessage* internal_default_instance() { + return reinterpret_cast<const ClaimInvitationSearchMessage*>( + &_ClaimInvitationSearchMessage_default_instance_); + } + static constexpr int kIndexInFileMessages = + 33; + + friend void swap(ClaimInvitationSearchMessage& a, ClaimInvitationSearchMessage& b) { + a.Swap(&b); + } + inline void Swap(ClaimInvitationSearchMessage* other) { + if (other == this) return; + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + inline ClaimInvitationSearchMessage* New() const final { + return CreateMaybeMessage<ClaimInvitationSearchMessage>(nullptr); + } + + ClaimInvitationSearchMessage* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final { + return CreateMaybeMessage<ClaimInvitationSearchMessage>(arena); + } + void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; + void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; + void CopyFrom(const ClaimInvitationSearchMessage& from); + void MergeFrom(const ClaimInvitationSearchMessage& from); + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize( + ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _cached_size_.Get(); } + + private: + inline void SharedCtor(); + inline void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(ClaimInvitationSearchMessage* other); + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "api.ClaimInvitationSearchMessage"; + } + private: + inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const { + return nullptr; + } + inline void* MaybeArenaPtr() const { + return nullptr; + } + public: + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + private: + static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() { + ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto); + return ::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.file_level_metadata[kIndexInFileMessages]; + } + + public: + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + enum : int { + kFromUUIDFieldNumber = 1, + kToUUIDFieldNumber = 2, + kClaimNameFieldNumber = 3, + kFromFieldNumber = 4, + kToFieldNumber = 5, + kSearchTypeFieldNumber = 6, + }; + // string fromUUID = 1; + void clear_fromuuid(); + const std::string& fromuuid() const; + void set_fromuuid(const std::string& value); + void set_fromuuid(std::string&& value); + void set_fromuuid(const char* value); + void set_fromuuid(const char* value, size_t size); + std::string* mutable_fromuuid(); + std::string* release_fromuuid(); + void set_allocated_fromuuid(std::string* fromuuid); + private: + const std::string& _internal_fromuuid() const; + void _internal_set_fromuuid(const std::string& value); + std::string* _internal_mutable_fromuuid(); + public: + + // string toUUID = 2; + void clear_touuid(); + const std::string& touuid() const; + void set_touuid(const std::string& value); + void set_touuid(std::string&& value); + void set_touuid(const char* value); + void set_touuid(const char* value, size_t size); + std::string* mutable_touuid(); + std::string* release_touuid(); + void set_allocated_touuid(std::string* touuid); + private: + const std::string& _internal_touuid() const; + void _internal_set_touuid(const std::string& value); + std::string* _internal_mutable_touuid(); + public: + + // string claimName = 3; + void clear_claimname(); + const std::string& claimname() const; + void set_claimname(const std::string& value); + void set_claimname(std::string&& value); + void set_claimname(const char* value); + void set_claimname(const char* value, size_t size); + std::string* mutable_claimname(); + std::string* release_claimname(); + void set_allocated_claimname(std::string* claimname); + private: + const std::string& _internal_claimname() const; + void _internal_set_claimname(const std::string& value); + std::string* _internal_mutable_claimname(); + public: + + // string from = 4; + void clear_from(); + const std::string& from() const; + void set_from(const std::string& value); + void set_from(std::string&& value); + void set_from(const char* value); + void set_from(const char* value, size_t size); + std::string* mutable_from(); + std::string* release_from(); + void set_allocated_from(std::string* from); + private: + const std::string& _internal_from() const; + void _internal_set_from(const std::string& value); + std::string* _internal_mutable_from(); + public: + + // string to = 5; + void clear_to(); + const std::string& to() const; + void set_to(const std::string& value); + void set_to(std::string&& value); + void set_to(const char* value); + void set_to(const char* value, size_t size); + std::string* mutable_to(); + std::string* release_to(); + void set_allocated_to(std::string* to); + private: + const std::string& _internal_to() const; + void _internal_set_to(const std::string& value); + std::string* _internal_mutable_to(); + public: + + // .api.SearchType searchType = 6; + void clear_searchtype(); + ::api::SearchType searchtype() const; + void set_searchtype(::api::SearchType value); + private: + ::api::SearchType _internal_searchtype() const; + void _internal_set_searchtype(::api::SearchType value); + public: + + // @@protoc_insertion_point(class_scope:api.ClaimInvitationSearchMessage) + private: + class _Internal; + + ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr fromuuid_; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr touuid_; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr claimname_; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr from_; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr to_; + int searchtype_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + friend struct ::TableStruct_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto; +}; +// ------------------------------------------------------------------- + +class ClaimInvitationList : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:api.ClaimInvitationList) */ { + public: + ClaimInvitationList(); + virtual ~ClaimInvitationList(); + + ClaimInvitationList(const ClaimInvitationList& from); + ClaimInvitationList(ClaimInvitationList&& from) noexcept + : ClaimInvitationList() { + *this = ::std::move(from); + } + + inline ClaimInvitationList& operator=(const ClaimInvitationList& from) { + CopyFrom(from); + return *this; + } + inline ClaimInvitationList& operator=(ClaimInvitationList&& from) noexcept { + if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) { + if (this != &from) InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return GetMetadataStatic().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return GetMetadataStatic().reflection; + } + static const ClaimInvitationList& default_instance(); + + static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY + static inline const ClaimInvitationList* internal_default_instance() { + return reinterpret_cast<const ClaimInvitationList*>( + &_ClaimInvitationList_default_instance_); + } + static constexpr int kIndexInFileMessages = + 34; + + friend void swap(ClaimInvitationList& a, ClaimInvitationList& b) { + a.Swap(&b); + } + inline void Swap(ClaimInvitationList* other) { + if (other == this) return; + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + inline ClaimInvitationList* New() const final { + return CreateMaybeMessage<ClaimInvitationList>(nullptr); + } + + ClaimInvitationList* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final { + return CreateMaybeMessage<ClaimInvitationList>(arena); + } + void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; + void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; + void CopyFrom(const ClaimInvitationList& from); + void MergeFrom(const ClaimInvitationList& from); + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize( + ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _cached_size_.Get(); } + + private: + inline void SharedCtor(); + inline void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(ClaimInvitationList* other); + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "api.ClaimInvitationList"; + } + private: + inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const { + return nullptr; + } + inline void* MaybeArenaPtr() const { + return nullptr; + } + public: + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + private: + static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() { + ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto); + return ::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.file_level_metadata[kIndexInFileMessages]; + } + + public: + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + enum : int { + kHistoryFieldNumber = 1, + }; + // repeated .api.ClaimInvitationMessage history = 1; + int history_size() const; + private: + int _internal_history_size() const; + public: + void clear_history(); + ::api::ClaimInvitationMessage* mutable_history(int index); + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::api::ClaimInvitationMessage >* + mutable_history(); + private: + const ::api::ClaimInvitationMessage& _internal_history(int index) const; + ::api::ClaimInvitationMessage* _internal_add_history(); + public: + const ::api::ClaimInvitationMessage& history(int index) const; + ::api::ClaimInvitationMessage* add_history(); + const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::api::ClaimInvitationMessage >& + history() const; + + // @@protoc_insertion_point(class_scope:api.ClaimInvitationList) + private: + class _Internal; + + ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_; + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::api::ClaimInvitationMessage > history_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + friend struct ::TableStruct_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto; +}; +// ------------------------------------------------------------------- + +class ClaimInvitationHistoryMessage_HistoryByClaimInvitationEntry_DoNotUse : public ::PROTOBUF_NAMESPACE_ID::internal::MapEntry<ClaimInvitationHistoryMessage_HistoryByClaimInvitationEntry_DoNotUse, + std::string, ::api::ClaimInvitationList, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_MESSAGE, + 0 > { +public: + typedef ::PROTOBUF_NAMESPACE_ID::internal::MapEntry<ClaimInvitationHistoryMessage_HistoryByClaimInvitationEntry_DoNotUse, + std::string, ::api::ClaimInvitationList, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_MESSAGE, + 0 > SuperType; + ClaimInvitationHistoryMessage_HistoryByClaimInvitationEntry_DoNotUse(); + ClaimInvitationHistoryMessage_HistoryByClaimInvitationEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena); + void MergeFrom(const ClaimInvitationHistoryMessage_HistoryByClaimInvitationEntry_DoNotUse& other); + static const ClaimInvitationHistoryMessage_HistoryByClaimInvitationEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const ClaimInvitationHistoryMessage_HistoryByClaimInvitationEntry_DoNotUse*>(&_ClaimInvitationHistoryMessage_HistoryByClaimInvitationEntry_DoNotUse_default_instance_); } + static bool ValidateKey(std::string* s) { + return ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(s->data(), static_cast<int>(s->size()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE, "api.ClaimInvitationHistoryMessage.HistoryByClaimInvitationEntry.key"); + } + static bool ValidateValue(void*) { return true; } + void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& other) final; + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + private: + static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() { + ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto); + return ::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.file_level_metadata[35]; + } + + public: +}; + +// ------------------------------------------------------------------- + +class ClaimInvitationHistoryMessage : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:api.ClaimInvitationHistoryMessage) */ { + public: + ClaimInvitationHistoryMessage(); + virtual ~ClaimInvitationHistoryMessage(); + + ClaimInvitationHistoryMessage(const ClaimInvitationHistoryMessage& from); + ClaimInvitationHistoryMessage(ClaimInvitationHistoryMessage&& from) noexcept + : ClaimInvitationHistoryMessage() { + *this = ::std::move(from); + } + + inline ClaimInvitationHistoryMessage& operator=(const ClaimInvitationHistoryMessage& from) { + CopyFrom(from); + return *this; + } + inline ClaimInvitationHistoryMessage& operator=(ClaimInvitationHistoryMessage&& from) noexcept { + if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) { + if (this != &from) InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return GetMetadataStatic().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return GetMetadataStatic().reflection; + } + static const ClaimInvitationHistoryMessage& default_instance(); + + static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY + static inline const ClaimInvitationHistoryMessage* internal_default_instance() { + return reinterpret_cast<const ClaimInvitationHistoryMessage*>( + &_ClaimInvitationHistoryMessage_default_instance_); + } + static constexpr int kIndexInFileMessages = + 36; + + friend void swap(ClaimInvitationHistoryMessage& a, ClaimInvitationHistoryMessage& b) { + a.Swap(&b); + } + inline void Swap(ClaimInvitationHistoryMessage* other) { + if (other == this) return; + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + inline ClaimInvitationHistoryMessage* New() const final { + return CreateMaybeMessage<ClaimInvitationHistoryMessage>(nullptr); + } + + ClaimInvitationHistoryMessage* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final { + return CreateMaybeMessage<ClaimInvitationHistoryMessage>(arena); + } + void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; + void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; + void CopyFrom(const ClaimInvitationHistoryMessage& from); + void MergeFrom(const ClaimInvitationHistoryMessage& from); + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize( + ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _cached_size_.Get(); } + + private: + inline void SharedCtor(); + inline void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(ClaimInvitationHistoryMessage* other); + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "api.ClaimInvitationHistoryMessage"; + } + private: + inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const { + return nullptr; + } + inline void* MaybeArenaPtr() const { + return nullptr; + } + public: + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + private: + static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() { + ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto); + return ::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.file_level_metadata[kIndexInFileMessages]; + } + + public: + + // nested types ---------------------------------------------------- + + + // accessors ------------------------------------------------------- + + enum : int { + kHistoryByClaimInvitationFieldNumber = 1, + }; + // map<string, .api.ClaimInvitationList> historyByClaimInvitation = 1; + int historybyclaiminvitation_size() const; + private: + int _internal_historybyclaiminvitation_size() const; + public: + void clear_historybyclaiminvitation(); + private: + const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::ClaimInvitationList >& + _internal_historybyclaiminvitation() const; + ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::ClaimInvitationList >* + _internal_mutable_historybyclaiminvitation(); + public: + const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::ClaimInvitationList >& + historybyclaiminvitation() const; + ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::ClaimInvitationList >* + mutable_historybyclaiminvitation(); + + // @@protoc_insertion_point(class_scope:api.ClaimInvitationHistoryMessage) + private: + class _Internal; + + ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_; + ::PROTOBUF_NAMESPACE_ID::internal::MapField< + ClaimInvitationHistoryMessage_HistoryByClaimInvitationEntry_DoNotUse, + std::string, ::api::ClaimInvitationList, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_MESSAGE, + 0 > historybyclaiminvitation_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + friend struct ::TableStruct_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto; +}; +// ------------------------------------------------------------------- + +class GetVersionEMAMessage : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:api.GetVersionEMAMessage) */ { + public: + GetVersionEMAMessage(); + virtual ~GetVersionEMAMessage(); + + GetVersionEMAMessage(const GetVersionEMAMessage& from); + GetVersionEMAMessage(GetVersionEMAMessage&& from) noexcept + : GetVersionEMAMessage() { + *this = ::std::move(from); + } + + inline GetVersionEMAMessage& operator=(const GetVersionEMAMessage& from) { + CopyFrom(from); + return *this; + } + inline GetVersionEMAMessage& operator=(GetVersionEMAMessage&& from) noexcept { + if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) { + if (this != &from) InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return GetMetadataStatic().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return GetMetadataStatic().reflection; + } + static const GetVersionEMAMessage& default_instance(); + + static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY + static inline const GetVersionEMAMessage* internal_default_instance() { + return reinterpret_cast<const GetVersionEMAMessage*>( + &_GetVersionEMAMessage_default_instance_); + } + static constexpr int kIndexInFileMessages = + 37; + + friend void swap(GetVersionEMAMessage& a, GetVersionEMAMessage& b) { + a.Swap(&b); + } + inline void Swap(GetVersionEMAMessage* other) { + if (other == this) return; + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + inline GetVersionEMAMessage* New() const final { + return CreateMaybeMessage<GetVersionEMAMessage>(nullptr); + } + + GetVersionEMAMessage* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final { + return CreateMaybeMessage<GetVersionEMAMessage>(arena); + } + void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; + void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; + void CopyFrom(const GetVersionEMAMessage& from); + void MergeFrom(const GetVersionEMAMessage& from); + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize( + ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _cached_size_.Get(); } + + private: + inline void SharedCtor(); + inline void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(GetVersionEMAMessage* other); + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "api.GetVersionEMAMessage"; + } + private: + inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const { + return nullptr; + } + inline void* MaybeArenaPtr() const { + return nullptr; + } + public: + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + private: + static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() { + ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto); + return ::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.file_level_metadata[kIndexInFileMessages]; + } + + public: + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + // @@protoc_insertion_point(class_scope:api.GetVersionEMAMessage) + private: + class _Internal; + + ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + friend struct ::TableStruct_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto; +}; +// ------------------------------------------------------------------- + +class GetVersionEMAResponseMessage : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:api.GetVersionEMAResponseMessage) */ { + public: + GetVersionEMAResponseMessage(); + virtual ~GetVersionEMAResponseMessage(); + + GetVersionEMAResponseMessage(const GetVersionEMAResponseMessage& from); + GetVersionEMAResponseMessage(GetVersionEMAResponseMessage&& from) noexcept + : GetVersionEMAResponseMessage() { + *this = ::std::move(from); + } + + inline GetVersionEMAResponseMessage& operator=(const GetVersionEMAResponseMessage& from) { + CopyFrom(from); + return *this; + } + inline GetVersionEMAResponseMessage& operator=(GetVersionEMAResponseMessage&& from) noexcept { + if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) { + if (this != &from) InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return GetMetadataStatic().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return GetMetadataStatic().reflection; + } + static const GetVersionEMAResponseMessage& default_instance(); + + static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY + static inline const GetVersionEMAResponseMessage* internal_default_instance() { + return reinterpret_cast<const GetVersionEMAResponseMessage*>( + &_GetVersionEMAResponseMessage_default_instance_); + } + static constexpr int kIndexInFileMessages = + 38; + + friend void swap(GetVersionEMAResponseMessage& a, GetVersionEMAResponseMessage& b) { + a.Swap(&b); + } + inline void Swap(GetVersionEMAResponseMessage* other) { + if (other == this) return; + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + inline GetVersionEMAResponseMessage* New() const final { + return CreateMaybeMessage<GetVersionEMAResponseMessage>(nullptr); + } + + GetVersionEMAResponseMessage* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final { + return CreateMaybeMessage<GetVersionEMAResponseMessage>(arena); + } + void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; + void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; + void CopyFrom(const GetVersionEMAResponseMessage& from); + void MergeFrom(const GetVersionEMAResponseMessage& from); + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize( + ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _cached_size_.Get(); } + + private: + inline void SharedCtor(); + inline void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(GetVersionEMAResponseMessage* other); + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "api.GetVersionEMAResponseMessage"; + } + private: + inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const { + return nullptr; + } + inline void* MaybeArenaPtr() const { + return nullptr; + } + public: + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + private: + static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() { + ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto); + return ::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.file_level_metadata[kIndexInFileMessages]; + } + + public: + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + enum : int { + kVersionFieldNumber = 1, + }; + // string version = 1; + void clear_version(); + const std::string& version() const; + void set_version(const std::string& value); + void set_version(std::string&& value); + void set_version(const char* value); + void set_version(const char* value, size_t size); + std::string* mutable_version(); + std::string* release_version(); + void set_allocated_version(std::string* version); + private: + const std::string& _internal_version() const; + void _internal_set_version(const std::string& value); + std::string* _internal_mutable_version(); + public: + + // @@protoc_insertion_point(class_scope:api.GetVersionEMAResponseMessage) + private: + class _Internal; + + ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr version_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + friend struct ::TableStruct_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto; +}; +// ------------------------------------------------------------------- + +class GetEntitiesTailsMessage : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:api.GetEntitiesTailsMessage) */ { + public: + GetEntitiesTailsMessage(); + virtual ~GetEntitiesTailsMessage(); + + GetEntitiesTailsMessage(const GetEntitiesTailsMessage& from); + GetEntitiesTailsMessage(GetEntitiesTailsMessage&& from) noexcept + : GetEntitiesTailsMessage() { + *this = ::std::move(from); + } + + inline GetEntitiesTailsMessage& operator=(const GetEntitiesTailsMessage& from) { + CopyFrom(from); + return *this; + } + inline GetEntitiesTailsMessage& operator=(GetEntitiesTailsMessage&& from) noexcept { + if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) { + if (this != &from) InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return GetMetadataStatic().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return GetMetadataStatic().reflection; + } + static const GetEntitiesTailsMessage& default_instance(); + + static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY + static inline const GetEntitiesTailsMessage* internal_default_instance() { + return reinterpret_cast<const GetEntitiesTailsMessage*>( + &_GetEntitiesTailsMessage_default_instance_); + } + static constexpr int kIndexInFileMessages = + 39; + + friend void swap(GetEntitiesTailsMessage& a, GetEntitiesTailsMessage& b) { + a.Swap(&b); + } + inline void Swap(GetEntitiesTailsMessage* other) { + if (other == this) return; + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + inline GetEntitiesTailsMessage* New() const final { + return CreateMaybeMessage<GetEntitiesTailsMessage>(nullptr); + } + + GetEntitiesTailsMessage* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final { + return CreateMaybeMessage<GetEntitiesTailsMessage>(arena); + } + void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; + void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; + void CopyFrom(const GetEntitiesTailsMessage& from); + void MergeFrom(const GetEntitiesTailsMessage& from); + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize( + ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _cached_size_.Get(); } + + private: + inline void SharedCtor(); + inline void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(GetEntitiesTailsMessage* other); + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "api.GetEntitiesTailsMessage"; + } + private: + inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const { + return nullptr; + } + inline void* MaybeArenaPtr() const { + return nullptr; + } + public: + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + private: + static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() { + ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto); + return ::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.file_level_metadata[kIndexInFileMessages]; + } + + public: + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + enum : int { + kUuidsFieldNumber = 1, + }; + // repeated string uuids = 1; + int uuids_size() const; + private: + int _internal_uuids_size() const; + public: + void clear_uuids(); + const std::string& uuids(int index) const; + std::string* mutable_uuids(int index); + void set_uuids(int index, const std::string& value); + void set_uuids(int index, std::string&& value); + void set_uuids(int index, const char* value); + void set_uuids(int index, const char* value, size_t size); + std::string* add_uuids(); + void add_uuids(const std::string& value); + void add_uuids(std::string&& value); + void add_uuids(const char* value); + void add_uuids(const char* value, size_t size); + const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& uuids() const; + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* mutable_uuids(); + private: + const std::string& _internal_uuids(int index) const; + std::string* _internal_add_uuids(); + public: + + // @@protoc_insertion_point(class_scope:api.GetEntitiesTailsMessage) + private: + class _Internal; + + ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_; + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string> uuids_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + friend struct ::TableStruct_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto; +}; +// ------------------------------------------------------------------- + +class GetEntitiesTailsResponseMessage_EntitiesEntry_DoNotUse : public ::PROTOBUF_NAMESPACE_ID::internal::MapEntry<GetEntitiesTailsResponseMessage_EntitiesEntry_DoNotUse, + std::string, ::api::EntityMessage_V2, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_MESSAGE, + 0 > { +public: + typedef ::PROTOBUF_NAMESPACE_ID::internal::MapEntry<GetEntitiesTailsResponseMessage_EntitiesEntry_DoNotUse, + std::string, ::api::EntityMessage_V2, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_MESSAGE, + 0 > SuperType; + GetEntitiesTailsResponseMessage_EntitiesEntry_DoNotUse(); + GetEntitiesTailsResponseMessage_EntitiesEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena); + void MergeFrom(const GetEntitiesTailsResponseMessage_EntitiesEntry_DoNotUse& other); + static const GetEntitiesTailsResponseMessage_EntitiesEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const GetEntitiesTailsResponseMessage_EntitiesEntry_DoNotUse*>(&_GetEntitiesTailsResponseMessage_EntitiesEntry_DoNotUse_default_instance_); } + static bool ValidateKey(std::string* s) { + return ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(s->data(), static_cast<int>(s->size()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE, "api.GetEntitiesTailsResponseMessage.EntitiesEntry.key"); + } + static bool ValidateValue(void*) { return true; } + void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& other) final; + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + private: + static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() { + ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto); + return ::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.file_level_metadata[40]; + } + + public: +}; + +// ------------------------------------------------------------------- + +class GetEntitiesTailsResponseMessage : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:api.GetEntitiesTailsResponseMessage) */ { + public: + GetEntitiesTailsResponseMessage(); + virtual ~GetEntitiesTailsResponseMessage(); + + GetEntitiesTailsResponseMessage(const GetEntitiesTailsResponseMessage& from); + GetEntitiesTailsResponseMessage(GetEntitiesTailsResponseMessage&& from) noexcept + : GetEntitiesTailsResponseMessage() { + *this = ::std::move(from); + } + + inline GetEntitiesTailsResponseMessage& operator=(const GetEntitiesTailsResponseMessage& from) { + CopyFrom(from); + return *this; + } + inline GetEntitiesTailsResponseMessage& operator=(GetEntitiesTailsResponseMessage&& from) noexcept { + if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) { + if (this != &from) InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return GetMetadataStatic().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return GetMetadataStatic().reflection; + } + static const GetEntitiesTailsResponseMessage& default_instance(); + + static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY + static inline const GetEntitiesTailsResponseMessage* internal_default_instance() { + return reinterpret_cast<const GetEntitiesTailsResponseMessage*>( + &_GetEntitiesTailsResponseMessage_default_instance_); + } + static constexpr int kIndexInFileMessages = + 41; + + friend void swap(GetEntitiesTailsResponseMessage& a, GetEntitiesTailsResponseMessage& b) { + a.Swap(&b); + } + inline void Swap(GetEntitiesTailsResponseMessage* other) { + if (other == this) return; + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + inline GetEntitiesTailsResponseMessage* New() const final { + return CreateMaybeMessage<GetEntitiesTailsResponseMessage>(nullptr); + } + + GetEntitiesTailsResponseMessage* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final { + return CreateMaybeMessage<GetEntitiesTailsResponseMessage>(arena); + } + void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; + void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; + void CopyFrom(const GetEntitiesTailsResponseMessage& from); + void MergeFrom(const GetEntitiesTailsResponseMessage& from); + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize( + ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _cached_size_.Get(); } + + private: + inline void SharedCtor(); + inline void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(GetEntitiesTailsResponseMessage* other); + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "api.GetEntitiesTailsResponseMessage"; + } + private: + inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const { + return nullptr; + } + inline void* MaybeArenaPtr() const { + return nullptr; + } + public: + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + private: + static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() { + ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto); + return ::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.file_level_metadata[kIndexInFileMessages]; + } + + public: + + // nested types ---------------------------------------------------- + + + // accessors ------------------------------------------------------- + + enum : int { + kEntitiesFieldNumber = 1, + }; + // map<string, .api.EntityMessage_V2> entities = 1; + int entities_size() const; + private: + int _internal_entities_size() const; + public: + void clear_entities(); + private: + const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::EntityMessage_V2 >& + _internal_entities() const; + ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::EntityMessage_V2 >* + _internal_mutable_entities(); + public: + const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::EntityMessage_V2 >& + entities() const; + ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::EntityMessage_V2 >* + mutable_entities(); + + // @@protoc_insertion_point(class_scope:api.GetEntitiesTailsResponseMessage) + private: + class _Internal; + + ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_; + ::PROTOBUF_NAMESPACE_ID::internal::MapField< + GetEntitiesTailsResponseMessage_EntitiesEntry_DoNotUse, + std::string, ::api::EntityMessage_V2, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_MESSAGE, + 0 > entities_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + friend struct ::TableStruct_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto; +}; +// ------------------------------------------------------------------- + +class GetEntitiesCountersMessage : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:api.GetEntitiesCountersMessage) */ { + public: + GetEntitiesCountersMessage(); + virtual ~GetEntitiesCountersMessage(); + + GetEntitiesCountersMessage(const GetEntitiesCountersMessage& from); + GetEntitiesCountersMessage(GetEntitiesCountersMessage&& from) noexcept + : GetEntitiesCountersMessage() { + *this = ::std::move(from); + } + + inline GetEntitiesCountersMessage& operator=(const GetEntitiesCountersMessage& from) { + CopyFrom(from); + return *this; + } + inline GetEntitiesCountersMessage& operator=(GetEntitiesCountersMessage&& from) noexcept { + if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) { + if (this != &from) InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return GetMetadataStatic().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return GetMetadataStatic().reflection; + } + static const GetEntitiesCountersMessage& default_instance(); + + static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY + static inline const GetEntitiesCountersMessage* internal_default_instance() { + return reinterpret_cast<const GetEntitiesCountersMessage*>( + &_GetEntitiesCountersMessage_default_instance_); + } + static constexpr int kIndexInFileMessages = + 42; + + friend void swap(GetEntitiesCountersMessage& a, GetEntitiesCountersMessage& b) { + a.Swap(&b); + } + inline void Swap(GetEntitiesCountersMessage* other) { + if (other == this) return; + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + inline GetEntitiesCountersMessage* New() const final { + return CreateMaybeMessage<GetEntitiesCountersMessage>(nullptr); + } + + GetEntitiesCountersMessage* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final { + return CreateMaybeMessage<GetEntitiesCountersMessage>(arena); + } + void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; + void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; + void CopyFrom(const GetEntitiesCountersMessage& from); + void MergeFrom(const GetEntitiesCountersMessage& from); + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize( + ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _cached_size_.Get(); } + + private: + inline void SharedCtor(); + inline void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(GetEntitiesCountersMessage* other); + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "api.GetEntitiesCountersMessage"; + } + private: + inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const { + return nullptr; + } + inline void* MaybeArenaPtr() const { + return nullptr; + } + public: + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + private: + static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() { + ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto); + return ::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.file_level_metadata[kIndexInFileMessages]; + } + + public: + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + enum : int { + kUuidsFieldNumber = 1, + }; + // repeated string uuids = 1; + int uuids_size() const; + private: + int _internal_uuids_size() const; + public: + void clear_uuids(); + const std::string& uuids(int index) const; + std::string* mutable_uuids(int index); + void set_uuids(int index, const std::string& value); + void set_uuids(int index, std::string&& value); + void set_uuids(int index, const char* value); + void set_uuids(int index, const char* value, size_t size); + std::string* add_uuids(); + void add_uuids(const std::string& value); + void add_uuids(std::string&& value); + void add_uuids(const char* value); + void add_uuids(const char* value, size_t size); + const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& uuids() const; + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* mutable_uuids(); + private: + const std::string& _internal_uuids(int index) const; + std::string* _internal_add_uuids(); + public: + + // @@protoc_insertion_point(class_scope:api.GetEntitiesCountersMessage) + private: + class _Internal; + + ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_; + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string> uuids_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + friend struct ::TableStruct_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto; +}; +// ------------------------------------------------------------------- + +class GetEntitiesCountersResponseMessage_CountersEntry_DoNotUse : public ::PROTOBUF_NAMESPACE_ID::internal::MapEntry<GetEntitiesCountersResponseMessage_CountersEntry_DoNotUse, + std::string, ::PROTOBUF_NAMESPACE_ID::int64, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_INT64, + 0 > { +public: + typedef ::PROTOBUF_NAMESPACE_ID::internal::MapEntry<GetEntitiesCountersResponseMessage_CountersEntry_DoNotUse, + std::string, ::PROTOBUF_NAMESPACE_ID::int64, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_INT64, + 0 > SuperType; + GetEntitiesCountersResponseMessage_CountersEntry_DoNotUse(); + GetEntitiesCountersResponseMessage_CountersEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena); + void MergeFrom(const GetEntitiesCountersResponseMessage_CountersEntry_DoNotUse& other); + static const GetEntitiesCountersResponseMessage_CountersEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const GetEntitiesCountersResponseMessage_CountersEntry_DoNotUse*>(&_GetEntitiesCountersResponseMessage_CountersEntry_DoNotUse_default_instance_); } + static bool ValidateKey(std::string* s) { + return ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(s->data(), static_cast<int>(s->size()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE, "api.GetEntitiesCountersResponseMessage.CountersEntry.key"); + } + static bool ValidateValue(void*) { return true; } + void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& other) final; + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + private: + static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() { + ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto); + return ::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.file_level_metadata[43]; + } + + public: +}; + +// ------------------------------------------------------------------- + +class GetEntitiesCountersResponseMessage : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:api.GetEntitiesCountersResponseMessage) */ { + public: + GetEntitiesCountersResponseMessage(); + virtual ~GetEntitiesCountersResponseMessage(); + + GetEntitiesCountersResponseMessage(const GetEntitiesCountersResponseMessage& from); + GetEntitiesCountersResponseMessage(GetEntitiesCountersResponseMessage&& from) noexcept + : GetEntitiesCountersResponseMessage() { + *this = ::std::move(from); + } + + inline GetEntitiesCountersResponseMessage& operator=(const GetEntitiesCountersResponseMessage& from) { + CopyFrom(from); + return *this; + } + inline GetEntitiesCountersResponseMessage& operator=(GetEntitiesCountersResponseMessage&& from) noexcept { + if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) { + if (this != &from) InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return GetMetadataStatic().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return GetMetadataStatic().reflection; + } + static const GetEntitiesCountersResponseMessage& default_instance(); + + static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY + static inline const GetEntitiesCountersResponseMessage* internal_default_instance() { + return reinterpret_cast<const GetEntitiesCountersResponseMessage*>( + &_GetEntitiesCountersResponseMessage_default_instance_); + } + static constexpr int kIndexInFileMessages = + 44; + + friend void swap(GetEntitiesCountersResponseMessage& a, GetEntitiesCountersResponseMessage& b) { + a.Swap(&b); + } + inline void Swap(GetEntitiesCountersResponseMessage* other) { + if (other == this) return; + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + inline GetEntitiesCountersResponseMessage* New() const final { + return CreateMaybeMessage<GetEntitiesCountersResponseMessage>(nullptr); + } + + GetEntitiesCountersResponseMessage* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final { + return CreateMaybeMessage<GetEntitiesCountersResponseMessage>(arena); + } + void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; + void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; + void CopyFrom(const GetEntitiesCountersResponseMessage& from); + void MergeFrom(const GetEntitiesCountersResponseMessage& from); + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize( + ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _cached_size_.Get(); } + + private: + inline void SharedCtor(); + inline void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(GetEntitiesCountersResponseMessage* other); + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "api.GetEntitiesCountersResponseMessage"; + } + private: + inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const { + return nullptr; + } + inline void* MaybeArenaPtr() const { + return nullptr; + } + public: + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + private: + static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() { + ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto); + return ::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.file_level_metadata[kIndexInFileMessages]; + } + + public: + + // nested types ---------------------------------------------------- + + + // accessors ------------------------------------------------------- + + enum : int { + kCountersFieldNumber = 1, + }; + // map<string, int64> counters = 1; + int counters_size() const; + private: + int _internal_counters_size() const; + public: + void clear_counters(); + private: + const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::PROTOBUF_NAMESPACE_ID::int64 >& + _internal_counters() const; + ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::PROTOBUF_NAMESPACE_ID::int64 >* + _internal_mutable_counters(); + public: + const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::PROTOBUF_NAMESPACE_ID::int64 >& + counters() const; + ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::PROTOBUF_NAMESPACE_ID::int64 >* + mutable_counters(); + + // @@protoc_insertion_point(class_scope:api.GetEntitiesCountersResponseMessage) + private: + class _Internal; + + ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_; + ::PROTOBUF_NAMESPACE_ID::internal::MapField< + GetEntitiesCountersResponseMessage_CountersEntry_DoNotUse, + std::string, ::PROTOBUF_NAMESPACE_ID::int64, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_INT64, + 0 > counters_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + friend struct ::TableStruct_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto; +}; +// ------------------------------------------------------------------- + +class EntityReplaceMessage : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:api.EntityReplaceMessage) */ { + public: + EntityReplaceMessage(); + virtual ~EntityReplaceMessage(); + + EntityReplaceMessage(const EntityReplaceMessage& from); + EntityReplaceMessage(EntityReplaceMessage&& from) noexcept + : EntityReplaceMessage() { + *this = ::std::move(from); + } + + inline EntityReplaceMessage& operator=(const EntityReplaceMessage& from) { + CopyFrom(from); + return *this; + } + inline EntityReplaceMessage& operator=(EntityReplaceMessage&& from) noexcept { + if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) { + if (this != &from) InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return GetMetadataStatic().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return GetMetadataStatic().reflection; + } + static const EntityReplaceMessage& default_instance(); + + static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY + static inline const EntityReplaceMessage* internal_default_instance() { + return reinterpret_cast<const EntityReplaceMessage*>( + &_EntityReplaceMessage_default_instance_); + } + static constexpr int kIndexInFileMessages = + 45; + + friend void swap(EntityReplaceMessage& a, EntityReplaceMessage& b) { + a.Swap(&b); + } + inline void Swap(EntityReplaceMessage* other) { + if (other == this) return; + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + inline EntityReplaceMessage* New() const final { + return CreateMaybeMessage<EntityReplaceMessage>(nullptr); + } + + EntityReplaceMessage* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final { + return CreateMaybeMessage<EntityReplaceMessage>(arena); + } + void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; + void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; + void CopyFrom(const EntityReplaceMessage& from); + void MergeFrom(const EntityReplaceMessage& from); + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize( + ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _cached_size_.Get(); } + + private: + inline void SharedCtor(); + inline void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(EntityReplaceMessage* other); + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "api.EntityReplaceMessage"; + } + private: + inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const { + return nullptr; + } + inline void* MaybeArenaPtr() const { + return nullptr; + } + public: + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + private: + static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() { + ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto); + return ::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.file_level_metadata[kIndexInFileMessages]; + } + + public: + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + enum : int { + kHistoryFieldNumber = 1, + kUuidFieldNumber = 2, + }; + // repeated .api.EntityMessage_V2 history = 1; + int history_size() const; + private: + int _internal_history_size() const; + public: + void clear_history(); + ::api::EntityMessage_V2* mutable_history(int index); + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::api::EntityMessage_V2 >* + mutable_history(); + private: + const ::api::EntityMessage_V2& _internal_history(int index) const; + ::api::EntityMessage_V2* _internal_add_history(); + public: + const ::api::EntityMessage_V2& history(int index) const; + ::api::EntityMessage_V2* add_history(); + const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::api::EntityMessage_V2 >& + history() const; + + // string uuid = 2; + void clear_uuid(); + const std::string& uuid() const; + void set_uuid(const std::string& value); + void set_uuid(std::string&& value); + void set_uuid(const char* value); + void set_uuid(const char* value, size_t size); + std::string* mutable_uuid(); + std::string* release_uuid(); + void set_allocated_uuid(std::string* uuid); + private: + const std::string& _internal_uuid() const; + void _internal_set_uuid(const std::string& value); + std::string* _internal_mutable_uuid(); + public: + + // @@protoc_insertion_point(class_scope:api.EntityReplaceMessage) + private: + class _Internal; + + ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_; + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::api::EntityMessage_V2 > history_; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr uuid_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + friend struct ::TableStruct_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto; +}; +// =================================================================== + + +// =================================================================== + +#ifdef __GNUC__ + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wstrict-aliasing" +#endif // __GNUC__ +// ------------------------------------------------------------------- + +// Claim_V1 + +// map<string, string> value = 1; +inline int Claim_V1::_internal_value_size() const { + return value_.size(); +} +inline int Claim_V1::value_size() const { + return _internal_value_size(); +} +inline void Claim_V1::clear_value() { + value_.Clear(); +} +inline const ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >& +Claim_V1::_internal_value() const { + return value_.GetMap(); +} +inline const ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >& +Claim_V1::value() const { + // @@protoc_insertion_point(field_map:api.Claim_V1.value) + return _internal_value(); +} +inline ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >* +Claim_V1::_internal_mutable_value() { + return value_.MutableMap(); +} +inline ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >* +Claim_V1::mutable_value() { + // @@protoc_insertion_point(field_mutable_map:api.Claim_V1.value) + return _internal_mutable_value(); +} + +// .api.ClaimType type = 2; +inline void Claim_V1::clear_type() { + type_ = 0; +} +inline ::api::ClaimType Claim_V1::_internal_type() const { + return static_cast< ::api::ClaimType >(type_); +} +inline ::api::ClaimType Claim_V1::type() const { + // @@protoc_insertion_point(field_get:api.Claim_V1.type) + return _internal_type(); +} +inline void Claim_V1::_internal_set_type(::api::ClaimType value) { + + type_ = value; +} +inline void Claim_V1::set_type(::api::ClaimType value) { + _internal_set_type(value); + // @@protoc_insertion_point(field_set:api.Claim_V1.type) +} + +// .api.AccessType AccessType = 4; +inline void Claim_V1::clear_accesstype() { + accesstype_ = 0; +} +inline ::api::AccessType Claim_V1::_internal_accesstype() const { + return static_cast< ::api::AccessType >(accesstype_); +} +inline ::api::AccessType Claim_V1::accesstype() const { + // @@protoc_insertion_point(field_get:api.Claim_V1.AccessType) + return _internal_accesstype(); +} +inline void Claim_V1::_internal_set_accesstype(::api::AccessType value) { + + accesstype_ = value; +} +inline void Claim_V1::set_accesstype(::api::AccessType value) { + _internal_set_accesstype(value); + // @@protoc_insertion_point(field_set:api.Claim_V1.AccessType) +} + +// string functionPointer = 3; +inline void Claim_V1::clear_functionpointer() { + functionpointer_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline const std::string& Claim_V1::functionpointer() const { + // @@protoc_insertion_point(field_get:api.Claim_V1.functionPointer) + return _internal_functionpointer(); +} +inline void Claim_V1::set_functionpointer(const std::string& value) { + _internal_set_functionpointer(value); + // @@protoc_insertion_point(field_set:api.Claim_V1.functionPointer) +} +inline std::string* Claim_V1::mutable_functionpointer() { + // @@protoc_insertion_point(field_mutable:api.Claim_V1.functionPointer) + return _internal_mutable_functionpointer(); +} +inline const std::string& Claim_V1::_internal_functionpointer() const { + return functionpointer_.GetNoArena(); +} +inline void Claim_V1::_internal_set_functionpointer(const std::string& value) { + + functionpointer_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value); +} +inline void Claim_V1::set_functionpointer(std::string&& value) { + + functionpointer_.SetNoArena( + &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); + // @@protoc_insertion_point(field_set_rvalue:api.Claim_V1.functionPointer) +} +inline void Claim_V1::set_functionpointer(const char* value) { + GOOGLE_DCHECK(value != nullptr); + + functionpointer_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); + // @@protoc_insertion_point(field_set_char:api.Claim_V1.functionPointer) +} +inline void Claim_V1::set_functionpointer(const char* value, size_t size) { + + functionpointer_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + ::std::string(reinterpret_cast<const char*>(value), size)); + // @@protoc_insertion_point(field_set_pointer:api.Claim_V1.functionPointer) +} +inline std::string* Claim_V1::_internal_mutable_functionpointer() { + + return functionpointer_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline std::string* Claim_V1::release_functionpointer() { + // @@protoc_insertion_point(field_release:api.Claim_V1.functionPointer) + + return functionpointer_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline void Claim_V1::set_allocated_functionpointer(std::string* functionpointer) { + if (functionpointer != nullptr) { + + } else { + + } + functionpointer_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), functionpointer); + // @@protoc_insertion_point(field_set_allocated:api.Claim_V1.functionPointer) +} + +// string symlink = 5; +inline void Claim_V1::clear_symlink() { + symlink_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline const std::string& Claim_V1::symlink() const { + // @@protoc_insertion_point(field_get:api.Claim_V1.symlink) + return _internal_symlink(); +} +inline void Claim_V1::set_symlink(const std::string& value) { + _internal_set_symlink(value); + // @@protoc_insertion_point(field_set:api.Claim_V1.symlink) +} +inline std::string* Claim_V1::mutable_symlink() { + // @@protoc_insertion_point(field_mutable:api.Claim_V1.symlink) + return _internal_mutable_symlink(); +} +inline const std::string& Claim_V1::_internal_symlink() const { + return symlink_.GetNoArena(); +} +inline void Claim_V1::_internal_set_symlink(const std::string& value) { + + symlink_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value); +} +inline void Claim_V1::set_symlink(std::string&& value) { + + symlink_.SetNoArena( + &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); + // @@protoc_insertion_point(field_set_rvalue:api.Claim_V1.symlink) +} +inline void Claim_V1::set_symlink(const char* value) { + GOOGLE_DCHECK(value != nullptr); + + symlink_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); + // @@protoc_insertion_point(field_set_char:api.Claim_V1.symlink) +} +inline void Claim_V1::set_symlink(const char* value, size_t size) { + + symlink_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + ::std::string(reinterpret_cast<const char*>(value), size)); + // @@protoc_insertion_point(field_set_pointer:api.Claim_V1.symlink) +} +inline std::string* Claim_V1::_internal_mutable_symlink() { + + return symlink_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline std::string* Claim_V1::release_symlink() { + // @@protoc_insertion_point(field_release:api.Claim_V1.symlink) + + return symlink_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline void Claim_V1::set_allocated_symlink(std::string* symlink) { + if (symlink != nullptr) { + + } else { + + } + symlink_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), symlink); + // @@protoc_insertion_point(field_set_allocated:api.Claim_V1.symlink) +} + +// bool defaultClaim = 6; +inline void Claim_V1::clear_defaultclaim() { + defaultclaim_ = false; +} +inline bool Claim_V1::_internal_defaultclaim() const { + return defaultclaim_; +} +inline bool Claim_V1::defaultclaim() const { + // @@protoc_insertion_point(field_get:api.Claim_V1.defaultClaim) + return _internal_defaultclaim(); +} +inline void Claim_V1::_internal_set_defaultclaim(bool value) { + + defaultclaim_ = value; +} +inline void Claim_V1::set_defaultclaim(bool value) { + _internal_set_defaultclaim(value); + // @@protoc_insertion_point(field_set:api.Claim_V1.defaultClaim) +} + +// string calculatedValue = 7; +inline void Claim_V1::clear_calculatedvalue() { + calculatedvalue_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline const std::string& Claim_V1::calculatedvalue() const { + // @@protoc_insertion_point(field_get:api.Claim_V1.calculatedValue) + return _internal_calculatedvalue(); +} +inline void Claim_V1::set_calculatedvalue(const std::string& value) { + _internal_set_calculatedvalue(value); + // @@protoc_insertion_point(field_set:api.Claim_V1.calculatedValue) +} +inline std::string* Claim_V1::mutable_calculatedvalue() { + // @@protoc_insertion_point(field_mutable:api.Claim_V1.calculatedValue) + return _internal_mutable_calculatedvalue(); +} +inline const std::string& Claim_V1::_internal_calculatedvalue() const { + return calculatedvalue_.GetNoArena(); +} +inline void Claim_V1::_internal_set_calculatedvalue(const std::string& value) { + + calculatedvalue_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value); +} +inline void Claim_V1::set_calculatedvalue(std::string&& value) { + + calculatedvalue_.SetNoArena( + &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); + // @@protoc_insertion_point(field_set_rvalue:api.Claim_V1.calculatedValue) +} +inline void Claim_V1::set_calculatedvalue(const char* value) { + GOOGLE_DCHECK(value != nullptr); + + calculatedvalue_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); + // @@protoc_insertion_point(field_set_char:api.Claim_V1.calculatedValue) +} +inline void Claim_V1::set_calculatedvalue(const char* value, size_t size) { + + calculatedvalue_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + ::std::string(reinterpret_cast<const char*>(value), size)); + // @@protoc_insertion_point(field_set_pointer:api.Claim_V1.calculatedValue) +} +inline std::string* Claim_V1::_internal_mutable_calculatedvalue() { + + return calculatedvalue_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline std::string* Claim_V1::release_calculatedvalue() { + // @@protoc_insertion_point(field_release:api.Claim_V1.calculatedValue) + + return calculatedvalue_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline void Claim_V1::set_allocated_calculatedvalue(std::string* calculatedvalue) { + if (calculatedvalue != nullptr) { + + } else { + + } + calculatedvalue_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), calculatedvalue); + // @@protoc_insertion_point(field_set_allocated:api.Claim_V1.calculatedValue) +} + +// .api.ValueType valueType = 8; +inline void Claim_V1::clear_valuetype() { + valuetype_ = 0; +} +inline ::api::ValueType Claim_V1::_internal_valuetype() const { + return static_cast< ::api::ValueType >(valuetype_); +} +inline ::api::ValueType Claim_V1::valuetype() const { + // @@protoc_insertion_point(field_get:api.Claim_V1.valueType) + return _internal_valuetype(); +} +inline void Claim_V1::_internal_set_valuetype(::api::ValueType value) { + + valuetype_ = value; +} +inline void Claim_V1::set_valuetype(::api::ValueType value) { + _internal_set_valuetype(value); + // @@protoc_insertion_point(field_set:api.Claim_V1.valueType) +} + +// bool verified = 9; +inline void Claim_V1::clear_verified() { + verified_ = false; +} +inline bool Claim_V1::_internal_verified() const { + return verified_; +} +inline bool Claim_V1::verified() const { + // @@protoc_insertion_point(field_get:api.Claim_V1.verified) + return _internal_verified(); +} +inline void Claim_V1::_internal_set_verified(bool value) { + + verified_ = value; +} +inline void Claim_V1::set_verified(bool value) { + _internal_set_verified(value); + // @@protoc_insertion_point(field_set:api.Claim_V1.verified) +} + +// bool canEdit = 10; +inline void Claim_V1::clear_canedit() { + canedit_ = false; +} +inline bool Claim_V1::_internal_canedit() const { + return canedit_; +} +inline bool Claim_V1::canedit() const { + // @@protoc_insertion_point(field_get:api.Claim_V1.canEdit) + return _internal_canedit(); +} +inline void Claim_V1::_internal_set_canedit(bool value) { + + canedit_ = value; +} +inline void Claim_V1::set_canedit(bool value) { + _internal_set_canedit(value); + // @@protoc_insertion_point(field_set:api.Claim_V1.canEdit) +} + +// bool companyOnly = 11; +inline void Claim_V1::clear_companyonly() { + companyonly_ = false; +} +inline bool Claim_V1::_internal_companyonly() const { + return companyonly_; +} +inline bool Claim_V1::companyonly() const { + // @@protoc_insertion_point(field_get:api.Claim_V1.companyOnly) + return _internal_companyonly(); +} +inline void Claim_V1::_internal_set_companyonly(bool value) { + + companyonly_ = value; +} +inline void Claim_V1::set_companyonly(bool value) { + _internal_set_companyonly(value); + // @@protoc_insertion_point(field_set:api.Claim_V1.companyOnly) +} + +// bool required = 12; +inline void Claim_V1::clear_required() { + required_ = false; +} +inline bool Claim_V1::_internal_required() const { + return required_; +} +inline bool Claim_V1::required() const { + // @@protoc_insertion_point(field_get:api.Claim_V1.required) + return _internal_required(); +} +inline void Claim_V1::_internal_set_required(bool value) { + + required_ = value; +} +inline void Claim_V1::set_required(bool value) { + _internal_set_required(value); + // @@protoc_insertion_point(field_set:api.Claim_V1.required) +} + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ClaimTagsMap_V1 + +// map<string, .api.Claim_V1> tags = 1; +inline int ClaimTagsMap_V1::_internal_tags_size() const { + return tags_.size(); +} +inline int ClaimTagsMap_V1::tags_size() const { + return _internal_tags_size(); +} +inline void ClaimTagsMap_V1::clear_tags() { + tags_.Clear(); +} +inline const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::Claim_V1 >& +ClaimTagsMap_V1::_internal_tags() const { + return tags_.GetMap(); +} +inline const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::Claim_V1 >& +ClaimTagsMap_V1::tags() const { + // @@protoc_insertion_point(field_map:api.ClaimTagsMap_V1.tags) + return _internal_tags(); +} +inline ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::Claim_V1 >* +ClaimTagsMap_V1::_internal_mutable_tags() { + return tags_.MutableMap(); +} +inline ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::Claim_V1 >* +ClaimTagsMap_V1::mutable_tags() { + // @@protoc_insertion_point(field_mutable_map:api.ClaimTagsMap_V1.tags) + return _internal_mutable_tags(); +} + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// Order_V1 + +// string uuid = 1; +inline void Order_V1::clear_uuid() { + uuid_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline const std::string& Order_V1::uuid() const { + // @@protoc_insertion_point(field_get:api.Order_V1.uuid) + return _internal_uuid(); +} +inline void Order_V1::set_uuid(const std::string& value) { + _internal_set_uuid(value); + // @@protoc_insertion_point(field_set:api.Order_V1.uuid) +} +inline std::string* Order_V1::mutable_uuid() { + // @@protoc_insertion_point(field_mutable:api.Order_V1.uuid) + return _internal_mutable_uuid(); +} +inline const std::string& Order_V1::_internal_uuid() const { + return uuid_.GetNoArena(); +} +inline void Order_V1::_internal_set_uuid(const std::string& value) { + + uuid_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value); +} +inline void Order_V1::set_uuid(std::string&& value) { + + uuid_.SetNoArena( + &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); + // @@protoc_insertion_point(field_set_rvalue:api.Order_V1.uuid) +} +inline void Order_V1::set_uuid(const char* value) { + GOOGLE_DCHECK(value != nullptr); + + uuid_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); + // @@protoc_insertion_point(field_set_char:api.Order_V1.uuid) +} +inline void Order_V1::set_uuid(const char* value, size_t size) { + + uuid_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + ::std::string(reinterpret_cast<const char*>(value), size)); + // @@protoc_insertion_point(field_set_pointer:api.Order_V1.uuid) +} +inline std::string* Order_V1::_internal_mutable_uuid() { + + return uuid_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline std::string* Order_V1::release_uuid() { + // @@protoc_insertion_point(field_release:api.Order_V1.uuid) + + return uuid_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline void Order_V1::set_allocated_uuid(std::string* uuid) { + if (uuid != nullptr) { + + } else { + + } + uuid_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), uuid); + // @@protoc_insertion_point(field_set_allocated:api.Order_V1.uuid) +} + +// string invoiceFilename = 2; +inline void Order_V1::clear_invoicefilename() { + invoicefilename_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline const std::string& Order_V1::invoicefilename() const { + // @@protoc_insertion_point(field_get:api.Order_V1.invoiceFilename) + return _internal_invoicefilename(); +} +inline void Order_V1::set_invoicefilename(const std::string& value) { + _internal_set_invoicefilename(value); + // @@protoc_insertion_point(field_set:api.Order_V1.invoiceFilename) +} +inline std::string* Order_V1::mutable_invoicefilename() { + // @@protoc_insertion_point(field_mutable:api.Order_V1.invoiceFilename) + return _internal_mutable_invoicefilename(); +} +inline const std::string& Order_V1::_internal_invoicefilename() const { + return invoicefilename_.GetNoArena(); +} +inline void Order_V1::_internal_set_invoicefilename(const std::string& value) { + + invoicefilename_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value); +} +inline void Order_V1::set_invoicefilename(std::string&& value) { + + invoicefilename_.SetNoArena( + &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); + // @@protoc_insertion_point(field_set_rvalue:api.Order_V1.invoiceFilename) +} +inline void Order_V1::set_invoicefilename(const char* value) { + GOOGLE_DCHECK(value != nullptr); + + invoicefilename_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); + // @@protoc_insertion_point(field_set_char:api.Order_V1.invoiceFilename) +} +inline void Order_V1::set_invoicefilename(const char* value, size_t size) { + + invoicefilename_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + ::std::string(reinterpret_cast<const char*>(value), size)); + // @@protoc_insertion_point(field_set_pointer:api.Order_V1.invoiceFilename) +} +inline std::string* Order_V1::_internal_mutable_invoicefilename() { + + return invoicefilename_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline std::string* Order_V1::release_invoicefilename() { + // @@protoc_insertion_point(field_release:api.Order_V1.invoiceFilename) + + return invoicefilename_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline void Order_V1::set_allocated_invoicefilename(std::string* invoicefilename) { + if (invoicefilename != nullptr) { + + } else { + + } + invoicefilename_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), invoicefilename); + // @@protoc_insertion_point(field_set_allocated:api.Order_V1.invoiceFilename) +} + +// map<string, string> operationUUIDS = 3; +inline int Order_V1::_internal_operationuuids_size() const { + return operationuuids_.size(); +} +inline int Order_V1::operationuuids_size() const { + return _internal_operationuuids_size(); +} +inline void Order_V1::clear_operationuuids() { + operationuuids_.Clear(); +} +inline const ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >& +Order_V1::_internal_operationuuids() const { + return operationuuids_.GetMap(); +} +inline const ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >& +Order_V1::operationuuids() const { + // @@protoc_insertion_point(field_map:api.Order_V1.operationUUIDS) + return _internal_operationuuids(); +} +inline ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >* +Order_V1::_internal_mutable_operationuuids() { + return operationuuids_.MutableMap(); +} +inline ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >* +Order_V1::mutable_operationuuids() { + // @@protoc_insertion_point(field_mutable_map:api.Order_V1.operationUUIDS) + return _internal_mutable_operationuuids(); +} + +// .api.OrderStatus status = 4; +inline void Order_V1::clear_status() { + status_ = 0; +} +inline ::api::OrderStatus Order_V1::_internal_status() const { + return static_cast< ::api::OrderStatus >(status_); +} +inline ::api::OrderStatus Order_V1::status() const { + // @@protoc_insertion_point(field_get:api.Order_V1.status) + return _internal_status(); +} +inline void Order_V1::_internal_set_status(::api::OrderStatus value) { + + status_ = value; +} +inline void Order_V1::set_status(::api::OrderStatus value) { + _internal_set_status(value); + // @@protoc_insertion_point(field_set:api.Order_V1.status) +} + +// map<string, string> data = 5; +inline int Order_V1::_internal_data_size() const { + return data_.size(); +} +inline int Order_V1::data_size() const { + return _internal_data_size(); +} +inline void Order_V1::clear_data() { + data_.Clear(); +} +inline const ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >& +Order_V1::_internal_data() const { + return data_.GetMap(); +} +inline const ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >& +Order_V1::data() const { + // @@protoc_insertion_point(field_map:api.Order_V1.data) + return _internal_data(); +} +inline ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >* +Order_V1::_internal_mutable_data() { + return data_.MutableMap(); +} +inline ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >* +Order_V1::mutable_data() { + // @@protoc_insertion_point(field_mutable_map:api.Order_V1.data) + return _internal_mutable_data(); +} + +// int64 invoiceNumber = 6; +inline void Order_V1::clear_invoicenumber() { + invoicenumber_ = PROTOBUF_LONGLONG(0); +} +inline ::PROTOBUF_NAMESPACE_ID::int64 Order_V1::_internal_invoicenumber() const { + return invoicenumber_; +} +inline ::PROTOBUF_NAMESPACE_ID::int64 Order_V1::invoicenumber() const { + // @@protoc_insertion_point(field_get:api.Order_V1.invoiceNumber) + return _internal_invoicenumber(); +} +inline void Order_V1::_internal_set_invoicenumber(::PROTOBUF_NAMESPACE_ID::int64 value) { + + invoicenumber_ = value; +} +inline void Order_V1::set_invoicenumber(::PROTOBUF_NAMESPACE_ID::int64 value) { + _internal_set_invoicenumber(value); + // @@protoc_insertion_point(field_set:api.Order_V1.invoiceNumber) +} + +// int64 orderNumber = 7; +inline void Order_V1::clear_ordernumber() { + ordernumber_ = PROTOBUF_LONGLONG(0); +} +inline ::PROTOBUF_NAMESPACE_ID::int64 Order_V1::_internal_ordernumber() const { + return ordernumber_; +} +inline ::PROTOBUF_NAMESPACE_ID::int64 Order_V1::ordernumber() const { + // @@protoc_insertion_point(field_get:api.Order_V1.orderNumber) + return _internal_ordernumber(); +} +inline void Order_V1::_internal_set_ordernumber(::PROTOBUF_NAMESPACE_ID::int64 value) { + + ordernumber_ = value; +} +inline void Order_V1::set_ordernumber(::PROTOBUF_NAMESPACE_ID::int64 value) { + _internal_set_ordernumber(value); + // @@protoc_insertion_point(field_set:api.Order_V1.orderNumber) +} + +// int64 stamp = 8; +inline void Order_V1::clear_stamp() { + stamp_ = PROTOBUF_LONGLONG(0); +} +inline ::PROTOBUF_NAMESPACE_ID::int64 Order_V1::_internal_stamp() const { + return stamp_; +} +inline ::PROTOBUF_NAMESPACE_ID::int64 Order_V1::stamp() const { + // @@protoc_insertion_point(field_get:api.Order_V1.stamp) + return _internal_stamp(); +} +inline void Order_V1::_internal_set_stamp(::PROTOBUF_NAMESPACE_ID::int64 value) { + + stamp_ = value; +} +inline void Order_V1::set_stamp(::PROTOBUF_NAMESPACE_ID::int64 value) { + _internal_set_stamp(value); + // @@protoc_insertion_point(field_set:api.Order_V1.stamp) +} + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// EntityMessage_V1 + +// string uuid = 1; +inline void EntityMessage_V1::clear_uuid() { + uuid_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline const std::string& EntityMessage_V1::uuid() const { + // @@protoc_insertion_point(field_get:api.EntityMessage_V1.uuid) + return _internal_uuid(); +} +inline void EntityMessage_V1::set_uuid(const std::string& value) { + _internal_set_uuid(value); + // @@protoc_insertion_point(field_set:api.EntityMessage_V1.uuid) +} +inline std::string* EntityMessage_V1::mutable_uuid() { + // @@protoc_insertion_point(field_mutable:api.EntityMessage_V1.uuid) + return _internal_mutable_uuid(); +} +inline const std::string& EntityMessage_V1::_internal_uuid() const { + return uuid_.GetNoArena(); +} +inline void EntityMessage_V1::_internal_set_uuid(const std::string& value) { + + uuid_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value); +} +inline void EntityMessage_V1::set_uuid(std::string&& value) { + + uuid_.SetNoArena( + &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); + // @@protoc_insertion_point(field_set_rvalue:api.EntityMessage_V1.uuid) +} +inline void EntityMessage_V1::set_uuid(const char* value) { + GOOGLE_DCHECK(value != nullptr); + + uuid_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); + // @@protoc_insertion_point(field_set_char:api.EntityMessage_V1.uuid) +} +inline void EntityMessage_V1::set_uuid(const char* value, size_t size) { + + uuid_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + ::std::string(reinterpret_cast<const char*>(value), size)); + // @@protoc_insertion_point(field_set_pointer:api.EntityMessage_V1.uuid) +} +inline std::string* EntityMessage_V1::_internal_mutable_uuid() { + + return uuid_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline std::string* EntityMessage_V1::release_uuid() { + // @@protoc_insertion_point(field_release:api.EntityMessage_V1.uuid) + + return uuid_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline void EntityMessage_V1::set_allocated_uuid(std::string* uuid) { + if (uuid != nullptr) { + + } else { + + } + uuid_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), uuid); + // @@protoc_insertion_point(field_set_allocated:api.EntityMessage_V1.uuid) +} + +// .api.EntityType type = 2; +inline void EntityMessage_V1::clear_type() { + type_ = 0; +} +inline ::api::EntityType EntityMessage_V1::_internal_type() const { + return static_cast< ::api::EntityType >(type_); +} +inline ::api::EntityType EntityMessage_V1::type() const { + // @@protoc_insertion_point(field_get:api.EntityMessage_V1.type) + return _internal_type(); +} +inline void EntityMessage_V1::_internal_set_type(::api::EntityType value) { + + type_ = value; +} +inline void EntityMessage_V1::set_type(::api::EntityType value) { + _internal_set_type(value); + // @@protoc_insertion_point(field_set:api.EntityMessage_V1.type) +} + +// map<string, .api.ClaimTagsMap_V1> claims = 3; +inline int EntityMessage_V1::_internal_claims_size() const { + return claims_.size(); +} +inline int EntityMessage_V1::claims_size() const { + return _internal_claims_size(); +} +inline void EntityMessage_V1::clear_claims() { + claims_.Clear(); +} +inline const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::ClaimTagsMap_V1 >& +EntityMessage_V1::_internal_claims() const { + return claims_.GetMap(); +} +inline const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::ClaimTagsMap_V1 >& +EntityMessage_V1::claims() const { + // @@protoc_insertion_point(field_map:api.EntityMessage_V1.claims) + return _internal_claims(); +} +inline ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::ClaimTagsMap_V1 >* +EntityMessage_V1::_internal_mutable_claims() { + return claims_.MutableMap(); +} +inline ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::ClaimTagsMap_V1 >* +EntityMessage_V1::mutable_claims() { + // @@protoc_insertion_point(field_mutable_map:api.EntityMessage_V1.claims) + return _internal_mutable_claims(); +} + +// repeated string guarded = 4; +inline int EntityMessage_V1::_internal_guarded_size() const { + return guarded_.size(); +} +inline int EntityMessage_V1::guarded_size() const { + return _internal_guarded_size(); +} +inline void EntityMessage_V1::clear_guarded() { + guarded_.Clear(); +} +inline std::string* EntityMessage_V1::add_guarded() { + // @@protoc_insertion_point(field_add_mutable:api.EntityMessage_V1.guarded) + return _internal_add_guarded(); +} +inline const std::string& EntityMessage_V1::_internal_guarded(int index) const { + return guarded_.Get(index); +} +inline const std::string& EntityMessage_V1::guarded(int index) const { + // @@protoc_insertion_point(field_get:api.EntityMessage_V1.guarded) + return _internal_guarded(index); +} +inline std::string* EntityMessage_V1::mutable_guarded(int index) { + // @@protoc_insertion_point(field_mutable:api.EntityMessage_V1.guarded) + return guarded_.Mutable(index); +} +inline void EntityMessage_V1::set_guarded(int index, const std::string& value) { + // @@protoc_insertion_point(field_set:api.EntityMessage_V1.guarded) + guarded_.Mutable(index)->assign(value); +} +inline void EntityMessage_V1::set_guarded(int index, std::string&& value) { + // @@protoc_insertion_point(field_set:api.EntityMessage_V1.guarded) + guarded_.Mutable(index)->assign(std::move(value)); +} +inline void EntityMessage_V1::set_guarded(int index, const char* value) { + GOOGLE_DCHECK(value != nullptr); + guarded_.Mutable(index)->assign(value); + // @@protoc_insertion_point(field_set_char:api.EntityMessage_V1.guarded) +} +inline void EntityMessage_V1::set_guarded(int index, const char* value, size_t size) { + guarded_.Mutable(index)->assign( + reinterpret_cast<const char*>(value), size); + // @@protoc_insertion_point(field_set_pointer:api.EntityMessage_V1.guarded) +} +inline std::string* EntityMessage_V1::_internal_add_guarded() { + return guarded_.Add(); +} +inline void EntityMessage_V1::add_guarded(const std::string& value) { + guarded_.Add()->assign(value); + // @@protoc_insertion_point(field_add:api.EntityMessage_V1.guarded) +} +inline void EntityMessage_V1::add_guarded(std::string&& value) { + guarded_.Add(std::move(value)); + // @@protoc_insertion_point(field_add:api.EntityMessage_V1.guarded) +} +inline void EntityMessage_V1::add_guarded(const char* value) { + GOOGLE_DCHECK(value != nullptr); + guarded_.Add()->assign(value); + // @@protoc_insertion_point(field_add_char:api.EntityMessage_V1.guarded) +} +inline void EntityMessage_V1::add_guarded(const char* value, size_t size) { + guarded_.Add()->assign(reinterpret_cast<const char*>(value), size); + // @@protoc_insertion_point(field_add_pointer:api.EntityMessage_V1.guarded) +} +inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& +EntityMessage_V1::guarded() const { + // @@protoc_insertion_point(field_list:api.EntityMessage_V1.guarded) + return guarded_; +} +inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* +EntityMessage_V1::mutable_guarded() { + // @@protoc_insertion_point(field_mutable_list:api.EntityMessage_V1.guarded) + return &guarded_; +} + +// repeated string guardians = 5; +inline int EntityMessage_V1::_internal_guardians_size() const { + return guardians_.size(); +} +inline int EntityMessage_V1::guardians_size() const { + return _internal_guardians_size(); +} +inline void EntityMessage_V1::clear_guardians() { + guardians_.Clear(); +} +inline std::string* EntityMessage_V1::add_guardians() { + // @@protoc_insertion_point(field_add_mutable:api.EntityMessage_V1.guardians) + return _internal_add_guardians(); +} +inline const std::string& EntityMessage_V1::_internal_guardians(int index) const { + return guardians_.Get(index); +} +inline const std::string& EntityMessage_V1::guardians(int index) const { + // @@protoc_insertion_point(field_get:api.EntityMessage_V1.guardians) + return _internal_guardians(index); +} +inline std::string* EntityMessage_V1::mutable_guardians(int index) { + // @@protoc_insertion_point(field_mutable:api.EntityMessage_V1.guardians) + return guardians_.Mutable(index); +} +inline void EntityMessage_V1::set_guardians(int index, const std::string& value) { + // @@protoc_insertion_point(field_set:api.EntityMessage_V1.guardians) + guardians_.Mutable(index)->assign(value); +} +inline void EntityMessage_V1::set_guardians(int index, std::string&& value) { + // @@protoc_insertion_point(field_set:api.EntityMessage_V1.guardians) + guardians_.Mutable(index)->assign(std::move(value)); +} +inline void EntityMessage_V1::set_guardians(int index, const char* value) { + GOOGLE_DCHECK(value != nullptr); + guardians_.Mutable(index)->assign(value); + // @@protoc_insertion_point(field_set_char:api.EntityMessage_V1.guardians) +} +inline void EntityMessage_V1::set_guardians(int index, const char* value, size_t size) { + guardians_.Mutable(index)->assign( + reinterpret_cast<const char*>(value), size); + // @@protoc_insertion_point(field_set_pointer:api.EntityMessage_V1.guardians) +} +inline std::string* EntityMessage_V1::_internal_add_guardians() { + return guardians_.Add(); +} +inline void EntityMessage_V1::add_guardians(const std::string& value) { + guardians_.Add()->assign(value); + // @@protoc_insertion_point(field_add:api.EntityMessage_V1.guardians) +} +inline void EntityMessage_V1::add_guardians(std::string&& value) { + guardians_.Add(std::move(value)); + // @@protoc_insertion_point(field_add:api.EntityMessage_V1.guardians) +} +inline void EntityMessage_V1::add_guardians(const char* value) { + GOOGLE_DCHECK(value != nullptr); + guardians_.Add()->assign(value); + // @@protoc_insertion_point(field_add_char:api.EntityMessage_V1.guardians) +} +inline void EntityMessage_V1::add_guardians(const char* value, size_t size) { + guardians_.Add()->assign(reinterpret_cast<const char*>(value), size); + // @@protoc_insertion_point(field_add_pointer:api.EntityMessage_V1.guardians) +} +inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& +EntityMessage_V1::guardians() const { + // @@protoc_insertion_point(field_list:api.EntityMessage_V1.guardians) + return guardians_; +} +inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* +EntityMessage_V1::mutable_guardians() { + // @@protoc_insertion_point(field_mutable_list:api.EntityMessage_V1.guardians) + return &guardians_; +} + +// repeated string members = 6; +inline int EntityMessage_V1::_internal_members_size() const { + return members_.size(); +} +inline int EntityMessage_V1::members_size() const { + return _internal_members_size(); +} +inline void EntityMessage_V1::clear_members() { + members_.Clear(); +} +inline std::string* EntityMessage_V1::add_members() { + // @@protoc_insertion_point(field_add_mutable:api.EntityMessage_V1.members) + return _internal_add_members(); +} +inline const std::string& EntityMessage_V1::_internal_members(int index) const { + return members_.Get(index); +} +inline const std::string& EntityMessage_V1::members(int index) const { + // @@protoc_insertion_point(field_get:api.EntityMessage_V1.members) + return _internal_members(index); +} +inline std::string* EntityMessage_V1::mutable_members(int index) { + // @@protoc_insertion_point(field_mutable:api.EntityMessage_V1.members) + return members_.Mutable(index); +} +inline void EntityMessage_V1::set_members(int index, const std::string& value) { + // @@protoc_insertion_point(field_set:api.EntityMessage_V1.members) + members_.Mutable(index)->assign(value); +} +inline void EntityMessage_V1::set_members(int index, std::string&& value) { + // @@protoc_insertion_point(field_set:api.EntityMessage_V1.members) + members_.Mutable(index)->assign(std::move(value)); +} +inline void EntityMessage_V1::set_members(int index, const char* value) { + GOOGLE_DCHECK(value != nullptr); + members_.Mutable(index)->assign(value); + // @@protoc_insertion_point(field_set_char:api.EntityMessage_V1.members) +} +inline void EntityMessage_V1::set_members(int index, const char* value, size_t size) { + members_.Mutable(index)->assign( + reinterpret_cast<const char*>(value), size); + // @@protoc_insertion_point(field_set_pointer:api.EntityMessage_V1.members) +} +inline std::string* EntityMessage_V1::_internal_add_members() { + return members_.Add(); +} +inline void EntityMessage_V1::add_members(const std::string& value) { + members_.Add()->assign(value); + // @@protoc_insertion_point(field_add:api.EntityMessage_V1.members) +} +inline void EntityMessage_V1::add_members(std::string&& value) { + members_.Add(std::move(value)); + // @@protoc_insertion_point(field_add:api.EntityMessage_V1.members) +} +inline void EntityMessage_V1::add_members(const char* value) { + GOOGLE_DCHECK(value != nullptr); + members_.Add()->assign(value); + // @@protoc_insertion_point(field_add_char:api.EntityMessage_V1.members) +} +inline void EntityMessage_V1::add_members(const char* value, size_t size) { + members_.Add()->assign(reinterpret_cast<const char*>(value), size); + // @@protoc_insertion_point(field_add_pointer:api.EntityMessage_V1.members) +} +inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& +EntityMessage_V1::members() const { + // @@protoc_insertion_point(field_list:api.EntityMessage_V1.members) + return members_; +} +inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* +EntityMessage_V1::mutable_members() { + // @@protoc_insertion_point(field_mutable_list:api.EntityMessage_V1.members) + return &members_; +} + +// repeated string memberOf = 7; +inline int EntityMessage_V1::_internal_memberof_size() const { + return memberof_.size(); +} +inline int EntityMessage_V1::memberof_size() const { + return _internal_memberof_size(); +} +inline void EntityMessage_V1::clear_memberof() { + memberof_.Clear(); +} +inline std::string* EntityMessage_V1::add_memberof() { + // @@protoc_insertion_point(field_add_mutable:api.EntityMessage_V1.memberOf) + return _internal_add_memberof(); +} +inline const std::string& EntityMessage_V1::_internal_memberof(int index) const { + return memberof_.Get(index); +} +inline const std::string& EntityMessage_V1::memberof(int index) const { + // @@protoc_insertion_point(field_get:api.EntityMessage_V1.memberOf) + return _internal_memberof(index); +} +inline std::string* EntityMessage_V1::mutable_memberof(int index) { + // @@protoc_insertion_point(field_mutable:api.EntityMessage_V1.memberOf) + return memberof_.Mutable(index); +} +inline void EntityMessage_V1::set_memberof(int index, const std::string& value) { + // @@protoc_insertion_point(field_set:api.EntityMessage_V1.memberOf) + memberof_.Mutable(index)->assign(value); +} +inline void EntityMessage_V1::set_memberof(int index, std::string&& value) { + // @@protoc_insertion_point(field_set:api.EntityMessage_V1.memberOf) + memberof_.Mutable(index)->assign(std::move(value)); +} +inline void EntityMessage_V1::set_memberof(int index, const char* value) { + GOOGLE_DCHECK(value != nullptr); + memberof_.Mutable(index)->assign(value); + // @@protoc_insertion_point(field_set_char:api.EntityMessage_V1.memberOf) +} +inline void EntityMessage_V1::set_memberof(int index, const char* value, size_t size) { + memberof_.Mutable(index)->assign( + reinterpret_cast<const char*>(value), size); + // @@protoc_insertion_point(field_set_pointer:api.EntityMessage_V1.memberOf) +} +inline std::string* EntityMessage_V1::_internal_add_memberof() { + return memberof_.Add(); +} +inline void EntityMessage_V1::add_memberof(const std::string& value) { + memberof_.Add()->assign(value); + // @@protoc_insertion_point(field_add:api.EntityMessage_V1.memberOf) +} +inline void EntityMessage_V1::add_memberof(std::string&& value) { + memberof_.Add(std::move(value)); + // @@protoc_insertion_point(field_add:api.EntityMessage_V1.memberOf) +} +inline void EntityMessage_V1::add_memberof(const char* value) { + GOOGLE_DCHECK(value != nullptr); + memberof_.Add()->assign(value); + // @@protoc_insertion_point(field_add_char:api.EntityMessage_V1.memberOf) +} +inline void EntityMessage_V1::add_memberof(const char* value, size_t size) { + memberof_.Add()->assign(reinterpret_cast<const char*>(value), size); + // @@protoc_insertion_point(field_add_pointer:api.EntityMessage_V1.memberOf) +} +inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& +EntityMessage_V1::memberof() const { + // @@protoc_insertion_point(field_list:api.EntityMessage_V1.memberOf) + return memberof_; +} +inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* +EntityMessage_V1::mutable_memberof() { + // @@protoc_insertion_point(field_mutable_list:api.EntityMessage_V1.memberOf) + return &memberof_; +} + +// repeated string parents = 8; +inline int EntityMessage_V1::_internal_parents_size() const { + return parents_.size(); +} +inline int EntityMessage_V1::parents_size() const { + return _internal_parents_size(); +} +inline void EntityMessage_V1::clear_parents() { + parents_.Clear(); +} +inline std::string* EntityMessage_V1::add_parents() { + // @@protoc_insertion_point(field_add_mutable:api.EntityMessage_V1.parents) + return _internal_add_parents(); +} +inline const std::string& EntityMessage_V1::_internal_parents(int index) const { + return parents_.Get(index); +} +inline const std::string& EntityMessage_V1::parents(int index) const { + // @@protoc_insertion_point(field_get:api.EntityMessage_V1.parents) + return _internal_parents(index); +} +inline std::string* EntityMessage_V1::mutable_parents(int index) { + // @@protoc_insertion_point(field_mutable:api.EntityMessage_V1.parents) + return parents_.Mutable(index); +} +inline void EntityMessage_V1::set_parents(int index, const std::string& value) { + // @@protoc_insertion_point(field_set:api.EntityMessage_V1.parents) + parents_.Mutable(index)->assign(value); +} +inline void EntityMessage_V1::set_parents(int index, std::string&& value) { + // @@protoc_insertion_point(field_set:api.EntityMessage_V1.parents) + parents_.Mutable(index)->assign(std::move(value)); +} +inline void EntityMessage_V1::set_parents(int index, const char* value) { + GOOGLE_DCHECK(value != nullptr); + parents_.Mutable(index)->assign(value); + // @@protoc_insertion_point(field_set_char:api.EntityMessage_V1.parents) +} +inline void EntityMessage_V1::set_parents(int index, const char* value, size_t size) { + parents_.Mutable(index)->assign( + reinterpret_cast<const char*>(value), size); + // @@protoc_insertion_point(field_set_pointer:api.EntityMessage_V1.parents) +} +inline std::string* EntityMessage_V1::_internal_add_parents() { + return parents_.Add(); +} +inline void EntityMessage_V1::add_parents(const std::string& value) { + parents_.Add()->assign(value); + // @@protoc_insertion_point(field_add:api.EntityMessage_V1.parents) +} +inline void EntityMessage_V1::add_parents(std::string&& value) { + parents_.Add(std::move(value)); + // @@protoc_insertion_point(field_add:api.EntityMessage_V1.parents) +} +inline void EntityMessage_V1::add_parents(const char* value) { + GOOGLE_DCHECK(value != nullptr); + parents_.Add()->assign(value); + // @@protoc_insertion_point(field_add_char:api.EntityMessage_V1.parents) +} +inline void EntityMessage_V1::add_parents(const char* value, size_t size) { + parents_.Add()->assign(reinterpret_cast<const char*>(value), size); + // @@protoc_insertion_point(field_add_pointer:api.EntityMessage_V1.parents) +} +inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& +EntityMessage_V1::parents() const { + // @@protoc_insertion_point(field_list:api.EntityMessage_V1.parents) + return parents_; +} +inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* +EntityMessage_V1::mutable_parents() { + // @@protoc_insertion_point(field_mutable_list:api.EntityMessage_V1.parents) + return &parents_; +} + +// repeated string children = 9; +inline int EntityMessage_V1::_internal_children_size() const { + return children_.size(); +} +inline int EntityMessage_V1::children_size() const { + return _internal_children_size(); +} +inline void EntityMessage_V1::clear_children() { + children_.Clear(); +} +inline std::string* EntityMessage_V1::add_children() { + // @@protoc_insertion_point(field_add_mutable:api.EntityMessage_V1.children) + return _internal_add_children(); +} +inline const std::string& EntityMessage_V1::_internal_children(int index) const { + return children_.Get(index); +} +inline const std::string& EntityMessage_V1::children(int index) const { + // @@protoc_insertion_point(field_get:api.EntityMessage_V1.children) + return _internal_children(index); +} +inline std::string* EntityMessage_V1::mutable_children(int index) { + // @@protoc_insertion_point(field_mutable:api.EntityMessage_V1.children) + return children_.Mutable(index); +} +inline void EntityMessage_V1::set_children(int index, const std::string& value) { + // @@protoc_insertion_point(field_set:api.EntityMessage_V1.children) + children_.Mutable(index)->assign(value); +} +inline void EntityMessage_V1::set_children(int index, std::string&& value) { + // @@protoc_insertion_point(field_set:api.EntityMessage_V1.children) + children_.Mutable(index)->assign(std::move(value)); +} +inline void EntityMessage_V1::set_children(int index, const char* value) { + GOOGLE_DCHECK(value != nullptr); + children_.Mutable(index)->assign(value); + // @@protoc_insertion_point(field_set_char:api.EntityMessage_V1.children) +} +inline void EntityMessage_V1::set_children(int index, const char* value, size_t size) { + children_.Mutable(index)->assign( + reinterpret_cast<const char*>(value), size); + // @@protoc_insertion_point(field_set_pointer:api.EntityMessage_V1.children) +} +inline std::string* EntityMessage_V1::_internal_add_children() { + return children_.Add(); +} +inline void EntityMessage_V1::add_children(const std::string& value) { + children_.Add()->assign(value); + // @@protoc_insertion_point(field_add:api.EntityMessage_V1.children) +} +inline void EntityMessage_V1::add_children(std::string&& value) { + children_.Add(std::move(value)); + // @@protoc_insertion_point(field_add:api.EntityMessage_V1.children) +} +inline void EntityMessage_V1::add_children(const char* value) { + GOOGLE_DCHECK(value != nullptr); + children_.Add()->assign(value); + // @@protoc_insertion_point(field_add_char:api.EntityMessage_V1.children) +} +inline void EntityMessage_V1::add_children(const char* value, size_t size) { + children_.Add()->assign(reinterpret_cast<const char*>(value), size); + // @@protoc_insertion_point(field_add_pointer:api.EntityMessage_V1.children) +} +inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& +EntityMessage_V1::children() const { + // @@protoc_insertion_point(field_list:api.EntityMessage_V1.children) + return children_; +} +inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* +EntityMessage_V1::mutable_children() { + // @@protoc_insertion_point(field_mutable_list:api.EntityMessage_V1.children) + return &children_; +} + +// repeated string viewed = 12; +inline int EntityMessage_V1::_internal_viewed_size() const { + return viewed_.size(); +} +inline int EntityMessage_V1::viewed_size() const { + return _internal_viewed_size(); +} +inline void EntityMessage_V1::clear_viewed() { + viewed_.Clear(); +} +inline std::string* EntityMessage_V1::add_viewed() { + // @@protoc_insertion_point(field_add_mutable:api.EntityMessage_V1.viewed) + return _internal_add_viewed(); +} +inline const std::string& EntityMessage_V1::_internal_viewed(int index) const { + return viewed_.Get(index); +} +inline const std::string& EntityMessage_V1::viewed(int index) const { + // @@protoc_insertion_point(field_get:api.EntityMessage_V1.viewed) + return _internal_viewed(index); +} +inline std::string* EntityMessage_V1::mutable_viewed(int index) { + // @@protoc_insertion_point(field_mutable:api.EntityMessage_V1.viewed) + return viewed_.Mutable(index); +} +inline void EntityMessage_V1::set_viewed(int index, const std::string& value) { + // @@protoc_insertion_point(field_set:api.EntityMessage_V1.viewed) + viewed_.Mutable(index)->assign(value); +} +inline void EntityMessage_V1::set_viewed(int index, std::string&& value) { + // @@protoc_insertion_point(field_set:api.EntityMessage_V1.viewed) + viewed_.Mutable(index)->assign(std::move(value)); +} +inline void EntityMessage_V1::set_viewed(int index, const char* value) { + GOOGLE_DCHECK(value != nullptr); + viewed_.Mutable(index)->assign(value); + // @@protoc_insertion_point(field_set_char:api.EntityMessage_V1.viewed) +} +inline void EntityMessage_V1::set_viewed(int index, const char* value, size_t size) { + viewed_.Mutable(index)->assign( + reinterpret_cast<const char*>(value), size); + // @@protoc_insertion_point(field_set_pointer:api.EntityMessage_V1.viewed) +} +inline std::string* EntityMessage_V1::_internal_add_viewed() { + return viewed_.Add(); +} +inline void EntityMessage_V1::add_viewed(const std::string& value) { + viewed_.Add()->assign(value); + // @@protoc_insertion_point(field_add:api.EntityMessage_V1.viewed) +} +inline void EntityMessage_V1::add_viewed(std::string&& value) { + viewed_.Add(std::move(value)); + // @@protoc_insertion_point(field_add:api.EntityMessage_V1.viewed) +} +inline void EntityMessage_V1::add_viewed(const char* value) { + GOOGLE_DCHECK(value != nullptr); + viewed_.Add()->assign(value); + // @@protoc_insertion_point(field_add_char:api.EntityMessage_V1.viewed) +} +inline void EntityMessage_V1::add_viewed(const char* value, size_t size) { + viewed_.Add()->assign(reinterpret_cast<const char*>(value), size); + // @@protoc_insertion_point(field_add_pointer:api.EntityMessage_V1.viewed) +} +inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& +EntityMessage_V1::viewed() const { + // @@protoc_insertion_point(field_list:api.EntityMessage_V1.viewed) + return viewed_; +} +inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* +EntityMessage_V1::mutable_viewed() { + // @@protoc_insertion_point(field_mutable_list:api.EntityMessage_V1.viewed) + return &viewed_; +} + +// repeated string viewers = 13; +inline int EntityMessage_V1::_internal_viewers_size() const { + return viewers_.size(); +} +inline int EntityMessage_V1::viewers_size() const { + return _internal_viewers_size(); +} +inline void EntityMessage_V1::clear_viewers() { + viewers_.Clear(); +} +inline std::string* EntityMessage_V1::add_viewers() { + // @@protoc_insertion_point(field_add_mutable:api.EntityMessage_V1.viewers) + return _internal_add_viewers(); +} +inline const std::string& EntityMessage_V1::_internal_viewers(int index) const { + return viewers_.Get(index); +} +inline const std::string& EntityMessage_V1::viewers(int index) const { + // @@protoc_insertion_point(field_get:api.EntityMessage_V1.viewers) + return _internal_viewers(index); +} +inline std::string* EntityMessage_V1::mutable_viewers(int index) { + // @@protoc_insertion_point(field_mutable:api.EntityMessage_V1.viewers) + return viewers_.Mutable(index); +} +inline void EntityMessage_V1::set_viewers(int index, const std::string& value) { + // @@protoc_insertion_point(field_set:api.EntityMessage_V1.viewers) + viewers_.Mutable(index)->assign(value); +} +inline void EntityMessage_V1::set_viewers(int index, std::string&& value) { + // @@protoc_insertion_point(field_set:api.EntityMessage_V1.viewers) + viewers_.Mutable(index)->assign(std::move(value)); +} +inline void EntityMessage_V1::set_viewers(int index, const char* value) { + GOOGLE_DCHECK(value != nullptr); + viewers_.Mutable(index)->assign(value); + // @@protoc_insertion_point(field_set_char:api.EntityMessage_V1.viewers) +} +inline void EntityMessage_V1::set_viewers(int index, const char* value, size_t size) { + viewers_.Mutable(index)->assign( + reinterpret_cast<const char*>(value), size); + // @@protoc_insertion_point(field_set_pointer:api.EntityMessage_V1.viewers) +} +inline std::string* EntityMessage_V1::_internal_add_viewers() { + return viewers_.Add(); +} +inline void EntityMessage_V1::add_viewers(const std::string& value) { + viewers_.Add()->assign(value); + // @@protoc_insertion_point(field_add:api.EntityMessage_V1.viewers) +} +inline void EntityMessage_V1::add_viewers(std::string&& value) { + viewers_.Add(std::move(value)); + // @@protoc_insertion_point(field_add:api.EntityMessage_V1.viewers) +} +inline void EntityMessage_V1::add_viewers(const char* value) { + GOOGLE_DCHECK(value != nullptr); + viewers_.Add()->assign(value); + // @@protoc_insertion_point(field_add_char:api.EntityMessage_V1.viewers) +} +inline void EntityMessage_V1::add_viewers(const char* value, size_t size) { + viewers_.Add()->assign(reinterpret_cast<const char*>(value), size); + // @@protoc_insertion_point(field_add_pointer:api.EntityMessage_V1.viewers) +} +inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& +EntityMessage_V1::viewers() const { + // @@protoc_insertion_point(field_list:api.EntityMessage_V1.viewers) + return viewers_; +} +inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* +EntityMessage_V1::mutable_viewers() { + // @@protoc_insertion_point(field_mutable_list:api.EntityMessage_V1.viewers) + return &viewers_; +} + +// int64 stamp = 11; +inline void EntityMessage_V1::clear_stamp() { + stamp_ = PROTOBUF_LONGLONG(0); +} +inline ::PROTOBUF_NAMESPACE_ID::int64 EntityMessage_V1::_internal_stamp() const { + return stamp_; +} +inline ::PROTOBUF_NAMESPACE_ID::int64 EntityMessage_V1::stamp() const { + // @@protoc_insertion_point(field_get:api.EntityMessage_V1.stamp) + return _internal_stamp(); +} +inline void EntityMessage_V1::_internal_set_stamp(::PROTOBUF_NAMESPACE_ID::int64 value) { + + stamp_ = value; +} +inline void EntityMessage_V1::set_stamp(::PROTOBUF_NAMESPACE_ID::int64 value) { + _internal_set_stamp(value); + // @@protoc_insertion_point(field_set:api.EntityMessage_V1.stamp) +} + +// string otpSecret = 14; +inline void EntityMessage_V1::clear_otpsecret() { + otpsecret_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline const std::string& EntityMessage_V1::otpsecret() const { + // @@protoc_insertion_point(field_get:api.EntityMessage_V1.otpSecret) + return _internal_otpsecret(); +} +inline void EntityMessage_V1::set_otpsecret(const std::string& value) { + _internal_set_otpsecret(value); + // @@protoc_insertion_point(field_set:api.EntityMessage_V1.otpSecret) +} +inline std::string* EntityMessage_V1::mutable_otpsecret() { + // @@protoc_insertion_point(field_mutable:api.EntityMessage_V1.otpSecret) + return _internal_mutable_otpsecret(); +} +inline const std::string& EntityMessage_V1::_internal_otpsecret() const { + return otpsecret_.GetNoArena(); +} +inline void EntityMessage_V1::_internal_set_otpsecret(const std::string& value) { + + otpsecret_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value); +} +inline void EntityMessage_V1::set_otpsecret(std::string&& value) { + + otpsecret_.SetNoArena( + &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); + // @@protoc_insertion_point(field_set_rvalue:api.EntityMessage_V1.otpSecret) +} +inline void EntityMessage_V1::set_otpsecret(const char* value) { + GOOGLE_DCHECK(value != nullptr); + + otpsecret_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); + // @@protoc_insertion_point(field_set_char:api.EntityMessage_V1.otpSecret) +} +inline void EntityMessage_V1::set_otpsecret(const char* value, size_t size) { + + otpsecret_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + ::std::string(reinterpret_cast<const char*>(value), size)); + // @@protoc_insertion_point(field_set_pointer:api.EntityMessage_V1.otpSecret) +} +inline std::string* EntityMessage_V1::_internal_mutable_otpsecret() { + + return otpsecret_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline std::string* EntityMessage_V1::release_otpsecret() { + // @@protoc_insertion_point(field_release:api.EntityMessage_V1.otpSecret) + + return otpsecret_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline void EntityMessage_V1::set_allocated_otpsecret(std::string* otpsecret) { + if (otpsecret != nullptr) { + + } else { + + } + otpsecret_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), otpsecret); + // @@protoc_insertion_point(field_set_allocated:api.EntityMessage_V1.otpSecret) +} + +// bool activated = 15; +inline void EntityMessage_V1::clear_activated() { + activated_ = false; +} +inline bool EntityMessage_V1::_internal_activated() const { + return activated_; +} +inline bool EntityMessage_V1::activated() const { + // @@protoc_insertion_point(field_get:api.EntityMessage_V1.activated) + return _internal_activated(); +} +inline void EntityMessage_V1::_internal_set_activated(bool value) { + + activated_ = value; +} +inline void EntityMessage_V1::set_activated(bool value) { + _internal_set_activated(value); + // @@protoc_insertion_point(field_set:api.EntityMessage_V1.activated) +} + +// repeated string authenticationKeys = 16; +inline int EntityMessage_V1::_internal_authenticationkeys_size() const { + return authenticationkeys_.size(); +} +inline int EntityMessage_V1::authenticationkeys_size() const { + return _internal_authenticationkeys_size(); +} +inline void EntityMessage_V1::clear_authenticationkeys() { + authenticationkeys_.Clear(); +} +inline std::string* EntityMessage_V1::add_authenticationkeys() { + // @@protoc_insertion_point(field_add_mutable:api.EntityMessage_V1.authenticationKeys) + return _internal_add_authenticationkeys(); +} +inline const std::string& EntityMessage_V1::_internal_authenticationkeys(int index) const { + return authenticationkeys_.Get(index); +} +inline const std::string& EntityMessage_V1::authenticationkeys(int index) const { + // @@protoc_insertion_point(field_get:api.EntityMessage_V1.authenticationKeys) + return _internal_authenticationkeys(index); +} +inline std::string* EntityMessage_V1::mutable_authenticationkeys(int index) { + // @@protoc_insertion_point(field_mutable:api.EntityMessage_V1.authenticationKeys) + return authenticationkeys_.Mutable(index); +} +inline void EntityMessage_V1::set_authenticationkeys(int index, const std::string& value) { + // @@protoc_insertion_point(field_set:api.EntityMessage_V1.authenticationKeys) + authenticationkeys_.Mutable(index)->assign(value); +} +inline void EntityMessage_V1::set_authenticationkeys(int index, std::string&& value) { + // @@protoc_insertion_point(field_set:api.EntityMessage_V1.authenticationKeys) + authenticationkeys_.Mutable(index)->assign(std::move(value)); +} +inline void EntityMessage_V1::set_authenticationkeys(int index, const char* value) { + GOOGLE_DCHECK(value != nullptr); + authenticationkeys_.Mutable(index)->assign(value); + // @@protoc_insertion_point(field_set_char:api.EntityMessage_V1.authenticationKeys) +} +inline void EntityMessage_V1::set_authenticationkeys(int index, const char* value, size_t size) { + authenticationkeys_.Mutable(index)->assign( + reinterpret_cast<const char*>(value), size); + // @@protoc_insertion_point(field_set_pointer:api.EntityMessage_V1.authenticationKeys) +} +inline std::string* EntityMessage_V1::_internal_add_authenticationkeys() { + return authenticationkeys_.Add(); +} +inline void EntityMessage_V1::add_authenticationkeys(const std::string& value) { + authenticationkeys_.Add()->assign(value); + // @@protoc_insertion_point(field_add:api.EntityMessage_V1.authenticationKeys) +} +inline void EntityMessage_V1::add_authenticationkeys(std::string&& value) { + authenticationkeys_.Add(std::move(value)); + // @@protoc_insertion_point(field_add:api.EntityMessage_V1.authenticationKeys) +} +inline void EntityMessage_V1::add_authenticationkeys(const char* value) { + GOOGLE_DCHECK(value != nullptr); + authenticationkeys_.Add()->assign(value); + // @@protoc_insertion_point(field_add_char:api.EntityMessage_V1.authenticationKeys) +} +inline void EntityMessage_V1::add_authenticationkeys(const char* value, size_t size) { + authenticationkeys_.Add()->assign(reinterpret_cast<const char*>(value), size); + // @@protoc_insertion_point(field_add_pointer:api.EntityMessage_V1.authenticationKeys) +} +inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& +EntityMessage_V1::authenticationkeys() const { + // @@protoc_insertion_point(field_list:api.EntityMessage_V1.authenticationKeys) + return authenticationkeys_; +} +inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* +EntityMessage_V1::mutable_authenticationkeys() { + // @@protoc_insertion_point(field_mutable_list:api.EntityMessage_V1.authenticationKeys) + return &authenticationkeys_; +} + +// repeated string certificates = 17; +inline int EntityMessage_V1::_internal_certificates_size() const { + return certificates_.size(); +} +inline int EntityMessage_V1::certificates_size() const { + return _internal_certificates_size(); +} +inline void EntityMessage_V1::clear_certificates() { + certificates_.Clear(); +} +inline std::string* EntityMessage_V1::add_certificates() { + // @@protoc_insertion_point(field_add_mutable:api.EntityMessage_V1.certificates) + return _internal_add_certificates(); +} +inline const std::string& EntityMessage_V1::_internal_certificates(int index) const { + return certificates_.Get(index); +} +inline const std::string& EntityMessage_V1::certificates(int index) const { + // @@protoc_insertion_point(field_get:api.EntityMessage_V1.certificates) + return _internal_certificates(index); +} +inline std::string* EntityMessage_V1::mutable_certificates(int index) { + // @@protoc_insertion_point(field_mutable:api.EntityMessage_V1.certificates) + return certificates_.Mutable(index); +} +inline void EntityMessage_V1::set_certificates(int index, const std::string& value) { + // @@protoc_insertion_point(field_set:api.EntityMessage_V1.certificates) + certificates_.Mutable(index)->assign(value); +} +inline void EntityMessage_V1::set_certificates(int index, std::string&& value) { + // @@protoc_insertion_point(field_set:api.EntityMessage_V1.certificates) + certificates_.Mutable(index)->assign(std::move(value)); +} +inline void EntityMessage_V1::set_certificates(int index, const char* value) { + GOOGLE_DCHECK(value != nullptr); + certificates_.Mutable(index)->assign(value); + // @@protoc_insertion_point(field_set_char:api.EntityMessage_V1.certificates) +} +inline void EntityMessage_V1::set_certificates(int index, const char* value, size_t size) { + certificates_.Mutable(index)->assign( + reinterpret_cast<const char*>(value), size); + // @@protoc_insertion_point(field_set_pointer:api.EntityMessage_V1.certificates) +} +inline std::string* EntityMessage_V1::_internal_add_certificates() { + return certificates_.Add(); +} +inline void EntityMessage_V1::add_certificates(const std::string& value) { + certificates_.Add()->assign(value); + // @@protoc_insertion_point(field_add:api.EntityMessage_V1.certificates) +} +inline void EntityMessage_V1::add_certificates(std::string&& value) { + certificates_.Add(std::move(value)); + // @@protoc_insertion_point(field_add:api.EntityMessage_V1.certificates) +} +inline void EntityMessage_V1::add_certificates(const char* value) { + GOOGLE_DCHECK(value != nullptr); + certificates_.Add()->assign(value); + // @@protoc_insertion_point(field_add_char:api.EntityMessage_V1.certificates) +} +inline void EntityMessage_V1::add_certificates(const char* value, size_t size) { + certificates_.Add()->assign(reinterpret_cast<const char*>(value), size); + // @@protoc_insertion_point(field_add_pointer:api.EntityMessage_V1.certificates) +} +inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& +EntityMessage_V1::certificates() const { + // @@protoc_insertion_point(field_list:api.EntityMessage_V1.certificates) + return certificates_; +} +inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* +EntityMessage_V1::mutable_certificates() { + // @@protoc_insertion_point(field_mutable_list:api.EntityMessage_V1.certificates) + return &certificates_; +} + +// map<string, int64> passportsCounters = 21; +inline int EntityMessage_V1::_internal_passportscounters_size() const { + return passportscounters_.size(); +} +inline int EntityMessage_V1::passportscounters_size() const { + return _internal_passportscounters_size(); +} +inline void EntityMessage_V1::clear_passportscounters() { + passportscounters_.Clear(); +} +inline const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::PROTOBUF_NAMESPACE_ID::int64 >& +EntityMessage_V1::_internal_passportscounters() const { + return passportscounters_.GetMap(); +} +inline const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::PROTOBUF_NAMESPACE_ID::int64 >& +EntityMessage_V1::passportscounters() const { + // @@protoc_insertion_point(field_map:api.EntityMessage_V1.passportsCounters) + return _internal_passportscounters(); +} +inline ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::PROTOBUF_NAMESPACE_ID::int64 >* +EntityMessage_V1::_internal_mutable_passportscounters() { + return passportscounters_.MutableMap(); +} +inline ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::PROTOBUF_NAMESPACE_ID::int64 >* +EntityMessage_V1::mutable_passportscounters() { + // @@protoc_insertion_point(field_mutable_map:api.EntityMessage_V1.passportsCounters) + return _internal_mutable_passportscounters(); +} + +// map<string, .api.ContactStatus> contactStatuses = 22; +inline int EntityMessage_V1::_internal_contactstatuses_size() const { + return contactstatuses_.size(); +} +inline int EntityMessage_V1::contactstatuses_size() const { + return _internal_contactstatuses_size(); +} +inline void EntityMessage_V1::clear_contactstatuses() { + contactstatuses_.Clear(); +} +inline const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::ContactStatus >& +EntityMessage_V1::_internal_contactstatuses() const { + return contactstatuses_.GetMap(); +} +inline const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::ContactStatus >& +EntityMessage_V1::contactstatuses() const { + // @@protoc_insertion_point(field_map:api.EntityMessage_V1.contactStatuses) + return _internal_contactstatuses(); +} +inline ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::ContactStatus >* +EntityMessage_V1::_internal_mutable_contactstatuses() { + return contactstatuses_.MutableMap(); +} +inline ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::ContactStatus >* +EntityMessage_V1::mutable_contactstatuses() { + // @@protoc_insertion_point(field_mutable_map:api.EntityMessage_V1.contactStatuses) + return _internal_mutable_contactstatuses(); +} + +// string entityCertificate = 18; +inline void EntityMessage_V1::clear_entitycertificate() { + entitycertificate_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline const std::string& EntityMessage_V1::entitycertificate() const { + // @@protoc_insertion_point(field_get:api.EntityMessage_V1.entityCertificate) + return _internal_entitycertificate(); +} +inline void EntityMessage_V1::set_entitycertificate(const std::string& value) { + _internal_set_entitycertificate(value); + // @@protoc_insertion_point(field_set:api.EntityMessage_V1.entityCertificate) +} +inline std::string* EntityMessage_V1::mutable_entitycertificate() { + // @@protoc_insertion_point(field_mutable:api.EntityMessage_V1.entityCertificate) + return _internal_mutable_entitycertificate(); +} +inline const std::string& EntityMessage_V1::_internal_entitycertificate() const { + return entitycertificate_.GetNoArena(); +} +inline void EntityMessage_V1::_internal_set_entitycertificate(const std::string& value) { + + entitycertificate_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value); +} +inline void EntityMessage_V1::set_entitycertificate(std::string&& value) { + + entitycertificate_.SetNoArena( + &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); + // @@protoc_insertion_point(field_set_rvalue:api.EntityMessage_V1.entityCertificate) +} +inline void EntityMessage_V1::set_entitycertificate(const char* value) { + GOOGLE_DCHECK(value != nullptr); + + entitycertificate_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); + // @@protoc_insertion_point(field_set_char:api.EntityMessage_V1.entityCertificate) +} +inline void EntityMessage_V1::set_entitycertificate(const char* value, size_t size) { + + entitycertificate_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + ::std::string(reinterpret_cast<const char*>(value), size)); + // @@protoc_insertion_point(field_set_pointer:api.EntityMessage_V1.entityCertificate) +} +inline std::string* EntityMessage_V1::_internal_mutable_entitycertificate() { + + return entitycertificate_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline std::string* EntityMessage_V1::release_entitycertificate() { + // @@protoc_insertion_point(field_release:api.EntityMessage_V1.entityCertificate) + + return entitycertificate_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline void EntityMessage_V1::set_allocated_entitycertificate(std::string* entitycertificate) { + if (entitycertificate != nullptr) { + + } else { + + } + entitycertificate_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), entitycertificate); + // @@protoc_insertion_point(field_set_allocated:api.EntityMessage_V1.entityCertificate) +} + +// repeated string symmetricKeys = 19; +inline int EntityMessage_V1::_internal_symmetrickeys_size() const { + return symmetrickeys_.size(); +} +inline int EntityMessage_V1::symmetrickeys_size() const { + return _internal_symmetrickeys_size(); +} +inline void EntityMessage_V1::clear_symmetrickeys() { + symmetrickeys_.Clear(); +} +inline std::string* EntityMessage_V1::add_symmetrickeys() { + // @@protoc_insertion_point(field_add_mutable:api.EntityMessage_V1.symmetricKeys) + return _internal_add_symmetrickeys(); +} +inline const std::string& EntityMessage_V1::_internal_symmetrickeys(int index) const { + return symmetrickeys_.Get(index); +} +inline const std::string& EntityMessage_V1::symmetrickeys(int index) const { + // @@protoc_insertion_point(field_get:api.EntityMessage_V1.symmetricKeys) + return _internal_symmetrickeys(index); +} +inline std::string* EntityMessage_V1::mutable_symmetrickeys(int index) { + // @@protoc_insertion_point(field_mutable:api.EntityMessage_V1.symmetricKeys) + return symmetrickeys_.Mutable(index); +} +inline void EntityMessage_V1::set_symmetrickeys(int index, const std::string& value) { + // @@protoc_insertion_point(field_set:api.EntityMessage_V1.symmetricKeys) + symmetrickeys_.Mutable(index)->assign(value); +} +inline void EntityMessage_V1::set_symmetrickeys(int index, std::string&& value) { + // @@protoc_insertion_point(field_set:api.EntityMessage_V1.symmetricKeys) + symmetrickeys_.Mutable(index)->assign(std::move(value)); +} +inline void EntityMessage_V1::set_symmetrickeys(int index, const char* value) { + GOOGLE_DCHECK(value != nullptr); + symmetrickeys_.Mutable(index)->assign(value); + // @@protoc_insertion_point(field_set_char:api.EntityMessage_V1.symmetricKeys) +} +inline void EntityMessage_V1::set_symmetrickeys(int index, const char* value, size_t size) { + symmetrickeys_.Mutable(index)->assign( + reinterpret_cast<const char*>(value), size); + // @@protoc_insertion_point(field_set_pointer:api.EntityMessage_V1.symmetricKeys) +} +inline std::string* EntityMessage_V1::_internal_add_symmetrickeys() { + return symmetrickeys_.Add(); +} +inline void EntityMessage_V1::add_symmetrickeys(const std::string& value) { + symmetrickeys_.Add()->assign(value); + // @@protoc_insertion_point(field_add:api.EntityMessage_V1.symmetricKeys) +} +inline void EntityMessage_V1::add_symmetrickeys(std::string&& value) { + symmetrickeys_.Add(std::move(value)); + // @@protoc_insertion_point(field_add:api.EntityMessage_V1.symmetricKeys) +} +inline void EntityMessage_V1::add_symmetrickeys(const char* value) { + GOOGLE_DCHECK(value != nullptr); + symmetrickeys_.Add()->assign(value); + // @@protoc_insertion_point(field_add_char:api.EntityMessage_V1.symmetricKeys) +} +inline void EntityMessage_V1::add_symmetrickeys(const char* value, size_t size) { + symmetrickeys_.Add()->assign(reinterpret_cast<const char*>(value), size); + // @@protoc_insertion_point(field_add_pointer:api.EntityMessage_V1.symmetricKeys) +} +inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& +EntityMessage_V1::symmetrickeys() const { + // @@protoc_insertion_point(field_list:api.EntityMessage_V1.symmetricKeys) + return symmetrickeys_; +} +inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* +EntityMessage_V1::mutable_symmetrickeys() { + // @@protoc_insertion_point(field_mutable_list:api.EntityMessage_V1.symmetricKeys) + return &symmetrickeys_; +} + +// int64 created = 20; +inline void EntityMessage_V1::clear_created() { + created_ = PROTOBUF_LONGLONG(0); +} +inline ::PROTOBUF_NAMESPACE_ID::int64 EntityMessage_V1::_internal_created() const { + return created_; +} +inline ::PROTOBUF_NAMESPACE_ID::int64 EntityMessage_V1::created() const { + // @@protoc_insertion_point(field_get:api.EntityMessage_V1.created) + return _internal_created(); +} +inline void EntityMessage_V1::_internal_set_created(::PROTOBUF_NAMESPACE_ID::int64 value) { + + created_ = value; +} +inline void EntityMessage_V1::set_created(::PROTOBUF_NAMESPACE_ID::int64 value) { + _internal_set_created(value); + // @@protoc_insertion_point(field_set:api.EntityMessage_V1.created) +} + +// bool temporary = 23; +inline void EntityMessage_V1::clear_temporary() { + temporary_ = false; +} +inline bool EntityMessage_V1::_internal_temporary() const { + return temporary_; +} +inline bool EntityMessage_V1::temporary() const { + // @@protoc_insertion_point(field_get:api.EntityMessage_V1.temporary) + return _internal_temporary(); +} +inline void EntityMessage_V1::_internal_set_temporary(bool value) { + + temporary_ = value; +} +inline void EntityMessage_V1::set_temporary(bool value) { + _internal_set_temporary(value); + // @@protoc_insertion_point(field_set:api.EntityMessage_V1.temporary) +} + +// repeated string pendingSharingRequests = 24; +inline int EntityMessage_V1::_internal_pendingsharingrequests_size() const { + return pendingsharingrequests_.size(); +} +inline int EntityMessage_V1::pendingsharingrequests_size() const { + return _internal_pendingsharingrequests_size(); +} +inline void EntityMessage_V1::clear_pendingsharingrequests() { + pendingsharingrequests_.Clear(); +} +inline std::string* EntityMessage_V1::add_pendingsharingrequests() { + // @@protoc_insertion_point(field_add_mutable:api.EntityMessage_V1.pendingSharingRequests) + return _internal_add_pendingsharingrequests(); +} +inline const std::string& EntityMessage_V1::_internal_pendingsharingrequests(int index) const { + return pendingsharingrequests_.Get(index); +} +inline const std::string& EntityMessage_V1::pendingsharingrequests(int index) const { + // @@protoc_insertion_point(field_get:api.EntityMessage_V1.pendingSharingRequests) + return _internal_pendingsharingrequests(index); +} +inline std::string* EntityMessage_V1::mutable_pendingsharingrequests(int index) { + // @@protoc_insertion_point(field_mutable:api.EntityMessage_V1.pendingSharingRequests) + return pendingsharingrequests_.Mutable(index); +} +inline void EntityMessage_V1::set_pendingsharingrequests(int index, const std::string& value) { + // @@protoc_insertion_point(field_set:api.EntityMessage_V1.pendingSharingRequests) + pendingsharingrequests_.Mutable(index)->assign(value); +} +inline void EntityMessage_V1::set_pendingsharingrequests(int index, std::string&& value) { + // @@protoc_insertion_point(field_set:api.EntityMessage_V1.pendingSharingRequests) + pendingsharingrequests_.Mutable(index)->assign(std::move(value)); +} +inline void EntityMessage_V1::set_pendingsharingrequests(int index, const char* value) { + GOOGLE_DCHECK(value != nullptr); + pendingsharingrequests_.Mutable(index)->assign(value); + // @@protoc_insertion_point(field_set_char:api.EntityMessage_V1.pendingSharingRequests) +} +inline void EntityMessage_V1::set_pendingsharingrequests(int index, const char* value, size_t size) { + pendingsharingrequests_.Mutable(index)->assign( + reinterpret_cast<const char*>(value), size); + // @@protoc_insertion_point(field_set_pointer:api.EntityMessage_V1.pendingSharingRequests) +} +inline std::string* EntityMessage_V1::_internal_add_pendingsharingrequests() { + return pendingsharingrequests_.Add(); +} +inline void EntityMessage_V1::add_pendingsharingrequests(const std::string& value) { + pendingsharingrequests_.Add()->assign(value); + // @@protoc_insertion_point(field_add:api.EntityMessage_V1.pendingSharingRequests) +} +inline void EntityMessage_V1::add_pendingsharingrequests(std::string&& value) { + pendingsharingrequests_.Add(std::move(value)); + // @@protoc_insertion_point(field_add:api.EntityMessage_V1.pendingSharingRequests) +} +inline void EntityMessage_V1::add_pendingsharingrequests(const char* value) { + GOOGLE_DCHECK(value != nullptr); + pendingsharingrequests_.Add()->assign(value); + // @@protoc_insertion_point(field_add_char:api.EntityMessage_V1.pendingSharingRequests) +} +inline void EntityMessage_V1::add_pendingsharingrequests(const char* value, size_t size) { + pendingsharingrequests_.Add()->assign(reinterpret_cast<const char*>(value), size); + // @@protoc_insertion_point(field_add_pointer:api.EntityMessage_V1.pendingSharingRequests) +} +inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& +EntityMessage_V1::pendingsharingrequests() const { + // @@protoc_insertion_point(field_list:api.EntityMessage_V1.pendingSharingRequests) + return pendingsharingrequests_; +} +inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* +EntityMessage_V1::mutable_pendingsharingrequests() { + // @@protoc_insertion_point(field_mutable_list:api.EntityMessage_V1.pendingSharingRequests) + return &pendingsharingrequests_; +} + +// repeated string rejectedSharingRequests = 25; +inline int EntityMessage_V1::_internal_rejectedsharingrequests_size() const { + return rejectedsharingrequests_.size(); +} +inline int EntityMessage_V1::rejectedsharingrequests_size() const { + return _internal_rejectedsharingrequests_size(); +} +inline void EntityMessage_V1::clear_rejectedsharingrequests() { + rejectedsharingrequests_.Clear(); +} +inline std::string* EntityMessage_V1::add_rejectedsharingrequests() { + // @@protoc_insertion_point(field_add_mutable:api.EntityMessage_V1.rejectedSharingRequests) + return _internal_add_rejectedsharingrequests(); +} +inline const std::string& EntityMessage_V1::_internal_rejectedsharingrequests(int index) const { + return rejectedsharingrequests_.Get(index); +} +inline const std::string& EntityMessage_V1::rejectedsharingrequests(int index) const { + // @@protoc_insertion_point(field_get:api.EntityMessage_V1.rejectedSharingRequests) + return _internal_rejectedsharingrequests(index); +} +inline std::string* EntityMessage_V1::mutable_rejectedsharingrequests(int index) { + // @@protoc_insertion_point(field_mutable:api.EntityMessage_V1.rejectedSharingRequests) + return rejectedsharingrequests_.Mutable(index); +} +inline void EntityMessage_V1::set_rejectedsharingrequests(int index, const std::string& value) { + // @@protoc_insertion_point(field_set:api.EntityMessage_V1.rejectedSharingRequests) + rejectedsharingrequests_.Mutable(index)->assign(value); +} +inline void EntityMessage_V1::set_rejectedsharingrequests(int index, std::string&& value) { + // @@protoc_insertion_point(field_set:api.EntityMessage_V1.rejectedSharingRequests) + rejectedsharingrequests_.Mutable(index)->assign(std::move(value)); +} +inline void EntityMessage_V1::set_rejectedsharingrequests(int index, const char* value) { + GOOGLE_DCHECK(value != nullptr); + rejectedsharingrequests_.Mutable(index)->assign(value); + // @@protoc_insertion_point(field_set_char:api.EntityMessage_V1.rejectedSharingRequests) +} +inline void EntityMessage_V1::set_rejectedsharingrequests(int index, const char* value, size_t size) { + rejectedsharingrequests_.Mutable(index)->assign( + reinterpret_cast<const char*>(value), size); + // @@protoc_insertion_point(field_set_pointer:api.EntityMessage_V1.rejectedSharingRequests) +} +inline std::string* EntityMessage_V1::_internal_add_rejectedsharingrequests() { + return rejectedsharingrequests_.Add(); +} +inline void EntityMessage_V1::add_rejectedsharingrequests(const std::string& value) { + rejectedsharingrequests_.Add()->assign(value); + // @@protoc_insertion_point(field_add:api.EntityMessage_V1.rejectedSharingRequests) +} +inline void EntityMessage_V1::add_rejectedsharingrequests(std::string&& value) { + rejectedsharingrequests_.Add(std::move(value)); + // @@protoc_insertion_point(field_add:api.EntityMessage_V1.rejectedSharingRequests) +} +inline void EntityMessage_V1::add_rejectedsharingrequests(const char* value) { + GOOGLE_DCHECK(value != nullptr); + rejectedsharingrequests_.Add()->assign(value); + // @@protoc_insertion_point(field_add_char:api.EntityMessage_V1.rejectedSharingRequests) +} +inline void EntityMessage_V1::add_rejectedsharingrequests(const char* value, size_t size) { + rejectedsharingrequests_.Add()->assign(reinterpret_cast<const char*>(value), size); + // @@protoc_insertion_point(field_add_pointer:api.EntityMessage_V1.rejectedSharingRequests) +} +inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& +EntityMessage_V1::rejectedsharingrequests() const { + // @@protoc_insertion_point(field_list:api.EntityMessage_V1.rejectedSharingRequests) + return rejectedsharingrequests_; +} +inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* +EntityMessage_V1::mutable_rejectedsharingrequests() { + // @@protoc_insertion_point(field_mutable_list:api.EntityMessage_V1.rejectedSharingRequests) + return &rejectedsharingrequests_; +} + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// EntityMessage_V2 + +// string uuid = 1; +inline void EntityMessage_V2::clear_uuid() { + uuid_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline const std::string& EntityMessage_V2::uuid() const { + // @@protoc_insertion_point(field_get:api.EntityMessage_V2.uuid) + return _internal_uuid(); +} +inline void EntityMessage_V2::set_uuid(const std::string& value) { + _internal_set_uuid(value); + // @@protoc_insertion_point(field_set:api.EntityMessage_V2.uuid) +} +inline std::string* EntityMessage_V2::mutable_uuid() { + // @@protoc_insertion_point(field_mutable:api.EntityMessage_V2.uuid) + return _internal_mutable_uuid(); +} +inline const std::string& EntityMessage_V2::_internal_uuid() const { + return uuid_.GetNoArena(); +} +inline void EntityMessage_V2::_internal_set_uuid(const std::string& value) { + + uuid_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value); +} +inline void EntityMessage_V2::set_uuid(std::string&& value) { + + uuid_.SetNoArena( + &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); + // @@protoc_insertion_point(field_set_rvalue:api.EntityMessage_V2.uuid) +} +inline void EntityMessage_V2::set_uuid(const char* value) { + GOOGLE_DCHECK(value != nullptr); + + uuid_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); + // @@protoc_insertion_point(field_set_char:api.EntityMessage_V2.uuid) +} +inline void EntityMessage_V2::set_uuid(const char* value, size_t size) { + + uuid_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + ::std::string(reinterpret_cast<const char*>(value), size)); + // @@protoc_insertion_point(field_set_pointer:api.EntityMessage_V2.uuid) +} +inline std::string* EntityMessage_V2::_internal_mutable_uuid() { + + return uuid_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline std::string* EntityMessage_V2::release_uuid() { + // @@protoc_insertion_point(field_release:api.EntityMessage_V2.uuid) + + return uuid_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline void EntityMessage_V2::set_allocated_uuid(std::string* uuid) { + if (uuid != nullptr) { + + } else { + + } + uuid_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), uuid); + // @@protoc_insertion_point(field_set_allocated:api.EntityMessage_V2.uuid) +} + +// .api.EntityType type = 2; +inline void EntityMessage_V2::clear_type() { + type_ = 0; +} +inline ::api::EntityType EntityMessage_V2::_internal_type() const { + return static_cast< ::api::EntityType >(type_); +} +inline ::api::EntityType EntityMessage_V2::type() const { + // @@protoc_insertion_point(field_get:api.EntityMessage_V2.type) + return _internal_type(); +} +inline void EntityMessage_V2::_internal_set_type(::api::EntityType value) { + + type_ = value; +} +inline void EntityMessage_V2::set_type(::api::EntityType value) { + _internal_set_type(value); + // @@protoc_insertion_point(field_set:api.EntityMessage_V2.type) +} + +// map<string, .api.ClaimTagsMap_V1> claims = 3; +inline int EntityMessage_V2::_internal_claims_size() const { + return claims_.size(); +} +inline int EntityMessage_V2::claims_size() const { + return _internal_claims_size(); +} +inline void EntityMessage_V2::clear_claims() { + claims_.Clear(); +} +inline const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::ClaimTagsMap_V1 >& +EntityMessage_V2::_internal_claims() const { + return claims_.GetMap(); +} +inline const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::ClaimTagsMap_V1 >& +EntityMessage_V2::claims() const { + // @@protoc_insertion_point(field_map:api.EntityMessage_V2.claims) + return _internal_claims(); +} +inline ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::ClaimTagsMap_V1 >* +EntityMessage_V2::_internal_mutable_claims() { + return claims_.MutableMap(); +} +inline ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::ClaimTagsMap_V1 >* +EntityMessage_V2::mutable_claims() { + // @@protoc_insertion_point(field_mutable_map:api.EntityMessage_V2.claims) + return _internal_mutable_claims(); +} + +// map<string, .api.RelationStatus> guarded = 4; +inline int EntityMessage_V2::_internal_guarded_size() const { + return guarded_.size(); +} +inline int EntityMessage_V2::guarded_size() const { + return _internal_guarded_size(); +} +inline void EntityMessage_V2::clear_guarded() { + guarded_.Clear(); +} +inline const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >& +EntityMessage_V2::_internal_guarded() const { + return guarded_.GetMap(); +} +inline const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >& +EntityMessage_V2::guarded() const { + // @@protoc_insertion_point(field_map:api.EntityMessage_V2.guarded) + return _internal_guarded(); +} +inline ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >* +EntityMessage_V2::_internal_mutable_guarded() { + return guarded_.MutableMap(); +} +inline ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >* +EntityMessage_V2::mutable_guarded() { + // @@protoc_insertion_point(field_mutable_map:api.EntityMessage_V2.guarded) + return _internal_mutable_guarded(); +} + +// map<string, .api.RelationStatus> guardians = 5; +inline int EntityMessage_V2::_internal_guardians_size() const { + return guardians_.size(); +} +inline int EntityMessage_V2::guardians_size() const { + return _internal_guardians_size(); +} +inline void EntityMessage_V2::clear_guardians() { + guardians_.Clear(); +} +inline const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >& +EntityMessage_V2::_internal_guardians() const { + return guardians_.GetMap(); +} +inline const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >& +EntityMessage_V2::guardians() const { + // @@protoc_insertion_point(field_map:api.EntityMessage_V2.guardians) + return _internal_guardians(); +} +inline ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >* +EntityMessage_V2::_internal_mutable_guardians() { + return guardians_.MutableMap(); +} +inline ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >* +EntityMessage_V2::mutable_guardians() { + // @@protoc_insertion_point(field_mutable_map:api.EntityMessage_V2.guardians) + return _internal_mutable_guardians(); +} + +// map<string, .api.RelationStatus> members = 6; +inline int EntityMessage_V2::_internal_members_size() const { + return members_.size(); +} +inline int EntityMessage_V2::members_size() const { + return _internal_members_size(); +} +inline void EntityMessage_V2::clear_members() { + members_.Clear(); +} +inline const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >& +EntityMessage_V2::_internal_members() const { + return members_.GetMap(); +} +inline const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >& +EntityMessage_V2::members() const { + // @@protoc_insertion_point(field_map:api.EntityMessage_V2.members) + return _internal_members(); +} +inline ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >* +EntityMessage_V2::_internal_mutable_members() { + return members_.MutableMap(); +} +inline ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >* +EntityMessage_V2::mutable_members() { + // @@protoc_insertion_point(field_mutable_map:api.EntityMessage_V2.members) + return _internal_mutable_members(); +} + +// map<string, .api.RelationStatus> memberOf = 7; +inline int EntityMessage_V2::_internal_memberof_size() const { + return memberof_.size(); +} +inline int EntityMessage_V2::memberof_size() const { + return _internal_memberof_size(); +} +inline void EntityMessage_V2::clear_memberof() { + memberof_.Clear(); +} +inline const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >& +EntityMessage_V2::_internal_memberof() const { + return memberof_.GetMap(); +} +inline const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >& +EntityMessage_V2::memberof() const { + // @@protoc_insertion_point(field_map:api.EntityMessage_V2.memberOf) + return _internal_memberof(); +} +inline ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >* +EntityMessage_V2::_internal_mutable_memberof() { + return memberof_.MutableMap(); +} +inline ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >* +EntityMessage_V2::mutable_memberof() { + // @@protoc_insertion_point(field_mutable_map:api.EntityMessage_V2.memberOf) + return _internal_mutable_memberof(); +} + +// map<string, .api.RelationStatus> parents = 8; +inline int EntityMessage_V2::_internal_parents_size() const { + return parents_.size(); +} +inline int EntityMessage_V2::parents_size() const { + return _internal_parents_size(); +} +inline void EntityMessage_V2::clear_parents() { + parents_.Clear(); +} +inline const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >& +EntityMessage_V2::_internal_parents() const { + return parents_.GetMap(); +} +inline const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >& +EntityMessage_V2::parents() const { + // @@protoc_insertion_point(field_map:api.EntityMessage_V2.parents) + return _internal_parents(); +} +inline ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >* +EntityMessage_V2::_internal_mutable_parents() { + return parents_.MutableMap(); +} +inline ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >* +EntityMessage_V2::mutable_parents() { + // @@protoc_insertion_point(field_mutable_map:api.EntityMessage_V2.parents) + return _internal_mutable_parents(); +} + +// map<string, .api.RelationStatus> children = 9; +inline int EntityMessage_V2::_internal_children_size() const { + return children_.size(); +} +inline int EntityMessage_V2::children_size() const { + return _internal_children_size(); +} +inline void EntityMessage_V2::clear_children() { + children_.Clear(); +} +inline const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >& +EntityMessage_V2::_internal_children() const { + return children_.GetMap(); +} +inline const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >& +EntityMessage_V2::children() const { + // @@protoc_insertion_point(field_map:api.EntityMessage_V2.children) + return _internal_children(); +} +inline ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >* +EntityMessage_V2::_internal_mutable_children() { + return children_.MutableMap(); +} +inline ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >* +EntityMessage_V2::mutable_children() { + // @@protoc_insertion_point(field_mutable_map:api.EntityMessage_V2.children) + return _internal_mutable_children(); +} + +// map<string, .api.RelationStatus> viewed = 12; +inline int EntityMessage_V2::_internal_viewed_size() const { + return viewed_.size(); +} +inline int EntityMessage_V2::viewed_size() const { + return _internal_viewed_size(); +} +inline void EntityMessage_V2::clear_viewed() { + viewed_.Clear(); +} +inline const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >& +EntityMessage_V2::_internal_viewed() const { + return viewed_.GetMap(); +} +inline const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >& +EntityMessage_V2::viewed() const { + // @@protoc_insertion_point(field_map:api.EntityMessage_V2.viewed) + return _internal_viewed(); +} +inline ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >* +EntityMessage_V2::_internal_mutable_viewed() { + return viewed_.MutableMap(); +} +inline ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >* +EntityMessage_V2::mutable_viewed() { + // @@protoc_insertion_point(field_mutable_map:api.EntityMessage_V2.viewed) + return _internal_mutable_viewed(); +} + +// map<string, .api.RelationStatus> viewers = 13; +inline int EntityMessage_V2::_internal_viewers_size() const { + return viewers_.size(); +} +inline int EntityMessage_V2::viewers_size() const { + return _internal_viewers_size(); +} +inline void EntityMessage_V2::clear_viewers() { + viewers_.Clear(); +} +inline const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >& +EntityMessage_V2::_internal_viewers() const { + return viewers_.GetMap(); +} +inline const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >& +EntityMessage_V2::viewers() const { + // @@protoc_insertion_point(field_map:api.EntityMessage_V2.viewers) + return _internal_viewers(); +} +inline ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >* +EntityMessage_V2::_internal_mutable_viewers() { + return viewers_.MutableMap(); +} +inline ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >* +EntityMessage_V2::mutable_viewers() { + // @@protoc_insertion_point(field_mutable_map:api.EntityMessage_V2.viewers) + return _internal_mutable_viewers(); +} + +// int64 stamp = 11; +inline void EntityMessage_V2::clear_stamp() { + stamp_ = PROTOBUF_LONGLONG(0); +} +inline ::PROTOBUF_NAMESPACE_ID::int64 EntityMessage_V2::_internal_stamp() const { + return stamp_; +} +inline ::PROTOBUF_NAMESPACE_ID::int64 EntityMessage_V2::stamp() const { + // @@protoc_insertion_point(field_get:api.EntityMessage_V2.stamp) + return _internal_stamp(); +} +inline void EntityMessage_V2::_internal_set_stamp(::PROTOBUF_NAMESPACE_ID::int64 value) { + + stamp_ = value; +} +inline void EntityMessage_V2::set_stamp(::PROTOBUF_NAMESPACE_ID::int64 value) { + _internal_set_stamp(value); + // @@protoc_insertion_point(field_set:api.EntityMessage_V2.stamp) +} + +// string otpSecret = 14; +inline void EntityMessage_V2::clear_otpsecret() { + otpsecret_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline const std::string& EntityMessage_V2::otpsecret() const { + // @@protoc_insertion_point(field_get:api.EntityMessage_V2.otpSecret) + return _internal_otpsecret(); +} +inline void EntityMessage_V2::set_otpsecret(const std::string& value) { + _internal_set_otpsecret(value); + // @@protoc_insertion_point(field_set:api.EntityMessage_V2.otpSecret) +} +inline std::string* EntityMessage_V2::mutable_otpsecret() { + // @@protoc_insertion_point(field_mutable:api.EntityMessage_V2.otpSecret) + return _internal_mutable_otpsecret(); +} +inline const std::string& EntityMessage_V2::_internal_otpsecret() const { + return otpsecret_.GetNoArena(); +} +inline void EntityMessage_V2::_internal_set_otpsecret(const std::string& value) { + + otpsecret_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value); +} +inline void EntityMessage_V2::set_otpsecret(std::string&& value) { + + otpsecret_.SetNoArena( + &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); + // @@protoc_insertion_point(field_set_rvalue:api.EntityMessage_V2.otpSecret) +} +inline void EntityMessage_V2::set_otpsecret(const char* value) { + GOOGLE_DCHECK(value != nullptr); + + otpsecret_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); + // @@protoc_insertion_point(field_set_char:api.EntityMessage_V2.otpSecret) +} +inline void EntityMessage_V2::set_otpsecret(const char* value, size_t size) { + + otpsecret_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + ::std::string(reinterpret_cast<const char*>(value), size)); + // @@protoc_insertion_point(field_set_pointer:api.EntityMessage_V2.otpSecret) +} +inline std::string* EntityMessage_V2::_internal_mutable_otpsecret() { + + return otpsecret_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline std::string* EntityMessage_V2::release_otpsecret() { + // @@protoc_insertion_point(field_release:api.EntityMessage_V2.otpSecret) + + return otpsecret_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline void EntityMessage_V2::set_allocated_otpsecret(std::string* otpsecret) { + if (otpsecret != nullptr) { + + } else { + + } + otpsecret_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), otpsecret); + // @@protoc_insertion_point(field_set_allocated:api.EntityMessage_V2.otpSecret) +} + +// bool activated = 15; +inline void EntityMessage_V2::clear_activated() { + activated_ = false; +} +inline bool EntityMessage_V2::_internal_activated() const { + return activated_; +} +inline bool EntityMessage_V2::activated() const { + // @@protoc_insertion_point(field_get:api.EntityMessage_V2.activated) + return _internal_activated(); +} +inline void EntityMessage_V2::_internal_set_activated(bool value) { + + activated_ = value; +} +inline void EntityMessage_V2::set_activated(bool value) { + _internal_set_activated(value); + // @@protoc_insertion_point(field_set:api.EntityMessage_V2.activated) +} + +// bool blocked = 31; +inline void EntityMessage_V2::clear_blocked() { + blocked_ = false; +} +inline bool EntityMessage_V2::_internal_blocked() const { + return blocked_; +} +inline bool EntityMessage_V2::blocked() const { + // @@protoc_insertion_point(field_get:api.EntityMessage_V2.blocked) + return _internal_blocked(); +} +inline void EntityMessage_V2::_internal_set_blocked(bool value) { + + blocked_ = value; +} +inline void EntityMessage_V2::set_blocked(bool value) { + _internal_set_blocked(value); + // @@protoc_insertion_point(field_set:api.EntityMessage_V2.blocked) +} + +// int64 lastLogin = 32; +inline void EntityMessage_V2::clear_lastlogin() { + lastlogin_ = PROTOBUF_LONGLONG(0); +} +inline ::PROTOBUF_NAMESPACE_ID::int64 EntityMessage_V2::_internal_lastlogin() const { + return lastlogin_; +} +inline ::PROTOBUF_NAMESPACE_ID::int64 EntityMessage_V2::lastlogin() const { + // @@protoc_insertion_point(field_get:api.EntityMessage_V2.lastLogin) + return _internal_lastlogin(); +} +inline void EntityMessage_V2::_internal_set_lastlogin(::PROTOBUF_NAMESPACE_ID::int64 value) { + + lastlogin_ = value; +} +inline void EntityMessage_V2::set_lastlogin(::PROTOBUF_NAMESPACE_ID::int64 value) { + _internal_set_lastlogin(value); + // @@protoc_insertion_point(field_set:api.EntityMessage_V2.lastLogin) +} + +// repeated string authenticationKeys = 16; +inline int EntityMessage_V2::_internal_authenticationkeys_size() const { + return authenticationkeys_.size(); +} +inline int EntityMessage_V2::authenticationkeys_size() const { + return _internal_authenticationkeys_size(); +} +inline void EntityMessage_V2::clear_authenticationkeys() { + authenticationkeys_.Clear(); +} +inline std::string* EntityMessage_V2::add_authenticationkeys() { + // @@protoc_insertion_point(field_add_mutable:api.EntityMessage_V2.authenticationKeys) + return _internal_add_authenticationkeys(); +} +inline const std::string& EntityMessage_V2::_internal_authenticationkeys(int index) const { + return authenticationkeys_.Get(index); +} +inline const std::string& EntityMessage_V2::authenticationkeys(int index) const { + // @@protoc_insertion_point(field_get:api.EntityMessage_V2.authenticationKeys) + return _internal_authenticationkeys(index); +} +inline std::string* EntityMessage_V2::mutable_authenticationkeys(int index) { + // @@protoc_insertion_point(field_mutable:api.EntityMessage_V2.authenticationKeys) + return authenticationkeys_.Mutable(index); +} +inline void EntityMessage_V2::set_authenticationkeys(int index, const std::string& value) { + // @@protoc_insertion_point(field_set:api.EntityMessage_V2.authenticationKeys) + authenticationkeys_.Mutable(index)->assign(value); +} +inline void EntityMessage_V2::set_authenticationkeys(int index, std::string&& value) { + // @@protoc_insertion_point(field_set:api.EntityMessage_V2.authenticationKeys) + authenticationkeys_.Mutable(index)->assign(std::move(value)); +} +inline void EntityMessage_V2::set_authenticationkeys(int index, const char* value) { + GOOGLE_DCHECK(value != nullptr); + authenticationkeys_.Mutable(index)->assign(value); + // @@protoc_insertion_point(field_set_char:api.EntityMessage_V2.authenticationKeys) +} +inline void EntityMessage_V2::set_authenticationkeys(int index, const char* value, size_t size) { + authenticationkeys_.Mutable(index)->assign( + reinterpret_cast<const char*>(value), size); + // @@protoc_insertion_point(field_set_pointer:api.EntityMessage_V2.authenticationKeys) +} +inline std::string* EntityMessage_V2::_internal_add_authenticationkeys() { + return authenticationkeys_.Add(); +} +inline void EntityMessage_V2::add_authenticationkeys(const std::string& value) { + authenticationkeys_.Add()->assign(value); + // @@protoc_insertion_point(field_add:api.EntityMessage_V2.authenticationKeys) +} +inline void EntityMessage_V2::add_authenticationkeys(std::string&& value) { + authenticationkeys_.Add(std::move(value)); + // @@protoc_insertion_point(field_add:api.EntityMessage_V2.authenticationKeys) +} +inline void EntityMessage_V2::add_authenticationkeys(const char* value) { + GOOGLE_DCHECK(value != nullptr); + authenticationkeys_.Add()->assign(value); + // @@protoc_insertion_point(field_add_char:api.EntityMessage_V2.authenticationKeys) +} +inline void EntityMessage_V2::add_authenticationkeys(const char* value, size_t size) { + authenticationkeys_.Add()->assign(reinterpret_cast<const char*>(value), size); + // @@protoc_insertion_point(field_add_pointer:api.EntityMessage_V2.authenticationKeys) +} +inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& +EntityMessage_V2::authenticationkeys() const { + // @@protoc_insertion_point(field_list:api.EntityMessage_V2.authenticationKeys) + return authenticationkeys_; +} +inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* +EntityMessage_V2::mutable_authenticationkeys() { + // @@protoc_insertion_point(field_mutable_list:api.EntityMessage_V2.authenticationKeys) + return &authenticationkeys_; +} + +// repeated string certificates = 17; +inline int EntityMessage_V2::_internal_certificates_size() const { + return certificates_.size(); +} +inline int EntityMessage_V2::certificates_size() const { + return _internal_certificates_size(); +} +inline void EntityMessage_V2::clear_certificates() { + certificates_.Clear(); +} +inline std::string* EntityMessage_V2::add_certificates() { + // @@protoc_insertion_point(field_add_mutable:api.EntityMessage_V2.certificates) + return _internal_add_certificates(); +} +inline const std::string& EntityMessage_V2::_internal_certificates(int index) const { + return certificates_.Get(index); +} +inline const std::string& EntityMessage_V2::certificates(int index) const { + // @@protoc_insertion_point(field_get:api.EntityMessage_V2.certificates) + return _internal_certificates(index); +} +inline std::string* EntityMessage_V2::mutable_certificates(int index) { + // @@protoc_insertion_point(field_mutable:api.EntityMessage_V2.certificates) + return certificates_.Mutable(index); +} +inline void EntityMessage_V2::set_certificates(int index, const std::string& value) { + // @@protoc_insertion_point(field_set:api.EntityMessage_V2.certificates) + certificates_.Mutable(index)->assign(value); +} +inline void EntityMessage_V2::set_certificates(int index, std::string&& value) { + // @@protoc_insertion_point(field_set:api.EntityMessage_V2.certificates) + certificates_.Mutable(index)->assign(std::move(value)); +} +inline void EntityMessage_V2::set_certificates(int index, const char* value) { + GOOGLE_DCHECK(value != nullptr); + certificates_.Mutable(index)->assign(value); + // @@protoc_insertion_point(field_set_char:api.EntityMessage_V2.certificates) +} +inline void EntityMessage_V2::set_certificates(int index, const char* value, size_t size) { + certificates_.Mutable(index)->assign( + reinterpret_cast<const char*>(value), size); + // @@protoc_insertion_point(field_set_pointer:api.EntityMessage_V2.certificates) +} +inline std::string* EntityMessage_V2::_internal_add_certificates() { + return certificates_.Add(); +} +inline void EntityMessage_V2::add_certificates(const std::string& value) { + certificates_.Add()->assign(value); + // @@protoc_insertion_point(field_add:api.EntityMessage_V2.certificates) +} +inline void EntityMessage_V2::add_certificates(std::string&& value) { + certificates_.Add(std::move(value)); + // @@protoc_insertion_point(field_add:api.EntityMessage_V2.certificates) +} +inline void EntityMessage_V2::add_certificates(const char* value) { + GOOGLE_DCHECK(value != nullptr); + certificates_.Add()->assign(value); + // @@protoc_insertion_point(field_add_char:api.EntityMessage_V2.certificates) +} +inline void EntityMessage_V2::add_certificates(const char* value, size_t size) { + certificates_.Add()->assign(reinterpret_cast<const char*>(value), size); + // @@protoc_insertion_point(field_add_pointer:api.EntityMessage_V2.certificates) +} +inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& +EntityMessage_V2::certificates() const { + // @@protoc_insertion_point(field_list:api.EntityMessage_V2.certificates) + return certificates_; +} +inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* +EntityMessage_V2::mutable_certificates() { + // @@protoc_insertion_point(field_mutable_list:api.EntityMessage_V2.certificates) + return &certificates_; +} + +// map<string, int64> passportsCounters = 21; +inline int EntityMessage_V2::_internal_passportscounters_size() const { + return passportscounters_.size(); +} +inline int EntityMessage_V2::passportscounters_size() const { + return _internal_passportscounters_size(); +} +inline void EntityMessage_V2::clear_passportscounters() { + passportscounters_.Clear(); +} +inline const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::PROTOBUF_NAMESPACE_ID::int64 >& +EntityMessage_V2::_internal_passportscounters() const { + return passportscounters_.GetMap(); +} +inline const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::PROTOBUF_NAMESPACE_ID::int64 >& +EntityMessage_V2::passportscounters() const { + // @@protoc_insertion_point(field_map:api.EntityMessage_V2.passportsCounters) + return _internal_passportscounters(); +} +inline ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::PROTOBUF_NAMESPACE_ID::int64 >* +EntityMessage_V2::_internal_mutable_passportscounters() { + return passportscounters_.MutableMap(); +} +inline ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::PROTOBUF_NAMESPACE_ID::int64 >* +EntityMessage_V2::mutable_passportscounters() { + // @@protoc_insertion_point(field_mutable_map:api.EntityMessage_V2.passportsCounters) + return _internal_mutable_passportscounters(); +} + +// map<string, .api.ContactStatus> contactStatuses = 22; +inline int EntityMessage_V2::_internal_contactstatuses_size() const { + return contactstatuses_.size(); +} +inline int EntityMessage_V2::contactstatuses_size() const { + return _internal_contactstatuses_size(); +} +inline void EntityMessage_V2::clear_contactstatuses() { + contactstatuses_.Clear(); +} +inline const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::ContactStatus >& +EntityMessage_V2::_internal_contactstatuses() const { + return contactstatuses_.GetMap(); +} +inline const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::ContactStatus >& +EntityMessage_V2::contactstatuses() const { + // @@protoc_insertion_point(field_map:api.EntityMessage_V2.contactStatuses) + return _internal_contactstatuses(); +} +inline ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::ContactStatus >* +EntityMessage_V2::_internal_mutable_contactstatuses() { + return contactstatuses_.MutableMap(); +} +inline ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::ContactStatus >* +EntityMessage_V2::mutable_contactstatuses() { + // @@protoc_insertion_point(field_mutable_map:api.EntityMessage_V2.contactStatuses) + return _internal_mutable_contactstatuses(); +} + +// string entityCertificate = 18; +inline void EntityMessage_V2::clear_entitycertificate() { + entitycertificate_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline const std::string& EntityMessage_V2::entitycertificate() const { + // @@protoc_insertion_point(field_get:api.EntityMessage_V2.entityCertificate) + return _internal_entitycertificate(); +} +inline void EntityMessage_V2::set_entitycertificate(const std::string& value) { + _internal_set_entitycertificate(value); + // @@protoc_insertion_point(field_set:api.EntityMessage_V2.entityCertificate) +} +inline std::string* EntityMessage_V2::mutable_entitycertificate() { + // @@protoc_insertion_point(field_mutable:api.EntityMessage_V2.entityCertificate) + return _internal_mutable_entitycertificate(); +} +inline const std::string& EntityMessage_V2::_internal_entitycertificate() const { + return entitycertificate_.GetNoArena(); +} +inline void EntityMessage_V2::_internal_set_entitycertificate(const std::string& value) { + + entitycertificate_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value); +} +inline void EntityMessage_V2::set_entitycertificate(std::string&& value) { + + entitycertificate_.SetNoArena( + &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); + // @@protoc_insertion_point(field_set_rvalue:api.EntityMessage_V2.entityCertificate) +} +inline void EntityMessage_V2::set_entitycertificate(const char* value) { + GOOGLE_DCHECK(value != nullptr); + + entitycertificate_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); + // @@protoc_insertion_point(field_set_char:api.EntityMessage_V2.entityCertificate) +} +inline void EntityMessage_V2::set_entitycertificate(const char* value, size_t size) { + + entitycertificate_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + ::std::string(reinterpret_cast<const char*>(value), size)); + // @@protoc_insertion_point(field_set_pointer:api.EntityMessage_V2.entityCertificate) +} +inline std::string* EntityMessage_V2::_internal_mutable_entitycertificate() { + + return entitycertificate_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline std::string* EntityMessage_V2::release_entitycertificate() { + // @@protoc_insertion_point(field_release:api.EntityMessage_V2.entityCertificate) + + return entitycertificate_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline void EntityMessage_V2::set_allocated_entitycertificate(std::string* entitycertificate) { + if (entitycertificate != nullptr) { + + } else { + + } + entitycertificate_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), entitycertificate); + // @@protoc_insertion_point(field_set_allocated:api.EntityMessage_V2.entityCertificate) +} + +// repeated string symmetricKeys = 19; +inline int EntityMessage_V2::_internal_symmetrickeys_size() const { + return symmetrickeys_.size(); +} +inline int EntityMessage_V2::symmetrickeys_size() const { + return _internal_symmetrickeys_size(); +} +inline void EntityMessage_V2::clear_symmetrickeys() { + symmetrickeys_.Clear(); +} +inline std::string* EntityMessage_V2::add_symmetrickeys() { + // @@protoc_insertion_point(field_add_mutable:api.EntityMessage_V2.symmetricKeys) + return _internal_add_symmetrickeys(); +} +inline const std::string& EntityMessage_V2::_internal_symmetrickeys(int index) const { + return symmetrickeys_.Get(index); +} +inline const std::string& EntityMessage_V2::symmetrickeys(int index) const { + // @@protoc_insertion_point(field_get:api.EntityMessage_V2.symmetricKeys) + return _internal_symmetrickeys(index); +} +inline std::string* EntityMessage_V2::mutable_symmetrickeys(int index) { + // @@protoc_insertion_point(field_mutable:api.EntityMessage_V2.symmetricKeys) + return symmetrickeys_.Mutable(index); +} +inline void EntityMessage_V2::set_symmetrickeys(int index, const std::string& value) { + // @@protoc_insertion_point(field_set:api.EntityMessage_V2.symmetricKeys) + symmetrickeys_.Mutable(index)->assign(value); +} +inline void EntityMessage_V2::set_symmetrickeys(int index, std::string&& value) { + // @@protoc_insertion_point(field_set:api.EntityMessage_V2.symmetricKeys) + symmetrickeys_.Mutable(index)->assign(std::move(value)); +} +inline void EntityMessage_V2::set_symmetrickeys(int index, const char* value) { + GOOGLE_DCHECK(value != nullptr); + symmetrickeys_.Mutable(index)->assign(value); + // @@protoc_insertion_point(field_set_char:api.EntityMessage_V2.symmetricKeys) +} +inline void EntityMessage_V2::set_symmetrickeys(int index, const char* value, size_t size) { + symmetrickeys_.Mutable(index)->assign( + reinterpret_cast<const char*>(value), size); + // @@protoc_insertion_point(field_set_pointer:api.EntityMessage_V2.symmetricKeys) +} +inline std::string* EntityMessage_V2::_internal_add_symmetrickeys() { + return symmetrickeys_.Add(); +} +inline void EntityMessage_V2::add_symmetrickeys(const std::string& value) { + symmetrickeys_.Add()->assign(value); + // @@protoc_insertion_point(field_add:api.EntityMessage_V2.symmetricKeys) +} +inline void EntityMessage_V2::add_symmetrickeys(std::string&& value) { + symmetrickeys_.Add(std::move(value)); + // @@protoc_insertion_point(field_add:api.EntityMessage_V2.symmetricKeys) +} +inline void EntityMessage_V2::add_symmetrickeys(const char* value) { + GOOGLE_DCHECK(value != nullptr); + symmetrickeys_.Add()->assign(value); + // @@protoc_insertion_point(field_add_char:api.EntityMessage_V2.symmetricKeys) +} +inline void EntityMessage_V2::add_symmetrickeys(const char* value, size_t size) { + symmetrickeys_.Add()->assign(reinterpret_cast<const char*>(value), size); + // @@protoc_insertion_point(field_add_pointer:api.EntityMessage_V2.symmetricKeys) +} +inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& +EntityMessage_V2::symmetrickeys() const { + // @@protoc_insertion_point(field_list:api.EntityMessage_V2.symmetricKeys) + return symmetrickeys_; +} +inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* +EntityMessage_V2::mutable_symmetrickeys() { + // @@protoc_insertion_point(field_mutable_list:api.EntityMessage_V2.symmetricKeys) + return &symmetrickeys_; +} + +// int64 created = 20; +inline void EntityMessage_V2::clear_created() { + created_ = PROTOBUF_LONGLONG(0); +} +inline ::PROTOBUF_NAMESPACE_ID::int64 EntityMessage_V2::_internal_created() const { + return created_; +} +inline ::PROTOBUF_NAMESPACE_ID::int64 EntityMessage_V2::created() const { + // @@protoc_insertion_point(field_get:api.EntityMessage_V2.created) + return _internal_created(); +} +inline void EntityMessage_V2::_internal_set_created(::PROTOBUF_NAMESPACE_ID::int64 value) { + + created_ = value; +} +inline void EntityMessage_V2::set_created(::PROTOBUF_NAMESPACE_ID::int64 value) { + _internal_set_created(value); + // @@protoc_insertion_point(field_set:api.EntityMessage_V2.created) +} + +// bool temporary = 23; +inline void EntityMessage_V2::clear_temporary() { + temporary_ = false; +} +inline bool EntityMessage_V2::_internal_temporary() const { + return temporary_; +} +inline bool EntityMessage_V2::temporary() const { + // @@protoc_insertion_point(field_get:api.EntityMessage_V2.temporary) + return _internal_temporary(); +} +inline void EntityMessage_V2::_internal_set_temporary(bool value) { + + temporary_ = value; +} +inline void EntityMessage_V2::set_temporary(bool value) { + _internal_set_temporary(value); + // @@protoc_insertion_point(field_set:api.EntityMessage_V2.temporary) +} + +// repeated string pendingSharingRequests = 24; +inline int EntityMessage_V2::_internal_pendingsharingrequests_size() const { + return pendingsharingrequests_.size(); +} +inline int EntityMessage_V2::pendingsharingrequests_size() const { + return _internal_pendingsharingrequests_size(); +} +inline void EntityMessage_V2::clear_pendingsharingrequests() { + pendingsharingrequests_.Clear(); +} +inline std::string* EntityMessage_V2::add_pendingsharingrequests() { + // @@protoc_insertion_point(field_add_mutable:api.EntityMessage_V2.pendingSharingRequests) + return _internal_add_pendingsharingrequests(); +} +inline const std::string& EntityMessage_V2::_internal_pendingsharingrequests(int index) const { + return pendingsharingrequests_.Get(index); +} +inline const std::string& EntityMessage_V2::pendingsharingrequests(int index) const { + // @@protoc_insertion_point(field_get:api.EntityMessage_V2.pendingSharingRequests) + return _internal_pendingsharingrequests(index); +} +inline std::string* EntityMessage_V2::mutable_pendingsharingrequests(int index) { + // @@protoc_insertion_point(field_mutable:api.EntityMessage_V2.pendingSharingRequests) + return pendingsharingrequests_.Mutable(index); +} +inline void EntityMessage_V2::set_pendingsharingrequests(int index, const std::string& value) { + // @@protoc_insertion_point(field_set:api.EntityMessage_V2.pendingSharingRequests) + pendingsharingrequests_.Mutable(index)->assign(value); +} +inline void EntityMessage_V2::set_pendingsharingrequests(int index, std::string&& value) { + // @@protoc_insertion_point(field_set:api.EntityMessage_V2.pendingSharingRequests) + pendingsharingrequests_.Mutable(index)->assign(std::move(value)); +} +inline void EntityMessage_V2::set_pendingsharingrequests(int index, const char* value) { + GOOGLE_DCHECK(value != nullptr); + pendingsharingrequests_.Mutable(index)->assign(value); + // @@protoc_insertion_point(field_set_char:api.EntityMessage_V2.pendingSharingRequests) +} +inline void EntityMessage_V2::set_pendingsharingrequests(int index, const char* value, size_t size) { + pendingsharingrequests_.Mutable(index)->assign( + reinterpret_cast<const char*>(value), size); + // @@protoc_insertion_point(field_set_pointer:api.EntityMessage_V2.pendingSharingRequests) +} +inline std::string* EntityMessage_V2::_internal_add_pendingsharingrequests() { + return pendingsharingrequests_.Add(); +} +inline void EntityMessage_V2::add_pendingsharingrequests(const std::string& value) { + pendingsharingrequests_.Add()->assign(value); + // @@protoc_insertion_point(field_add:api.EntityMessage_V2.pendingSharingRequests) +} +inline void EntityMessage_V2::add_pendingsharingrequests(std::string&& value) { + pendingsharingrequests_.Add(std::move(value)); + // @@protoc_insertion_point(field_add:api.EntityMessage_V2.pendingSharingRequests) +} +inline void EntityMessage_V2::add_pendingsharingrequests(const char* value) { + GOOGLE_DCHECK(value != nullptr); + pendingsharingrequests_.Add()->assign(value); + // @@protoc_insertion_point(field_add_char:api.EntityMessage_V2.pendingSharingRequests) +} +inline void EntityMessage_V2::add_pendingsharingrequests(const char* value, size_t size) { + pendingsharingrequests_.Add()->assign(reinterpret_cast<const char*>(value), size); + // @@protoc_insertion_point(field_add_pointer:api.EntityMessage_V2.pendingSharingRequests) +} +inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& +EntityMessage_V2::pendingsharingrequests() const { + // @@protoc_insertion_point(field_list:api.EntityMessage_V2.pendingSharingRequests) + return pendingsharingrequests_; +} +inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* +EntityMessage_V2::mutable_pendingsharingrequests() { + // @@protoc_insertion_point(field_mutable_list:api.EntityMessage_V2.pendingSharingRequests) + return &pendingsharingrequests_; +} + +// repeated string rejectedSharingRequests = 25; +inline int EntityMessage_V2::_internal_rejectedsharingrequests_size() const { + return rejectedsharingrequests_.size(); +} +inline int EntityMessage_V2::rejectedsharingrequests_size() const { + return _internal_rejectedsharingrequests_size(); +} +inline void EntityMessage_V2::clear_rejectedsharingrequests() { + rejectedsharingrequests_.Clear(); +} +inline std::string* EntityMessage_V2::add_rejectedsharingrequests() { + // @@protoc_insertion_point(field_add_mutable:api.EntityMessage_V2.rejectedSharingRequests) + return _internal_add_rejectedsharingrequests(); +} +inline const std::string& EntityMessage_V2::_internal_rejectedsharingrequests(int index) const { + return rejectedsharingrequests_.Get(index); +} +inline const std::string& EntityMessage_V2::rejectedsharingrequests(int index) const { + // @@protoc_insertion_point(field_get:api.EntityMessage_V2.rejectedSharingRequests) + return _internal_rejectedsharingrequests(index); +} +inline std::string* EntityMessage_V2::mutable_rejectedsharingrequests(int index) { + // @@protoc_insertion_point(field_mutable:api.EntityMessage_V2.rejectedSharingRequests) + return rejectedsharingrequests_.Mutable(index); +} +inline void EntityMessage_V2::set_rejectedsharingrequests(int index, const std::string& value) { + // @@protoc_insertion_point(field_set:api.EntityMessage_V2.rejectedSharingRequests) + rejectedsharingrequests_.Mutable(index)->assign(value); +} +inline void EntityMessage_V2::set_rejectedsharingrequests(int index, std::string&& value) { + // @@protoc_insertion_point(field_set:api.EntityMessage_V2.rejectedSharingRequests) + rejectedsharingrequests_.Mutable(index)->assign(std::move(value)); +} +inline void EntityMessage_V2::set_rejectedsharingrequests(int index, const char* value) { + GOOGLE_DCHECK(value != nullptr); + rejectedsharingrequests_.Mutable(index)->assign(value); + // @@protoc_insertion_point(field_set_char:api.EntityMessage_V2.rejectedSharingRequests) +} +inline void EntityMessage_V2::set_rejectedsharingrequests(int index, const char* value, size_t size) { + rejectedsharingrequests_.Mutable(index)->assign( + reinterpret_cast<const char*>(value), size); + // @@protoc_insertion_point(field_set_pointer:api.EntityMessage_V2.rejectedSharingRequests) +} +inline std::string* EntityMessage_V2::_internal_add_rejectedsharingrequests() { + return rejectedsharingrequests_.Add(); +} +inline void EntityMessage_V2::add_rejectedsharingrequests(const std::string& value) { + rejectedsharingrequests_.Add()->assign(value); + // @@protoc_insertion_point(field_add:api.EntityMessage_V2.rejectedSharingRequests) +} +inline void EntityMessage_V2::add_rejectedsharingrequests(std::string&& value) { + rejectedsharingrequests_.Add(std::move(value)); + // @@protoc_insertion_point(field_add:api.EntityMessage_V2.rejectedSharingRequests) +} +inline void EntityMessage_V2::add_rejectedsharingrequests(const char* value) { + GOOGLE_DCHECK(value != nullptr); + rejectedsharingrequests_.Add()->assign(value); + // @@protoc_insertion_point(field_add_char:api.EntityMessage_V2.rejectedSharingRequests) +} +inline void EntityMessage_V2::add_rejectedsharingrequests(const char* value, size_t size) { + rejectedsharingrequests_.Add()->assign(reinterpret_cast<const char*>(value), size); + // @@protoc_insertion_point(field_add_pointer:api.EntityMessage_V2.rejectedSharingRequests) +} +inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& +EntityMessage_V2::rejectedsharingrequests() const { + // @@protoc_insertion_point(field_list:api.EntityMessage_V2.rejectedSharingRequests) + return rejectedsharingrequests_; +} +inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* +EntityMessage_V2::mutable_rejectedsharingrequests() { + // @@protoc_insertion_point(field_mutable_list:api.EntityMessage_V2.rejectedSharingRequests) + return &rejectedsharingrequests_; +} + +// bool deleted = 26; +inline void EntityMessage_V2::clear_deleted() { + deleted_ = false; +} +inline bool EntityMessage_V2::_internal_deleted() const { + return deleted_; +} +inline bool EntityMessage_V2::deleted() const { + // @@protoc_insertion_point(field_get:api.EntityMessage_V2.deleted) + return _internal_deleted(); +} +inline void EntityMessage_V2::_internal_set_deleted(bool value) { + + deleted_ = value; +} +inline void EntityMessage_V2::set_deleted(bool value) { + _internal_set_deleted(value); + // @@protoc_insertion_point(field_set:api.EntityMessage_V2.deleted) +} + +// map<string, .api.OrderStatus> orders = 27; +inline int EntityMessage_V2::_internal_orders_size() const { + return orders_.size(); +} +inline int EntityMessage_V2::orders_size() const { + return _internal_orders_size(); +} +inline void EntityMessage_V2::clear_orders() { + orders_.Clear(); +} +inline const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::OrderStatus >& +EntityMessage_V2::_internal_orders() const { + return orders_.GetMap(); +} +inline const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::OrderStatus >& +EntityMessage_V2::orders() const { + // @@protoc_insertion_point(field_map:api.EntityMessage_V2.orders) + return _internal_orders(); +} +inline ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::OrderStatus >* +EntityMessage_V2::_internal_mutable_orders() { + return orders_.MutableMap(); +} +inline ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::OrderStatus >* +EntityMessage_V2::mutable_orders() { + // @@protoc_insertion_point(field_mutable_map:api.EntityMessage_V2.orders) + return _internal_mutable_orders(); +} + +// map<string, .api.RelationStatus> systemParents = 28; +inline int EntityMessage_V2::_internal_systemparents_size() const { + return systemparents_.size(); +} +inline int EntityMessage_V2::systemparents_size() const { + return _internal_systemparents_size(); +} +inline void EntityMessage_V2::clear_systemparents() { + systemparents_.Clear(); +} +inline const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >& +EntityMessage_V2::_internal_systemparents() const { + return systemparents_.GetMap(); +} +inline const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >& +EntityMessage_V2::systemparents() const { + // @@protoc_insertion_point(field_map:api.EntityMessage_V2.systemParents) + return _internal_systemparents(); +} +inline ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >* +EntityMessage_V2::_internal_mutable_systemparents() { + return systemparents_.MutableMap(); +} +inline ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >* +EntityMessage_V2::mutable_systemparents() { + // @@protoc_insertion_point(field_mutable_map:api.EntityMessage_V2.systemParents) + return _internal_mutable_systemparents(); +} + +// map<string, .api.RelationStatus> systemChildren = 29; +inline int EntityMessage_V2::_internal_systemchildren_size() const { + return systemchildren_.size(); +} +inline int EntityMessage_V2::systemchildren_size() const { + return _internal_systemchildren_size(); +} +inline void EntityMessage_V2::clear_systemchildren() { + systemchildren_.Clear(); +} +inline const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >& +EntityMessage_V2::_internal_systemchildren() const { + return systemchildren_.GetMap(); +} +inline const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >& +EntityMessage_V2::systemchildren() const { + // @@protoc_insertion_point(field_map:api.EntityMessage_V2.systemChildren) + return _internal_systemchildren(); +} +inline ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >* +EntityMessage_V2::_internal_mutable_systemchildren() { + return systemchildren_.MutableMap(); +} +inline ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::RelationStatus >* +EntityMessage_V2::mutable_systemchildren() { + // @@protoc_insertion_point(field_mutable_map:api.EntityMessage_V2.systemChildren) + return _internal_mutable_systemchildren(); +} + +// bool shared = 30; +inline void EntityMessage_V2::clear_shared() { + shared_ = false; +} +inline bool EntityMessage_V2::_internal_shared() const { + return shared_; +} +inline bool EntityMessage_V2::shared() const { + // @@protoc_insertion_point(field_get:api.EntityMessage_V2.shared) + return _internal_shared(); +} +inline void EntityMessage_V2::_internal_set_shared(bool value) { + + shared_ = value; +} +inline void EntityMessage_V2::set_shared(bool value) { + _internal_set_shared(value); + // @@protoc_insertion_point(field_set:api.EntityMessage_V2.shared) +} + +// ------------------------------------------------------------------- + +// EntityMessageResponse + +// ------------------------------------------------------------------- + +// EntityList + +// repeated .api.EntityMessage_V2 history = 1; +inline int EntityList::_internal_history_size() const { + return history_.size(); +} +inline int EntityList::history_size() const { + return _internal_history_size(); +} +inline void EntityList::clear_history() { + history_.Clear(); +} +inline ::api::EntityMessage_V2* EntityList::mutable_history(int index) { + // @@protoc_insertion_point(field_mutable:api.EntityList.history) + return history_.Mutable(index); +} +inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::api::EntityMessage_V2 >* +EntityList::mutable_history() { + // @@protoc_insertion_point(field_mutable_list:api.EntityList.history) + return &history_; +} +inline const ::api::EntityMessage_V2& EntityList::_internal_history(int index) const { + return history_.Get(index); +} +inline const ::api::EntityMessage_V2& EntityList::history(int index) const { + // @@protoc_insertion_point(field_get:api.EntityList.history) + return _internal_history(index); +} +inline ::api::EntityMessage_V2* EntityList::_internal_add_history() { + return history_.Add(); +} +inline ::api::EntityMessage_V2* EntityList::add_history() { + // @@protoc_insertion_point(field_add:api.EntityList.history) + return _internal_add_history(); +} +inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::api::EntityMessage_V2 >& +EntityList::history() const { + // @@protoc_insertion_point(field_list:api.EntityList.history) + return history_; +} + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// EntityHistoryMessage + +// map<string, .api.EntityList> historyByUUID = 1; +inline int EntityHistoryMessage::_internal_historybyuuid_size() const { + return historybyuuid_.size(); +} +inline int EntityHistoryMessage::historybyuuid_size() const { + return _internal_historybyuuid_size(); +} +inline void EntityHistoryMessage::clear_historybyuuid() { + historybyuuid_.Clear(); +} +inline const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::EntityList >& +EntityHistoryMessage::_internal_historybyuuid() const { + return historybyuuid_.GetMap(); +} +inline const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::EntityList >& +EntityHistoryMessage::historybyuuid() const { + // @@protoc_insertion_point(field_map:api.EntityHistoryMessage.historyByUUID) + return _internal_historybyuuid(); +} +inline ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::EntityList >* +EntityHistoryMessage::_internal_mutable_historybyuuid() { + return historybyuuid_.MutableMap(); +} +inline ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::EntityList >* +EntityHistoryMessage::mutable_historybyuuid() { + // @@protoc_insertion_point(field_mutable_map:api.EntityHistoryMessage.historyByUUID) + return _internal_mutable_historybyuuid(); +} + +// ------------------------------------------------------------------- + +// EntitySearchMessage + +// string uuid = 1; +inline void EntitySearchMessage::clear_uuid() { + uuid_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline const std::string& EntitySearchMessage::uuid() const { + // @@protoc_insertion_point(field_get:api.EntitySearchMessage.uuid) + return _internal_uuid(); +} +inline void EntitySearchMessage::set_uuid(const std::string& value) { + _internal_set_uuid(value); + // @@protoc_insertion_point(field_set:api.EntitySearchMessage.uuid) +} +inline std::string* EntitySearchMessage::mutable_uuid() { + // @@protoc_insertion_point(field_mutable:api.EntitySearchMessage.uuid) + return _internal_mutable_uuid(); +} +inline const std::string& EntitySearchMessage::_internal_uuid() const { + return uuid_.GetNoArena(); +} +inline void EntitySearchMessage::_internal_set_uuid(const std::string& value) { + + uuid_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value); +} +inline void EntitySearchMessage::set_uuid(std::string&& value) { + + uuid_.SetNoArena( + &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); + // @@protoc_insertion_point(field_set_rvalue:api.EntitySearchMessage.uuid) +} +inline void EntitySearchMessage::set_uuid(const char* value) { + GOOGLE_DCHECK(value != nullptr); + + uuid_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); + // @@protoc_insertion_point(field_set_char:api.EntitySearchMessage.uuid) +} +inline void EntitySearchMessage::set_uuid(const char* value, size_t size) { + + uuid_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + ::std::string(reinterpret_cast<const char*>(value), size)); + // @@protoc_insertion_point(field_set_pointer:api.EntitySearchMessage.uuid) +} +inline std::string* EntitySearchMessage::_internal_mutable_uuid() { + + return uuid_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline std::string* EntitySearchMessage::release_uuid() { + // @@protoc_insertion_point(field_release:api.EntitySearchMessage.uuid) + + return uuid_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline void EntitySearchMessage::set_allocated_uuid(std::string* uuid) { + if (uuid != nullptr) { + + } else { + + } + uuid_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), uuid); + // @@protoc_insertion_point(field_set_allocated:api.EntitySearchMessage.uuid) +} + +// string from = 2; +inline void EntitySearchMessage::clear_from() { + from_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline const std::string& EntitySearchMessage::from() const { + // @@protoc_insertion_point(field_get:api.EntitySearchMessage.from) + return _internal_from(); +} +inline void EntitySearchMessage::set_from(const std::string& value) { + _internal_set_from(value); + // @@protoc_insertion_point(field_set:api.EntitySearchMessage.from) +} +inline std::string* EntitySearchMessage::mutable_from() { + // @@protoc_insertion_point(field_mutable:api.EntitySearchMessage.from) + return _internal_mutable_from(); +} +inline const std::string& EntitySearchMessage::_internal_from() const { + return from_.GetNoArena(); +} +inline void EntitySearchMessage::_internal_set_from(const std::string& value) { + + from_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value); +} +inline void EntitySearchMessage::set_from(std::string&& value) { + + from_.SetNoArena( + &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); + // @@protoc_insertion_point(field_set_rvalue:api.EntitySearchMessage.from) +} +inline void EntitySearchMessage::set_from(const char* value) { + GOOGLE_DCHECK(value != nullptr); + + from_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); + // @@protoc_insertion_point(field_set_char:api.EntitySearchMessage.from) +} +inline void EntitySearchMessage::set_from(const char* value, size_t size) { + + from_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + ::std::string(reinterpret_cast<const char*>(value), size)); + // @@protoc_insertion_point(field_set_pointer:api.EntitySearchMessage.from) +} +inline std::string* EntitySearchMessage::_internal_mutable_from() { + + return from_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline std::string* EntitySearchMessage::release_from() { + // @@protoc_insertion_point(field_release:api.EntitySearchMessage.from) + + return from_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline void EntitySearchMessage::set_allocated_from(std::string* from) { + if (from != nullptr) { + + } else { + + } + from_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from); + // @@protoc_insertion_point(field_set_allocated:api.EntitySearchMessage.from) +} + +// string to = 3; +inline void EntitySearchMessage::clear_to() { + to_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline const std::string& EntitySearchMessage::to() const { + // @@protoc_insertion_point(field_get:api.EntitySearchMessage.to) + return _internal_to(); +} +inline void EntitySearchMessage::set_to(const std::string& value) { + _internal_set_to(value); + // @@protoc_insertion_point(field_set:api.EntitySearchMessage.to) +} +inline std::string* EntitySearchMessage::mutable_to() { + // @@protoc_insertion_point(field_mutable:api.EntitySearchMessage.to) + return _internal_mutable_to(); +} +inline const std::string& EntitySearchMessage::_internal_to() const { + return to_.GetNoArena(); +} +inline void EntitySearchMessage::_internal_set_to(const std::string& value) { + + to_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value); +} +inline void EntitySearchMessage::set_to(std::string&& value) { + + to_.SetNoArena( + &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); + // @@protoc_insertion_point(field_set_rvalue:api.EntitySearchMessage.to) +} +inline void EntitySearchMessage::set_to(const char* value) { + GOOGLE_DCHECK(value != nullptr); + + to_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); + // @@protoc_insertion_point(field_set_char:api.EntitySearchMessage.to) +} +inline void EntitySearchMessage::set_to(const char* value, size_t size) { + + to_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + ::std::string(reinterpret_cast<const char*>(value), size)); + // @@protoc_insertion_point(field_set_pointer:api.EntitySearchMessage.to) +} +inline std::string* EntitySearchMessage::_internal_mutable_to() { + + return to_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline std::string* EntitySearchMessage::release_to() { + // @@protoc_insertion_point(field_release:api.EntitySearchMessage.to) + + return to_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline void EntitySearchMessage::set_allocated_to(std::string* to) { + if (to != nullptr) { + + } else { + + } + to_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), to); + // @@protoc_insertion_point(field_set_allocated:api.EntitySearchMessage.to) +} + +// .api.EntityType type = 4; +inline void EntitySearchMessage::clear_type() { + type_ = 0; +} +inline ::api::EntityType EntitySearchMessage::_internal_type() const { + return static_cast< ::api::EntityType >(type_); +} +inline ::api::EntityType EntitySearchMessage::type() const { + // @@protoc_insertion_point(field_get:api.EntitySearchMessage.type) + return _internal_type(); +} +inline void EntitySearchMessage::_internal_set_type(::api::EntityType value) { + + type_ = value; +} +inline void EntitySearchMessage::set_type(::api::EntityType value) { + _internal_set_type(value); + // @@protoc_insertion_point(field_set:api.EntitySearchMessage.type) +} + +// .api.SearchType searchType = 5; +inline void EntitySearchMessage::clear_searchtype() { + searchtype_ = 0; +} +inline ::api::SearchType EntitySearchMessage::_internal_searchtype() const { + return static_cast< ::api::SearchType >(searchtype_); +} +inline ::api::SearchType EntitySearchMessage::searchtype() const { + // @@protoc_insertion_point(field_get:api.EntitySearchMessage.searchType) + return _internal_searchtype(); +} +inline void EntitySearchMessage::_internal_set_searchtype(::api::SearchType value) { + + searchtype_ = value; +} +inline void EntitySearchMessage::set_searchtype(::api::SearchType value) { + _internal_set_searchtype(value); + // @@protoc_insertion_point(field_set:api.EntitySearchMessage.searchType) +} + +// ------------------------------------------------------------------- + +// ClaimInvitationMessage + +// string fromUUID = 1; +inline void ClaimInvitationMessage::clear_fromuuid() { + fromuuid_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline const std::string& ClaimInvitationMessage::fromuuid() const { + // @@protoc_insertion_point(field_get:api.ClaimInvitationMessage.fromUUID) + return _internal_fromuuid(); +} +inline void ClaimInvitationMessage::set_fromuuid(const std::string& value) { + _internal_set_fromuuid(value); + // @@protoc_insertion_point(field_set:api.ClaimInvitationMessage.fromUUID) +} +inline std::string* ClaimInvitationMessage::mutable_fromuuid() { + // @@protoc_insertion_point(field_mutable:api.ClaimInvitationMessage.fromUUID) + return _internal_mutable_fromuuid(); +} +inline const std::string& ClaimInvitationMessage::_internal_fromuuid() const { + return fromuuid_.GetNoArena(); +} +inline void ClaimInvitationMessage::_internal_set_fromuuid(const std::string& value) { + + fromuuid_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value); +} +inline void ClaimInvitationMessage::set_fromuuid(std::string&& value) { + + fromuuid_.SetNoArena( + &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); + // @@protoc_insertion_point(field_set_rvalue:api.ClaimInvitationMessage.fromUUID) +} +inline void ClaimInvitationMessage::set_fromuuid(const char* value) { + GOOGLE_DCHECK(value != nullptr); + + fromuuid_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); + // @@protoc_insertion_point(field_set_char:api.ClaimInvitationMessage.fromUUID) +} +inline void ClaimInvitationMessage::set_fromuuid(const char* value, size_t size) { + + fromuuid_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + ::std::string(reinterpret_cast<const char*>(value), size)); + // @@protoc_insertion_point(field_set_pointer:api.ClaimInvitationMessage.fromUUID) +} +inline std::string* ClaimInvitationMessage::_internal_mutable_fromuuid() { + + return fromuuid_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline std::string* ClaimInvitationMessage::release_fromuuid() { + // @@protoc_insertion_point(field_release:api.ClaimInvitationMessage.fromUUID) + + return fromuuid_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline void ClaimInvitationMessage::set_allocated_fromuuid(std::string* fromuuid) { + if (fromuuid != nullptr) { + + } else { + + } + fromuuid_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), fromuuid); + // @@protoc_insertion_point(field_set_allocated:api.ClaimInvitationMessage.fromUUID) +} + +// string toUUID = 2; +inline void ClaimInvitationMessage::clear_touuid() { + touuid_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline const std::string& ClaimInvitationMessage::touuid() const { + // @@protoc_insertion_point(field_get:api.ClaimInvitationMessage.toUUID) + return _internal_touuid(); +} +inline void ClaimInvitationMessage::set_touuid(const std::string& value) { + _internal_set_touuid(value); + // @@protoc_insertion_point(field_set:api.ClaimInvitationMessage.toUUID) +} +inline std::string* ClaimInvitationMessage::mutable_touuid() { + // @@protoc_insertion_point(field_mutable:api.ClaimInvitationMessage.toUUID) + return _internal_mutable_touuid(); +} +inline const std::string& ClaimInvitationMessage::_internal_touuid() const { + return touuid_.GetNoArena(); +} +inline void ClaimInvitationMessage::_internal_set_touuid(const std::string& value) { + + touuid_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value); +} +inline void ClaimInvitationMessage::set_touuid(std::string&& value) { + + touuid_.SetNoArena( + &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); + // @@protoc_insertion_point(field_set_rvalue:api.ClaimInvitationMessage.toUUID) +} +inline void ClaimInvitationMessage::set_touuid(const char* value) { + GOOGLE_DCHECK(value != nullptr); + + touuid_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); + // @@protoc_insertion_point(field_set_char:api.ClaimInvitationMessage.toUUID) +} +inline void ClaimInvitationMessage::set_touuid(const char* value, size_t size) { + + touuid_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + ::std::string(reinterpret_cast<const char*>(value), size)); + // @@protoc_insertion_point(field_set_pointer:api.ClaimInvitationMessage.toUUID) +} +inline std::string* ClaimInvitationMessage::_internal_mutable_touuid() { + + return touuid_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline std::string* ClaimInvitationMessage::release_touuid() { + // @@protoc_insertion_point(field_release:api.ClaimInvitationMessage.toUUID) + + return touuid_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline void ClaimInvitationMessage::set_allocated_touuid(std::string* touuid) { + if (touuid != nullptr) { + + } else { + + } + touuid_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), touuid); + // @@protoc_insertion_point(field_set_allocated:api.ClaimInvitationMessage.toUUID) +} + +// string claimName = 3; +inline void ClaimInvitationMessage::clear_claimname() { + claimname_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline const std::string& ClaimInvitationMessage::claimname() const { + // @@protoc_insertion_point(field_get:api.ClaimInvitationMessage.claimName) + return _internal_claimname(); +} +inline void ClaimInvitationMessage::set_claimname(const std::string& value) { + _internal_set_claimname(value); + // @@protoc_insertion_point(field_set:api.ClaimInvitationMessage.claimName) +} +inline std::string* ClaimInvitationMessage::mutable_claimname() { + // @@protoc_insertion_point(field_mutable:api.ClaimInvitationMessage.claimName) + return _internal_mutable_claimname(); +} +inline const std::string& ClaimInvitationMessage::_internal_claimname() const { + return claimname_.GetNoArena(); +} +inline void ClaimInvitationMessage::_internal_set_claimname(const std::string& value) { + + claimname_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value); +} +inline void ClaimInvitationMessage::set_claimname(std::string&& value) { + + claimname_.SetNoArena( + &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); + // @@protoc_insertion_point(field_set_rvalue:api.ClaimInvitationMessage.claimName) +} +inline void ClaimInvitationMessage::set_claimname(const char* value) { + GOOGLE_DCHECK(value != nullptr); + + claimname_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); + // @@protoc_insertion_point(field_set_char:api.ClaimInvitationMessage.claimName) +} +inline void ClaimInvitationMessage::set_claimname(const char* value, size_t size) { + + claimname_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + ::std::string(reinterpret_cast<const char*>(value), size)); + // @@protoc_insertion_point(field_set_pointer:api.ClaimInvitationMessage.claimName) +} +inline std::string* ClaimInvitationMessage::_internal_mutable_claimname() { + + return claimname_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline std::string* ClaimInvitationMessage::release_claimname() { + // @@protoc_insertion_point(field_release:api.ClaimInvitationMessage.claimName) + + return claimname_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline void ClaimInvitationMessage::set_allocated_claimname(std::string* claimname) { + if (claimname != nullptr) { + + } else { + + } + claimname_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), claimname); + // @@protoc_insertion_point(field_set_allocated:api.ClaimInvitationMessage.claimName) +} + +// .api.ClaimInvitationStatus status = 4; +inline void ClaimInvitationMessage::clear_status() { + status_ = 0; +} +inline ::api::ClaimInvitationStatus ClaimInvitationMessage::_internal_status() const { + return static_cast< ::api::ClaimInvitationStatus >(status_); +} +inline ::api::ClaimInvitationStatus ClaimInvitationMessage::status() const { + // @@protoc_insertion_point(field_get:api.ClaimInvitationMessage.status) + return _internal_status(); +} +inline void ClaimInvitationMessage::_internal_set_status(::api::ClaimInvitationStatus value) { + + status_ = value; +} +inline void ClaimInvitationMessage::set_status(::api::ClaimInvitationStatus value) { + _internal_set_status(value); + // @@protoc_insertion_point(field_set:api.ClaimInvitationMessage.status) +} + +// int64 stamp = 5; +inline void ClaimInvitationMessage::clear_stamp() { + stamp_ = PROTOBUF_LONGLONG(0); +} +inline ::PROTOBUF_NAMESPACE_ID::int64 ClaimInvitationMessage::_internal_stamp() const { + return stamp_; +} +inline ::PROTOBUF_NAMESPACE_ID::int64 ClaimInvitationMessage::stamp() const { + // @@protoc_insertion_point(field_get:api.ClaimInvitationMessage.stamp) + return _internal_stamp(); +} +inline void ClaimInvitationMessage::_internal_set_stamp(::PROTOBUF_NAMESPACE_ID::int64 value) { + + stamp_ = value; +} +inline void ClaimInvitationMessage::set_stamp(::PROTOBUF_NAMESPACE_ID::int64 value) { + _internal_set_stamp(value); + // @@protoc_insertion_point(field_set:api.ClaimInvitationMessage.stamp) +} + +// ------------------------------------------------------------------- + +// ClaimInvitationMessageResponse + +// ------------------------------------------------------------------- + +// ClaimInvitationSearchMessage + +// string fromUUID = 1; +inline void ClaimInvitationSearchMessage::clear_fromuuid() { + fromuuid_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline const std::string& ClaimInvitationSearchMessage::fromuuid() const { + // @@protoc_insertion_point(field_get:api.ClaimInvitationSearchMessage.fromUUID) + return _internal_fromuuid(); +} +inline void ClaimInvitationSearchMessage::set_fromuuid(const std::string& value) { + _internal_set_fromuuid(value); + // @@protoc_insertion_point(field_set:api.ClaimInvitationSearchMessage.fromUUID) +} +inline std::string* ClaimInvitationSearchMessage::mutable_fromuuid() { + // @@protoc_insertion_point(field_mutable:api.ClaimInvitationSearchMessage.fromUUID) + return _internal_mutable_fromuuid(); +} +inline const std::string& ClaimInvitationSearchMessage::_internal_fromuuid() const { + return fromuuid_.GetNoArena(); +} +inline void ClaimInvitationSearchMessage::_internal_set_fromuuid(const std::string& value) { + + fromuuid_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value); +} +inline void ClaimInvitationSearchMessage::set_fromuuid(std::string&& value) { + + fromuuid_.SetNoArena( + &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); + // @@protoc_insertion_point(field_set_rvalue:api.ClaimInvitationSearchMessage.fromUUID) +} +inline void ClaimInvitationSearchMessage::set_fromuuid(const char* value) { + GOOGLE_DCHECK(value != nullptr); + + fromuuid_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); + // @@protoc_insertion_point(field_set_char:api.ClaimInvitationSearchMessage.fromUUID) +} +inline void ClaimInvitationSearchMessage::set_fromuuid(const char* value, size_t size) { + + fromuuid_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + ::std::string(reinterpret_cast<const char*>(value), size)); + // @@protoc_insertion_point(field_set_pointer:api.ClaimInvitationSearchMessage.fromUUID) +} +inline std::string* ClaimInvitationSearchMessage::_internal_mutable_fromuuid() { + + return fromuuid_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline std::string* ClaimInvitationSearchMessage::release_fromuuid() { + // @@protoc_insertion_point(field_release:api.ClaimInvitationSearchMessage.fromUUID) + + return fromuuid_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline void ClaimInvitationSearchMessage::set_allocated_fromuuid(std::string* fromuuid) { + if (fromuuid != nullptr) { + + } else { + + } + fromuuid_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), fromuuid); + // @@protoc_insertion_point(field_set_allocated:api.ClaimInvitationSearchMessage.fromUUID) +} + +// string toUUID = 2; +inline void ClaimInvitationSearchMessage::clear_touuid() { + touuid_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline const std::string& ClaimInvitationSearchMessage::touuid() const { + // @@protoc_insertion_point(field_get:api.ClaimInvitationSearchMessage.toUUID) + return _internal_touuid(); +} +inline void ClaimInvitationSearchMessage::set_touuid(const std::string& value) { + _internal_set_touuid(value); + // @@protoc_insertion_point(field_set:api.ClaimInvitationSearchMessage.toUUID) +} +inline std::string* ClaimInvitationSearchMessage::mutable_touuid() { + // @@protoc_insertion_point(field_mutable:api.ClaimInvitationSearchMessage.toUUID) + return _internal_mutable_touuid(); +} +inline const std::string& ClaimInvitationSearchMessage::_internal_touuid() const { + return touuid_.GetNoArena(); +} +inline void ClaimInvitationSearchMessage::_internal_set_touuid(const std::string& value) { + + touuid_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value); +} +inline void ClaimInvitationSearchMessage::set_touuid(std::string&& value) { + + touuid_.SetNoArena( + &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); + // @@protoc_insertion_point(field_set_rvalue:api.ClaimInvitationSearchMessage.toUUID) +} +inline void ClaimInvitationSearchMessage::set_touuid(const char* value) { + GOOGLE_DCHECK(value != nullptr); + + touuid_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); + // @@protoc_insertion_point(field_set_char:api.ClaimInvitationSearchMessage.toUUID) +} +inline void ClaimInvitationSearchMessage::set_touuid(const char* value, size_t size) { + + touuid_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + ::std::string(reinterpret_cast<const char*>(value), size)); + // @@protoc_insertion_point(field_set_pointer:api.ClaimInvitationSearchMessage.toUUID) +} +inline std::string* ClaimInvitationSearchMessage::_internal_mutable_touuid() { + + return touuid_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline std::string* ClaimInvitationSearchMessage::release_touuid() { + // @@protoc_insertion_point(field_release:api.ClaimInvitationSearchMessage.toUUID) + + return touuid_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline void ClaimInvitationSearchMessage::set_allocated_touuid(std::string* touuid) { + if (touuid != nullptr) { + + } else { + + } + touuid_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), touuid); + // @@protoc_insertion_point(field_set_allocated:api.ClaimInvitationSearchMessage.toUUID) +} + +// string claimName = 3; +inline void ClaimInvitationSearchMessage::clear_claimname() { + claimname_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline const std::string& ClaimInvitationSearchMessage::claimname() const { + // @@protoc_insertion_point(field_get:api.ClaimInvitationSearchMessage.claimName) + return _internal_claimname(); +} +inline void ClaimInvitationSearchMessage::set_claimname(const std::string& value) { + _internal_set_claimname(value); + // @@protoc_insertion_point(field_set:api.ClaimInvitationSearchMessage.claimName) +} +inline std::string* ClaimInvitationSearchMessage::mutable_claimname() { + // @@protoc_insertion_point(field_mutable:api.ClaimInvitationSearchMessage.claimName) + return _internal_mutable_claimname(); +} +inline const std::string& ClaimInvitationSearchMessage::_internal_claimname() const { + return claimname_.GetNoArena(); +} +inline void ClaimInvitationSearchMessage::_internal_set_claimname(const std::string& value) { + + claimname_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value); +} +inline void ClaimInvitationSearchMessage::set_claimname(std::string&& value) { + + claimname_.SetNoArena( + &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); + // @@protoc_insertion_point(field_set_rvalue:api.ClaimInvitationSearchMessage.claimName) +} +inline void ClaimInvitationSearchMessage::set_claimname(const char* value) { + GOOGLE_DCHECK(value != nullptr); + + claimname_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); + // @@protoc_insertion_point(field_set_char:api.ClaimInvitationSearchMessage.claimName) +} +inline void ClaimInvitationSearchMessage::set_claimname(const char* value, size_t size) { + + claimname_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + ::std::string(reinterpret_cast<const char*>(value), size)); + // @@protoc_insertion_point(field_set_pointer:api.ClaimInvitationSearchMessage.claimName) +} +inline std::string* ClaimInvitationSearchMessage::_internal_mutable_claimname() { + + return claimname_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline std::string* ClaimInvitationSearchMessage::release_claimname() { + // @@protoc_insertion_point(field_release:api.ClaimInvitationSearchMessage.claimName) + + return claimname_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline void ClaimInvitationSearchMessage::set_allocated_claimname(std::string* claimname) { + if (claimname != nullptr) { + + } else { + + } + claimname_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), claimname); + // @@protoc_insertion_point(field_set_allocated:api.ClaimInvitationSearchMessage.claimName) +} + +// string from = 4; +inline void ClaimInvitationSearchMessage::clear_from() { + from_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline const std::string& ClaimInvitationSearchMessage::from() const { + // @@protoc_insertion_point(field_get:api.ClaimInvitationSearchMessage.from) + return _internal_from(); +} +inline void ClaimInvitationSearchMessage::set_from(const std::string& value) { + _internal_set_from(value); + // @@protoc_insertion_point(field_set:api.ClaimInvitationSearchMessage.from) +} +inline std::string* ClaimInvitationSearchMessage::mutable_from() { + // @@protoc_insertion_point(field_mutable:api.ClaimInvitationSearchMessage.from) + return _internal_mutable_from(); +} +inline const std::string& ClaimInvitationSearchMessage::_internal_from() const { + return from_.GetNoArena(); +} +inline void ClaimInvitationSearchMessage::_internal_set_from(const std::string& value) { + + from_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value); +} +inline void ClaimInvitationSearchMessage::set_from(std::string&& value) { + + from_.SetNoArena( + &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); + // @@protoc_insertion_point(field_set_rvalue:api.ClaimInvitationSearchMessage.from) +} +inline void ClaimInvitationSearchMessage::set_from(const char* value) { + GOOGLE_DCHECK(value != nullptr); + + from_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); + // @@protoc_insertion_point(field_set_char:api.ClaimInvitationSearchMessage.from) +} +inline void ClaimInvitationSearchMessage::set_from(const char* value, size_t size) { + + from_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + ::std::string(reinterpret_cast<const char*>(value), size)); + // @@protoc_insertion_point(field_set_pointer:api.ClaimInvitationSearchMessage.from) +} +inline std::string* ClaimInvitationSearchMessage::_internal_mutable_from() { + + return from_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline std::string* ClaimInvitationSearchMessage::release_from() { + // @@protoc_insertion_point(field_release:api.ClaimInvitationSearchMessage.from) + + return from_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline void ClaimInvitationSearchMessage::set_allocated_from(std::string* from) { + if (from != nullptr) { + + } else { + + } + from_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from); + // @@protoc_insertion_point(field_set_allocated:api.ClaimInvitationSearchMessage.from) +} + +// string to = 5; +inline void ClaimInvitationSearchMessage::clear_to() { + to_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline const std::string& ClaimInvitationSearchMessage::to() const { + // @@protoc_insertion_point(field_get:api.ClaimInvitationSearchMessage.to) + return _internal_to(); +} +inline void ClaimInvitationSearchMessage::set_to(const std::string& value) { + _internal_set_to(value); + // @@protoc_insertion_point(field_set:api.ClaimInvitationSearchMessage.to) +} +inline std::string* ClaimInvitationSearchMessage::mutable_to() { + // @@protoc_insertion_point(field_mutable:api.ClaimInvitationSearchMessage.to) + return _internal_mutable_to(); +} +inline const std::string& ClaimInvitationSearchMessage::_internal_to() const { + return to_.GetNoArena(); +} +inline void ClaimInvitationSearchMessage::_internal_set_to(const std::string& value) { + + to_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value); +} +inline void ClaimInvitationSearchMessage::set_to(std::string&& value) { + + to_.SetNoArena( + &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); + // @@protoc_insertion_point(field_set_rvalue:api.ClaimInvitationSearchMessage.to) +} +inline void ClaimInvitationSearchMessage::set_to(const char* value) { + GOOGLE_DCHECK(value != nullptr); + + to_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); + // @@protoc_insertion_point(field_set_char:api.ClaimInvitationSearchMessage.to) +} +inline void ClaimInvitationSearchMessage::set_to(const char* value, size_t size) { + + to_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + ::std::string(reinterpret_cast<const char*>(value), size)); + // @@protoc_insertion_point(field_set_pointer:api.ClaimInvitationSearchMessage.to) +} +inline std::string* ClaimInvitationSearchMessage::_internal_mutable_to() { + + return to_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline std::string* ClaimInvitationSearchMessage::release_to() { + // @@protoc_insertion_point(field_release:api.ClaimInvitationSearchMessage.to) + + return to_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline void ClaimInvitationSearchMessage::set_allocated_to(std::string* to) { + if (to != nullptr) { + + } else { + + } + to_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), to); + // @@protoc_insertion_point(field_set_allocated:api.ClaimInvitationSearchMessage.to) +} + +// .api.SearchType searchType = 6; +inline void ClaimInvitationSearchMessage::clear_searchtype() { + searchtype_ = 0; +} +inline ::api::SearchType ClaimInvitationSearchMessage::_internal_searchtype() const { + return static_cast< ::api::SearchType >(searchtype_); +} +inline ::api::SearchType ClaimInvitationSearchMessage::searchtype() const { + // @@protoc_insertion_point(field_get:api.ClaimInvitationSearchMessage.searchType) + return _internal_searchtype(); +} +inline void ClaimInvitationSearchMessage::_internal_set_searchtype(::api::SearchType value) { + + searchtype_ = value; +} +inline void ClaimInvitationSearchMessage::set_searchtype(::api::SearchType value) { + _internal_set_searchtype(value); + // @@protoc_insertion_point(field_set:api.ClaimInvitationSearchMessage.searchType) +} + +// ------------------------------------------------------------------- + +// ClaimInvitationList + +// repeated .api.ClaimInvitationMessage history = 1; +inline int ClaimInvitationList::_internal_history_size() const { + return history_.size(); +} +inline int ClaimInvitationList::history_size() const { + return _internal_history_size(); +} +inline void ClaimInvitationList::clear_history() { + history_.Clear(); +} +inline ::api::ClaimInvitationMessage* ClaimInvitationList::mutable_history(int index) { + // @@protoc_insertion_point(field_mutable:api.ClaimInvitationList.history) + return history_.Mutable(index); +} +inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::api::ClaimInvitationMessage >* +ClaimInvitationList::mutable_history() { + // @@protoc_insertion_point(field_mutable_list:api.ClaimInvitationList.history) + return &history_; +} +inline const ::api::ClaimInvitationMessage& ClaimInvitationList::_internal_history(int index) const { + return history_.Get(index); +} +inline const ::api::ClaimInvitationMessage& ClaimInvitationList::history(int index) const { + // @@protoc_insertion_point(field_get:api.ClaimInvitationList.history) + return _internal_history(index); +} +inline ::api::ClaimInvitationMessage* ClaimInvitationList::_internal_add_history() { + return history_.Add(); +} +inline ::api::ClaimInvitationMessage* ClaimInvitationList::add_history() { + // @@protoc_insertion_point(field_add:api.ClaimInvitationList.history) + return _internal_add_history(); +} +inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::api::ClaimInvitationMessage >& +ClaimInvitationList::history() const { + // @@protoc_insertion_point(field_list:api.ClaimInvitationList.history) + return history_; +} + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ClaimInvitationHistoryMessage + +// map<string, .api.ClaimInvitationList> historyByClaimInvitation = 1; +inline int ClaimInvitationHistoryMessage::_internal_historybyclaiminvitation_size() const { + return historybyclaiminvitation_.size(); +} +inline int ClaimInvitationHistoryMessage::historybyclaiminvitation_size() const { + return _internal_historybyclaiminvitation_size(); +} +inline void ClaimInvitationHistoryMessage::clear_historybyclaiminvitation() { + historybyclaiminvitation_.Clear(); +} +inline const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::ClaimInvitationList >& +ClaimInvitationHistoryMessage::_internal_historybyclaiminvitation() const { + return historybyclaiminvitation_.GetMap(); +} +inline const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::ClaimInvitationList >& +ClaimInvitationHistoryMessage::historybyclaiminvitation() const { + // @@protoc_insertion_point(field_map:api.ClaimInvitationHistoryMessage.historyByClaimInvitation) + return _internal_historybyclaiminvitation(); +} +inline ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::ClaimInvitationList >* +ClaimInvitationHistoryMessage::_internal_mutable_historybyclaiminvitation() { + return historybyclaiminvitation_.MutableMap(); +} +inline ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::ClaimInvitationList >* +ClaimInvitationHistoryMessage::mutable_historybyclaiminvitation() { + // @@protoc_insertion_point(field_mutable_map:api.ClaimInvitationHistoryMessage.historyByClaimInvitation) + return _internal_mutable_historybyclaiminvitation(); +} + +// ------------------------------------------------------------------- + +// GetVersionEMAMessage + +// ------------------------------------------------------------------- + +// GetVersionEMAResponseMessage + +// string version = 1; +inline void GetVersionEMAResponseMessage::clear_version() { + version_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline const std::string& GetVersionEMAResponseMessage::version() const { + // @@protoc_insertion_point(field_get:api.GetVersionEMAResponseMessage.version) + return _internal_version(); +} +inline void GetVersionEMAResponseMessage::set_version(const std::string& value) { + _internal_set_version(value); + // @@protoc_insertion_point(field_set:api.GetVersionEMAResponseMessage.version) +} +inline std::string* GetVersionEMAResponseMessage::mutable_version() { + // @@protoc_insertion_point(field_mutable:api.GetVersionEMAResponseMessage.version) + return _internal_mutable_version(); +} +inline const std::string& GetVersionEMAResponseMessage::_internal_version() const { + return version_.GetNoArena(); +} +inline void GetVersionEMAResponseMessage::_internal_set_version(const std::string& value) { + + version_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value); +} +inline void GetVersionEMAResponseMessage::set_version(std::string&& value) { + + version_.SetNoArena( + &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); + // @@protoc_insertion_point(field_set_rvalue:api.GetVersionEMAResponseMessage.version) +} +inline void GetVersionEMAResponseMessage::set_version(const char* value) { + GOOGLE_DCHECK(value != nullptr); + + version_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); + // @@protoc_insertion_point(field_set_char:api.GetVersionEMAResponseMessage.version) +} +inline void GetVersionEMAResponseMessage::set_version(const char* value, size_t size) { + + version_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + ::std::string(reinterpret_cast<const char*>(value), size)); + // @@protoc_insertion_point(field_set_pointer:api.GetVersionEMAResponseMessage.version) +} +inline std::string* GetVersionEMAResponseMessage::_internal_mutable_version() { + + return version_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline std::string* GetVersionEMAResponseMessage::release_version() { + // @@protoc_insertion_point(field_release:api.GetVersionEMAResponseMessage.version) + + return version_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline void GetVersionEMAResponseMessage::set_allocated_version(std::string* version) { + if (version != nullptr) { + + } else { + + } + version_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), version); + // @@protoc_insertion_point(field_set_allocated:api.GetVersionEMAResponseMessage.version) +} + +// ------------------------------------------------------------------- + +// GetEntitiesTailsMessage + +// repeated string uuids = 1; +inline int GetEntitiesTailsMessage::_internal_uuids_size() const { + return uuids_.size(); +} +inline int GetEntitiesTailsMessage::uuids_size() const { + return _internal_uuids_size(); +} +inline void GetEntitiesTailsMessage::clear_uuids() { + uuids_.Clear(); +} +inline std::string* GetEntitiesTailsMessage::add_uuids() { + // @@protoc_insertion_point(field_add_mutable:api.GetEntitiesTailsMessage.uuids) + return _internal_add_uuids(); +} +inline const std::string& GetEntitiesTailsMessage::_internal_uuids(int index) const { + return uuids_.Get(index); +} +inline const std::string& GetEntitiesTailsMessage::uuids(int index) const { + // @@protoc_insertion_point(field_get:api.GetEntitiesTailsMessage.uuids) + return _internal_uuids(index); +} +inline std::string* GetEntitiesTailsMessage::mutable_uuids(int index) { + // @@protoc_insertion_point(field_mutable:api.GetEntitiesTailsMessage.uuids) + return uuids_.Mutable(index); +} +inline void GetEntitiesTailsMessage::set_uuids(int index, const std::string& value) { + // @@protoc_insertion_point(field_set:api.GetEntitiesTailsMessage.uuids) + uuids_.Mutable(index)->assign(value); +} +inline void GetEntitiesTailsMessage::set_uuids(int index, std::string&& value) { + // @@protoc_insertion_point(field_set:api.GetEntitiesTailsMessage.uuids) + uuids_.Mutable(index)->assign(std::move(value)); +} +inline void GetEntitiesTailsMessage::set_uuids(int index, const char* value) { + GOOGLE_DCHECK(value != nullptr); + uuids_.Mutable(index)->assign(value); + // @@protoc_insertion_point(field_set_char:api.GetEntitiesTailsMessage.uuids) +} +inline void GetEntitiesTailsMessage::set_uuids(int index, const char* value, size_t size) { + uuids_.Mutable(index)->assign( + reinterpret_cast<const char*>(value), size); + // @@protoc_insertion_point(field_set_pointer:api.GetEntitiesTailsMessage.uuids) +} +inline std::string* GetEntitiesTailsMessage::_internal_add_uuids() { + return uuids_.Add(); +} +inline void GetEntitiesTailsMessage::add_uuids(const std::string& value) { + uuids_.Add()->assign(value); + // @@protoc_insertion_point(field_add:api.GetEntitiesTailsMessage.uuids) +} +inline void GetEntitiesTailsMessage::add_uuids(std::string&& value) { + uuids_.Add(std::move(value)); + // @@protoc_insertion_point(field_add:api.GetEntitiesTailsMessage.uuids) +} +inline void GetEntitiesTailsMessage::add_uuids(const char* value) { + GOOGLE_DCHECK(value != nullptr); + uuids_.Add()->assign(value); + // @@protoc_insertion_point(field_add_char:api.GetEntitiesTailsMessage.uuids) +} +inline void GetEntitiesTailsMessage::add_uuids(const char* value, size_t size) { + uuids_.Add()->assign(reinterpret_cast<const char*>(value), size); + // @@protoc_insertion_point(field_add_pointer:api.GetEntitiesTailsMessage.uuids) +} +inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& +GetEntitiesTailsMessage::uuids() const { + // @@protoc_insertion_point(field_list:api.GetEntitiesTailsMessage.uuids) + return uuids_; +} +inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* +GetEntitiesTailsMessage::mutable_uuids() { + // @@protoc_insertion_point(field_mutable_list:api.GetEntitiesTailsMessage.uuids) + return &uuids_; +} + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// GetEntitiesTailsResponseMessage + +// map<string, .api.EntityMessage_V2> entities = 1; +inline int GetEntitiesTailsResponseMessage::_internal_entities_size() const { + return entities_.size(); +} +inline int GetEntitiesTailsResponseMessage::entities_size() const { + return _internal_entities_size(); +} +inline void GetEntitiesTailsResponseMessage::clear_entities() { + entities_.Clear(); +} +inline const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::EntityMessage_V2 >& +GetEntitiesTailsResponseMessage::_internal_entities() const { + return entities_.GetMap(); +} +inline const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::EntityMessage_V2 >& +GetEntitiesTailsResponseMessage::entities() const { + // @@protoc_insertion_point(field_map:api.GetEntitiesTailsResponseMessage.entities) + return _internal_entities(); +} +inline ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::EntityMessage_V2 >* +GetEntitiesTailsResponseMessage::_internal_mutable_entities() { + return entities_.MutableMap(); +} +inline ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::api::EntityMessage_V2 >* +GetEntitiesTailsResponseMessage::mutable_entities() { + // @@protoc_insertion_point(field_mutable_map:api.GetEntitiesTailsResponseMessage.entities) + return _internal_mutable_entities(); +} + +// ------------------------------------------------------------------- + +// GetEntitiesCountersMessage + +// repeated string uuids = 1; +inline int GetEntitiesCountersMessage::_internal_uuids_size() const { + return uuids_.size(); +} +inline int GetEntitiesCountersMessage::uuids_size() const { + return _internal_uuids_size(); +} +inline void GetEntitiesCountersMessage::clear_uuids() { + uuids_.Clear(); +} +inline std::string* GetEntitiesCountersMessage::add_uuids() { + // @@protoc_insertion_point(field_add_mutable:api.GetEntitiesCountersMessage.uuids) + return _internal_add_uuids(); +} +inline const std::string& GetEntitiesCountersMessage::_internal_uuids(int index) const { + return uuids_.Get(index); +} +inline const std::string& GetEntitiesCountersMessage::uuids(int index) const { + // @@protoc_insertion_point(field_get:api.GetEntitiesCountersMessage.uuids) + return _internal_uuids(index); +} +inline std::string* GetEntitiesCountersMessage::mutable_uuids(int index) { + // @@protoc_insertion_point(field_mutable:api.GetEntitiesCountersMessage.uuids) + return uuids_.Mutable(index); +} +inline void GetEntitiesCountersMessage::set_uuids(int index, const std::string& value) { + // @@protoc_insertion_point(field_set:api.GetEntitiesCountersMessage.uuids) + uuids_.Mutable(index)->assign(value); +} +inline void GetEntitiesCountersMessage::set_uuids(int index, std::string&& value) { + // @@protoc_insertion_point(field_set:api.GetEntitiesCountersMessage.uuids) + uuids_.Mutable(index)->assign(std::move(value)); +} +inline void GetEntitiesCountersMessage::set_uuids(int index, const char* value) { + GOOGLE_DCHECK(value != nullptr); + uuids_.Mutable(index)->assign(value); + // @@protoc_insertion_point(field_set_char:api.GetEntitiesCountersMessage.uuids) +} +inline void GetEntitiesCountersMessage::set_uuids(int index, const char* value, size_t size) { + uuids_.Mutable(index)->assign( + reinterpret_cast<const char*>(value), size); + // @@protoc_insertion_point(field_set_pointer:api.GetEntitiesCountersMessage.uuids) +} +inline std::string* GetEntitiesCountersMessage::_internal_add_uuids() { + return uuids_.Add(); +} +inline void GetEntitiesCountersMessage::add_uuids(const std::string& value) { + uuids_.Add()->assign(value); + // @@protoc_insertion_point(field_add:api.GetEntitiesCountersMessage.uuids) +} +inline void GetEntitiesCountersMessage::add_uuids(std::string&& value) { + uuids_.Add(std::move(value)); + // @@protoc_insertion_point(field_add:api.GetEntitiesCountersMessage.uuids) +} +inline void GetEntitiesCountersMessage::add_uuids(const char* value) { + GOOGLE_DCHECK(value != nullptr); + uuids_.Add()->assign(value); + // @@protoc_insertion_point(field_add_char:api.GetEntitiesCountersMessage.uuids) +} +inline void GetEntitiesCountersMessage::add_uuids(const char* value, size_t size) { + uuids_.Add()->assign(reinterpret_cast<const char*>(value), size); + // @@protoc_insertion_point(field_add_pointer:api.GetEntitiesCountersMessage.uuids) +} +inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& +GetEntitiesCountersMessage::uuids() const { + // @@protoc_insertion_point(field_list:api.GetEntitiesCountersMessage.uuids) + return uuids_; +} +inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* +GetEntitiesCountersMessage::mutable_uuids() { + // @@protoc_insertion_point(field_mutable_list:api.GetEntitiesCountersMessage.uuids) + return &uuids_; +} + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// GetEntitiesCountersResponseMessage + +// map<string, int64> counters = 1; +inline int GetEntitiesCountersResponseMessage::_internal_counters_size() const { + return counters_.size(); +} +inline int GetEntitiesCountersResponseMessage::counters_size() const { + return _internal_counters_size(); +} +inline void GetEntitiesCountersResponseMessage::clear_counters() { + counters_.Clear(); +} +inline const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::PROTOBUF_NAMESPACE_ID::int64 >& +GetEntitiesCountersResponseMessage::_internal_counters() const { + return counters_.GetMap(); +} +inline const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::PROTOBUF_NAMESPACE_ID::int64 >& +GetEntitiesCountersResponseMessage::counters() const { + // @@protoc_insertion_point(field_map:api.GetEntitiesCountersResponseMessage.counters) + return _internal_counters(); +} +inline ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::PROTOBUF_NAMESPACE_ID::int64 >* +GetEntitiesCountersResponseMessage::_internal_mutable_counters() { + return counters_.MutableMap(); +} +inline ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::PROTOBUF_NAMESPACE_ID::int64 >* +GetEntitiesCountersResponseMessage::mutable_counters() { + // @@protoc_insertion_point(field_mutable_map:api.GetEntitiesCountersResponseMessage.counters) + return _internal_mutable_counters(); +} + +// ------------------------------------------------------------------- + +// EntityReplaceMessage + +// repeated .api.EntityMessage_V2 history = 1; +inline int EntityReplaceMessage::_internal_history_size() const { + return history_.size(); +} +inline int EntityReplaceMessage::history_size() const { + return _internal_history_size(); +} +inline void EntityReplaceMessage::clear_history() { + history_.Clear(); +} +inline ::api::EntityMessage_V2* EntityReplaceMessage::mutable_history(int index) { + // @@protoc_insertion_point(field_mutable:api.EntityReplaceMessage.history) + return history_.Mutable(index); +} +inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::api::EntityMessage_V2 >* +EntityReplaceMessage::mutable_history() { + // @@protoc_insertion_point(field_mutable_list:api.EntityReplaceMessage.history) + return &history_; +} +inline const ::api::EntityMessage_V2& EntityReplaceMessage::_internal_history(int index) const { + return history_.Get(index); +} +inline const ::api::EntityMessage_V2& EntityReplaceMessage::history(int index) const { + // @@protoc_insertion_point(field_get:api.EntityReplaceMessage.history) + return _internal_history(index); +} +inline ::api::EntityMessage_V2* EntityReplaceMessage::_internal_add_history() { + return history_.Add(); +} +inline ::api::EntityMessage_V2* EntityReplaceMessage::add_history() { + // @@protoc_insertion_point(field_add:api.EntityReplaceMessage.history) + return _internal_add_history(); +} +inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::api::EntityMessage_V2 >& +EntityReplaceMessage::history() const { + // @@protoc_insertion_point(field_list:api.EntityReplaceMessage.history) + return history_; +} + +// string uuid = 2; +inline void EntityReplaceMessage::clear_uuid() { + uuid_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline const std::string& EntityReplaceMessage::uuid() const { + // @@protoc_insertion_point(field_get:api.EntityReplaceMessage.uuid) + return _internal_uuid(); +} +inline void EntityReplaceMessage::set_uuid(const std::string& value) { + _internal_set_uuid(value); + // @@protoc_insertion_point(field_set:api.EntityReplaceMessage.uuid) +} +inline std::string* EntityReplaceMessage::mutable_uuid() { + // @@protoc_insertion_point(field_mutable:api.EntityReplaceMessage.uuid) + return _internal_mutable_uuid(); +} +inline const std::string& EntityReplaceMessage::_internal_uuid() const { + return uuid_.GetNoArena(); +} +inline void EntityReplaceMessage::_internal_set_uuid(const std::string& value) { + + uuid_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value); +} +inline void EntityReplaceMessage::set_uuid(std::string&& value) { + + uuid_.SetNoArena( + &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); + // @@protoc_insertion_point(field_set_rvalue:api.EntityReplaceMessage.uuid) +} +inline void EntityReplaceMessage::set_uuid(const char* value) { + GOOGLE_DCHECK(value != nullptr); + + uuid_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); + // @@protoc_insertion_point(field_set_char:api.EntityReplaceMessage.uuid) +} +inline void EntityReplaceMessage::set_uuid(const char* value, size_t size) { + + uuid_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + ::std::string(reinterpret_cast<const char*>(value), size)); + // @@protoc_insertion_point(field_set_pointer:api.EntityReplaceMessage.uuid) +} +inline std::string* EntityReplaceMessage::_internal_mutable_uuid() { + + return uuid_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline std::string* EntityReplaceMessage::release_uuid() { + // @@protoc_insertion_point(field_release:api.EntityReplaceMessage.uuid) + + return uuid_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline void EntityReplaceMessage::set_allocated_uuid(std::string* uuid) { + if (uuid != nullptr) { + + } else { + + } + uuid_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), uuid); + // @@protoc_insertion_point(field_set_allocated:api.EntityReplaceMessage.uuid) +} + +#ifdef __GNUC__ + #pragma GCC diagnostic pop +#endif // __GNUC__ +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + + +// @@protoc_insertion_point(namespace_scope) + +} // namespace api + +PROTOBUF_NAMESPACE_OPEN + +template <> struct is_proto_enum< ::api::ClaimType> : ::std::true_type {}; +template <> +inline const EnumDescriptor* GetEnumDescriptor< ::api::ClaimType>() { + return ::api::ClaimType_descriptor(); +} +template <> struct is_proto_enum< ::api::AccessType> : ::std::true_type {}; +template <> +inline const EnumDescriptor* GetEnumDescriptor< ::api::AccessType>() { + return ::api::AccessType_descriptor(); +} +template <> struct is_proto_enum< ::api::SearchType> : ::std::true_type {}; +template <> +inline const EnumDescriptor* GetEnumDescriptor< ::api::SearchType>() { + return ::api::SearchType_descriptor(); +} +template <> struct is_proto_enum< ::api::ValueType> : ::std::true_type {}; +template <> +inline const EnumDescriptor* GetEnumDescriptor< ::api::ValueType>() { + return ::api::ValueType_descriptor(); +} +template <> struct is_proto_enum< ::api::EntityType> : ::std::true_type {}; +template <> +inline const EnumDescriptor* GetEnumDescriptor< ::api::EntityType>() { + return ::api::EntityType_descriptor(); +} +template <> struct is_proto_enum< ::api::ContactStatus> : ::std::true_type {}; +template <> +inline const EnumDescriptor* GetEnumDescriptor< ::api::ContactStatus>() { + return ::api::ContactStatus_descriptor(); +} +template <> struct is_proto_enum< ::api::OrderStatus> : ::std::true_type {}; +template <> +inline const EnumDescriptor* GetEnumDescriptor< ::api::OrderStatus>() { + return ::api::OrderStatus_descriptor(); +} +template <> struct is_proto_enum< ::api::RelationStatus> : ::std::true_type {}; +template <> +inline const EnumDescriptor* GetEnumDescriptor< ::api::RelationStatus>() { + return ::api::RelationStatus_descriptor(); +} +template <> struct is_proto_enum< ::api::ClaimInvitationStatus> : ::std::true_type {}; +template <> +inline const EnumDescriptor* GetEnumDescriptor< ::api::ClaimInvitationStatus>() { + return ::api::ClaimInvitationStatus_descriptor(); +} + +PROTOBUF_NAMESPACE_CLOSE + +// @@protoc_insertion_point(global_scope) + +#include <google/protobuf/port_undef.inc> +#endif // GOOGLE_PROTOBUF_INCLUDED_GOOGLE_PROTOBUF_INCLUDED_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto diff --git a/cpp/src/vereign/v1pb/code.vereign.com/code/viam-apis/versions/api/api.pb.cc b/cpp/src/vereign/v1pb/code.vereign.com/code/viam-apis/versions/api/api.pb.cc new file mode 100644 index 0000000000000000000000000000000000000000..6f391d50e4a501daa588dff386d0da7aa437d98b --- /dev/null +++ b/cpp/src/vereign/v1pb/code.vereign.com/code/viam-apis/versions/api/api.pb.cc @@ -0,0 +1,324 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: code.vereign.com/code/viam-apis/versions/api/api.proto + +#include "code.vereign.com/code/viam-apis/versions/api/api.pb.h" + +#include <algorithm> + +#include <google/protobuf/io/coded_stream.h> +#include <google/protobuf/extension_set.h> +#include <google/protobuf/wire_format_lite.h> +#include <google/protobuf/descriptor.h> +#include <google/protobuf/generated_message_reflection.h> +#include <google/protobuf/reflection_ops.h> +#include <google/protobuf/wire_format.h> +// @@protoc_insertion_point(includes) +#include <google/protobuf/port_def.inc> +extern PROTOBUF_INTERNAL_EXPORT_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fversions_2fapi_2fapi_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_PersistentInfo_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fversions_2fapi_2fapi_2eproto; +namespace api { +class PersistentInfoDefaultTypeInternal { + public: + ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<PersistentInfo> _instance; +} _PersistentInfo_default_instance_; +} // namespace api +static void InitDefaultsscc_info_PersistentInfo_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fversions_2fapi_2fapi_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::api::_PersistentInfo_default_instance_; + new (ptr) ::api::PersistentInfo(); + ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr); + } + ::api::PersistentInfo::InitAsDefaultInstance(); +} + +::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_PersistentInfo_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fversions_2fapi_2fapi_2eproto = + {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_PersistentInfo_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fversions_2fapi_2fapi_2eproto}, {}}; + +static ::PROTOBUF_NAMESPACE_ID::Metadata file_level_metadata_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fversions_2fapi_2fapi_2eproto[1]; +static constexpr ::PROTOBUF_NAMESPACE_ID::EnumDescriptor const** file_level_enum_descriptors_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fversions_2fapi_2fapi_2eproto = nullptr; +static constexpr ::PROTOBUF_NAMESPACE_ID::ServiceDescriptor const** file_level_service_descriptors_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fversions_2fapi_2fapi_2eproto = nullptr; + +const ::PROTOBUF_NAMESPACE_ID::uint32 TableStruct_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fversions_2fapi_2fapi_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::api::PersistentInfo, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + PROTOBUF_FIELD_OFFSET(::api::PersistentInfo, classname_), + PROTOBUF_FIELD_OFFSET(::api::PersistentInfo, version_), +}; +static const ::PROTOBUF_NAMESPACE_ID::internal::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { + { 0, -1, sizeof(::api::PersistentInfo)}, +}; + +static ::PROTOBUF_NAMESPACE_ID::Message const * const file_default_instances[] = { + reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::api::_PersistentInfo_default_instance_), +}; + +const char descriptor_table_protodef_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fversions_2fapi_2fapi_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = + "\n6code.vereign.com/code/viam-apis/versio" + "ns/api/api.proto\022\003api\032 google/protobuf/d" + "escriptor.proto\"4\n\016PersistentInfo\022\021\n\tCla" + "ssName\030\001 \001(\t\022\017\n\007Version\030\002 \001(\005:I\n\nPersist" + "ent\022\037.google.protobuf.MessageOptions\030\337I " + "\001(\0132\023.api.PersistentInfob\006proto3" + ; +static const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable*const descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fversions_2fapi_2fapi_2eproto_deps[1] = { + &::descriptor_table_google_2fprotobuf_2fdescriptor_2eproto, +}; +static ::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase*const descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fversions_2fapi_2fapi_2eproto_sccs[1] = { + &scc_info_PersistentInfo_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fversions_2fapi_2fapi_2eproto.base, +}; +static ::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fversions_2fapi_2fapi_2eproto_once; +static bool descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fversions_2fapi_2fapi_2eproto_initialized = false; +const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fversions_2fapi_2fapi_2eproto = { + &descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fversions_2fapi_2fapi_2eproto_initialized, descriptor_table_protodef_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fversions_2fapi_2fapi_2eproto, "code.vereign.com/code/viam-apis/versions/api/api.proto", 232, + &descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fversions_2fapi_2fapi_2eproto_once, descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fversions_2fapi_2fapi_2eproto_sccs, descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fversions_2fapi_2fapi_2eproto_deps, 1, 1, + schemas, file_default_instances, TableStruct_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fversions_2fapi_2fapi_2eproto::offsets, + file_level_metadata_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fversions_2fapi_2fapi_2eproto, 1, file_level_enum_descriptors_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fversions_2fapi_2fapi_2eproto, file_level_service_descriptors_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fversions_2fapi_2fapi_2eproto, +}; + +// Force running AddDescriptors() at dynamic initialization time. +static bool dynamic_init_dummy_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fversions_2fapi_2fapi_2eproto = ( ::PROTOBUF_NAMESPACE_ID::internal::AddDescriptors(&descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fversions_2fapi_2fapi_2eproto), true); +namespace api { + +// =================================================================== + +void PersistentInfo::InitAsDefaultInstance() { +} +class PersistentInfo::_Internal { + public: +}; + +PersistentInfo::PersistentInfo() + : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) { + SharedCtor(); + // @@protoc_insertion_point(constructor:api.PersistentInfo) +} +PersistentInfo::PersistentInfo(const PersistentInfo& from) + : ::PROTOBUF_NAMESPACE_ID::Message(), + _internal_metadata_(nullptr) { + _internal_metadata_.MergeFrom(from._internal_metadata_); + classname_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + if (!from._internal_classname().empty()) { + classname_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.classname_); + } + version_ = from.version_; + // @@protoc_insertion_point(copy_constructor:api.PersistentInfo) +} + +void PersistentInfo::SharedCtor() { + ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_PersistentInfo_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fversions_2fapi_2fapi_2eproto.base); + classname_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + version_ = 0; +} + +PersistentInfo::~PersistentInfo() { + // @@protoc_insertion_point(destructor:api.PersistentInfo) + SharedDtor(); +} + +void PersistentInfo::SharedDtor() { + classname_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} + +void PersistentInfo::SetCachedSize(int size) const { + _cached_size_.Set(size); +} +const PersistentInfo& PersistentInfo::default_instance() { + ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_PersistentInfo_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fversions_2fapi_2fapi_2eproto.base); + return *internal_default_instance(); +} + + +void PersistentInfo::Clear() { +// @@protoc_insertion_point(message_clear_start:api.PersistentInfo) + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + classname_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + version_ = 0; + _internal_metadata_.Clear(); +} + +const char* PersistentInfo::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + ::PROTOBUF_NAMESPACE_ID::uint32 tag; + ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag); + CHK_(ptr); + switch (tag >> 3) { + // string ClassName = 1; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) { + auto str = _internal_mutable_classname(); + ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); + CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "api.PersistentInfo.ClassName")); + CHK_(ptr); + } else goto handle_unusual; + continue; + // int32 Version = 2; + case 2: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) { + version_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr); + CHK_(ptr); + } else goto handle_unusual; + continue; + default: { + handle_unusual: + if ((tag & 7) == 4 || tag == 0) { + ctx->SetLastTag(tag); + goto success; + } + ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx); + CHK_(ptr != nullptr); + continue; + } + } // switch + } // while +success: + return ptr; +failure: + ptr = nullptr; + goto success; +#undef CHK_ +} + +::PROTOBUF_NAMESPACE_ID::uint8* PersistentInfo::_InternalSerialize( + ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:api.PersistentInfo) + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + // string ClassName = 1; + if (this->classname().size() > 0) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_classname().data(), static_cast<int>(this->_internal_classname().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "api.PersistentInfo.ClassName"); + target = stream->WriteStringMaybeAliased( + 1, this->_internal_classname(), target); + } + + // int32 Version = 2; + if (this->version() != 0) { + target = stream->EnsureSpace(target); + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(2, this->_internal_version(), target); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields(), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:api.PersistentInfo) + return target; +} + +size_t PersistentInfo::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:api.PersistentInfo) + size_t total_size = 0; + + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // string ClassName = 1; + if (this->classname().size() > 0) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_classname()); + } + + // int32 Version = 2; + if (this->version() != 0) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size( + this->_internal_version()); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize( + _internal_metadata_, total_size, &_cached_size_); + } + int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size); + SetCachedSize(cached_size); + return total_size; +} + +void PersistentInfo::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { +// @@protoc_insertion_point(generalized_merge_from_start:api.PersistentInfo) + GOOGLE_DCHECK_NE(&from, this); + const PersistentInfo* source = + ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<PersistentInfo>( + &from); + if (source == nullptr) { + // @@protoc_insertion_point(generalized_merge_from_cast_fail:api.PersistentInfo) + ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this); + } else { + // @@protoc_insertion_point(generalized_merge_from_cast_success:api.PersistentInfo) + MergeFrom(*source); + } +} + +void PersistentInfo::MergeFrom(const PersistentInfo& from) { +// @@protoc_insertion_point(class_specific_merge_from_start:api.PersistentInfo) + GOOGLE_DCHECK_NE(&from, this); + _internal_metadata_.MergeFrom(from._internal_metadata_); + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + if (from.classname().size() > 0) { + + classname_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.classname_); + } + if (from.version() != 0) { + _internal_set_version(from._internal_version()); + } +} + +void PersistentInfo::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { +// @@protoc_insertion_point(generalized_copy_from_start:api.PersistentInfo) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +void PersistentInfo::CopyFrom(const PersistentInfo& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:api.PersistentInfo) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool PersistentInfo::IsInitialized() const { + return true; +} + +void PersistentInfo::InternalSwap(PersistentInfo* other) { + using std::swap; + _internal_metadata_.Swap(&other->_internal_metadata_); + classname_.Swap(&other->classname_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); + swap(version_, other->version_); +} + +::PROTOBUF_NAMESPACE_ID::Metadata PersistentInfo::GetMetadata() const { + return GetMetadataStatic(); +} + +::PROTOBUF_NAMESPACE_ID::internal::ExtensionIdentifier< ::google::protobuf::MessageOptions, + ::PROTOBUF_NAMESPACE_ID::internal::MessageTypeTraits< ::api::PersistentInfo >, 11, false > + Persistent(kPersistentFieldNumber, *::api::PersistentInfo::internal_default_instance()); + +// @@protoc_insertion_point(namespace_scope) +} // namespace api +PROTOBUF_NAMESPACE_OPEN +template<> PROTOBUF_NOINLINE ::api::PersistentInfo* Arena::CreateMaybeMessage< ::api::PersistentInfo >(Arena* arena) { + return Arena::CreateInternal< ::api::PersistentInfo >(arena); +} +PROTOBUF_NAMESPACE_CLOSE + +// @@protoc_insertion_point(global_scope) +#include <google/protobuf/port_undef.inc> diff --git a/cpp/src/vereign/v1pb/code.vereign.com/code/viam-apis/versions/api/api.pb.h b/cpp/src/vereign/v1pb/code.vereign.com/code/viam-apis/versions/api/api.pb.h new file mode 100644 index 0000000000000000000000000000000000000000..9230257c763ad596c819b3ec8cbec234ed401efc --- /dev/null +++ b/cpp/src/vereign/v1pb/code.vereign.com/code/viam-apis/versions/api/api.pb.h @@ -0,0 +1,320 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: code.vereign.com/code/viam-apis/versions/api/api.proto + +#ifndef GOOGLE_PROTOBUF_INCLUDED_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fversions_2fapi_2fapi_2eproto +#define GOOGLE_PROTOBUF_INCLUDED_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fversions_2fapi_2fapi_2eproto + +#include <limits> +#include <string> + +#include <google/protobuf/port_def.inc> +#if PROTOBUF_VERSION < 3011000 +#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 3011002 < 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/port_undef.inc> +#include <google/protobuf/io/coded_stream.h> +#include <google/protobuf/arena.h> +#include <google/protobuf/arenastring.h> +#include <google/protobuf/generated_message_table_driven.h> +#include <google/protobuf/generated_message_util.h> +#include <google/protobuf/inlined_string_field.h> +#include <google/protobuf/metadata.h> +#include <google/protobuf/generated_message_reflection.h> +#include <google/protobuf/message.h> +#include <google/protobuf/repeated_field.h> // IWYU pragma: export +#include <google/protobuf/extension_set.h> // IWYU pragma: export +#include <google/protobuf/unknown_field_set.h> +#include <google/protobuf/descriptor.pb.h> +// @@protoc_insertion_point(includes) +#include <google/protobuf/port_def.inc> +#define PROTOBUF_INTERNAL_EXPORT_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fversions_2fapi_2fapi_2eproto +PROTOBUF_NAMESPACE_OPEN +namespace internal { +class AnyMetadata; +} // namespace internal +PROTOBUF_NAMESPACE_CLOSE + +// Internal implementation detail -- do not use these members. +struct TableStruct_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fversions_2fapi_2fapi_2eproto { + static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTableField entries[] + PROTOBUF_SECTION_VARIABLE(protodesc_cold); + static const ::PROTOBUF_NAMESPACE_ID::internal::AuxillaryParseTableField aux[] + PROTOBUF_SECTION_VARIABLE(protodesc_cold); + static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTable schema[1] + PROTOBUF_SECTION_VARIABLE(protodesc_cold); + static const ::PROTOBUF_NAMESPACE_ID::internal::FieldMetadata field_metadata[]; + static const ::PROTOBUF_NAMESPACE_ID::internal::SerializationTable serialization_table[]; + static const ::PROTOBUF_NAMESPACE_ID::uint32 offsets[]; +}; +extern const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fversions_2fapi_2fapi_2eproto; +namespace api { +class PersistentInfo; +class PersistentInfoDefaultTypeInternal; +extern PersistentInfoDefaultTypeInternal _PersistentInfo_default_instance_; +} // namespace api +PROTOBUF_NAMESPACE_OPEN +template<> ::api::PersistentInfo* Arena::CreateMaybeMessage<::api::PersistentInfo>(Arena*); +PROTOBUF_NAMESPACE_CLOSE +namespace api { + +// =================================================================== + +class PersistentInfo : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:api.PersistentInfo) */ { + public: + PersistentInfo(); + virtual ~PersistentInfo(); + + PersistentInfo(const PersistentInfo& from); + PersistentInfo(PersistentInfo&& from) noexcept + : PersistentInfo() { + *this = ::std::move(from); + } + + inline PersistentInfo& operator=(const PersistentInfo& from) { + CopyFrom(from); + return *this; + } + inline PersistentInfo& operator=(PersistentInfo&& from) noexcept { + if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) { + if (this != &from) InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return GetMetadataStatic().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return GetMetadataStatic().reflection; + } + static const PersistentInfo& default_instance(); + + static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY + static inline const PersistentInfo* internal_default_instance() { + return reinterpret_cast<const PersistentInfo*>( + &_PersistentInfo_default_instance_); + } + static constexpr int kIndexInFileMessages = + 0; + + friend void swap(PersistentInfo& a, PersistentInfo& b) { + a.Swap(&b); + } + inline void Swap(PersistentInfo* other) { + if (other == this) return; + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + inline PersistentInfo* New() const final { + return CreateMaybeMessage<PersistentInfo>(nullptr); + } + + PersistentInfo* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final { + return CreateMaybeMessage<PersistentInfo>(arena); + } + void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; + void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; + void CopyFrom(const PersistentInfo& from); + void MergeFrom(const PersistentInfo& from); + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize( + ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _cached_size_.Get(); } + + private: + inline void SharedCtor(); + inline void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(PersistentInfo* other); + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "api.PersistentInfo"; + } + private: + inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const { + return nullptr; + } + inline void* MaybeArenaPtr() const { + return nullptr; + } + public: + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + private: + static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() { + ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fversions_2fapi_2fapi_2eproto); + return ::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fversions_2fapi_2fapi_2eproto.file_level_metadata[kIndexInFileMessages]; + } + + public: + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + enum : int { + kClassNameFieldNumber = 1, + kVersionFieldNumber = 2, + }; + // string ClassName = 1; + void clear_classname(); + const std::string& classname() const; + void set_classname(const std::string& value); + void set_classname(std::string&& value); + void set_classname(const char* value); + void set_classname(const char* value, size_t size); + std::string* mutable_classname(); + std::string* release_classname(); + void set_allocated_classname(std::string* classname); + private: + const std::string& _internal_classname() const; + void _internal_set_classname(const std::string& value); + std::string* _internal_mutable_classname(); + public: + + // int32 Version = 2; + void clear_version(); + ::PROTOBUF_NAMESPACE_ID::int32 version() const; + void set_version(::PROTOBUF_NAMESPACE_ID::int32 value); + private: + ::PROTOBUF_NAMESPACE_ID::int32 _internal_version() const; + void _internal_set_version(::PROTOBUF_NAMESPACE_ID::int32 value); + public: + + // @@protoc_insertion_point(class_scope:api.PersistentInfo) + private: + class _Internal; + + ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr classname_; + ::PROTOBUF_NAMESPACE_ID::int32 version_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + friend struct ::TableStruct_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fversions_2fapi_2fapi_2eproto; +}; +// =================================================================== + +static const int kPersistentFieldNumber = 9439; +extern ::PROTOBUF_NAMESPACE_ID::internal::ExtensionIdentifier< ::google::protobuf::MessageOptions, + ::PROTOBUF_NAMESPACE_ID::internal::MessageTypeTraits< ::api::PersistentInfo >, 11, false > + Persistent; + +// =================================================================== + +#ifdef __GNUC__ + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wstrict-aliasing" +#endif // __GNUC__ +// PersistentInfo + +// string ClassName = 1; +inline void PersistentInfo::clear_classname() { + classname_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline const std::string& PersistentInfo::classname() const { + // @@protoc_insertion_point(field_get:api.PersistentInfo.ClassName) + return _internal_classname(); +} +inline void PersistentInfo::set_classname(const std::string& value) { + _internal_set_classname(value); + // @@protoc_insertion_point(field_set:api.PersistentInfo.ClassName) +} +inline std::string* PersistentInfo::mutable_classname() { + // @@protoc_insertion_point(field_mutable:api.PersistentInfo.ClassName) + return _internal_mutable_classname(); +} +inline const std::string& PersistentInfo::_internal_classname() const { + return classname_.GetNoArena(); +} +inline void PersistentInfo::_internal_set_classname(const std::string& value) { + + classname_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value); +} +inline void PersistentInfo::set_classname(std::string&& value) { + + classname_.SetNoArena( + &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); + // @@protoc_insertion_point(field_set_rvalue:api.PersistentInfo.ClassName) +} +inline void PersistentInfo::set_classname(const char* value) { + GOOGLE_DCHECK(value != nullptr); + + classname_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); + // @@protoc_insertion_point(field_set_char:api.PersistentInfo.ClassName) +} +inline void PersistentInfo::set_classname(const char* value, size_t size) { + + classname_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + ::std::string(reinterpret_cast<const char*>(value), size)); + // @@protoc_insertion_point(field_set_pointer:api.PersistentInfo.ClassName) +} +inline std::string* PersistentInfo::_internal_mutable_classname() { + + return classname_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline std::string* PersistentInfo::release_classname() { + // @@protoc_insertion_point(field_release:api.PersistentInfo.ClassName) + + return classname_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline void PersistentInfo::set_allocated_classname(std::string* classname) { + if (classname != nullptr) { + + } else { + + } + classname_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), classname); + // @@protoc_insertion_point(field_set_allocated:api.PersistentInfo.ClassName) +} + +// int32 Version = 2; +inline void PersistentInfo::clear_version() { + version_ = 0; +} +inline ::PROTOBUF_NAMESPACE_ID::int32 PersistentInfo::_internal_version() const { + return version_; +} +inline ::PROTOBUF_NAMESPACE_ID::int32 PersistentInfo::version() const { + // @@protoc_insertion_point(field_get:api.PersistentInfo.Version) + return _internal_version(); +} +inline void PersistentInfo::_internal_set_version(::PROTOBUF_NAMESPACE_ID::int32 value) { + + version_ = value; +} +inline void PersistentInfo::set_version(::PROTOBUF_NAMESPACE_ID::int32 value) { + _internal_set_version(value); + // @@protoc_insertion_point(field_set:api.PersistentInfo.Version) +} + +#ifdef __GNUC__ + #pragma GCC diagnostic pop +#endif // __GNUC__ + +// @@protoc_insertion_point(namespace_scope) + +} // namespace api + +// @@protoc_insertion_point(global_scope) + +#include <google/protobuf/port_undef.inc> +#endif // GOOGLE_PROTOBUF_INCLUDED_GOOGLE_PROTOBUF_INCLUDED_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fversions_2fapi_2fapi_2eproto diff --git a/cpp/src/vereign/v1pb/common_types.pb.cc b/cpp/src/vereign/v1pb/common_types.pb.cc new file mode 100644 index 0000000000000000000000000000000000000000..b2da114968cab233224e200d2b1e5e191990c116 --- /dev/null +++ b/cpp/src/vereign/v1pb/common_types.pb.cc @@ -0,0 +1,826 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: common_types.proto + +#include "common_types.pb.h" + +#include <algorithm> + +#include <google/protobuf/io/coded_stream.h> +#include <google/protobuf/extension_set.h> +#include <google/protobuf/wire_format_lite.h> +#include <google/protobuf/descriptor.h> +#include <google/protobuf/generated_message_reflection.h> +#include <google/protobuf/reflection_ops.h> +#include <google/protobuf/wire_format.h> +// @@protoc_insertion_point(includes) +#include <google/protobuf/port_def.inc> +namespace vereign { +namespace v1pb { +class ErrorStringResponseDefaultTypeInternal { + public: + ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<ErrorStringResponse> _instance; +} _ErrorStringResponse_default_instance_; +class ErrorEmptyResponseDefaultTypeInternal { + public: + ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<ErrorEmptyResponse> _instance; +} _ErrorEmptyResponse_default_instance_; +class EmptyRequestDefaultTypeInternal { + public: + ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<EmptyRequest> _instance; +} _EmptyRequest_default_instance_; +} // namespace v1pb +} // namespace vereign +static void InitDefaultsscc_info_EmptyRequest_common_5ftypes_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::vereign::v1pb::_EmptyRequest_default_instance_; + new (ptr) ::vereign::v1pb::EmptyRequest(); + ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr); + } + ::vereign::v1pb::EmptyRequest::InitAsDefaultInstance(); +} + +::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_EmptyRequest_common_5ftypes_2eproto = + {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_EmptyRequest_common_5ftypes_2eproto}, {}}; + +static void InitDefaultsscc_info_ErrorEmptyResponse_common_5ftypes_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::vereign::v1pb::_ErrorEmptyResponse_default_instance_; + new (ptr) ::vereign::v1pb::ErrorEmptyResponse(); + ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr); + } + ::vereign::v1pb::ErrorEmptyResponse::InitAsDefaultInstance(); +} + +::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_ErrorEmptyResponse_common_5ftypes_2eproto = + {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_ErrorEmptyResponse_common_5ftypes_2eproto}, {}}; + +static void InitDefaultsscc_info_ErrorStringResponse_common_5ftypes_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::vereign::v1pb::_ErrorStringResponse_default_instance_; + new (ptr) ::vereign::v1pb::ErrorStringResponse(); + ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr); + } + ::vereign::v1pb::ErrorStringResponse::InitAsDefaultInstance(); +} + +::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_ErrorStringResponse_common_5ftypes_2eproto = + {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_ErrorStringResponse_common_5ftypes_2eproto}, {}}; + +static ::PROTOBUF_NAMESPACE_ID::Metadata file_level_metadata_common_5ftypes_2eproto[3]; +static constexpr ::PROTOBUF_NAMESPACE_ID::EnumDescriptor const** file_level_enum_descriptors_common_5ftypes_2eproto = nullptr; +static constexpr ::PROTOBUF_NAMESPACE_ID::ServiceDescriptor const** file_level_service_descriptors_common_5ftypes_2eproto = nullptr; + +const ::PROTOBUF_NAMESPACE_ID::uint32 TableStruct_common_5ftypes_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::vereign::v1pb::ErrorStringResponse, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + PROTOBUF_FIELD_OFFSET(::vereign::v1pb::ErrorStringResponse, status_), + PROTOBUF_FIELD_OFFSET(::vereign::v1pb::ErrorStringResponse, code_), + PROTOBUF_FIELD_OFFSET(::vereign::v1pb::ErrorStringResponse, data_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::vereign::v1pb::ErrorEmptyResponse, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + PROTOBUF_FIELD_OFFSET(::vereign::v1pb::ErrorEmptyResponse, status_), + PROTOBUF_FIELD_OFFSET(::vereign::v1pb::ErrorEmptyResponse, code_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::vereign::v1pb::EmptyRequest, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ +}; +static const ::PROTOBUF_NAMESPACE_ID::internal::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { + { 0, -1, sizeof(::vereign::v1pb::ErrorStringResponse)}, + { 8, -1, sizeof(::vereign::v1pb::ErrorEmptyResponse)}, + { 15, -1, sizeof(::vereign::v1pb::EmptyRequest)}, +}; + +static ::PROTOBUF_NAMESPACE_ID::Message const * const file_default_instances[] = { + reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::vereign::v1pb::_ErrorStringResponse_default_instance_), + reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::vereign::v1pb::_ErrorEmptyResponse_default_instance_), + reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::vereign::v1pb::_EmptyRequest_default_instance_), +}; + +const char descriptor_table_protodef_common_5ftypes_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = + "\n\022common_types.proto\022\014vereign.v1pb\"A\n\023Er" + "rorStringResponse\022\016\n\006status\030\001 \001(\t\022\014\n\004cod" + "e\030\002 \001(\t\022\014\n\004data\030\003 \001(\t\"2\n\022ErrorEmptyRespo" + "nse\022\016\n\006status\030\001 \001(\t\022\014\n\004code\030\002 \001(\t\"\016\n\014Emp" + "tyRequestb\006proto3" + ; +static const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable*const descriptor_table_common_5ftypes_2eproto_deps[1] = { +}; +static ::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase*const descriptor_table_common_5ftypes_2eproto_sccs[3] = { + &scc_info_EmptyRequest_common_5ftypes_2eproto.base, + &scc_info_ErrorEmptyResponse_common_5ftypes_2eproto.base, + &scc_info_ErrorStringResponse_common_5ftypes_2eproto.base, +}; +static ::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_common_5ftypes_2eproto_once; +static bool descriptor_table_common_5ftypes_2eproto_initialized = false; +const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_common_5ftypes_2eproto = { + &descriptor_table_common_5ftypes_2eproto_initialized, descriptor_table_protodef_common_5ftypes_2eproto, "common_types.proto", 177, + &descriptor_table_common_5ftypes_2eproto_once, descriptor_table_common_5ftypes_2eproto_sccs, descriptor_table_common_5ftypes_2eproto_deps, 3, 0, + schemas, file_default_instances, TableStruct_common_5ftypes_2eproto::offsets, + file_level_metadata_common_5ftypes_2eproto, 3, file_level_enum_descriptors_common_5ftypes_2eproto, file_level_service_descriptors_common_5ftypes_2eproto, +}; + +// Force running AddDescriptors() at dynamic initialization time. +static bool dynamic_init_dummy_common_5ftypes_2eproto = ( ::PROTOBUF_NAMESPACE_ID::internal::AddDescriptors(&descriptor_table_common_5ftypes_2eproto), true); +namespace vereign { +namespace v1pb { + +// =================================================================== + +void ErrorStringResponse::InitAsDefaultInstance() { +} +class ErrorStringResponse::_Internal { + public: +}; + +ErrorStringResponse::ErrorStringResponse() + : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) { + SharedCtor(); + // @@protoc_insertion_point(constructor:vereign.v1pb.ErrorStringResponse) +} +ErrorStringResponse::ErrorStringResponse(const ErrorStringResponse& from) + : ::PROTOBUF_NAMESPACE_ID::Message(), + _internal_metadata_(nullptr) { + _internal_metadata_.MergeFrom(from._internal_metadata_); + status_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + if (!from._internal_status().empty()) { + status_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.status_); + } + code_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + if (!from._internal_code().empty()) { + code_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.code_); + } + data_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + if (!from._internal_data().empty()) { + data_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.data_); + } + // @@protoc_insertion_point(copy_constructor:vereign.v1pb.ErrorStringResponse) +} + +void ErrorStringResponse::SharedCtor() { + ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_ErrorStringResponse_common_5ftypes_2eproto.base); + status_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + code_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + data_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} + +ErrorStringResponse::~ErrorStringResponse() { + // @@protoc_insertion_point(destructor:vereign.v1pb.ErrorStringResponse) + SharedDtor(); +} + +void ErrorStringResponse::SharedDtor() { + status_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + code_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + data_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} + +void ErrorStringResponse::SetCachedSize(int size) const { + _cached_size_.Set(size); +} +const ErrorStringResponse& ErrorStringResponse::default_instance() { + ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_ErrorStringResponse_common_5ftypes_2eproto.base); + return *internal_default_instance(); +} + + +void ErrorStringResponse::Clear() { +// @@protoc_insertion_point(message_clear_start:vereign.v1pb.ErrorStringResponse) + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + status_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + code_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + data_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + _internal_metadata_.Clear(); +} + +const char* ErrorStringResponse::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + ::PROTOBUF_NAMESPACE_ID::uint32 tag; + ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag); + CHK_(ptr); + switch (tag >> 3) { + // string status = 1; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) { + auto str = _internal_mutable_status(); + ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); + CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "vereign.v1pb.ErrorStringResponse.status")); + CHK_(ptr); + } else goto handle_unusual; + continue; + // string code = 2; + case 2: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) { + auto str = _internal_mutable_code(); + ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); + CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "vereign.v1pb.ErrorStringResponse.code")); + CHK_(ptr); + } else goto handle_unusual; + continue; + // string data = 3; + case 3: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) { + auto str = _internal_mutable_data(); + ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); + CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "vereign.v1pb.ErrorStringResponse.data")); + CHK_(ptr); + } else goto handle_unusual; + continue; + default: { + handle_unusual: + if ((tag & 7) == 4 || tag == 0) { + ctx->SetLastTag(tag); + goto success; + } + ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx); + CHK_(ptr != nullptr); + continue; + } + } // switch + } // while +success: + return ptr; +failure: + ptr = nullptr; + goto success; +#undef CHK_ +} + +::PROTOBUF_NAMESPACE_ID::uint8* ErrorStringResponse::_InternalSerialize( + ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:vereign.v1pb.ErrorStringResponse) + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + // string status = 1; + if (this->status().size() > 0) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_status().data(), static_cast<int>(this->_internal_status().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "vereign.v1pb.ErrorStringResponse.status"); + target = stream->WriteStringMaybeAliased( + 1, this->_internal_status(), target); + } + + // string code = 2; + if (this->code().size() > 0) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_code().data(), static_cast<int>(this->_internal_code().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "vereign.v1pb.ErrorStringResponse.code"); + target = stream->WriteStringMaybeAliased( + 2, this->_internal_code(), target); + } + + // string data = 3; + if (this->data().size() > 0) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_data().data(), static_cast<int>(this->_internal_data().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "vereign.v1pb.ErrorStringResponse.data"); + target = stream->WriteStringMaybeAliased( + 3, this->_internal_data(), target); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields(), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:vereign.v1pb.ErrorStringResponse) + return target; +} + +size_t ErrorStringResponse::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:vereign.v1pb.ErrorStringResponse) + size_t total_size = 0; + + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // string status = 1; + if (this->status().size() > 0) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_status()); + } + + // string code = 2; + if (this->code().size() > 0) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_code()); + } + + // string data = 3; + if (this->data().size() > 0) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_data()); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize( + _internal_metadata_, total_size, &_cached_size_); + } + int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size); + SetCachedSize(cached_size); + return total_size; +} + +void ErrorStringResponse::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { +// @@protoc_insertion_point(generalized_merge_from_start:vereign.v1pb.ErrorStringResponse) + GOOGLE_DCHECK_NE(&from, this); + const ErrorStringResponse* source = + ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<ErrorStringResponse>( + &from); + if (source == nullptr) { + // @@protoc_insertion_point(generalized_merge_from_cast_fail:vereign.v1pb.ErrorStringResponse) + ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this); + } else { + // @@protoc_insertion_point(generalized_merge_from_cast_success:vereign.v1pb.ErrorStringResponse) + MergeFrom(*source); + } +} + +void ErrorStringResponse::MergeFrom(const ErrorStringResponse& from) { +// @@protoc_insertion_point(class_specific_merge_from_start:vereign.v1pb.ErrorStringResponse) + GOOGLE_DCHECK_NE(&from, this); + _internal_metadata_.MergeFrom(from._internal_metadata_); + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + if (from.status().size() > 0) { + + status_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.status_); + } + if (from.code().size() > 0) { + + code_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.code_); + } + if (from.data().size() > 0) { + + data_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.data_); + } +} + +void ErrorStringResponse::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { +// @@protoc_insertion_point(generalized_copy_from_start:vereign.v1pb.ErrorStringResponse) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +void ErrorStringResponse::CopyFrom(const ErrorStringResponse& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:vereign.v1pb.ErrorStringResponse) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool ErrorStringResponse::IsInitialized() const { + return true; +} + +void ErrorStringResponse::InternalSwap(ErrorStringResponse* other) { + using std::swap; + _internal_metadata_.Swap(&other->_internal_metadata_); + status_.Swap(&other->status_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); + code_.Swap(&other->code_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); + data_.Swap(&other->data_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); +} + +::PROTOBUF_NAMESPACE_ID::Metadata ErrorStringResponse::GetMetadata() const { + return GetMetadataStatic(); +} + + +// =================================================================== + +void ErrorEmptyResponse::InitAsDefaultInstance() { +} +class ErrorEmptyResponse::_Internal { + public: +}; + +ErrorEmptyResponse::ErrorEmptyResponse() + : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) { + SharedCtor(); + // @@protoc_insertion_point(constructor:vereign.v1pb.ErrorEmptyResponse) +} +ErrorEmptyResponse::ErrorEmptyResponse(const ErrorEmptyResponse& from) + : ::PROTOBUF_NAMESPACE_ID::Message(), + _internal_metadata_(nullptr) { + _internal_metadata_.MergeFrom(from._internal_metadata_); + status_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + if (!from._internal_status().empty()) { + status_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.status_); + } + code_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + if (!from._internal_code().empty()) { + code_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.code_); + } + // @@protoc_insertion_point(copy_constructor:vereign.v1pb.ErrorEmptyResponse) +} + +void ErrorEmptyResponse::SharedCtor() { + ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_ErrorEmptyResponse_common_5ftypes_2eproto.base); + status_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + code_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} + +ErrorEmptyResponse::~ErrorEmptyResponse() { + // @@protoc_insertion_point(destructor:vereign.v1pb.ErrorEmptyResponse) + SharedDtor(); +} + +void ErrorEmptyResponse::SharedDtor() { + status_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + code_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} + +void ErrorEmptyResponse::SetCachedSize(int size) const { + _cached_size_.Set(size); +} +const ErrorEmptyResponse& ErrorEmptyResponse::default_instance() { + ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_ErrorEmptyResponse_common_5ftypes_2eproto.base); + return *internal_default_instance(); +} + + +void ErrorEmptyResponse::Clear() { +// @@protoc_insertion_point(message_clear_start:vereign.v1pb.ErrorEmptyResponse) + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + status_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + code_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + _internal_metadata_.Clear(); +} + +const char* ErrorEmptyResponse::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + ::PROTOBUF_NAMESPACE_ID::uint32 tag; + ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag); + CHK_(ptr); + switch (tag >> 3) { + // string status = 1; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) { + auto str = _internal_mutable_status(); + ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); + CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "vereign.v1pb.ErrorEmptyResponse.status")); + CHK_(ptr); + } else goto handle_unusual; + continue; + // string code = 2; + case 2: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) { + auto str = _internal_mutable_code(); + ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); + CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "vereign.v1pb.ErrorEmptyResponse.code")); + CHK_(ptr); + } else goto handle_unusual; + continue; + default: { + handle_unusual: + if ((tag & 7) == 4 || tag == 0) { + ctx->SetLastTag(tag); + goto success; + } + ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx); + CHK_(ptr != nullptr); + continue; + } + } // switch + } // while +success: + return ptr; +failure: + ptr = nullptr; + goto success; +#undef CHK_ +} + +::PROTOBUF_NAMESPACE_ID::uint8* ErrorEmptyResponse::_InternalSerialize( + ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:vereign.v1pb.ErrorEmptyResponse) + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + // string status = 1; + if (this->status().size() > 0) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_status().data(), static_cast<int>(this->_internal_status().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "vereign.v1pb.ErrorEmptyResponse.status"); + target = stream->WriteStringMaybeAliased( + 1, this->_internal_status(), target); + } + + // string code = 2; + if (this->code().size() > 0) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_code().data(), static_cast<int>(this->_internal_code().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "vereign.v1pb.ErrorEmptyResponse.code"); + target = stream->WriteStringMaybeAliased( + 2, this->_internal_code(), target); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields(), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:vereign.v1pb.ErrorEmptyResponse) + return target; +} + +size_t ErrorEmptyResponse::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:vereign.v1pb.ErrorEmptyResponse) + size_t total_size = 0; + + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // string status = 1; + if (this->status().size() > 0) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_status()); + } + + // string code = 2; + if (this->code().size() > 0) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_code()); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize( + _internal_metadata_, total_size, &_cached_size_); + } + int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size); + SetCachedSize(cached_size); + return total_size; +} + +void ErrorEmptyResponse::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { +// @@protoc_insertion_point(generalized_merge_from_start:vereign.v1pb.ErrorEmptyResponse) + GOOGLE_DCHECK_NE(&from, this); + const ErrorEmptyResponse* source = + ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<ErrorEmptyResponse>( + &from); + if (source == nullptr) { + // @@protoc_insertion_point(generalized_merge_from_cast_fail:vereign.v1pb.ErrorEmptyResponse) + ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this); + } else { + // @@protoc_insertion_point(generalized_merge_from_cast_success:vereign.v1pb.ErrorEmptyResponse) + MergeFrom(*source); + } +} + +void ErrorEmptyResponse::MergeFrom(const ErrorEmptyResponse& from) { +// @@protoc_insertion_point(class_specific_merge_from_start:vereign.v1pb.ErrorEmptyResponse) + GOOGLE_DCHECK_NE(&from, this); + _internal_metadata_.MergeFrom(from._internal_metadata_); + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + if (from.status().size() > 0) { + + status_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.status_); + } + if (from.code().size() > 0) { + + code_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.code_); + } +} + +void ErrorEmptyResponse::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { +// @@protoc_insertion_point(generalized_copy_from_start:vereign.v1pb.ErrorEmptyResponse) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +void ErrorEmptyResponse::CopyFrom(const ErrorEmptyResponse& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:vereign.v1pb.ErrorEmptyResponse) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool ErrorEmptyResponse::IsInitialized() const { + return true; +} + +void ErrorEmptyResponse::InternalSwap(ErrorEmptyResponse* other) { + using std::swap; + _internal_metadata_.Swap(&other->_internal_metadata_); + status_.Swap(&other->status_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); + code_.Swap(&other->code_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); +} + +::PROTOBUF_NAMESPACE_ID::Metadata ErrorEmptyResponse::GetMetadata() const { + return GetMetadataStatic(); +} + + +// =================================================================== + +void EmptyRequest::InitAsDefaultInstance() { +} +class EmptyRequest::_Internal { + public: +}; + +EmptyRequest::EmptyRequest() + : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) { + SharedCtor(); + // @@protoc_insertion_point(constructor:vereign.v1pb.EmptyRequest) +} +EmptyRequest::EmptyRequest(const EmptyRequest& from) + : ::PROTOBUF_NAMESPACE_ID::Message(), + _internal_metadata_(nullptr) { + _internal_metadata_.MergeFrom(from._internal_metadata_); + // @@protoc_insertion_point(copy_constructor:vereign.v1pb.EmptyRequest) +} + +void EmptyRequest::SharedCtor() { +} + +EmptyRequest::~EmptyRequest() { + // @@protoc_insertion_point(destructor:vereign.v1pb.EmptyRequest) + SharedDtor(); +} + +void EmptyRequest::SharedDtor() { +} + +void EmptyRequest::SetCachedSize(int size) const { + _cached_size_.Set(size); +} +const EmptyRequest& EmptyRequest::default_instance() { + ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_EmptyRequest_common_5ftypes_2eproto.base); + return *internal_default_instance(); +} + + +void EmptyRequest::Clear() { +// @@protoc_insertion_point(message_clear_start:vereign.v1pb.EmptyRequest) + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + _internal_metadata_.Clear(); +} + +const char* EmptyRequest::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + ::PROTOBUF_NAMESPACE_ID::uint32 tag; + ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag); + CHK_(ptr); + if ((tag & 7) == 4 || tag == 0) { + ctx->SetLastTag(tag); + goto success; + } + ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx); + CHK_(ptr != nullptr); + continue; + } // while +success: + return ptr; +failure: + ptr = nullptr; + goto success; +#undef CHK_ +} + +::PROTOBUF_NAMESPACE_ID::uint8* EmptyRequest::_InternalSerialize( + ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:vereign.v1pb.EmptyRequest) + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields(), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:vereign.v1pb.EmptyRequest) + return target; +} + +size_t EmptyRequest::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:vereign.v1pb.EmptyRequest) + size_t total_size = 0; + + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize( + _internal_metadata_, total_size, &_cached_size_); + } + int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size); + SetCachedSize(cached_size); + return total_size; +} + +void EmptyRequest::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { +// @@protoc_insertion_point(generalized_merge_from_start:vereign.v1pb.EmptyRequest) + GOOGLE_DCHECK_NE(&from, this); + const EmptyRequest* source = + ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<EmptyRequest>( + &from); + if (source == nullptr) { + // @@protoc_insertion_point(generalized_merge_from_cast_fail:vereign.v1pb.EmptyRequest) + ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this); + } else { + // @@protoc_insertion_point(generalized_merge_from_cast_success:vereign.v1pb.EmptyRequest) + MergeFrom(*source); + } +} + +void EmptyRequest::MergeFrom(const EmptyRequest& from) { +// @@protoc_insertion_point(class_specific_merge_from_start:vereign.v1pb.EmptyRequest) + GOOGLE_DCHECK_NE(&from, this); + _internal_metadata_.MergeFrom(from._internal_metadata_); + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + (void) cached_has_bits; + +} + +void EmptyRequest::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { +// @@protoc_insertion_point(generalized_copy_from_start:vereign.v1pb.EmptyRequest) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +void EmptyRequest::CopyFrom(const EmptyRequest& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:vereign.v1pb.EmptyRequest) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool EmptyRequest::IsInitialized() const { + return true; +} + +void EmptyRequest::InternalSwap(EmptyRequest* other) { + using std::swap; + _internal_metadata_.Swap(&other->_internal_metadata_); +} + +::PROTOBUF_NAMESPACE_ID::Metadata EmptyRequest::GetMetadata() const { + return GetMetadataStatic(); +} + + +// @@protoc_insertion_point(namespace_scope) +} // namespace v1pb +} // namespace vereign +PROTOBUF_NAMESPACE_OPEN +template<> PROTOBUF_NOINLINE ::vereign::v1pb::ErrorStringResponse* Arena::CreateMaybeMessage< ::vereign::v1pb::ErrorStringResponse >(Arena* arena) { + return Arena::CreateInternal< ::vereign::v1pb::ErrorStringResponse >(arena); +} +template<> PROTOBUF_NOINLINE ::vereign::v1pb::ErrorEmptyResponse* Arena::CreateMaybeMessage< ::vereign::v1pb::ErrorEmptyResponse >(Arena* arena) { + return Arena::CreateInternal< ::vereign::v1pb::ErrorEmptyResponse >(arena); +} +template<> PROTOBUF_NOINLINE ::vereign::v1pb::EmptyRequest* Arena::CreateMaybeMessage< ::vereign::v1pb::EmptyRequest >(Arena* arena) { + return Arena::CreateInternal< ::vereign::v1pb::EmptyRequest >(arena); +} +PROTOBUF_NAMESPACE_CLOSE + +// @@protoc_insertion_point(global_scope) +#include <google/protobuf/port_undef.inc> diff --git a/cpp/src/vereign/v1pb/common_types.pb.h b/cpp/src/vereign/v1pb/common_types.pb.h new file mode 100644 index 0000000000000000000000000000000000000000..f25f488d557e2f63e60acacc4d8f890322dcafaf --- /dev/null +++ b/cpp/src/vereign/v1pb/common_types.pb.h @@ -0,0 +1,852 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: common_types.proto + +#ifndef GOOGLE_PROTOBUF_INCLUDED_common_5ftypes_2eproto +#define GOOGLE_PROTOBUF_INCLUDED_common_5ftypes_2eproto + +#include <limits> +#include <string> + +#include <google/protobuf/port_def.inc> +#if PROTOBUF_VERSION < 3011000 +#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 3011002 < 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/port_undef.inc> +#include <google/protobuf/io/coded_stream.h> +#include <google/protobuf/arena.h> +#include <google/protobuf/arenastring.h> +#include <google/protobuf/generated_message_table_driven.h> +#include <google/protobuf/generated_message_util.h> +#include <google/protobuf/inlined_string_field.h> +#include <google/protobuf/metadata.h> +#include <google/protobuf/generated_message_reflection.h> +#include <google/protobuf/message.h> +#include <google/protobuf/repeated_field.h> // IWYU pragma: export +#include <google/protobuf/extension_set.h> // IWYU pragma: export +#include <google/protobuf/unknown_field_set.h> +// @@protoc_insertion_point(includes) +#include <google/protobuf/port_def.inc> +#define PROTOBUF_INTERNAL_EXPORT_common_5ftypes_2eproto +PROTOBUF_NAMESPACE_OPEN +namespace internal { +class AnyMetadata; +} // namespace internal +PROTOBUF_NAMESPACE_CLOSE + +// Internal implementation detail -- do not use these members. +struct TableStruct_common_5ftypes_2eproto { + static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTableField entries[] + PROTOBUF_SECTION_VARIABLE(protodesc_cold); + static const ::PROTOBUF_NAMESPACE_ID::internal::AuxillaryParseTableField aux[] + PROTOBUF_SECTION_VARIABLE(protodesc_cold); + static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTable schema[3] + PROTOBUF_SECTION_VARIABLE(protodesc_cold); + static const ::PROTOBUF_NAMESPACE_ID::internal::FieldMetadata field_metadata[]; + static const ::PROTOBUF_NAMESPACE_ID::internal::SerializationTable serialization_table[]; + static const ::PROTOBUF_NAMESPACE_ID::uint32 offsets[]; +}; +extern const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_common_5ftypes_2eproto; +namespace vereign { +namespace v1pb { +class EmptyRequest; +class EmptyRequestDefaultTypeInternal; +extern EmptyRequestDefaultTypeInternal _EmptyRequest_default_instance_; +class ErrorEmptyResponse; +class ErrorEmptyResponseDefaultTypeInternal; +extern ErrorEmptyResponseDefaultTypeInternal _ErrorEmptyResponse_default_instance_; +class ErrorStringResponse; +class ErrorStringResponseDefaultTypeInternal; +extern ErrorStringResponseDefaultTypeInternal _ErrorStringResponse_default_instance_; +} // namespace v1pb +} // namespace vereign +PROTOBUF_NAMESPACE_OPEN +template<> ::vereign::v1pb::EmptyRequest* Arena::CreateMaybeMessage<::vereign::v1pb::EmptyRequest>(Arena*); +template<> ::vereign::v1pb::ErrorEmptyResponse* Arena::CreateMaybeMessage<::vereign::v1pb::ErrorEmptyResponse>(Arena*); +template<> ::vereign::v1pb::ErrorStringResponse* Arena::CreateMaybeMessage<::vereign::v1pb::ErrorStringResponse>(Arena*); +PROTOBUF_NAMESPACE_CLOSE +namespace vereign { +namespace v1pb { + +// =================================================================== + +class ErrorStringResponse : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vereign.v1pb.ErrorStringResponse) */ { + public: + ErrorStringResponse(); + virtual ~ErrorStringResponse(); + + ErrorStringResponse(const ErrorStringResponse& from); + ErrorStringResponse(ErrorStringResponse&& from) noexcept + : ErrorStringResponse() { + *this = ::std::move(from); + } + + inline ErrorStringResponse& operator=(const ErrorStringResponse& from) { + CopyFrom(from); + return *this; + } + inline ErrorStringResponse& operator=(ErrorStringResponse&& from) noexcept { + if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) { + if (this != &from) InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return GetMetadataStatic().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return GetMetadataStatic().reflection; + } + static const ErrorStringResponse& default_instance(); + + static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY + static inline const ErrorStringResponse* internal_default_instance() { + return reinterpret_cast<const ErrorStringResponse*>( + &_ErrorStringResponse_default_instance_); + } + static constexpr int kIndexInFileMessages = + 0; + + friend void swap(ErrorStringResponse& a, ErrorStringResponse& b) { + a.Swap(&b); + } + inline void Swap(ErrorStringResponse* other) { + if (other == this) return; + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + inline ErrorStringResponse* New() const final { + return CreateMaybeMessage<ErrorStringResponse>(nullptr); + } + + ErrorStringResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final { + return CreateMaybeMessage<ErrorStringResponse>(arena); + } + void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; + void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; + void CopyFrom(const ErrorStringResponse& from); + void MergeFrom(const ErrorStringResponse& from); + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize( + ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _cached_size_.Get(); } + + private: + inline void SharedCtor(); + inline void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(ErrorStringResponse* other); + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "vereign.v1pb.ErrorStringResponse"; + } + private: + inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const { + return nullptr; + } + inline void* MaybeArenaPtr() const { + return nullptr; + } + public: + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + private: + static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() { + ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_common_5ftypes_2eproto); + return ::descriptor_table_common_5ftypes_2eproto.file_level_metadata[kIndexInFileMessages]; + } + + public: + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + enum : int { + kStatusFieldNumber = 1, + kCodeFieldNumber = 2, + kDataFieldNumber = 3, + }; + // string status = 1; + void clear_status(); + const std::string& status() const; + void set_status(const std::string& value); + void set_status(std::string&& value); + void set_status(const char* value); + void set_status(const char* value, size_t size); + std::string* mutable_status(); + std::string* release_status(); + void set_allocated_status(std::string* status); + private: + const std::string& _internal_status() const; + void _internal_set_status(const std::string& value); + std::string* _internal_mutable_status(); + public: + + // string code = 2; + void clear_code(); + const std::string& code() const; + void set_code(const std::string& value); + void set_code(std::string&& value); + void set_code(const char* value); + void set_code(const char* value, size_t size); + std::string* mutable_code(); + std::string* release_code(); + void set_allocated_code(std::string* code); + private: + const std::string& _internal_code() const; + void _internal_set_code(const std::string& value); + std::string* _internal_mutable_code(); + public: + + // string data = 3; + void clear_data(); + const std::string& data() const; + void set_data(const std::string& value); + void set_data(std::string&& value); + void set_data(const char* value); + void set_data(const char* value, size_t size); + std::string* mutable_data(); + std::string* release_data(); + void set_allocated_data(std::string* data); + private: + const std::string& _internal_data() const; + void _internal_set_data(const std::string& value); + std::string* _internal_mutable_data(); + public: + + // @@protoc_insertion_point(class_scope:vereign.v1pb.ErrorStringResponse) + private: + class _Internal; + + ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr status_; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr code_; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr data_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + friend struct ::TableStruct_common_5ftypes_2eproto; +}; +// ------------------------------------------------------------------- + +class ErrorEmptyResponse : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vereign.v1pb.ErrorEmptyResponse) */ { + public: + ErrorEmptyResponse(); + virtual ~ErrorEmptyResponse(); + + ErrorEmptyResponse(const ErrorEmptyResponse& from); + ErrorEmptyResponse(ErrorEmptyResponse&& from) noexcept + : ErrorEmptyResponse() { + *this = ::std::move(from); + } + + inline ErrorEmptyResponse& operator=(const ErrorEmptyResponse& from) { + CopyFrom(from); + return *this; + } + inline ErrorEmptyResponse& operator=(ErrorEmptyResponse&& from) noexcept { + if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) { + if (this != &from) InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return GetMetadataStatic().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return GetMetadataStatic().reflection; + } + static const ErrorEmptyResponse& default_instance(); + + static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY + static inline const ErrorEmptyResponse* internal_default_instance() { + return reinterpret_cast<const ErrorEmptyResponse*>( + &_ErrorEmptyResponse_default_instance_); + } + static constexpr int kIndexInFileMessages = + 1; + + friend void swap(ErrorEmptyResponse& a, ErrorEmptyResponse& b) { + a.Swap(&b); + } + inline void Swap(ErrorEmptyResponse* other) { + if (other == this) return; + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + inline ErrorEmptyResponse* New() const final { + return CreateMaybeMessage<ErrorEmptyResponse>(nullptr); + } + + ErrorEmptyResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final { + return CreateMaybeMessage<ErrorEmptyResponse>(arena); + } + void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; + void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; + void CopyFrom(const ErrorEmptyResponse& from); + void MergeFrom(const ErrorEmptyResponse& from); + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize( + ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _cached_size_.Get(); } + + private: + inline void SharedCtor(); + inline void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(ErrorEmptyResponse* other); + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "vereign.v1pb.ErrorEmptyResponse"; + } + private: + inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const { + return nullptr; + } + inline void* MaybeArenaPtr() const { + return nullptr; + } + public: + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + private: + static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() { + ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_common_5ftypes_2eproto); + return ::descriptor_table_common_5ftypes_2eproto.file_level_metadata[kIndexInFileMessages]; + } + + public: + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + enum : int { + kStatusFieldNumber = 1, + kCodeFieldNumber = 2, + }; + // string status = 1; + void clear_status(); + const std::string& status() const; + void set_status(const std::string& value); + void set_status(std::string&& value); + void set_status(const char* value); + void set_status(const char* value, size_t size); + std::string* mutable_status(); + std::string* release_status(); + void set_allocated_status(std::string* status); + private: + const std::string& _internal_status() const; + void _internal_set_status(const std::string& value); + std::string* _internal_mutable_status(); + public: + + // string code = 2; + void clear_code(); + const std::string& code() const; + void set_code(const std::string& value); + void set_code(std::string&& value); + void set_code(const char* value); + void set_code(const char* value, size_t size); + std::string* mutable_code(); + std::string* release_code(); + void set_allocated_code(std::string* code); + private: + const std::string& _internal_code() const; + void _internal_set_code(const std::string& value); + std::string* _internal_mutable_code(); + public: + + // @@protoc_insertion_point(class_scope:vereign.v1pb.ErrorEmptyResponse) + private: + class _Internal; + + ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr status_; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr code_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + friend struct ::TableStruct_common_5ftypes_2eproto; +}; +// ------------------------------------------------------------------- + +class EmptyRequest : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vereign.v1pb.EmptyRequest) */ { + public: + EmptyRequest(); + virtual ~EmptyRequest(); + + EmptyRequest(const EmptyRequest& from); + EmptyRequest(EmptyRequest&& from) noexcept + : EmptyRequest() { + *this = ::std::move(from); + } + + inline EmptyRequest& operator=(const EmptyRequest& from) { + CopyFrom(from); + return *this; + } + inline EmptyRequest& operator=(EmptyRequest&& from) noexcept { + if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) { + if (this != &from) InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return GetMetadataStatic().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return GetMetadataStatic().reflection; + } + static const EmptyRequest& default_instance(); + + static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY + static inline const EmptyRequest* internal_default_instance() { + return reinterpret_cast<const EmptyRequest*>( + &_EmptyRequest_default_instance_); + } + static constexpr int kIndexInFileMessages = + 2; + + friend void swap(EmptyRequest& a, EmptyRequest& b) { + a.Swap(&b); + } + inline void Swap(EmptyRequest* other) { + if (other == this) return; + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + inline EmptyRequest* New() const final { + return CreateMaybeMessage<EmptyRequest>(nullptr); + } + + EmptyRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final { + return CreateMaybeMessage<EmptyRequest>(arena); + } + void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; + void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; + void CopyFrom(const EmptyRequest& from); + void MergeFrom(const EmptyRequest& from); + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize( + ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _cached_size_.Get(); } + + private: + inline void SharedCtor(); + inline void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(EmptyRequest* other); + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "vereign.v1pb.EmptyRequest"; + } + private: + inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const { + return nullptr; + } + inline void* MaybeArenaPtr() const { + return nullptr; + } + public: + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + private: + static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() { + ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_common_5ftypes_2eproto); + return ::descriptor_table_common_5ftypes_2eproto.file_level_metadata[kIndexInFileMessages]; + } + + public: + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + // @@protoc_insertion_point(class_scope:vereign.v1pb.EmptyRequest) + private: + class _Internal; + + ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + friend struct ::TableStruct_common_5ftypes_2eproto; +}; +// =================================================================== + + +// =================================================================== + +#ifdef __GNUC__ + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wstrict-aliasing" +#endif // __GNUC__ +// ErrorStringResponse + +// string status = 1; +inline void ErrorStringResponse::clear_status() { + status_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline const std::string& ErrorStringResponse::status() const { + // @@protoc_insertion_point(field_get:vereign.v1pb.ErrorStringResponse.status) + return _internal_status(); +} +inline void ErrorStringResponse::set_status(const std::string& value) { + _internal_set_status(value); + // @@protoc_insertion_point(field_set:vereign.v1pb.ErrorStringResponse.status) +} +inline std::string* ErrorStringResponse::mutable_status() { + // @@protoc_insertion_point(field_mutable:vereign.v1pb.ErrorStringResponse.status) + return _internal_mutable_status(); +} +inline const std::string& ErrorStringResponse::_internal_status() const { + return status_.GetNoArena(); +} +inline void ErrorStringResponse::_internal_set_status(const std::string& value) { + + status_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value); +} +inline void ErrorStringResponse::set_status(std::string&& value) { + + status_.SetNoArena( + &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); + // @@protoc_insertion_point(field_set_rvalue:vereign.v1pb.ErrorStringResponse.status) +} +inline void ErrorStringResponse::set_status(const char* value) { + GOOGLE_DCHECK(value != nullptr); + + status_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); + // @@protoc_insertion_point(field_set_char:vereign.v1pb.ErrorStringResponse.status) +} +inline void ErrorStringResponse::set_status(const char* value, size_t size) { + + status_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + ::std::string(reinterpret_cast<const char*>(value), size)); + // @@protoc_insertion_point(field_set_pointer:vereign.v1pb.ErrorStringResponse.status) +} +inline std::string* ErrorStringResponse::_internal_mutable_status() { + + return status_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline std::string* ErrorStringResponse::release_status() { + // @@protoc_insertion_point(field_release:vereign.v1pb.ErrorStringResponse.status) + + return status_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline void ErrorStringResponse::set_allocated_status(std::string* status) { + if (status != nullptr) { + + } else { + + } + status_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), status); + // @@protoc_insertion_point(field_set_allocated:vereign.v1pb.ErrorStringResponse.status) +} + +// string code = 2; +inline void ErrorStringResponse::clear_code() { + code_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline const std::string& ErrorStringResponse::code() const { + // @@protoc_insertion_point(field_get:vereign.v1pb.ErrorStringResponse.code) + return _internal_code(); +} +inline void ErrorStringResponse::set_code(const std::string& value) { + _internal_set_code(value); + // @@protoc_insertion_point(field_set:vereign.v1pb.ErrorStringResponse.code) +} +inline std::string* ErrorStringResponse::mutable_code() { + // @@protoc_insertion_point(field_mutable:vereign.v1pb.ErrorStringResponse.code) + return _internal_mutable_code(); +} +inline const std::string& ErrorStringResponse::_internal_code() const { + return code_.GetNoArena(); +} +inline void ErrorStringResponse::_internal_set_code(const std::string& value) { + + code_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value); +} +inline void ErrorStringResponse::set_code(std::string&& value) { + + code_.SetNoArena( + &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); + // @@protoc_insertion_point(field_set_rvalue:vereign.v1pb.ErrorStringResponse.code) +} +inline void ErrorStringResponse::set_code(const char* value) { + GOOGLE_DCHECK(value != nullptr); + + code_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); + // @@protoc_insertion_point(field_set_char:vereign.v1pb.ErrorStringResponse.code) +} +inline void ErrorStringResponse::set_code(const char* value, size_t size) { + + code_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + ::std::string(reinterpret_cast<const char*>(value), size)); + // @@protoc_insertion_point(field_set_pointer:vereign.v1pb.ErrorStringResponse.code) +} +inline std::string* ErrorStringResponse::_internal_mutable_code() { + + return code_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline std::string* ErrorStringResponse::release_code() { + // @@protoc_insertion_point(field_release:vereign.v1pb.ErrorStringResponse.code) + + return code_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline void ErrorStringResponse::set_allocated_code(std::string* code) { + if (code != nullptr) { + + } else { + + } + code_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), code); + // @@protoc_insertion_point(field_set_allocated:vereign.v1pb.ErrorStringResponse.code) +} + +// string data = 3; +inline void ErrorStringResponse::clear_data() { + data_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline const std::string& ErrorStringResponse::data() const { + // @@protoc_insertion_point(field_get:vereign.v1pb.ErrorStringResponse.data) + return _internal_data(); +} +inline void ErrorStringResponse::set_data(const std::string& value) { + _internal_set_data(value); + // @@protoc_insertion_point(field_set:vereign.v1pb.ErrorStringResponse.data) +} +inline std::string* ErrorStringResponse::mutable_data() { + // @@protoc_insertion_point(field_mutable:vereign.v1pb.ErrorStringResponse.data) + return _internal_mutable_data(); +} +inline const std::string& ErrorStringResponse::_internal_data() const { + return data_.GetNoArena(); +} +inline void ErrorStringResponse::_internal_set_data(const std::string& value) { + + data_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value); +} +inline void ErrorStringResponse::set_data(std::string&& value) { + + data_.SetNoArena( + &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); + // @@protoc_insertion_point(field_set_rvalue:vereign.v1pb.ErrorStringResponse.data) +} +inline void ErrorStringResponse::set_data(const char* value) { + GOOGLE_DCHECK(value != nullptr); + + data_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); + // @@protoc_insertion_point(field_set_char:vereign.v1pb.ErrorStringResponse.data) +} +inline void ErrorStringResponse::set_data(const char* value, size_t size) { + + data_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + ::std::string(reinterpret_cast<const char*>(value), size)); + // @@protoc_insertion_point(field_set_pointer:vereign.v1pb.ErrorStringResponse.data) +} +inline std::string* ErrorStringResponse::_internal_mutable_data() { + + return data_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline std::string* ErrorStringResponse::release_data() { + // @@protoc_insertion_point(field_release:vereign.v1pb.ErrorStringResponse.data) + + return data_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline void ErrorStringResponse::set_allocated_data(std::string* data) { + if (data != nullptr) { + + } else { + + } + data_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), data); + // @@protoc_insertion_point(field_set_allocated:vereign.v1pb.ErrorStringResponse.data) +} + +// ------------------------------------------------------------------- + +// ErrorEmptyResponse + +// string status = 1; +inline void ErrorEmptyResponse::clear_status() { + status_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline const std::string& ErrorEmptyResponse::status() const { + // @@protoc_insertion_point(field_get:vereign.v1pb.ErrorEmptyResponse.status) + return _internal_status(); +} +inline void ErrorEmptyResponse::set_status(const std::string& value) { + _internal_set_status(value); + // @@protoc_insertion_point(field_set:vereign.v1pb.ErrorEmptyResponse.status) +} +inline std::string* ErrorEmptyResponse::mutable_status() { + // @@protoc_insertion_point(field_mutable:vereign.v1pb.ErrorEmptyResponse.status) + return _internal_mutable_status(); +} +inline const std::string& ErrorEmptyResponse::_internal_status() const { + return status_.GetNoArena(); +} +inline void ErrorEmptyResponse::_internal_set_status(const std::string& value) { + + status_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value); +} +inline void ErrorEmptyResponse::set_status(std::string&& value) { + + status_.SetNoArena( + &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); + // @@protoc_insertion_point(field_set_rvalue:vereign.v1pb.ErrorEmptyResponse.status) +} +inline void ErrorEmptyResponse::set_status(const char* value) { + GOOGLE_DCHECK(value != nullptr); + + status_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); + // @@protoc_insertion_point(field_set_char:vereign.v1pb.ErrorEmptyResponse.status) +} +inline void ErrorEmptyResponse::set_status(const char* value, size_t size) { + + status_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + ::std::string(reinterpret_cast<const char*>(value), size)); + // @@protoc_insertion_point(field_set_pointer:vereign.v1pb.ErrorEmptyResponse.status) +} +inline std::string* ErrorEmptyResponse::_internal_mutable_status() { + + return status_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline std::string* ErrorEmptyResponse::release_status() { + // @@protoc_insertion_point(field_release:vereign.v1pb.ErrorEmptyResponse.status) + + return status_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline void ErrorEmptyResponse::set_allocated_status(std::string* status) { + if (status != nullptr) { + + } else { + + } + status_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), status); + // @@protoc_insertion_point(field_set_allocated:vereign.v1pb.ErrorEmptyResponse.status) +} + +// string code = 2; +inline void ErrorEmptyResponse::clear_code() { + code_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline const std::string& ErrorEmptyResponse::code() const { + // @@protoc_insertion_point(field_get:vereign.v1pb.ErrorEmptyResponse.code) + return _internal_code(); +} +inline void ErrorEmptyResponse::set_code(const std::string& value) { + _internal_set_code(value); + // @@protoc_insertion_point(field_set:vereign.v1pb.ErrorEmptyResponse.code) +} +inline std::string* ErrorEmptyResponse::mutable_code() { + // @@protoc_insertion_point(field_mutable:vereign.v1pb.ErrorEmptyResponse.code) + return _internal_mutable_code(); +} +inline const std::string& ErrorEmptyResponse::_internal_code() const { + return code_.GetNoArena(); +} +inline void ErrorEmptyResponse::_internal_set_code(const std::string& value) { + + code_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value); +} +inline void ErrorEmptyResponse::set_code(std::string&& value) { + + code_.SetNoArena( + &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); + // @@protoc_insertion_point(field_set_rvalue:vereign.v1pb.ErrorEmptyResponse.code) +} +inline void ErrorEmptyResponse::set_code(const char* value) { + GOOGLE_DCHECK(value != nullptr); + + code_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); + // @@protoc_insertion_point(field_set_char:vereign.v1pb.ErrorEmptyResponse.code) +} +inline void ErrorEmptyResponse::set_code(const char* value, size_t size) { + + code_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + ::std::string(reinterpret_cast<const char*>(value), size)); + // @@protoc_insertion_point(field_set_pointer:vereign.v1pb.ErrorEmptyResponse.code) +} +inline std::string* ErrorEmptyResponse::_internal_mutable_code() { + + return code_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline std::string* ErrorEmptyResponse::release_code() { + // @@protoc_insertion_point(field_release:vereign.v1pb.ErrorEmptyResponse.code) + + return code_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline void ErrorEmptyResponse::set_allocated_code(std::string* code) { + if (code != nullptr) { + + } else { + + } + code_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), code); + // @@protoc_insertion_point(field_set_allocated:vereign.v1pb.ErrorEmptyResponse.code) +} + +// ------------------------------------------------------------------- + +// EmptyRequest + +#ifdef __GNUC__ + #pragma GCC diagnostic pop +#endif // __GNUC__ +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + + +// @@protoc_insertion_point(namespace_scope) + +} // namespace v1pb +} // namespace vereign + +// @@protoc_insertion_point(global_scope) + +#include <google/protobuf/port_undef.inc> +#endif // GOOGLE_PROTOBUF_INCLUDED_GOOGLE_PROTOBUF_INCLUDED_common_5ftypes_2eproto diff --git a/cpp/src/vereign/v1pb/dependencies.pb.cc b/cpp/src/vereign/v1pb/dependencies.pb.cc new file mode 100644 index 0000000000000000000000000000000000000000..6613a22a337b46f5bd72444f737c309d5374c920 --- /dev/null +++ b/cpp/src/vereign/v1pb/dependencies.pb.cc @@ -0,0 +1,256 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: dependencies.proto + +#include "dependencies.pb.h" + +#include <algorithm> + +#include <google/protobuf/io/coded_stream.h> +#include <google/protobuf/extension_set.h> +#include <google/protobuf/wire_format_lite.h> +#include <google/protobuf/descriptor.h> +#include <google/protobuf/generated_message_reflection.h> +#include <google/protobuf/reflection_ops.h> +#include <google/protobuf/wire_format.h> +// @@protoc_insertion_point(includes) +#include <google/protobuf/port_def.inc> +namespace vereign { +namespace v1pb { +namespace entities_management_agent { +namespace api { +class HelpDefaultTypeInternal { + public: + ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<Help> _instance; +} _Help_default_instance_; +} // namespace api +} // namespace entities_management_agent +} // namespace v1pb +} // namespace vereign +static void InitDefaultsscc_info_Help_dependencies_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::vereign::v1pb::entities_management_agent::api::_Help_default_instance_; + new (ptr) ::vereign::v1pb::entities_management_agent::api::Help(); + ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr); + } + ::vereign::v1pb::entities_management_agent::api::Help::InitAsDefaultInstance(); +} + +::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_Help_dependencies_2eproto = + {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_Help_dependencies_2eproto}, {}}; + +static ::PROTOBUF_NAMESPACE_ID::Metadata file_level_metadata_dependencies_2eproto[1]; +static constexpr ::PROTOBUF_NAMESPACE_ID::EnumDescriptor const** file_level_enum_descriptors_dependencies_2eproto = nullptr; +static constexpr ::PROTOBUF_NAMESPACE_ID::ServiceDescriptor const** file_level_service_descriptors_dependencies_2eproto = nullptr; + +const ::PROTOBUF_NAMESPACE_ID::uint32 TableStruct_dependencies_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::vereign::v1pb::entities_management_agent::api::Help, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ +}; +static const ::PROTOBUF_NAMESPACE_ID::internal::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { + { 0, -1, sizeof(::vereign::v1pb::entities_management_agent::api::Help)}, +}; + +static ::PROTOBUF_NAMESPACE_ID::Message const * const file_default_instances[] = { + reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::vereign::v1pb::entities_management_agent::api::_Help_default_instance_), +}; + +const char descriptor_table_protodef_dependencies_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = + "\n\022dependencies.proto\022*vereign.v1pb.entit" + "ies_management_agent.api\032Gcode.vereign.c" + "om/code/viam-apis/entities-management-ag" + "ent/api/api.proto\"\006\n\004HelpP\000b\006proto3" + ; +static const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable*const descriptor_table_dependencies_2eproto_deps[1] = { + &::descriptor_table_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto, +}; +static ::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase*const descriptor_table_dependencies_2eproto_sccs[1] = { + &scc_info_Help_dependencies_2eproto.base, +}; +static ::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_dependencies_2eproto_once; +static bool descriptor_table_dependencies_2eproto_initialized = false; +const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_dependencies_2eproto = { + &descriptor_table_dependencies_2eproto_initialized, descriptor_table_protodef_dependencies_2eproto, "dependencies.proto", 155, + &descriptor_table_dependencies_2eproto_once, descriptor_table_dependencies_2eproto_sccs, descriptor_table_dependencies_2eproto_deps, 1, 1, + schemas, file_default_instances, TableStruct_dependencies_2eproto::offsets, + file_level_metadata_dependencies_2eproto, 1, file_level_enum_descriptors_dependencies_2eproto, file_level_service_descriptors_dependencies_2eproto, +}; + +// Force running AddDescriptors() at dynamic initialization time. +static bool dynamic_init_dummy_dependencies_2eproto = ( ::PROTOBUF_NAMESPACE_ID::internal::AddDescriptors(&descriptor_table_dependencies_2eproto), true); +namespace vereign { +namespace v1pb { +namespace entities_management_agent { +namespace api { + +// =================================================================== + +void Help::InitAsDefaultInstance() { +} +class Help::_Internal { + public: +}; + +Help::Help() + : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) { + SharedCtor(); + // @@protoc_insertion_point(constructor:vereign.v1pb.entities_management_agent.api.Help) +} +Help::Help(const Help& from) + : ::PROTOBUF_NAMESPACE_ID::Message(), + _internal_metadata_(nullptr) { + _internal_metadata_.MergeFrom(from._internal_metadata_); + // @@protoc_insertion_point(copy_constructor:vereign.v1pb.entities_management_agent.api.Help) +} + +void Help::SharedCtor() { +} + +Help::~Help() { + // @@protoc_insertion_point(destructor:vereign.v1pb.entities_management_agent.api.Help) + SharedDtor(); +} + +void Help::SharedDtor() { +} + +void Help::SetCachedSize(int size) const { + _cached_size_.Set(size); +} +const Help& Help::default_instance() { + ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_Help_dependencies_2eproto.base); + return *internal_default_instance(); +} + + +void Help::Clear() { +// @@protoc_insertion_point(message_clear_start:vereign.v1pb.entities_management_agent.api.Help) + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + _internal_metadata_.Clear(); +} + +const char* Help::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + ::PROTOBUF_NAMESPACE_ID::uint32 tag; + ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag); + CHK_(ptr); + if ((tag & 7) == 4 || tag == 0) { + ctx->SetLastTag(tag); + goto success; + } + ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx); + CHK_(ptr != nullptr); + continue; + } // while +success: + return ptr; +failure: + ptr = nullptr; + goto success; +#undef CHK_ +} + +::PROTOBUF_NAMESPACE_ID::uint8* Help::_InternalSerialize( + ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:vereign.v1pb.entities_management_agent.api.Help) + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields(), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:vereign.v1pb.entities_management_agent.api.Help) + return target; +} + +size_t Help::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:vereign.v1pb.entities_management_agent.api.Help) + size_t total_size = 0; + + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize( + _internal_metadata_, total_size, &_cached_size_); + } + int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size); + SetCachedSize(cached_size); + return total_size; +} + +void Help::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { +// @@protoc_insertion_point(generalized_merge_from_start:vereign.v1pb.entities_management_agent.api.Help) + GOOGLE_DCHECK_NE(&from, this); + const Help* source = + ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<Help>( + &from); + if (source == nullptr) { + // @@protoc_insertion_point(generalized_merge_from_cast_fail:vereign.v1pb.entities_management_agent.api.Help) + ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this); + } else { + // @@protoc_insertion_point(generalized_merge_from_cast_success:vereign.v1pb.entities_management_agent.api.Help) + MergeFrom(*source); + } +} + +void Help::MergeFrom(const Help& from) { +// @@protoc_insertion_point(class_specific_merge_from_start:vereign.v1pb.entities_management_agent.api.Help) + GOOGLE_DCHECK_NE(&from, this); + _internal_metadata_.MergeFrom(from._internal_metadata_); + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + (void) cached_has_bits; + +} + +void Help::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { +// @@protoc_insertion_point(generalized_copy_from_start:vereign.v1pb.entities_management_agent.api.Help) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +void Help::CopyFrom(const Help& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:vereign.v1pb.entities_management_agent.api.Help) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool Help::IsInitialized() const { + return true; +} + +void Help::InternalSwap(Help* other) { + using std::swap; + _internal_metadata_.Swap(&other->_internal_metadata_); +} + +::PROTOBUF_NAMESPACE_ID::Metadata Help::GetMetadata() const { + return GetMetadataStatic(); +} + + +// @@protoc_insertion_point(namespace_scope) +} // namespace api +} // namespace entities_management_agent +} // namespace v1pb +} // namespace vereign +PROTOBUF_NAMESPACE_OPEN +template<> PROTOBUF_NOINLINE ::vereign::v1pb::entities_management_agent::api::Help* Arena::CreateMaybeMessage< ::vereign::v1pb::entities_management_agent::api::Help >(Arena* arena) { + return Arena::CreateInternal< ::vereign::v1pb::entities_management_agent::api::Help >(arena); +} +PROTOBUF_NAMESPACE_CLOSE + +// @@protoc_insertion_point(global_scope) +#include <google/protobuf/port_undef.inc> diff --git a/cpp/src/vereign/v1pb/dependencies.pb.h b/cpp/src/vereign/v1pb/dependencies.pb.h new file mode 100644 index 0000000000000000000000000000000000000000..f20cc78ebdc84d6a3df3db4c88dcd86cd93013eb --- /dev/null +++ b/cpp/src/vereign/v1pb/dependencies.pb.h @@ -0,0 +1,217 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: dependencies.proto + +#ifndef GOOGLE_PROTOBUF_INCLUDED_dependencies_2eproto +#define GOOGLE_PROTOBUF_INCLUDED_dependencies_2eproto + +#include <limits> +#include <string> + +#include <google/protobuf/port_def.inc> +#if PROTOBUF_VERSION < 3011000 +#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 3011002 < 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/port_undef.inc> +#include <google/protobuf/io/coded_stream.h> +#include <google/protobuf/arena.h> +#include <google/protobuf/arenastring.h> +#include <google/protobuf/generated_message_table_driven.h> +#include <google/protobuf/generated_message_util.h> +#include <google/protobuf/inlined_string_field.h> +#include <google/protobuf/metadata.h> +#include <google/protobuf/generated_message_reflection.h> +#include <google/protobuf/message.h> +#include <google/protobuf/repeated_field.h> // IWYU pragma: export +#include <google/protobuf/extension_set.h> // IWYU pragma: export +#include <google/protobuf/unknown_field_set.h> +#include "code.vereign.com/code/viam-apis/entities-management-agent/api/api.pb.h" +// @@protoc_insertion_point(includes) +#include <google/protobuf/port_def.inc> +#define PROTOBUF_INTERNAL_EXPORT_dependencies_2eproto +PROTOBUF_NAMESPACE_OPEN +namespace internal { +class AnyMetadata; +} // namespace internal +PROTOBUF_NAMESPACE_CLOSE + +// Internal implementation detail -- do not use these members. +struct TableStruct_dependencies_2eproto { + static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTableField entries[] + PROTOBUF_SECTION_VARIABLE(protodesc_cold); + static const ::PROTOBUF_NAMESPACE_ID::internal::AuxillaryParseTableField aux[] + PROTOBUF_SECTION_VARIABLE(protodesc_cold); + static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTable schema[1] + PROTOBUF_SECTION_VARIABLE(protodesc_cold); + static const ::PROTOBUF_NAMESPACE_ID::internal::FieldMetadata field_metadata[]; + static const ::PROTOBUF_NAMESPACE_ID::internal::SerializationTable serialization_table[]; + static const ::PROTOBUF_NAMESPACE_ID::uint32 offsets[]; +}; +extern const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_dependencies_2eproto; +namespace vereign { +namespace v1pb { +namespace entities_management_agent { +namespace api { +class Help; +class HelpDefaultTypeInternal; +extern HelpDefaultTypeInternal _Help_default_instance_; +} // namespace api +} // namespace entities_management_agent +} // namespace v1pb +} // namespace vereign +PROTOBUF_NAMESPACE_OPEN +template<> ::vereign::v1pb::entities_management_agent::api::Help* Arena::CreateMaybeMessage<::vereign::v1pb::entities_management_agent::api::Help>(Arena*); +PROTOBUF_NAMESPACE_CLOSE +namespace vereign { +namespace v1pb { +namespace entities_management_agent { +namespace api { + +// =================================================================== + +class Help : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vereign.v1pb.entities_management_agent.api.Help) */ { + public: + Help(); + virtual ~Help(); + + Help(const Help& from); + Help(Help&& from) noexcept + : Help() { + *this = ::std::move(from); + } + + inline Help& operator=(const Help& from) { + CopyFrom(from); + return *this; + } + inline Help& operator=(Help&& from) noexcept { + if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) { + if (this != &from) InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return GetMetadataStatic().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return GetMetadataStatic().reflection; + } + static const Help& default_instance(); + + static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY + static inline const Help* internal_default_instance() { + return reinterpret_cast<const Help*>( + &_Help_default_instance_); + } + static constexpr int kIndexInFileMessages = + 0; + + friend void swap(Help& a, Help& b) { + a.Swap(&b); + } + inline void Swap(Help* other) { + if (other == this) return; + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + inline Help* New() const final { + return CreateMaybeMessage<Help>(nullptr); + } + + Help* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final { + return CreateMaybeMessage<Help>(arena); + } + void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; + void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; + void CopyFrom(const Help& from); + void MergeFrom(const Help& from); + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize( + ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _cached_size_.Get(); } + + private: + inline void SharedCtor(); + inline void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(Help* other); + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "vereign.v1pb.entities_management_agent.api.Help"; + } + private: + inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const { + return nullptr; + } + inline void* MaybeArenaPtr() const { + return nullptr; + } + public: + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + private: + static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() { + ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_dependencies_2eproto); + return ::descriptor_table_dependencies_2eproto.file_level_metadata[kIndexInFileMessages]; + } + + public: + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + // @@protoc_insertion_point(class_scope:vereign.v1pb.entities_management_agent.api.Help) + private: + class _Internal; + + ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + friend struct ::TableStruct_dependencies_2eproto; +}; +// =================================================================== + + +// =================================================================== + +#ifdef __GNUC__ + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wstrict-aliasing" +#endif // __GNUC__ +// Help + +#ifdef __GNUC__ + #pragma GCC diagnostic pop +#endif // __GNUC__ + +// @@protoc_insertion_point(namespace_scope) + +} // namespace api +} // namespace entities_management_agent +} // namespace v1pb +} // namespace vereign + +// @@protoc_insertion_point(global_scope) + +#include <google/protobuf/port_undef.inc> +#endif // GOOGLE_PROTOBUF_INCLUDED_GOOGLE_PROTOBUF_INCLUDED_dependencies_2eproto diff --git a/cpp/src/vereign/v1pb/google/api/annotations.pb.cc b/cpp/src/vereign/v1pb/google/api/annotations.pb.cc new file mode 100644 index 0000000000000000000000000000000000000000..402b58ede7ba17873fd65e99b055867e7a2f6007 --- /dev/null +++ b/cpp/src/vereign/v1pb/google/api/annotations.pb.cc @@ -0,0 +1,69 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/api/annotations.proto + +#include "google/api/annotations.pb.h" + +#include <algorithm> + +#include <google/protobuf/io/coded_stream.h> +#include <google/protobuf/extension_set.h> +#include <google/protobuf/wire_format_lite.h> +#include <google/protobuf/descriptor.h> +#include <google/protobuf/generated_message_reflection.h> +#include <google/protobuf/reflection_ops.h> +#include <google/protobuf/wire_format.h> +// @@protoc_insertion_point(includes) +#include <google/protobuf/port_def.inc> +extern PROTOBUF_INTERNAL_EXPORT_google_2fapi_2fhttp_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_HttpRule_google_2fapi_2fhttp_2eproto; +namespace google { +namespace api { +} // namespace api +} // namespace google +static constexpr ::PROTOBUF_NAMESPACE_ID::Metadata* file_level_metadata_google_2fapi_2fannotations_2eproto = nullptr; +static constexpr ::PROTOBUF_NAMESPACE_ID::EnumDescriptor const** file_level_enum_descriptors_google_2fapi_2fannotations_2eproto = nullptr; +static constexpr ::PROTOBUF_NAMESPACE_ID::ServiceDescriptor const** file_level_service_descriptors_google_2fapi_2fannotations_2eproto = nullptr; +const ::PROTOBUF_NAMESPACE_ID::uint32 TableStruct_google_2fapi_2fannotations_2eproto::offsets[1] = {}; +static constexpr ::PROTOBUF_NAMESPACE_ID::internal::MigrationSchema* schemas = nullptr; +static constexpr ::PROTOBUF_NAMESPACE_ID::Message* const* file_default_instances = nullptr; + +const char descriptor_table_protodef_google_2fapi_2fannotations_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = + "\n\034google/api/annotations.proto\022\ngoogle.a" + "pi\032\025google/api/http.proto\032 google/protob" + "uf/descriptor.proto:E\n\004http\022\036.google.pro" + "tobuf.MethodOptions\030\260\312\274\" \001(\0132\024.google.ap" + "i.HttpRuleBn\n\016com.google.apiB\020Annotation" + "sProtoP\001ZAgoogle.golang.org/genproto/goo" + "gleapis/api/annotations;annotations\242\002\004GA" + "PIb\006proto3" + ; +static const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable*const descriptor_table_google_2fapi_2fannotations_2eproto_deps[2] = { + &::descriptor_table_google_2fapi_2fhttp_2eproto, + &::descriptor_table_google_2fprotobuf_2fdescriptor_2eproto, +}; +static ::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase*const descriptor_table_google_2fapi_2fannotations_2eproto_sccs[1] = { +}; +static ::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_google_2fapi_2fannotations_2eproto_once; +static bool descriptor_table_google_2fapi_2fannotations_2eproto_initialized = false; +const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_google_2fapi_2fannotations_2eproto = { + &descriptor_table_google_2fapi_2fannotations_2eproto_initialized, descriptor_table_protodef_google_2fapi_2fannotations_2eproto, "google/api/annotations.proto", 290, + &descriptor_table_google_2fapi_2fannotations_2eproto_once, descriptor_table_google_2fapi_2fannotations_2eproto_sccs, descriptor_table_google_2fapi_2fannotations_2eproto_deps, 0, 2, + schemas, file_default_instances, TableStruct_google_2fapi_2fannotations_2eproto::offsets, + file_level_metadata_google_2fapi_2fannotations_2eproto, 0, file_level_enum_descriptors_google_2fapi_2fannotations_2eproto, file_level_service_descriptors_google_2fapi_2fannotations_2eproto, +}; + +// Force running AddDescriptors() at dynamic initialization time. +static bool dynamic_init_dummy_google_2fapi_2fannotations_2eproto = ( ::PROTOBUF_NAMESPACE_ID::internal::AddDescriptors(&descriptor_table_google_2fapi_2fannotations_2eproto), true); +namespace google { +namespace api { +::PROTOBUF_NAMESPACE_ID::internal::ExtensionIdentifier< ::google::protobuf::MethodOptions, + ::PROTOBUF_NAMESPACE_ID::internal::MessageTypeTraits< ::google::api::HttpRule >, 11, false > + http(kHttpFieldNumber, *::google::api::HttpRule::internal_default_instance()); + +// @@protoc_insertion_point(namespace_scope) +} // namespace api +} // namespace google +PROTOBUF_NAMESPACE_OPEN +PROTOBUF_NAMESPACE_CLOSE + +// @@protoc_insertion_point(global_scope) +#include <google/protobuf/port_undef.inc> diff --git a/cpp/src/vereign/v1pb/google/api/annotations.pb.h b/cpp/src/vereign/v1pb/google/api/annotations.pb.h new file mode 100644 index 0000000000000000000000000000000000000000..81b740e2e069f81c2e1a0b875129af79d1b3bc2d --- /dev/null +++ b/cpp/src/vereign/v1pb/google/api/annotations.pb.h @@ -0,0 +1,90 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/api/annotations.proto + +#ifndef GOOGLE_PROTOBUF_INCLUDED_google_2fapi_2fannotations_2eproto +#define GOOGLE_PROTOBUF_INCLUDED_google_2fapi_2fannotations_2eproto + +#include <limits> +#include <string> + +#include <google/protobuf/port_def.inc> +#if PROTOBUF_VERSION < 3011000 +#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 3011002 < 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/port_undef.inc> +#include <google/protobuf/io/coded_stream.h> +#include <google/protobuf/arena.h> +#include <google/protobuf/arenastring.h> +#include <google/protobuf/generated_message_table_driven.h> +#include <google/protobuf/generated_message_util.h> +#include <google/protobuf/inlined_string_field.h> +#include <google/protobuf/metadata.h> +#include <google/protobuf/generated_message_reflection.h> +#include <google/protobuf/repeated_field.h> // IWYU pragma: export +#include <google/protobuf/extension_set.h> // IWYU pragma: export +#include "google/api/http.pb.h" +#include <google/protobuf/descriptor.pb.h> +// @@protoc_insertion_point(includes) +#include <google/protobuf/port_def.inc> +#define PROTOBUF_INTERNAL_EXPORT_google_2fapi_2fannotations_2eproto +PROTOBUF_NAMESPACE_OPEN +namespace internal { +class AnyMetadata; +} // namespace internal +PROTOBUF_NAMESPACE_CLOSE + +// Internal implementation detail -- do not use these members. +struct TableStruct_google_2fapi_2fannotations_2eproto { + static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTableField entries[] + PROTOBUF_SECTION_VARIABLE(protodesc_cold); + static const ::PROTOBUF_NAMESPACE_ID::internal::AuxillaryParseTableField aux[] + PROTOBUF_SECTION_VARIABLE(protodesc_cold); + static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTable schema[1] + PROTOBUF_SECTION_VARIABLE(protodesc_cold); + static const ::PROTOBUF_NAMESPACE_ID::internal::FieldMetadata field_metadata[]; + static const ::PROTOBUF_NAMESPACE_ID::internal::SerializationTable serialization_table[]; + static const ::PROTOBUF_NAMESPACE_ID::uint32 offsets[]; +}; +extern const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_google_2fapi_2fannotations_2eproto; +PROTOBUF_NAMESPACE_OPEN +PROTOBUF_NAMESPACE_CLOSE +namespace google { +namespace api { + +// =================================================================== + + +// =================================================================== + +static const int kHttpFieldNumber = 72295728; +extern ::PROTOBUF_NAMESPACE_ID::internal::ExtensionIdentifier< ::google::protobuf::MethodOptions, + ::PROTOBUF_NAMESPACE_ID::internal::MessageTypeTraits< ::google::api::HttpRule >, 11, false > + http; + +// =================================================================== + +#ifdef __GNUC__ + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wstrict-aliasing" +#endif // __GNUC__ +#ifdef __GNUC__ + #pragma GCC diagnostic pop +#endif // __GNUC__ + +// @@protoc_insertion_point(namespace_scope) + +} // namespace api +} // namespace google + +// @@protoc_insertion_point(global_scope) + +#include <google/protobuf/port_undef.inc> +#endif // GOOGLE_PROTOBUF_INCLUDED_GOOGLE_PROTOBUF_INCLUDED_google_2fapi_2fannotations_2eproto diff --git a/cpp/src/vereign/v1pb/google/api/http.pb.cc b/cpp/src/vereign/v1pb/google/api/http.pb.cc new file mode 100644 index 0000000000000000000000000000000000000000..e468c0ee95b905da6a0b808848da248b4ed0a5d1 --- /dev/null +++ b/cpp/src/vereign/v1pb/google/api/http.pb.cc @@ -0,0 +1,1292 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/api/http.proto + +#include "google/api/http.pb.h" + +#include <algorithm> + +#include <google/protobuf/io/coded_stream.h> +#include <google/protobuf/extension_set.h> +#include <google/protobuf/wire_format_lite.h> +#include <google/protobuf/descriptor.h> +#include <google/protobuf/generated_message_reflection.h> +#include <google/protobuf/reflection_ops.h> +#include <google/protobuf/wire_format.h> +// @@protoc_insertion_point(includes) +#include <google/protobuf/port_def.inc> +extern PROTOBUF_INTERNAL_EXPORT_google_2fapi_2fhttp_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_CustomHttpPattern_google_2fapi_2fhttp_2eproto; +extern PROTOBUF_INTERNAL_EXPORT_google_2fapi_2fhttp_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_HttpRule_google_2fapi_2fhttp_2eproto; +namespace google { +namespace api { +class HttpDefaultTypeInternal { + public: + ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<Http> _instance; +} _Http_default_instance_; +class HttpRuleDefaultTypeInternal { + public: + ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<HttpRule> _instance; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr get_; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr put_; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr post_; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr delete__; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr patch_; + const ::google::api::CustomHttpPattern* custom_; +} _HttpRule_default_instance_; +class CustomHttpPatternDefaultTypeInternal { + public: + ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<CustomHttpPattern> _instance; +} _CustomHttpPattern_default_instance_; +} // namespace api +} // namespace google +static void InitDefaultsscc_info_CustomHttpPattern_google_2fapi_2fhttp_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::google::api::_CustomHttpPattern_default_instance_; + new (ptr) ::google::api::CustomHttpPattern(); + ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr); + } + ::google::api::CustomHttpPattern::InitAsDefaultInstance(); +} + +::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_CustomHttpPattern_google_2fapi_2fhttp_2eproto = + {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_CustomHttpPattern_google_2fapi_2fhttp_2eproto}, {}}; + +static void InitDefaultsscc_info_Http_google_2fapi_2fhttp_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::google::api::_Http_default_instance_; + new (ptr) ::google::api::Http(); + ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr); + } + ::google::api::Http::InitAsDefaultInstance(); +} + +::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_Http_google_2fapi_2fhttp_2eproto = + {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_Http_google_2fapi_2fhttp_2eproto}, { + &scc_info_HttpRule_google_2fapi_2fhttp_2eproto.base,}}; + +static void InitDefaultsscc_info_HttpRule_google_2fapi_2fhttp_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::google::api::_HttpRule_default_instance_; + new (ptr) ::google::api::HttpRule(); + ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr); + } + ::google::api::HttpRule::InitAsDefaultInstance(); +} + +::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_HttpRule_google_2fapi_2fhttp_2eproto = + {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_HttpRule_google_2fapi_2fhttp_2eproto}, { + &scc_info_CustomHttpPattern_google_2fapi_2fhttp_2eproto.base,}}; + +static ::PROTOBUF_NAMESPACE_ID::Metadata file_level_metadata_google_2fapi_2fhttp_2eproto[3]; +static constexpr ::PROTOBUF_NAMESPACE_ID::EnumDescriptor const** file_level_enum_descriptors_google_2fapi_2fhttp_2eproto = nullptr; +static constexpr ::PROTOBUF_NAMESPACE_ID::ServiceDescriptor const** file_level_service_descriptors_google_2fapi_2fhttp_2eproto = nullptr; + +const ::PROTOBUF_NAMESPACE_ID::uint32 TableStruct_google_2fapi_2fhttp_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::google::api::Http, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + PROTOBUF_FIELD_OFFSET(::google::api::Http, rules_), + PROTOBUF_FIELD_OFFSET(::google::api::Http, fully_decode_reserved_expansion_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::google::api::HttpRule, _internal_metadata_), + ~0u, // no _extensions_ + PROTOBUF_FIELD_OFFSET(::google::api::HttpRule, _oneof_case_[0]), + ~0u, // no _weak_field_map_ + PROTOBUF_FIELD_OFFSET(::google::api::HttpRule, selector_), + offsetof(::google::api::HttpRuleDefaultTypeInternal, get_), + offsetof(::google::api::HttpRuleDefaultTypeInternal, put_), + offsetof(::google::api::HttpRuleDefaultTypeInternal, post_), + offsetof(::google::api::HttpRuleDefaultTypeInternal, delete__), + offsetof(::google::api::HttpRuleDefaultTypeInternal, patch_), + offsetof(::google::api::HttpRuleDefaultTypeInternal, custom_), + PROTOBUF_FIELD_OFFSET(::google::api::HttpRule, body_), + PROTOBUF_FIELD_OFFSET(::google::api::HttpRule, response_body_), + PROTOBUF_FIELD_OFFSET(::google::api::HttpRule, additional_bindings_), + PROTOBUF_FIELD_OFFSET(::google::api::HttpRule, pattern_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::google::api::CustomHttpPattern, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + PROTOBUF_FIELD_OFFSET(::google::api::CustomHttpPattern, kind_), + PROTOBUF_FIELD_OFFSET(::google::api::CustomHttpPattern, path_), +}; +static const ::PROTOBUF_NAMESPACE_ID::internal::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { + { 0, -1, sizeof(::google::api::Http)}, + { 7, -1, sizeof(::google::api::HttpRule)}, + { 23, -1, sizeof(::google::api::CustomHttpPattern)}, +}; + +static ::PROTOBUF_NAMESPACE_ID::Message const * const file_default_instances[] = { + reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::google::api::_Http_default_instance_), + reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::google::api::_HttpRule_default_instance_), + reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::google::api::_CustomHttpPattern_default_instance_), +}; + +const char descriptor_table_protodef_google_2fapi_2fhttp_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = + "\n\025google/api/http.proto\022\ngoogle.api\"T\n\004H" + "ttp\022#\n\005rules\030\001 \003(\0132\024.google.api.HttpRule" + "\022\'\n\037fully_decode_reserved_expansion\030\002 \001(" + "\010\"\201\002\n\010HttpRule\022\020\n\010selector\030\001 \001(\t\022\r\n\003get\030" + "\002 \001(\tH\000\022\r\n\003put\030\003 \001(\tH\000\022\016\n\004post\030\004 \001(\tH\000\022\020" + "\n\006delete\030\005 \001(\tH\000\022\017\n\005patch\030\006 \001(\tH\000\022/\n\006cus" + "tom\030\010 \001(\0132\035.google.api.CustomHttpPattern" + "H\000\022\014\n\004body\030\007 \001(\t\022\025\n\rresponse_body\030\014 \001(\t\022" + "1\n\023additional_bindings\030\013 \003(\0132\024.google.ap" + "i.HttpRuleB\t\n\007pattern\"/\n\021CustomHttpPatte" + "rn\022\014\n\004kind\030\001 \001(\t\022\014\n\004path\030\002 \001(\tBj\n\016com.go" + "ogle.apiB\tHttpProtoP\001ZAgoogle.golang.org" + "/genproto/googleapis/api/annotations;ann" + "otations\370\001\001\242\002\004GAPIb\006proto3" + ; +static const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable*const descriptor_table_google_2fapi_2fhttp_2eproto_deps[1] = { +}; +static ::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase*const descriptor_table_google_2fapi_2fhttp_2eproto_sccs[3] = { + &scc_info_CustomHttpPattern_google_2fapi_2fhttp_2eproto.base, + &scc_info_Http_google_2fapi_2fhttp_2eproto.base, + &scc_info_HttpRule_google_2fapi_2fhttp_2eproto.base, +}; +static ::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_google_2fapi_2fhttp_2eproto_once; +static bool descriptor_table_google_2fapi_2fhttp_2eproto_initialized = false; +const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_google_2fapi_2fhttp_2eproto = { + &descriptor_table_google_2fapi_2fhttp_2eproto_initialized, descriptor_table_protodef_google_2fapi_2fhttp_2eproto, "google/api/http.proto", 546, + &descriptor_table_google_2fapi_2fhttp_2eproto_once, descriptor_table_google_2fapi_2fhttp_2eproto_sccs, descriptor_table_google_2fapi_2fhttp_2eproto_deps, 3, 0, + schemas, file_default_instances, TableStruct_google_2fapi_2fhttp_2eproto::offsets, + file_level_metadata_google_2fapi_2fhttp_2eproto, 3, file_level_enum_descriptors_google_2fapi_2fhttp_2eproto, file_level_service_descriptors_google_2fapi_2fhttp_2eproto, +}; + +// Force running AddDescriptors() at dynamic initialization time. +static bool dynamic_init_dummy_google_2fapi_2fhttp_2eproto = ( ::PROTOBUF_NAMESPACE_ID::internal::AddDescriptors(&descriptor_table_google_2fapi_2fhttp_2eproto), true); +namespace google { +namespace api { + +// =================================================================== + +void Http::InitAsDefaultInstance() { +} +class Http::_Internal { + public: +}; + +Http::Http() + : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) { + SharedCtor(); + // @@protoc_insertion_point(constructor:google.api.Http) +} +Http::Http(::PROTOBUF_NAMESPACE_ID::Arena* arena) + : ::PROTOBUF_NAMESPACE_ID::Message(), + _internal_metadata_(arena), + rules_(arena) { + SharedCtor(); + RegisterArenaDtor(arena); + // @@protoc_insertion_point(arena_constructor:google.api.Http) +} +Http::Http(const Http& from) + : ::PROTOBUF_NAMESPACE_ID::Message(), + _internal_metadata_(nullptr), + rules_(from.rules_) { + _internal_metadata_.MergeFrom(from._internal_metadata_); + fully_decode_reserved_expansion_ = from.fully_decode_reserved_expansion_; + // @@protoc_insertion_point(copy_constructor:google.api.Http) +} + +void Http::SharedCtor() { + ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_Http_google_2fapi_2fhttp_2eproto.base); + fully_decode_reserved_expansion_ = false; +} + +Http::~Http() { + // @@protoc_insertion_point(destructor:google.api.Http) + SharedDtor(); +} + +void Http::SharedDtor() { + GOOGLE_DCHECK(GetArenaNoVirtual() == nullptr); +} + +void Http::ArenaDtor(void* object) { + Http* _this = reinterpret_cast< Http* >(object); + (void)_this; +} +void Http::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) { +} +void Http::SetCachedSize(int size) const { + _cached_size_.Set(size); +} +const Http& Http::default_instance() { + ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_Http_google_2fapi_2fhttp_2eproto.base); + return *internal_default_instance(); +} + + +void Http::Clear() { +// @@protoc_insertion_point(message_clear_start:google.api.Http) + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + rules_.Clear(); + fully_decode_reserved_expansion_ = false; + _internal_metadata_.Clear(); +} + +const char* Http::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArenaNoVirtual(); (void)arena; + while (!ctx->Done(&ptr)) { + ::PROTOBUF_NAMESPACE_ID::uint32 tag; + ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag); + CHK_(ptr); + switch (tag >> 3) { + // repeated .google.api.HttpRule rules = 1; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) { + ptr -= 1; + do { + ptr += 1; + ptr = ctx->ParseMessage(_internal_add_rules(), ptr); + CHK_(ptr); + if (!ctx->DataAvailable(ptr)) break; + } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr)); + } else goto handle_unusual; + continue; + // bool fully_decode_reserved_expansion = 2; + case 2: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) { + fully_decode_reserved_expansion_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr); + CHK_(ptr); + } else goto handle_unusual; + continue; + default: { + handle_unusual: + if ((tag & 7) == 4 || tag == 0) { + ctx->SetLastTag(tag); + goto success; + } + ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx); + CHK_(ptr != nullptr); + continue; + } + } // switch + } // while +success: + return ptr; +failure: + ptr = nullptr; + goto success; +#undef CHK_ +} + +::PROTOBUF_NAMESPACE_ID::uint8* Http::_InternalSerialize( + ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:google.api.Http) + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + // repeated .google.api.HttpRule rules = 1; + for (unsigned int i = 0, + n = static_cast<unsigned int>(this->_internal_rules_size()); i < n; i++) { + target = stream->EnsureSpace(target); + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: + InternalWriteMessage(1, this->_internal_rules(i), target, stream); + } + + // bool fully_decode_reserved_expansion = 2; + if (this->fully_decode_reserved_expansion() != 0) { + target = stream->EnsureSpace(target); + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(2, this->_internal_fully_decode_reserved_expansion(), target); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields(), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:google.api.Http) + return target; +} + +size_t Http::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:google.api.Http) + size_t total_size = 0; + + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // repeated .google.api.HttpRule rules = 1; + total_size += 1UL * this->_internal_rules_size(); + for (const auto& msg : this->rules_) { + total_size += + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg); + } + + // bool fully_decode_reserved_expansion = 2; + if (this->fully_decode_reserved_expansion() != 0) { + total_size += 1 + 1; + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize( + _internal_metadata_, total_size, &_cached_size_); + } + int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size); + SetCachedSize(cached_size); + return total_size; +} + +void Http::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { +// @@protoc_insertion_point(generalized_merge_from_start:google.api.Http) + GOOGLE_DCHECK_NE(&from, this); + const Http* source = + ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<Http>( + &from); + if (source == nullptr) { + // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.api.Http) + ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this); + } else { + // @@protoc_insertion_point(generalized_merge_from_cast_success:google.api.Http) + MergeFrom(*source); + } +} + +void Http::MergeFrom(const Http& from) { +// @@protoc_insertion_point(class_specific_merge_from_start:google.api.Http) + GOOGLE_DCHECK_NE(&from, this); + _internal_metadata_.MergeFrom(from._internal_metadata_); + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + rules_.MergeFrom(from.rules_); + if (from.fully_decode_reserved_expansion() != 0) { + _internal_set_fully_decode_reserved_expansion(from._internal_fully_decode_reserved_expansion()); + } +} + +void Http::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { +// @@protoc_insertion_point(generalized_copy_from_start:google.api.Http) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +void Http::CopyFrom(const Http& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:google.api.Http) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool Http::IsInitialized() const { + return true; +} + +void Http::InternalSwap(Http* other) { + using std::swap; + _internal_metadata_.Swap(&other->_internal_metadata_); + rules_.InternalSwap(&other->rules_); + swap(fully_decode_reserved_expansion_, other->fully_decode_reserved_expansion_); +} + +::PROTOBUF_NAMESPACE_ID::Metadata Http::GetMetadata() const { + return GetMetadataStatic(); +} + + +// =================================================================== + +void HttpRule::InitAsDefaultInstance() { + ::google::api::_HttpRule_default_instance_.get_.UnsafeSetDefault( + &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + ::google::api::_HttpRule_default_instance_.put_.UnsafeSetDefault( + &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + ::google::api::_HttpRule_default_instance_.post_.UnsafeSetDefault( + &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + ::google::api::_HttpRule_default_instance_.delete__.UnsafeSetDefault( + &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + ::google::api::_HttpRule_default_instance_.patch_.UnsafeSetDefault( + &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + ::google::api::_HttpRule_default_instance_.custom_ = const_cast< ::google::api::CustomHttpPattern*>( + ::google::api::CustomHttpPattern::internal_default_instance()); +} +class HttpRule::_Internal { + public: + static const ::google::api::CustomHttpPattern& custom(const HttpRule* msg); +}; + +const ::google::api::CustomHttpPattern& +HttpRule::_Internal::custom(const HttpRule* msg) { + return *msg->pattern_.custom_; +} +void HttpRule::set_allocated_custom(::google::api::CustomHttpPattern* custom) { + ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual(); + clear_pattern(); + if (custom) { + ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = + ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(custom); + if (message_arena != submessage_arena) { + custom = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage( + message_arena, custom, submessage_arena); + } + set_has_custom(); + pattern_.custom_ = custom; + } + // @@protoc_insertion_point(field_set_allocated:google.api.HttpRule.custom) +} +HttpRule::HttpRule() + : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) { + SharedCtor(); + // @@protoc_insertion_point(constructor:google.api.HttpRule) +} +HttpRule::HttpRule(::PROTOBUF_NAMESPACE_ID::Arena* arena) + : ::PROTOBUF_NAMESPACE_ID::Message(), + _internal_metadata_(arena), + additional_bindings_(arena) { + SharedCtor(); + RegisterArenaDtor(arena); + // @@protoc_insertion_point(arena_constructor:google.api.HttpRule) +} +HttpRule::HttpRule(const HttpRule& from) + : ::PROTOBUF_NAMESPACE_ID::Message(), + _internal_metadata_(nullptr), + additional_bindings_(from.additional_bindings_) { + _internal_metadata_.MergeFrom(from._internal_metadata_); + selector_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + if (!from._internal_selector().empty()) { + selector_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_selector(), + GetArenaNoVirtual()); + } + body_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + if (!from._internal_body().empty()) { + body_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_body(), + GetArenaNoVirtual()); + } + response_body_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + if (!from._internal_response_body().empty()) { + response_body_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_response_body(), + GetArenaNoVirtual()); + } + clear_has_pattern(); + switch (from.pattern_case()) { + case kGet: { + _internal_set_get(from._internal_get()); + break; + } + case kPut: { + _internal_set_put(from._internal_put()); + break; + } + case kPost: { + _internal_set_post(from._internal_post()); + break; + } + case kDelete: { + _internal_set_delete_(from._internal_delete_()); + break; + } + case kPatch: { + _internal_set_patch(from._internal_patch()); + break; + } + case kCustom: { + _internal_mutable_custom()->::google::api::CustomHttpPattern::MergeFrom(from._internal_custom()); + break; + } + case PATTERN_NOT_SET: { + break; + } + } + // @@protoc_insertion_point(copy_constructor:google.api.HttpRule) +} + +void HttpRule::SharedCtor() { + ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_HttpRule_google_2fapi_2fhttp_2eproto.base); + selector_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + body_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + response_body_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + clear_has_pattern(); +} + +HttpRule::~HttpRule() { + // @@protoc_insertion_point(destructor:google.api.HttpRule) + SharedDtor(); +} + +void HttpRule::SharedDtor() { + GOOGLE_DCHECK(GetArenaNoVirtual() == nullptr); + selector_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + body_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + response_body_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + if (has_pattern()) { + clear_pattern(); + } +} + +void HttpRule::ArenaDtor(void* object) { + HttpRule* _this = reinterpret_cast< HttpRule* >(object); + (void)_this; +} +void HttpRule::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) { +} +void HttpRule::SetCachedSize(int size) const { + _cached_size_.Set(size); +} +const HttpRule& HttpRule::default_instance() { + ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_HttpRule_google_2fapi_2fhttp_2eproto.base); + return *internal_default_instance(); +} + + +void HttpRule::clear_pattern() { +// @@protoc_insertion_point(one_of_clear_start:google.api.HttpRule) + switch (pattern_case()) { + case kGet: { + pattern_.get_.Destroy(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); + break; + } + case kPut: { + pattern_.put_.Destroy(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); + break; + } + case kPost: { + pattern_.post_.Destroy(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); + break; + } + case kDelete: { + pattern_.delete__.Destroy(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); + break; + } + case kPatch: { + pattern_.patch_.Destroy(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); + break; + } + case kCustom: { + if (GetArenaNoVirtual() == nullptr) { + delete pattern_.custom_; + } + break; + } + case PATTERN_NOT_SET: { + break; + } + } + _oneof_case_[0] = PATTERN_NOT_SET; +} + + +void HttpRule::Clear() { +// @@protoc_insertion_point(message_clear_start:google.api.HttpRule) + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + additional_bindings_.Clear(); + selector_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual()); + body_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual()); + response_body_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual()); + clear_pattern(); + _internal_metadata_.Clear(); +} + +const char* HttpRule::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArenaNoVirtual(); (void)arena; + while (!ctx->Done(&ptr)) { + ::PROTOBUF_NAMESPACE_ID::uint32 tag; + ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag); + CHK_(ptr); + switch (tag >> 3) { + // string selector = 1; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) { + auto str = _internal_mutable_selector(); + ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); + CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "google.api.HttpRule.selector")); + CHK_(ptr); + } else goto handle_unusual; + continue; + // string get = 2; + case 2: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) { + auto str = _internal_mutable_get(); + ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); + CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "google.api.HttpRule.get")); + CHK_(ptr); + } else goto handle_unusual; + continue; + // string put = 3; + case 3: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) { + auto str = _internal_mutable_put(); + ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); + CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "google.api.HttpRule.put")); + CHK_(ptr); + } else goto handle_unusual; + continue; + // string post = 4; + case 4: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) { + auto str = _internal_mutable_post(); + ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); + CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "google.api.HttpRule.post")); + CHK_(ptr); + } else goto handle_unusual; + continue; + // string delete = 5; + case 5: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) { + auto str = _internal_mutable_delete_(); + ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); + CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "google.api.HttpRule.delete")); + CHK_(ptr); + } else goto handle_unusual; + continue; + // string patch = 6; + case 6: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 50)) { + auto str = _internal_mutable_patch(); + ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); + CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "google.api.HttpRule.patch")); + CHK_(ptr); + } else goto handle_unusual; + continue; + // string body = 7; + case 7: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 58)) { + auto str = _internal_mutable_body(); + ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); + CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "google.api.HttpRule.body")); + CHK_(ptr); + } else goto handle_unusual; + continue; + // .google.api.CustomHttpPattern custom = 8; + case 8: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 66)) { + ptr = ctx->ParseMessage(_internal_mutable_custom(), ptr); + CHK_(ptr); + } else goto handle_unusual; + continue; + // repeated .google.api.HttpRule additional_bindings = 11; + case 11: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 90)) { + ptr -= 1; + do { + ptr += 1; + ptr = ctx->ParseMessage(_internal_add_additional_bindings(), ptr); + CHK_(ptr); + if (!ctx->DataAvailable(ptr)) break; + } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<90>(ptr)); + } else goto handle_unusual; + continue; + // string response_body = 12; + case 12: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 98)) { + auto str = _internal_mutable_response_body(); + ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); + CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "google.api.HttpRule.response_body")); + CHK_(ptr); + } else goto handle_unusual; + continue; + default: { + handle_unusual: + if ((tag & 7) == 4 || tag == 0) { + ctx->SetLastTag(tag); + goto success; + } + ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx); + CHK_(ptr != nullptr); + continue; + } + } // switch + } // while +success: + return ptr; +failure: + ptr = nullptr; + goto success; +#undef CHK_ +} + +::PROTOBUF_NAMESPACE_ID::uint8* HttpRule::_InternalSerialize( + ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:google.api.HttpRule) + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + // string selector = 1; + if (this->selector().size() > 0) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_selector().data(), static_cast<int>(this->_internal_selector().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "google.api.HttpRule.selector"); + target = stream->WriteStringMaybeAliased( + 1, this->_internal_selector(), target); + } + + // string get = 2; + if (_internal_has_get()) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_get().data(), static_cast<int>(this->_internal_get().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "google.api.HttpRule.get"); + target = stream->WriteStringMaybeAliased( + 2, this->_internal_get(), target); + } + + // string put = 3; + if (_internal_has_put()) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_put().data(), static_cast<int>(this->_internal_put().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "google.api.HttpRule.put"); + target = stream->WriteStringMaybeAliased( + 3, this->_internal_put(), target); + } + + // string post = 4; + if (_internal_has_post()) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_post().data(), static_cast<int>(this->_internal_post().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "google.api.HttpRule.post"); + target = stream->WriteStringMaybeAliased( + 4, this->_internal_post(), target); + } + + // string delete = 5; + if (_internal_has_delete_()) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_delete_().data(), static_cast<int>(this->_internal_delete_().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "google.api.HttpRule.delete"); + target = stream->WriteStringMaybeAliased( + 5, this->_internal_delete_(), target); + } + + // string patch = 6; + if (_internal_has_patch()) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_patch().data(), static_cast<int>(this->_internal_patch().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "google.api.HttpRule.patch"); + target = stream->WriteStringMaybeAliased( + 6, this->_internal_patch(), target); + } + + // string body = 7; + if (this->body().size() > 0) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_body().data(), static_cast<int>(this->_internal_body().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "google.api.HttpRule.body"); + target = stream->WriteStringMaybeAliased( + 7, this->_internal_body(), target); + } + + // .google.api.CustomHttpPattern custom = 8; + if (_internal_has_custom()) { + target = stream->EnsureSpace(target); + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: + InternalWriteMessage( + 8, _Internal::custom(this), target, stream); + } + + // repeated .google.api.HttpRule additional_bindings = 11; + for (unsigned int i = 0, + n = static_cast<unsigned int>(this->_internal_additional_bindings_size()); i < n; i++) { + target = stream->EnsureSpace(target); + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: + InternalWriteMessage(11, this->_internal_additional_bindings(i), target, stream); + } + + // string response_body = 12; + if (this->response_body().size() > 0) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_response_body().data(), static_cast<int>(this->_internal_response_body().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "google.api.HttpRule.response_body"); + target = stream->WriteStringMaybeAliased( + 12, this->_internal_response_body(), target); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields(), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:google.api.HttpRule) + return target; +} + +size_t HttpRule::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:google.api.HttpRule) + size_t total_size = 0; + + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // repeated .google.api.HttpRule additional_bindings = 11; + total_size += 1UL * this->_internal_additional_bindings_size(); + for (const auto& msg : this->additional_bindings_) { + total_size += + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg); + } + + // string selector = 1; + if (this->selector().size() > 0) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_selector()); + } + + // string body = 7; + if (this->body().size() > 0) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_body()); + } + + // string response_body = 12; + if (this->response_body().size() > 0) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_response_body()); + } + + switch (pattern_case()) { + // string get = 2; + case kGet: { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_get()); + break; + } + // string put = 3; + case kPut: { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_put()); + break; + } + // string post = 4; + case kPost: { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_post()); + break; + } + // string delete = 5; + case kDelete: { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_delete_()); + break; + } + // string patch = 6; + case kPatch: { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_patch()); + break; + } + // .google.api.CustomHttpPattern custom = 8; + case kCustom: { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( + *pattern_.custom_); + break; + } + case PATTERN_NOT_SET: { + break; + } + } + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize( + _internal_metadata_, total_size, &_cached_size_); + } + int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size); + SetCachedSize(cached_size); + return total_size; +} + +void HttpRule::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { +// @@protoc_insertion_point(generalized_merge_from_start:google.api.HttpRule) + GOOGLE_DCHECK_NE(&from, this); + const HttpRule* source = + ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<HttpRule>( + &from); + if (source == nullptr) { + // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.api.HttpRule) + ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this); + } else { + // @@protoc_insertion_point(generalized_merge_from_cast_success:google.api.HttpRule) + MergeFrom(*source); + } +} + +void HttpRule::MergeFrom(const HttpRule& from) { +// @@protoc_insertion_point(class_specific_merge_from_start:google.api.HttpRule) + GOOGLE_DCHECK_NE(&from, this); + _internal_metadata_.MergeFrom(from._internal_metadata_); + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + additional_bindings_.MergeFrom(from.additional_bindings_); + if (from.selector().size() > 0) { + _internal_set_selector(from._internal_selector()); + } + if (from.body().size() > 0) { + _internal_set_body(from._internal_body()); + } + if (from.response_body().size() > 0) { + _internal_set_response_body(from._internal_response_body()); + } + switch (from.pattern_case()) { + case kGet: { + _internal_set_get(from._internal_get()); + break; + } + case kPut: { + _internal_set_put(from._internal_put()); + break; + } + case kPost: { + _internal_set_post(from._internal_post()); + break; + } + case kDelete: { + _internal_set_delete_(from._internal_delete_()); + break; + } + case kPatch: { + _internal_set_patch(from._internal_patch()); + break; + } + case kCustom: { + _internal_mutable_custom()->::google::api::CustomHttpPattern::MergeFrom(from._internal_custom()); + break; + } + case PATTERN_NOT_SET: { + break; + } + } +} + +void HttpRule::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { +// @@protoc_insertion_point(generalized_copy_from_start:google.api.HttpRule) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +void HttpRule::CopyFrom(const HttpRule& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:google.api.HttpRule) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool HttpRule::IsInitialized() const { + return true; +} + +void HttpRule::InternalSwap(HttpRule* other) { + using std::swap; + _internal_metadata_.Swap(&other->_internal_metadata_); + additional_bindings_.InternalSwap(&other->additional_bindings_); + selector_.Swap(&other->selector_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); + body_.Swap(&other->body_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); + response_body_.Swap(&other->response_body_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); + swap(pattern_, other->pattern_); + swap(_oneof_case_[0], other->_oneof_case_[0]); +} + +::PROTOBUF_NAMESPACE_ID::Metadata HttpRule::GetMetadata() const { + return GetMetadataStatic(); +} + + +// =================================================================== + +void CustomHttpPattern::InitAsDefaultInstance() { +} +class CustomHttpPattern::_Internal { + public: +}; + +CustomHttpPattern::CustomHttpPattern() + : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) { + SharedCtor(); + // @@protoc_insertion_point(constructor:google.api.CustomHttpPattern) +} +CustomHttpPattern::CustomHttpPattern(::PROTOBUF_NAMESPACE_ID::Arena* arena) + : ::PROTOBUF_NAMESPACE_ID::Message(), + _internal_metadata_(arena) { + SharedCtor(); + RegisterArenaDtor(arena); + // @@protoc_insertion_point(arena_constructor:google.api.CustomHttpPattern) +} +CustomHttpPattern::CustomHttpPattern(const CustomHttpPattern& from) + : ::PROTOBUF_NAMESPACE_ID::Message(), + _internal_metadata_(nullptr) { + _internal_metadata_.MergeFrom(from._internal_metadata_); + kind_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + if (!from._internal_kind().empty()) { + kind_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_kind(), + GetArenaNoVirtual()); + } + path_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + if (!from._internal_path().empty()) { + path_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_path(), + GetArenaNoVirtual()); + } + // @@protoc_insertion_point(copy_constructor:google.api.CustomHttpPattern) +} + +void CustomHttpPattern::SharedCtor() { + ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_CustomHttpPattern_google_2fapi_2fhttp_2eproto.base); + kind_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + path_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} + +CustomHttpPattern::~CustomHttpPattern() { + // @@protoc_insertion_point(destructor:google.api.CustomHttpPattern) + SharedDtor(); +} + +void CustomHttpPattern::SharedDtor() { + GOOGLE_DCHECK(GetArenaNoVirtual() == nullptr); + kind_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + path_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} + +void CustomHttpPattern::ArenaDtor(void* object) { + CustomHttpPattern* _this = reinterpret_cast< CustomHttpPattern* >(object); + (void)_this; +} +void CustomHttpPattern::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) { +} +void CustomHttpPattern::SetCachedSize(int size) const { + _cached_size_.Set(size); +} +const CustomHttpPattern& CustomHttpPattern::default_instance() { + ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_CustomHttpPattern_google_2fapi_2fhttp_2eproto.base); + return *internal_default_instance(); +} + + +void CustomHttpPattern::Clear() { +// @@protoc_insertion_point(message_clear_start:google.api.CustomHttpPattern) + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + kind_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual()); + path_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual()); + _internal_metadata_.Clear(); +} + +const char* CustomHttpPattern::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArenaNoVirtual(); (void)arena; + while (!ctx->Done(&ptr)) { + ::PROTOBUF_NAMESPACE_ID::uint32 tag; + ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag); + CHK_(ptr); + switch (tag >> 3) { + // string kind = 1; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) { + auto str = _internal_mutable_kind(); + ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); + CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "google.api.CustomHttpPattern.kind")); + CHK_(ptr); + } else goto handle_unusual; + continue; + // string path = 2; + case 2: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) { + auto str = _internal_mutable_path(); + ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); + CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "google.api.CustomHttpPattern.path")); + CHK_(ptr); + } else goto handle_unusual; + continue; + default: { + handle_unusual: + if ((tag & 7) == 4 || tag == 0) { + ctx->SetLastTag(tag); + goto success; + } + ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx); + CHK_(ptr != nullptr); + continue; + } + } // switch + } // while +success: + return ptr; +failure: + ptr = nullptr; + goto success; +#undef CHK_ +} + +::PROTOBUF_NAMESPACE_ID::uint8* CustomHttpPattern::_InternalSerialize( + ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:google.api.CustomHttpPattern) + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + // string kind = 1; + if (this->kind().size() > 0) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_kind().data(), static_cast<int>(this->_internal_kind().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "google.api.CustomHttpPattern.kind"); + target = stream->WriteStringMaybeAliased( + 1, this->_internal_kind(), target); + } + + // string path = 2; + if (this->path().size() > 0) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_path().data(), static_cast<int>(this->_internal_path().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "google.api.CustomHttpPattern.path"); + target = stream->WriteStringMaybeAliased( + 2, this->_internal_path(), target); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields(), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:google.api.CustomHttpPattern) + return target; +} + +size_t CustomHttpPattern::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:google.api.CustomHttpPattern) + size_t total_size = 0; + + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // string kind = 1; + if (this->kind().size() > 0) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_kind()); + } + + // string path = 2; + if (this->path().size() > 0) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_path()); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize( + _internal_metadata_, total_size, &_cached_size_); + } + int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size); + SetCachedSize(cached_size); + return total_size; +} + +void CustomHttpPattern::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { +// @@protoc_insertion_point(generalized_merge_from_start:google.api.CustomHttpPattern) + GOOGLE_DCHECK_NE(&from, this); + const CustomHttpPattern* source = + ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<CustomHttpPattern>( + &from); + if (source == nullptr) { + // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.api.CustomHttpPattern) + ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this); + } else { + // @@protoc_insertion_point(generalized_merge_from_cast_success:google.api.CustomHttpPattern) + MergeFrom(*source); + } +} + +void CustomHttpPattern::MergeFrom(const CustomHttpPattern& from) { +// @@protoc_insertion_point(class_specific_merge_from_start:google.api.CustomHttpPattern) + GOOGLE_DCHECK_NE(&from, this); + _internal_metadata_.MergeFrom(from._internal_metadata_); + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + if (from.kind().size() > 0) { + _internal_set_kind(from._internal_kind()); + } + if (from.path().size() > 0) { + _internal_set_path(from._internal_path()); + } +} + +void CustomHttpPattern::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { +// @@protoc_insertion_point(generalized_copy_from_start:google.api.CustomHttpPattern) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +void CustomHttpPattern::CopyFrom(const CustomHttpPattern& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:google.api.CustomHttpPattern) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool CustomHttpPattern::IsInitialized() const { + return true; +} + +void CustomHttpPattern::InternalSwap(CustomHttpPattern* other) { + using std::swap; + _internal_metadata_.Swap(&other->_internal_metadata_); + kind_.Swap(&other->kind_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); + path_.Swap(&other->path_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); +} + +::PROTOBUF_NAMESPACE_ID::Metadata CustomHttpPattern::GetMetadata() const { + return GetMetadataStatic(); +} + + +// @@protoc_insertion_point(namespace_scope) +} // namespace api +} // namespace google +PROTOBUF_NAMESPACE_OPEN +template<> PROTOBUF_NOINLINE ::google::api::Http* Arena::CreateMaybeMessage< ::google::api::Http >(Arena* arena) { + return Arena::CreateMessageInternal< ::google::api::Http >(arena); +} +template<> PROTOBUF_NOINLINE ::google::api::HttpRule* Arena::CreateMaybeMessage< ::google::api::HttpRule >(Arena* arena) { + return Arena::CreateMessageInternal< ::google::api::HttpRule >(arena); +} +template<> PROTOBUF_NOINLINE ::google::api::CustomHttpPattern* Arena::CreateMaybeMessage< ::google::api::CustomHttpPattern >(Arena* arena) { + return Arena::CreateMessageInternal< ::google::api::CustomHttpPattern >(arena); +} +PROTOBUF_NAMESPACE_CLOSE + +// @@protoc_insertion_point(global_scope) +#include <google/protobuf/port_undef.inc> diff --git a/cpp/src/vereign/v1pb/google/api/http.pb.h b/cpp/src/vereign/v1pb/google/api/http.pb.h new file mode 100644 index 0000000000000000000000000000000000000000..f72312cefdf6bd04c8cd42d0e219fdba23964820 --- /dev/null +++ b/cpp/src/vereign/v1pb/google/api/http.pb.h @@ -0,0 +1,2151 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/api/http.proto + +#ifndef GOOGLE_PROTOBUF_INCLUDED_google_2fapi_2fhttp_2eproto +#define GOOGLE_PROTOBUF_INCLUDED_google_2fapi_2fhttp_2eproto + +#include <limits> +#include <string> + +#include <google/protobuf/port_def.inc> +#if PROTOBUF_VERSION < 3011000 +#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 3011002 < 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/port_undef.inc> +#include <google/protobuf/io/coded_stream.h> +#include <google/protobuf/arena.h> +#include <google/protobuf/arenastring.h> +#include <google/protobuf/generated_message_table_driven.h> +#include <google/protobuf/generated_message_util.h> +#include <google/protobuf/inlined_string_field.h> +#include <google/protobuf/metadata.h> +#include <google/protobuf/generated_message_reflection.h> +#include <google/protobuf/message.h> +#include <google/protobuf/repeated_field.h> // IWYU pragma: export +#include <google/protobuf/extension_set.h> // IWYU pragma: export +#include <google/protobuf/unknown_field_set.h> +// @@protoc_insertion_point(includes) +#include <google/protobuf/port_def.inc> +#define PROTOBUF_INTERNAL_EXPORT_google_2fapi_2fhttp_2eproto +PROTOBUF_NAMESPACE_OPEN +namespace internal { +class AnyMetadata; +} // namespace internal +PROTOBUF_NAMESPACE_CLOSE + +// Internal implementation detail -- do not use these members. +struct TableStruct_google_2fapi_2fhttp_2eproto { + static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTableField entries[] + PROTOBUF_SECTION_VARIABLE(protodesc_cold); + static const ::PROTOBUF_NAMESPACE_ID::internal::AuxillaryParseTableField aux[] + PROTOBUF_SECTION_VARIABLE(protodesc_cold); + static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTable schema[3] + PROTOBUF_SECTION_VARIABLE(protodesc_cold); + static const ::PROTOBUF_NAMESPACE_ID::internal::FieldMetadata field_metadata[]; + static const ::PROTOBUF_NAMESPACE_ID::internal::SerializationTable serialization_table[]; + static const ::PROTOBUF_NAMESPACE_ID::uint32 offsets[]; +}; +extern const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_google_2fapi_2fhttp_2eproto; +namespace google { +namespace api { +class CustomHttpPattern; +class CustomHttpPatternDefaultTypeInternal; +extern CustomHttpPatternDefaultTypeInternal _CustomHttpPattern_default_instance_; +class Http; +class HttpDefaultTypeInternal; +extern HttpDefaultTypeInternal _Http_default_instance_; +class HttpRule; +class HttpRuleDefaultTypeInternal; +extern HttpRuleDefaultTypeInternal _HttpRule_default_instance_; +} // namespace api +} // namespace google +PROTOBUF_NAMESPACE_OPEN +template<> ::google::api::CustomHttpPattern* Arena::CreateMaybeMessage<::google::api::CustomHttpPattern>(Arena*); +template<> ::google::api::Http* Arena::CreateMaybeMessage<::google::api::Http>(Arena*); +template<> ::google::api::HttpRule* Arena::CreateMaybeMessage<::google::api::HttpRule>(Arena*); +PROTOBUF_NAMESPACE_CLOSE +namespace google { +namespace api { + +// =================================================================== + +class Http : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:google.api.Http) */ { + public: + Http(); + virtual ~Http(); + + Http(const Http& from); + Http(Http&& from) noexcept + : Http() { + *this = ::std::move(from); + } + + inline Http& operator=(const Http& from) { + CopyFrom(from); + return *this; + } + inline Http& operator=(Http&& from) noexcept { + if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) { + if (this != &from) InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArena() const final { + return GetArenaNoVirtual(); + } + inline void* GetMaybeArenaPointer() const final { + return MaybeArenaPtr(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return GetMetadataStatic().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return GetMetadataStatic().reflection; + } + static const Http& default_instance(); + + static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY + static inline const Http* internal_default_instance() { + return reinterpret_cast<const Http*>( + &_Http_default_instance_); + } + static constexpr int kIndexInFileMessages = + 0; + + friend void swap(Http& a, Http& b) { + a.Swap(&b); + } + inline void Swap(Http* other) { + if (other == this) return; + if (GetArenaNoVirtual() == other->GetArenaNoVirtual()) { + InternalSwap(other); + } else { + ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); + } + } + void UnsafeArenaSwap(Http* other) { + if (other == this) return; + GOOGLE_DCHECK(GetArenaNoVirtual() == other->GetArenaNoVirtual()); + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + inline Http* New() const final { + return CreateMaybeMessage<Http>(nullptr); + } + + Http* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final { + return CreateMaybeMessage<Http>(arena); + } + void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; + void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; + void CopyFrom(const Http& from); + void MergeFrom(const Http& from); + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize( + ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _cached_size_.Get(); } + + private: + inline void SharedCtor(); + inline void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(Http* other); + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "google.api.Http"; + } + protected: + explicit Http(::PROTOBUF_NAMESPACE_ID::Arena* arena); + private: + static void ArenaDtor(void* object); + inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena); + private: + inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const { + return _internal_metadata_.arena(); + } + inline void* MaybeArenaPtr() const { + return _internal_metadata_.raw_arena_ptr(); + } + public: + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + private: + static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() { + ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_google_2fapi_2fhttp_2eproto); + return ::descriptor_table_google_2fapi_2fhttp_2eproto.file_level_metadata[kIndexInFileMessages]; + } + + public: + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + enum : int { + kRulesFieldNumber = 1, + kFullyDecodeReservedExpansionFieldNumber = 2, + }; + // repeated .google.api.HttpRule rules = 1; + int rules_size() const; + private: + int _internal_rules_size() const; + public: + void clear_rules(); + ::google::api::HttpRule* mutable_rules(int index); + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::api::HttpRule >* + mutable_rules(); + private: + const ::google::api::HttpRule& _internal_rules(int index) const; + ::google::api::HttpRule* _internal_add_rules(); + public: + const ::google::api::HttpRule& rules(int index) const; + ::google::api::HttpRule* add_rules(); + const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::api::HttpRule >& + rules() const; + + // bool fully_decode_reserved_expansion = 2; + void clear_fully_decode_reserved_expansion(); + bool fully_decode_reserved_expansion() const; + void set_fully_decode_reserved_expansion(bool value); + private: + bool _internal_fully_decode_reserved_expansion() const; + void _internal_set_fully_decode_reserved_expansion(bool value); + public: + + // @@protoc_insertion_point(class_scope:google.api.Http) + private: + class _Internal; + + ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_; + template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; + typedef void InternalArenaConstructable_; + typedef void DestructorSkippable_; + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::api::HttpRule > rules_; + bool fully_decode_reserved_expansion_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + friend struct ::TableStruct_google_2fapi_2fhttp_2eproto; +}; +// ------------------------------------------------------------------- + +class HttpRule : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:google.api.HttpRule) */ { + public: + HttpRule(); + virtual ~HttpRule(); + + HttpRule(const HttpRule& from); + HttpRule(HttpRule&& from) noexcept + : HttpRule() { + *this = ::std::move(from); + } + + inline HttpRule& operator=(const HttpRule& from) { + CopyFrom(from); + return *this; + } + inline HttpRule& operator=(HttpRule&& from) noexcept { + if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) { + if (this != &from) InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArena() const final { + return GetArenaNoVirtual(); + } + inline void* GetMaybeArenaPointer() const final { + return MaybeArenaPtr(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return GetMetadataStatic().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return GetMetadataStatic().reflection; + } + static const HttpRule& default_instance(); + + enum PatternCase { + kGet = 2, + kPut = 3, + kPost = 4, + kDelete = 5, + kPatch = 6, + kCustom = 8, + PATTERN_NOT_SET = 0, + }; + + static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY + static inline const HttpRule* internal_default_instance() { + return reinterpret_cast<const HttpRule*>( + &_HttpRule_default_instance_); + } + static constexpr int kIndexInFileMessages = + 1; + + friend void swap(HttpRule& a, HttpRule& b) { + a.Swap(&b); + } + inline void Swap(HttpRule* other) { + if (other == this) return; + if (GetArenaNoVirtual() == other->GetArenaNoVirtual()) { + InternalSwap(other); + } else { + ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); + } + } + void UnsafeArenaSwap(HttpRule* other) { + if (other == this) return; + GOOGLE_DCHECK(GetArenaNoVirtual() == other->GetArenaNoVirtual()); + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + inline HttpRule* New() const final { + return CreateMaybeMessage<HttpRule>(nullptr); + } + + HttpRule* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final { + return CreateMaybeMessage<HttpRule>(arena); + } + void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; + void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; + void CopyFrom(const HttpRule& from); + void MergeFrom(const HttpRule& from); + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize( + ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _cached_size_.Get(); } + + private: + inline void SharedCtor(); + inline void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(HttpRule* other); + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "google.api.HttpRule"; + } + protected: + explicit HttpRule(::PROTOBUF_NAMESPACE_ID::Arena* arena); + private: + static void ArenaDtor(void* object); + inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena); + private: + inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const { + return _internal_metadata_.arena(); + } + inline void* MaybeArenaPtr() const { + return _internal_metadata_.raw_arena_ptr(); + } + public: + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + private: + static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() { + ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_google_2fapi_2fhttp_2eproto); + return ::descriptor_table_google_2fapi_2fhttp_2eproto.file_level_metadata[kIndexInFileMessages]; + } + + public: + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + enum : int { + kAdditionalBindingsFieldNumber = 11, + kSelectorFieldNumber = 1, + kBodyFieldNumber = 7, + kResponseBodyFieldNumber = 12, + kGetFieldNumber = 2, + kPutFieldNumber = 3, + kPostFieldNumber = 4, + kDeleteFieldNumber = 5, + kPatchFieldNumber = 6, + kCustomFieldNumber = 8, + }; + // repeated .google.api.HttpRule additional_bindings = 11; + int additional_bindings_size() const; + private: + int _internal_additional_bindings_size() const; + public: + void clear_additional_bindings(); + ::google::api::HttpRule* mutable_additional_bindings(int index); + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::api::HttpRule >* + mutable_additional_bindings(); + private: + const ::google::api::HttpRule& _internal_additional_bindings(int index) const; + ::google::api::HttpRule* _internal_add_additional_bindings(); + public: + const ::google::api::HttpRule& additional_bindings(int index) const; + ::google::api::HttpRule* add_additional_bindings(); + const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::api::HttpRule >& + additional_bindings() const; + + // string selector = 1; + void clear_selector(); + const std::string& selector() const; + void set_selector(const std::string& value); + void set_selector(std::string&& value); + void set_selector(const char* value); + void set_selector(const char* value, size_t size); + std::string* mutable_selector(); + std::string* release_selector(); + void set_allocated_selector(std::string* selector); + GOOGLE_PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for" + " string fields are deprecated and will be removed in a" + " future release.") + std::string* unsafe_arena_release_selector(); + GOOGLE_PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for" + " string fields are deprecated and will be removed in a" + " future release.") + void unsafe_arena_set_allocated_selector( + std::string* selector); + private: + const std::string& _internal_selector() const; + void _internal_set_selector(const std::string& value); + std::string* _internal_mutable_selector(); + public: + + // string body = 7; + void clear_body(); + const std::string& body() const; + void set_body(const std::string& value); + void set_body(std::string&& value); + void set_body(const char* value); + void set_body(const char* value, size_t size); + std::string* mutable_body(); + std::string* release_body(); + void set_allocated_body(std::string* body); + GOOGLE_PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for" + " string fields are deprecated and will be removed in a" + " future release.") + std::string* unsafe_arena_release_body(); + GOOGLE_PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for" + " string fields are deprecated and will be removed in a" + " future release.") + void unsafe_arena_set_allocated_body( + std::string* body); + private: + const std::string& _internal_body() const; + void _internal_set_body(const std::string& value); + std::string* _internal_mutable_body(); + public: + + // string response_body = 12; + void clear_response_body(); + const std::string& response_body() const; + void set_response_body(const std::string& value); + void set_response_body(std::string&& value); + void set_response_body(const char* value); + void set_response_body(const char* value, size_t size); + std::string* mutable_response_body(); + std::string* release_response_body(); + void set_allocated_response_body(std::string* response_body); + GOOGLE_PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for" + " string fields are deprecated and will be removed in a" + " future release.") + std::string* unsafe_arena_release_response_body(); + GOOGLE_PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for" + " string fields are deprecated and will be removed in a" + " future release.") + void unsafe_arena_set_allocated_response_body( + std::string* response_body); + private: + const std::string& _internal_response_body() const; + void _internal_set_response_body(const std::string& value); + std::string* _internal_mutable_response_body(); + public: + + // string get = 2; + private: + bool _internal_has_get() const; + public: + void clear_get(); + const std::string& get() const; + void set_get(const std::string& value); + void set_get(std::string&& value); + void set_get(const char* value); + void set_get(const char* value, size_t size); + std::string* mutable_get(); + std::string* release_get(); + void set_allocated_get(std::string* get); + GOOGLE_PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for" + " string fields are deprecated and will be removed in a" + " future release.") + std::string* unsafe_arena_release_get(); + GOOGLE_PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for" + " string fields are deprecated and will be removed in a" + " future release.") + void unsafe_arena_set_allocated_get( + std::string* get); + private: + const std::string& _internal_get() const; + void _internal_set_get(const std::string& value); + std::string* _internal_mutable_get(); + public: + + // string put = 3; + private: + bool _internal_has_put() const; + public: + void clear_put(); + const std::string& put() const; + void set_put(const std::string& value); + void set_put(std::string&& value); + void set_put(const char* value); + void set_put(const char* value, size_t size); + std::string* mutable_put(); + std::string* release_put(); + void set_allocated_put(std::string* put); + GOOGLE_PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for" + " string fields are deprecated and will be removed in a" + " future release.") + std::string* unsafe_arena_release_put(); + GOOGLE_PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for" + " string fields are deprecated and will be removed in a" + " future release.") + void unsafe_arena_set_allocated_put( + std::string* put); + private: + const std::string& _internal_put() const; + void _internal_set_put(const std::string& value); + std::string* _internal_mutable_put(); + public: + + // string post = 4; + private: + bool _internal_has_post() const; + public: + void clear_post(); + const std::string& post() const; + void set_post(const std::string& value); + void set_post(std::string&& value); + void set_post(const char* value); + void set_post(const char* value, size_t size); + std::string* mutable_post(); + std::string* release_post(); + void set_allocated_post(std::string* post); + GOOGLE_PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for" + " string fields are deprecated and will be removed in a" + " future release.") + std::string* unsafe_arena_release_post(); + GOOGLE_PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for" + " string fields are deprecated and will be removed in a" + " future release.") + void unsafe_arena_set_allocated_post( + std::string* post); + private: + const std::string& _internal_post() const; + void _internal_set_post(const std::string& value); + std::string* _internal_mutable_post(); + public: + + // string delete = 5; + private: + bool _internal_has_delete_() const; + public: + void clear_delete_(); + const std::string& delete_() const; + void set_delete_(const std::string& value); + void set_delete_(std::string&& value); + void set_delete_(const char* value); + void set_delete_(const char* value, size_t size); + std::string* mutable_delete_(); + std::string* release_delete_(); + void set_allocated_delete_(std::string* delete_); + GOOGLE_PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for" + " string fields are deprecated and will be removed in a" + " future release.") + std::string* unsafe_arena_release_delete_(); + GOOGLE_PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for" + " string fields are deprecated and will be removed in a" + " future release.") + void unsafe_arena_set_allocated_delete_( + std::string* delete_); + private: + const std::string& _internal_delete_() const; + void _internal_set_delete_(const std::string& value); + std::string* _internal_mutable_delete_(); + public: + + // string patch = 6; + private: + bool _internal_has_patch() const; + public: + void clear_patch(); + const std::string& patch() const; + void set_patch(const std::string& value); + void set_patch(std::string&& value); + void set_patch(const char* value); + void set_patch(const char* value, size_t size); + std::string* mutable_patch(); + std::string* release_patch(); + void set_allocated_patch(std::string* patch); + GOOGLE_PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for" + " string fields are deprecated and will be removed in a" + " future release.") + std::string* unsafe_arena_release_patch(); + GOOGLE_PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for" + " string fields are deprecated and will be removed in a" + " future release.") + void unsafe_arena_set_allocated_patch( + std::string* patch); + private: + const std::string& _internal_patch() const; + void _internal_set_patch(const std::string& value); + std::string* _internal_mutable_patch(); + public: + + // .google.api.CustomHttpPattern custom = 8; + bool has_custom() const; + private: + bool _internal_has_custom() const; + public: + void clear_custom(); + const ::google::api::CustomHttpPattern& custom() const; + ::google::api::CustomHttpPattern* release_custom(); + ::google::api::CustomHttpPattern* mutable_custom(); + void set_allocated_custom(::google::api::CustomHttpPattern* custom); + private: + const ::google::api::CustomHttpPattern& _internal_custom() const; + ::google::api::CustomHttpPattern* _internal_mutable_custom(); + public: + void unsafe_arena_set_allocated_custom( + ::google::api::CustomHttpPattern* custom); + ::google::api::CustomHttpPattern* unsafe_arena_release_custom(); + + void clear_pattern(); + PatternCase pattern_case() const; + // @@protoc_insertion_point(class_scope:google.api.HttpRule) + private: + class _Internal; + void set_has_get(); + void set_has_put(); + void set_has_post(); + void set_has_delete_(); + void set_has_patch(); + void set_has_custom(); + + inline bool has_pattern() const; + inline void clear_has_pattern(); + + ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_; + template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; + typedef void InternalArenaConstructable_; + typedef void DestructorSkippable_; + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::api::HttpRule > additional_bindings_; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr selector_; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr body_; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr response_body_; + union PatternUnion { + PatternUnion() {} + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr get_; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr put_; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr post_; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr delete__; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr patch_; + ::google::api::CustomHttpPattern* custom_; + } pattern_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + ::PROTOBUF_NAMESPACE_ID::uint32 _oneof_case_[1]; + + friend struct ::TableStruct_google_2fapi_2fhttp_2eproto; +}; +// ------------------------------------------------------------------- + +class CustomHttpPattern : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:google.api.CustomHttpPattern) */ { + public: + CustomHttpPattern(); + virtual ~CustomHttpPattern(); + + CustomHttpPattern(const CustomHttpPattern& from); + CustomHttpPattern(CustomHttpPattern&& from) noexcept + : CustomHttpPattern() { + *this = ::std::move(from); + } + + inline CustomHttpPattern& operator=(const CustomHttpPattern& from) { + CopyFrom(from); + return *this; + } + inline CustomHttpPattern& operator=(CustomHttpPattern&& from) noexcept { + if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) { + if (this != &from) InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArena() const final { + return GetArenaNoVirtual(); + } + inline void* GetMaybeArenaPointer() const final { + return MaybeArenaPtr(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return GetMetadataStatic().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return GetMetadataStatic().reflection; + } + static const CustomHttpPattern& default_instance(); + + static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY + static inline const CustomHttpPattern* internal_default_instance() { + return reinterpret_cast<const CustomHttpPattern*>( + &_CustomHttpPattern_default_instance_); + } + static constexpr int kIndexInFileMessages = + 2; + + friend void swap(CustomHttpPattern& a, CustomHttpPattern& b) { + a.Swap(&b); + } + inline void Swap(CustomHttpPattern* other) { + if (other == this) return; + if (GetArenaNoVirtual() == other->GetArenaNoVirtual()) { + InternalSwap(other); + } else { + ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); + } + } + void UnsafeArenaSwap(CustomHttpPattern* other) { + if (other == this) return; + GOOGLE_DCHECK(GetArenaNoVirtual() == other->GetArenaNoVirtual()); + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + inline CustomHttpPattern* New() const final { + return CreateMaybeMessage<CustomHttpPattern>(nullptr); + } + + CustomHttpPattern* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final { + return CreateMaybeMessage<CustomHttpPattern>(arena); + } + void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; + void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; + void CopyFrom(const CustomHttpPattern& from); + void MergeFrom(const CustomHttpPattern& from); + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize( + ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _cached_size_.Get(); } + + private: + inline void SharedCtor(); + inline void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(CustomHttpPattern* other); + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "google.api.CustomHttpPattern"; + } + protected: + explicit CustomHttpPattern(::PROTOBUF_NAMESPACE_ID::Arena* arena); + private: + static void ArenaDtor(void* object); + inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena); + private: + inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const { + return _internal_metadata_.arena(); + } + inline void* MaybeArenaPtr() const { + return _internal_metadata_.raw_arena_ptr(); + } + public: + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + private: + static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() { + ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_google_2fapi_2fhttp_2eproto); + return ::descriptor_table_google_2fapi_2fhttp_2eproto.file_level_metadata[kIndexInFileMessages]; + } + + public: + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + enum : int { + kKindFieldNumber = 1, + kPathFieldNumber = 2, + }; + // string kind = 1; + void clear_kind(); + const std::string& kind() const; + void set_kind(const std::string& value); + void set_kind(std::string&& value); + void set_kind(const char* value); + void set_kind(const char* value, size_t size); + std::string* mutable_kind(); + std::string* release_kind(); + void set_allocated_kind(std::string* kind); + GOOGLE_PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for" + " string fields are deprecated and will be removed in a" + " future release.") + std::string* unsafe_arena_release_kind(); + GOOGLE_PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for" + " string fields are deprecated and will be removed in a" + " future release.") + void unsafe_arena_set_allocated_kind( + std::string* kind); + private: + const std::string& _internal_kind() const; + void _internal_set_kind(const std::string& value); + std::string* _internal_mutable_kind(); + public: + + // string path = 2; + void clear_path(); + const std::string& path() const; + void set_path(const std::string& value); + void set_path(std::string&& value); + void set_path(const char* value); + void set_path(const char* value, size_t size); + std::string* mutable_path(); + std::string* release_path(); + void set_allocated_path(std::string* path); + GOOGLE_PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for" + " string fields are deprecated and will be removed in a" + " future release.") + std::string* unsafe_arena_release_path(); + GOOGLE_PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for" + " string fields are deprecated and will be removed in a" + " future release.") + void unsafe_arena_set_allocated_path( + std::string* path); + private: + const std::string& _internal_path() const; + void _internal_set_path(const std::string& value); + std::string* _internal_mutable_path(); + public: + + // @@protoc_insertion_point(class_scope:google.api.CustomHttpPattern) + private: + class _Internal; + + ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_; + template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; + typedef void InternalArenaConstructable_; + typedef void DestructorSkippable_; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr kind_; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr path_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + friend struct ::TableStruct_google_2fapi_2fhttp_2eproto; +}; +// =================================================================== + + +// =================================================================== + +#ifdef __GNUC__ + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wstrict-aliasing" +#endif // __GNUC__ +// Http + +// repeated .google.api.HttpRule rules = 1; +inline int Http::_internal_rules_size() const { + return rules_.size(); +} +inline int Http::rules_size() const { + return _internal_rules_size(); +} +inline void Http::clear_rules() { + rules_.Clear(); +} +inline ::google::api::HttpRule* Http::mutable_rules(int index) { + // @@protoc_insertion_point(field_mutable:google.api.Http.rules) + return rules_.Mutable(index); +} +inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::api::HttpRule >* +Http::mutable_rules() { + // @@protoc_insertion_point(field_mutable_list:google.api.Http.rules) + return &rules_; +} +inline const ::google::api::HttpRule& Http::_internal_rules(int index) const { + return rules_.Get(index); +} +inline const ::google::api::HttpRule& Http::rules(int index) const { + // @@protoc_insertion_point(field_get:google.api.Http.rules) + return _internal_rules(index); +} +inline ::google::api::HttpRule* Http::_internal_add_rules() { + return rules_.Add(); +} +inline ::google::api::HttpRule* Http::add_rules() { + // @@protoc_insertion_point(field_add:google.api.Http.rules) + return _internal_add_rules(); +} +inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::api::HttpRule >& +Http::rules() const { + // @@protoc_insertion_point(field_list:google.api.Http.rules) + return rules_; +} + +// bool fully_decode_reserved_expansion = 2; +inline void Http::clear_fully_decode_reserved_expansion() { + fully_decode_reserved_expansion_ = false; +} +inline bool Http::_internal_fully_decode_reserved_expansion() const { + return fully_decode_reserved_expansion_; +} +inline bool Http::fully_decode_reserved_expansion() const { + // @@protoc_insertion_point(field_get:google.api.Http.fully_decode_reserved_expansion) + return _internal_fully_decode_reserved_expansion(); +} +inline void Http::_internal_set_fully_decode_reserved_expansion(bool value) { + + fully_decode_reserved_expansion_ = value; +} +inline void Http::set_fully_decode_reserved_expansion(bool value) { + _internal_set_fully_decode_reserved_expansion(value); + // @@protoc_insertion_point(field_set:google.api.Http.fully_decode_reserved_expansion) +} + +// ------------------------------------------------------------------- + +// HttpRule + +// string selector = 1; +inline void HttpRule::clear_selector() { + selector_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual()); +} +inline const std::string& HttpRule::selector() const { + // @@protoc_insertion_point(field_get:google.api.HttpRule.selector) + return _internal_selector(); +} +inline void HttpRule::set_selector(const std::string& value) { + _internal_set_selector(value); + // @@protoc_insertion_point(field_set:google.api.HttpRule.selector) +} +inline std::string* HttpRule::mutable_selector() { + // @@protoc_insertion_point(field_mutable:google.api.HttpRule.selector) + return _internal_mutable_selector(); +} +inline const std::string& HttpRule::_internal_selector() const { + return selector_.Get(); +} +inline void HttpRule::_internal_set_selector(const std::string& value) { + + selector_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArenaNoVirtual()); +} +inline void HttpRule::set_selector(std::string&& value) { + + selector_.Set( + &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArenaNoVirtual()); + // @@protoc_insertion_point(field_set_rvalue:google.api.HttpRule.selector) +} +inline void HttpRule::set_selector(const char* value) { + GOOGLE_DCHECK(value != nullptr); + + selector_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value), + GetArenaNoVirtual()); + // @@protoc_insertion_point(field_set_char:google.api.HttpRule.selector) +} +inline void HttpRule::set_selector(const char* value, + size_t size) { + + selector_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string( + reinterpret_cast<const char*>(value), size), GetArenaNoVirtual()); + // @@protoc_insertion_point(field_set_pointer:google.api.HttpRule.selector) +} +inline std::string* HttpRule::_internal_mutable_selector() { + + return selector_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual()); +} +inline std::string* HttpRule::release_selector() { + // @@protoc_insertion_point(field_release:google.api.HttpRule.selector) + + return selector_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual()); +} +inline void HttpRule::set_allocated_selector(std::string* selector) { + if (selector != nullptr) { + + } else { + + } + selector_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), selector, + GetArenaNoVirtual()); + // @@protoc_insertion_point(field_set_allocated:google.api.HttpRule.selector) +} +inline std::string* HttpRule::unsafe_arena_release_selector() { + // @@protoc_insertion_point(field_unsafe_arena_release:google.api.HttpRule.selector) + GOOGLE_DCHECK(GetArenaNoVirtual() != nullptr); + + return selector_.UnsafeArenaRelease(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); +} +inline void HttpRule::unsafe_arena_set_allocated_selector( + std::string* selector) { + GOOGLE_DCHECK(GetArenaNoVirtual() != nullptr); + if (selector != nullptr) { + + } else { + + } + selector_.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + selector, GetArenaNoVirtual()); + // @@protoc_insertion_point(field_unsafe_arena_set_allocated:google.api.HttpRule.selector) +} + +// string get = 2; +inline bool HttpRule::_internal_has_get() const { + return pattern_case() == kGet; +} +inline void HttpRule::set_has_get() { + _oneof_case_[0] = kGet; +} +inline void HttpRule::clear_get() { + if (_internal_has_get()) { + pattern_.get_.Destroy(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); + clear_has_pattern(); + } +} +inline const std::string& HttpRule::get() const { + // @@protoc_insertion_point(field_get:google.api.HttpRule.get) + return _internal_get(); +} +inline void HttpRule::set_get(const std::string& value) { + _internal_set_get(value); + // @@protoc_insertion_point(field_set:google.api.HttpRule.get) +} +inline std::string* HttpRule::mutable_get() { + // @@protoc_insertion_point(field_mutable:google.api.HttpRule.get) + return _internal_mutable_get(); +} +inline const std::string& HttpRule::_internal_get() const { + if (_internal_has_get()) { + return pattern_.get_.Get(); + } + return *&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(); +} +inline void HttpRule::_internal_set_get(const std::string& value) { + if (!_internal_has_get()) { + clear_pattern(); + set_has_get(); + pattern_.get_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + } + pattern_.get_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, + GetArenaNoVirtual()); +} +inline void HttpRule::set_get(std::string&& value) { + // @@protoc_insertion_point(field_set:google.api.HttpRule.get) + if (!_internal_has_get()) { + clear_pattern(); + set_has_get(); + pattern_.get_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + } + pattern_.get_.Set( + &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArenaNoVirtual()); + // @@protoc_insertion_point(field_set_rvalue:google.api.HttpRule.get) +} +inline void HttpRule::set_get(const char* value) { + GOOGLE_DCHECK(value != nullptr); + if (!_internal_has_get()) { + clear_pattern(); + set_has_get(); + pattern_.get_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + } + pattern_.get_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + ::std::string(value), GetArenaNoVirtual()); + // @@protoc_insertion_point(field_set_char:google.api.HttpRule.get) +} +inline void HttpRule::set_get(const char* value, + size_t size) { + if (!_internal_has_get()) { + clear_pattern(); + set_has_get(); + pattern_.get_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + } + pattern_.get_.Set( + &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string( + reinterpret_cast<const char*>(value), size), + GetArenaNoVirtual()); + // @@protoc_insertion_point(field_set_pointer:google.api.HttpRule.get) +} +inline std::string* HttpRule::_internal_mutable_get() { + if (!_internal_has_get()) { + clear_pattern(); + set_has_get(); + pattern_.get_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + } + return pattern_.get_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); +} +inline std::string* HttpRule::release_get() { + // @@protoc_insertion_point(field_release:google.api.HttpRule.get) + if (_internal_has_get()) { + clear_has_pattern(); + return pattern_.get_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); + } else { + return nullptr; + } +} +inline void HttpRule::set_allocated_get(std::string* get) { + if (has_pattern()) { + clear_pattern(); + } + if (get != nullptr) { + set_has_get(); + pattern_.get_.UnsafeSetDefault(get); + } + // @@protoc_insertion_point(field_set_allocated:google.api.HttpRule.get) +} +inline std::string* HttpRule::unsafe_arena_release_get() { + // @@protoc_insertion_point(field_unsafe_arena_release:google.api.HttpRule.get) + GOOGLE_DCHECK(GetArenaNoVirtual() != nullptr); + if (_internal_has_get()) { + clear_has_pattern(); + return pattern_.get_.UnsafeArenaRelease( + &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual()); + } else { + return nullptr; + } +} +inline void HttpRule::unsafe_arena_set_allocated_get(std::string* get) { + GOOGLE_DCHECK(GetArenaNoVirtual() != nullptr); + if (!_internal_has_get()) { + pattern_.get_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + } + clear_pattern(); + if (get) { + set_has_get(); + pattern_.get_.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), get, GetArenaNoVirtual()); + } + // @@protoc_insertion_point(field_unsafe_arena_set_allocated:google.api.HttpRule.get) +} + +// string put = 3; +inline bool HttpRule::_internal_has_put() const { + return pattern_case() == kPut; +} +inline void HttpRule::set_has_put() { + _oneof_case_[0] = kPut; +} +inline void HttpRule::clear_put() { + if (_internal_has_put()) { + pattern_.put_.Destroy(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); + clear_has_pattern(); + } +} +inline const std::string& HttpRule::put() const { + // @@protoc_insertion_point(field_get:google.api.HttpRule.put) + return _internal_put(); +} +inline void HttpRule::set_put(const std::string& value) { + _internal_set_put(value); + // @@protoc_insertion_point(field_set:google.api.HttpRule.put) +} +inline std::string* HttpRule::mutable_put() { + // @@protoc_insertion_point(field_mutable:google.api.HttpRule.put) + return _internal_mutable_put(); +} +inline const std::string& HttpRule::_internal_put() const { + if (_internal_has_put()) { + return pattern_.put_.Get(); + } + return *&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(); +} +inline void HttpRule::_internal_set_put(const std::string& value) { + if (!_internal_has_put()) { + clear_pattern(); + set_has_put(); + pattern_.put_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + } + pattern_.put_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, + GetArenaNoVirtual()); +} +inline void HttpRule::set_put(std::string&& value) { + // @@protoc_insertion_point(field_set:google.api.HttpRule.put) + if (!_internal_has_put()) { + clear_pattern(); + set_has_put(); + pattern_.put_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + } + pattern_.put_.Set( + &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArenaNoVirtual()); + // @@protoc_insertion_point(field_set_rvalue:google.api.HttpRule.put) +} +inline void HttpRule::set_put(const char* value) { + GOOGLE_DCHECK(value != nullptr); + if (!_internal_has_put()) { + clear_pattern(); + set_has_put(); + pattern_.put_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + } + pattern_.put_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + ::std::string(value), GetArenaNoVirtual()); + // @@protoc_insertion_point(field_set_char:google.api.HttpRule.put) +} +inline void HttpRule::set_put(const char* value, + size_t size) { + if (!_internal_has_put()) { + clear_pattern(); + set_has_put(); + pattern_.put_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + } + pattern_.put_.Set( + &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string( + reinterpret_cast<const char*>(value), size), + GetArenaNoVirtual()); + // @@protoc_insertion_point(field_set_pointer:google.api.HttpRule.put) +} +inline std::string* HttpRule::_internal_mutable_put() { + if (!_internal_has_put()) { + clear_pattern(); + set_has_put(); + pattern_.put_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + } + return pattern_.put_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); +} +inline std::string* HttpRule::release_put() { + // @@protoc_insertion_point(field_release:google.api.HttpRule.put) + if (_internal_has_put()) { + clear_has_pattern(); + return pattern_.put_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); + } else { + return nullptr; + } +} +inline void HttpRule::set_allocated_put(std::string* put) { + if (has_pattern()) { + clear_pattern(); + } + if (put != nullptr) { + set_has_put(); + pattern_.put_.UnsafeSetDefault(put); + } + // @@protoc_insertion_point(field_set_allocated:google.api.HttpRule.put) +} +inline std::string* HttpRule::unsafe_arena_release_put() { + // @@protoc_insertion_point(field_unsafe_arena_release:google.api.HttpRule.put) + GOOGLE_DCHECK(GetArenaNoVirtual() != nullptr); + if (_internal_has_put()) { + clear_has_pattern(); + return pattern_.put_.UnsafeArenaRelease( + &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual()); + } else { + return nullptr; + } +} +inline void HttpRule::unsafe_arena_set_allocated_put(std::string* put) { + GOOGLE_DCHECK(GetArenaNoVirtual() != nullptr); + if (!_internal_has_put()) { + pattern_.put_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + } + clear_pattern(); + if (put) { + set_has_put(); + pattern_.put_.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), put, GetArenaNoVirtual()); + } + // @@protoc_insertion_point(field_unsafe_arena_set_allocated:google.api.HttpRule.put) +} + +// string post = 4; +inline bool HttpRule::_internal_has_post() const { + return pattern_case() == kPost; +} +inline void HttpRule::set_has_post() { + _oneof_case_[0] = kPost; +} +inline void HttpRule::clear_post() { + if (_internal_has_post()) { + pattern_.post_.Destroy(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); + clear_has_pattern(); + } +} +inline const std::string& HttpRule::post() const { + // @@protoc_insertion_point(field_get:google.api.HttpRule.post) + return _internal_post(); +} +inline void HttpRule::set_post(const std::string& value) { + _internal_set_post(value); + // @@protoc_insertion_point(field_set:google.api.HttpRule.post) +} +inline std::string* HttpRule::mutable_post() { + // @@protoc_insertion_point(field_mutable:google.api.HttpRule.post) + return _internal_mutable_post(); +} +inline const std::string& HttpRule::_internal_post() const { + if (_internal_has_post()) { + return pattern_.post_.Get(); + } + return *&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(); +} +inline void HttpRule::_internal_set_post(const std::string& value) { + if (!_internal_has_post()) { + clear_pattern(); + set_has_post(); + pattern_.post_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + } + pattern_.post_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, + GetArenaNoVirtual()); +} +inline void HttpRule::set_post(std::string&& value) { + // @@protoc_insertion_point(field_set:google.api.HttpRule.post) + if (!_internal_has_post()) { + clear_pattern(); + set_has_post(); + pattern_.post_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + } + pattern_.post_.Set( + &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArenaNoVirtual()); + // @@protoc_insertion_point(field_set_rvalue:google.api.HttpRule.post) +} +inline void HttpRule::set_post(const char* value) { + GOOGLE_DCHECK(value != nullptr); + if (!_internal_has_post()) { + clear_pattern(); + set_has_post(); + pattern_.post_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + } + pattern_.post_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + ::std::string(value), GetArenaNoVirtual()); + // @@protoc_insertion_point(field_set_char:google.api.HttpRule.post) +} +inline void HttpRule::set_post(const char* value, + size_t size) { + if (!_internal_has_post()) { + clear_pattern(); + set_has_post(); + pattern_.post_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + } + pattern_.post_.Set( + &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string( + reinterpret_cast<const char*>(value), size), + GetArenaNoVirtual()); + // @@protoc_insertion_point(field_set_pointer:google.api.HttpRule.post) +} +inline std::string* HttpRule::_internal_mutable_post() { + if (!_internal_has_post()) { + clear_pattern(); + set_has_post(); + pattern_.post_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + } + return pattern_.post_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); +} +inline std::string* HttpRule::release_post() { + // @@protoc_insertion_point(field_release:google.api.HttpRule.post) + if (_internal_has_post()) { + clear_has_pattern(); + return pattern_.post_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); + } else { + return nullptr; + } +} +inline void HttpRule::set_allocated_post(std::string* post) { + if (has_pattern()) { + clear_pattern(); + } + if (post != nullptr) { + set_has_post(); + pattern_.post_.UnsafeSetDefault(post); + } + // @@protoc_insertion_point(field_set_allocated:google.api.HttpRule.post) +} +inline std::string* HttpRule::unsafe_arena_release_post() { + // @@protoc_insertion_point(field_unsafe_arena_release:google.api.HttpRule.post) + GOOGLE_DCHECK(GetArenaNoVirtual() != nullptr); + if (_internal_has_post()) { + clear_has_pattern(); + return pattern_.post_.UnsafeArenaRelease( + &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual()); + } else { + return nullptr; + } +} +inline void HttpRule::unsafe_arena_set_allocated_post(std::string* post) { + GOOGLE_DCHECK(GetArenaNoVirtual() != nullptr); + if (!_internal_has_post()) { + pattern_.post_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + } + clear_pattern(); + if (post) { + set_has_post(); + pattern_.post_.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), post, GetArenaNoVirtual()); + } + // @@protoc_insertion_point(field_unsafe_arena_set_allocated:google.api.HttpRule.post) +} + +// string delete = 5; +inline bool HttpRule::_internal_has_delete_() const { + return pattern_case() == kDelete; +} +inline void HttpRule::set_has_delete_() { + _oneof_case_[0] = kDelete; +} +inline void HttpRule::clear_delete_() { + if (_internal_has_delete_()) { + pattern_.delete__.Destroy(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); + clear_has_pattern(); + } +} +inline const std::string& HttpRule::delete_() const { + // @@protoc_insertion_point(field_get:google.api.HttpRule.delete) + return _internal_delete_(); +} +inline void HttpRule::set_delete_(const std::string& value) { + _internal_set_delete_(value); + // @@protoc_insertion_point(field_set:google.api.HttpRule.delete) +} +inline std::string* HttpRule::mutable_delete_() { + // @@protoc_insertion_point(field_mutable:google.api.HttpRule.delete) + return _internal_mutable_delete_(); +} +inline const std::string& HttpRule::_internal_delete_() const { + if (_internal_has_delete_()) { + return pattern_.delete__.Get(); + } + return *&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(); +} +inline void HttpRule::_internal_set_delete_(const std::string& value) { + if (!_internal_has_delete_()) { + clear_pattern(); + set_has_delete_(); + pattern_.delete__.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + } + pattern_.delete__.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, + GetArenaNoVirtual()); +} +inline void HttpRule::set_delete_(std::string&& value) { + // @@protoc_insertion_point(field_set:google.api.HttpRule.delete) + if (!_internal_has_delete_()) { + clear_pattern(); + set_has_delete_(); + pattern_.delete__.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + } + pattern_.delete__.Set( + &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArenaNoVirtual()); + // @@protoc_insertion_point(field_set_rvalue:google.api.HttpRule.delete) +} +inline void HttpRule::set_delete_(const char* value) { + GOOGLE_DCHECK(value != nullptr); + if (!_internal_has_delete_()) { + clear_pattern(); + set_has_delete_(); + pattern_.delete__.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + } + pattern_.delete__.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + ::std::string(value), GetArenaNoVirtual()); + // @@protoc_insertion_point(field_set_char:google.api.HttpRule.delete) +} +inline void HttpRule::set_delete_(const char* value, + size_t size) { + if (!_internal_has_delete_()) { + clear_pattern(); + set_has_delete_(); + pattern_.delete__.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + } + pattern_.delete__.Set( + &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string( + reinterpret_cast<const char*>(value), size), + GetArenaNoVirtual()); + // @@protoc_insertion_point(field_set_pointer:google.api.HttpRule.delete) +} +inline std::string* HttpRule::_internal_mutable_delete_() { + if (!_internal_has_delete_()) { + clear_pattern(); + set_has_delete_(); + pattern_.delete__.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + } + return pattern_.delete__.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); +} +inline std::string* HttpRule::release_delete_() { + // @@protoc_insertion_point(field_release:google.api.HttpRule.delete) + if (_internal_has_delete_()) { + clear_has_pattern(); + return pattern_.delete__.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); + } else { + return nullptr; + } +} +inline void HttpRule::set_allocated_delete_(std::string* delete_) { + if (has_pattern()) { + clear_pattern(); + } + if (delete_ != nullptr) { + set_has_delete_(); + pattern_.delete__.UnsafeSetDefault(delete_); + } + // @@protoc_insertion_point(field_set_allocated:google.api.HttpRule.delete) +} +inline std::string* HttpRule::unsafe_arena_release_delete_() { + // @@protoc_insertion_point(field_unsafe_arena_release:google.api.HttpRule.delete) + GOOGLE_DCHECK(GetArenaNoVirtual() != nullptr); + if (_internal_has_delete_()) { + clear_has_pattern(); + return pattern_.delete__.UnsafeArenaRelease( + &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual()); + } else { + return nullptr; + } +} +inline void HttpRule::unsafe_arena_set_allocated_delete_(std::string* delete_) { + GOOGLE_DCHECK(GetArenaNoVirtual() != nullptr); + if (!_internal_has_delete_()) { + pattern_.delete__.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + } + clear_pattern(); + if (delete_) { + set_has_delete_(); + pattern_.delete__.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), delete_, GetArenaNoVirtual()); + } + // @@protoc_insertion_point(field_unsafe_arena_set_allocated:google.api.HttpRule.delete) +} + +// string patch = 6; +inline bool HttpRule::_internal_has_patch() const { + return pattern_case() == kPatch; +} +inline void HttpRule::set_has_patch() { + _oneof_case_[0] = kPatch; +} +inline void HttpRule::clear_patch() { + if (_internal_has_patch()) { + pattern_.patch_.Destroy(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); + clear_has_pattern(); + } +} +inline const std::string& HttpRule::patch() const { + // @@protoc_insertion_point(field_get:google.api.HttpRule.patch) + return _internal_patch(); +} +inline void HttpRule::set_patch(const std::string& value) { + _internal_set_patch(value); + // @@protoc_insertion_point(field_set:google.api.HttpRule.patch) +} +inline std::string* HttpRule::mutable_patch() { + // @@protoc_insertion_point(field_mutable:google.api.HttpRule.patch) + return _internal_mutable_patch(); +} +inline const std::string& HttpRule::_internal_patch() const { + if (_internal_has_patch()) { + return pattern_.patch_.Get(); + } + return *&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(); +} +inline void HttpRule::_internal_set_patch(const std::string& value) { + if (!_internal_has_patch()) { + clear_pattern(); + set_has_patch(); + pattern_.patch_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + } + pattern_.patch_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, + GetArenaNoVirtual()); +} +inline void HttpRule::set_patch(std::string&& value) { + // @@protoc_insertion_point(field_set:google.api.HttpRule.patch) + if (!_internal_has_patch()) { + clear_pattern(); + set_has_patch(); + pattern_.patch_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + } + pattern_.patch_.Set( + &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArenaNoVirtual()); + // @@protoc_insertion_point(field_set_rvalue:google.api.HttpRule.patch) +} +inline void HttpRule::set_patch(const char* value) { + GOOGLE_DCHECK(value != nullptr); + if (!_internal_has_patch()) { + clear_pattern(); + set_has_patch(); + pattern_.patch_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + } + pattern_.patch_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + ::std::string(value), GetArenaNoVirtual()); + // @@protoc_insertion_point(field_set_char:google.api.HttpRule.patch) +} +inline void HttpRule::set_patch(const char* value, + size_t size) { + if (!_internal_has_patch()) { + clear_pattern(); + set_has_patch(); + pattern_.patch_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + } + pattern_.patch_.Set( + &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string( + reinterpret_cast<const char*>(value), size), + GetArenaNoVirtual()); + // @@protoc_insertion_point(field_set_pointer:google.api.HttpRule.patch) +} +inline std::string* HttpRule::_internal_mutable_patch() { + if (!_internal_has_patch()) { + clear_pattern(); + set_has_patch(); + pattern_.patch_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + } + return pattern_.patch_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); +} +inline std::string* HttpRule::release_patch() { + // @@protoc_insertion_point(field_release:google.api.HttpRule.patch) + if (_internal_has_patch()) { + clear_has_pattern(); + return pattern_.patch_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); + } else { + return nullptr; + } +} +inline void HttpRule::set_allocated_patch(std::string* patch) { + if (has_pattern()) { + clear_pattern(); + } + if (patch != nullptr) { + set_has_patch(); + pattern_.patch_.UnsafeSetDefault(patch); + } + // @@protoc_insertion_point(field_set_allocated:google.api.HttpRule.patch) +} +inline std::string* HttpRule::unsafe_arena_release_patch() { + // @@protoc_insertion_point(field_unsafe_arena_release:google.api.HttpRule.patch) + GOOGLE_DCHECK(GetArenaNoVirtual() != nullptr); + if (_internal_has_patch()) { + clear_has_pattern(); + return pattern_.patch_.UnsafeArenaRelease( + &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual()); + } else { + return nullptr; + } +} +inline void HttpRule::unsafe_arena_set_allocated_patch(std::string* patch) { + GOOGLE_DCHECK(GetArenaNoVirtual() != nullptr); + if (!_internal_has_patch()) { + pattern_.patch_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + } + clear_pattern(); + if (patch) { + set_has_patch(); + pattern_.patch_.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), patch, GetArenaNoVirtual()); + } + // @@protoc_insertion_point(field_unsafe_arena_set_allocated:google.api.HttpRule.patch) +} + +// .google.api.CustomHttpPattern custom = 8; +inline bool HttpRule::_internal_has_custom() const { + return pattern_case() == kCustom; +} +inline bool HttpRule::has_custom() const { + return _internal_has_custom(); +} +inline void HttpRule::set_has_custom() { + _oneof_case_[0] = kCustom; +} +inline void HttpRule::clear_custom() { + if (_internal_has_custom()) { + if (GetArenaNoVirtual() == nullptr) { + delete pattern_.custom_; + } + clear_has_pattern(); + } +} +inline ::google::api::CustomHttpPattern* HttpRule::release_custom() { + // @@protoc_insertion_point(field_release:google.api.HttpRule.custom) + if (_internal_has_custom()) { + clear_has_pattern(); + ::google::api::CustomHttpPattern* temp = pattern_.custom_; + if (GetArenaNoVirtual() != nullptr) { + temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); + } + pattern_.custom_ = nullptr; + return temp; + } else { + return nullptr; + } +} +inline const ::google::api::CustomHttpPattern& HttpRule::_internal_custom() const { + return _internal_has_custom() + ? *pattern_.custom_ + : *reinterpret_cast< ::google::api::CustomHttpPattern*>(&::google::api::_CustomHttpPattern_default_instance_); +} +inline const ::google::api::CustomHttpPattern& HttpRule::custom() const { + // @@protoc_insertion_point(field_get:google.api.HttpRule.custom) + return _internal_custom(); +} +inline ::google::api::CustomHttpPattern* HttpRule::unsafe_arena_release_custom() { + // @@protoc_insertion_point(field_unsafe_arena_release:google.api.HttpRule.custom) + if (_internal_has_custom()) { + clear_has_pattern(); + ::google::api::CustomHttpPattern* temp = pattern_.custom_; + pattern_.custom_ = nullptr; + return temp; + } else { + return nullptr; + } +} +inline void HttpRule::unsafe_arena_set_allocated_custom(::google::api::CustomHttpPattern* custom) { + clear_pattern(); + if (custom) { + set_has_custom(); + pattern_.custom_ = custom; + } + // @@protoc_insertion_point(field_unsafe_arena_set_allocated:google.api.HttpRule.custom) +} +inline ::google::api::CustomHttpPattern* HttpRule::_internal_mutable_custom() { + if (!_internal_has_custom()) { + clear_pattern(); + set_has_custom(); + pattern_.custom_ = CreateMaybeMessage< ::google::api::CustomHttpPattern >( + GetArenaNoVirtual()); + } + return pattern_.custom_; +} +inline ::google::api::CustomHttpPattern* HttpRule::mutable_custom() { + // @@protoc_insertion_point(field_mutable:google.api.HttpRule.custom) + return _internal_mutable_custom(); +} + +// string body = 7; +inline void HttpRule::clear_body() { + body_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual()); +} +inline const std::string& HttpRule::body() const { + // @@protoc_insertion_point(field_get:google.api.HttpRule.body) + return _internal_body(); +} +inline void HttpRule::set_body(const std::string& value) { + _internal_set_body(value); + // @@protoc_insertion_point(field_set:google.api.HttpRule.body) +} +inline std::string* HttpRule::mutable_body() { + // @@protoc_insertion_point(field_mutable:google.api.HttpRule.body) + return _internal_mutable_body(); +} +inline const std::string& HttpRule::_internal_body() const { + return body_.Get(); +} +inline void HttpRule::_internal_set_body(const std::string& value) { + + body_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArenaNoVirtual()); +} +inline void HttpRule::set_body(std::string&& value) { + + body_.Set( + &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArenaNoVirtual()); + // @@protoc_insertion_point(field_set_rvalue:google.api.HttpRule.body) +} +inline void HttpRule::set_body(const char* value) { + GOOGLE_DCHECK(value != nullptr); + + body_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value), + GetArenaNoVirtual()); + // @@protoc_insertion_point(field_set_char:google.api.HttpRule.body) +} +inline void HttpRule::set_body(const char* value, + size_t size) { + + body_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string( + reinterpret_cast<const char*>(value), size), GetArenaNoVirtual()); + // @@protoc_insertion_point(field_set_pointer:google.api.HttpRule.body) +} +inline std::string* HttpRule::_internal_mutable_body() { + + return body_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual()); +} +inline std::string* HttpRule::release_body() { + // @@protoc_insertion_point(field_release:google.api.HttpRule.body) + + return body_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual()); +} +inline void HttpRule::set_allocated_body(std::string* body) { + if (body != nullptr) { + + } else { + + } + body_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), body, + GetArenaNoVirtual()); + // @@protoc_insertion_point(field_set_allocated:google.api.HttpRule.body) +} +inline std::string* HttpRule::unsafe_arena_release_body() { + // @@protoc_insertion_point(field_unsafe_arena_release:google.api.HttpRule.body) + GOOGLE_DCHECK(GetArenaNoVirtual() != nullptr); + + return body_.UnsafeArenaRelease(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); +} +inline void HttpRule::unsafe_arena_set_allocated_body( + std::string* body) { + GOOGLE_DCHECK(GetArenaNoVirtual() != nullptr); + if (body != nullptr) { + + } else { + + } + body_.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + body, GetArenaNoVirtual()); + // @@protoc_insertion_point(field_unsafe_arena_set_allocated:google.api.HttpRule.body) +} + +// string response_body = 12; +inline void HttpRule::clear_response_body() { + response_body_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual()); +} +inline const std::string& HttpRule::response_body() const { + // @@protoc_insertion_point(field_get:google.api.HttpRule.response_body) + return _internal_response_body(); +} +inline void HttpRule::set_response_body(const std::string& value) { + _internal_set_response_body(value); + // @@protoc_insertion_point(field_set:google.api.HttpRule.response_body) +} +inline std::string* HttpRule::mutable_response_body() { + // @@protoc_insertion_point(field_mutable:google.api.HttpRule.response_body) + return _internal_mutable_response_body(); +} +inline const std::string& HttpRule::_internal_response_body() const { + return response_body_.Get(); +} +inline void HttpRule::_internal_set_response_body(const std::string& value) { + + response_body_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArenaNoVirtual()); +} +inline void HttpRule::set_response_body(std::string&& value) { + + response_body_.Set( + &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArenaNoVirtual()); + // @@protoc_insertion_point(field_set_rvalue:google.api.HttpRule.response_body) +} +inline void HttpRule::set_response_body(const char* value) { + GOOGLE_DCHECK(value != nullptr); + + response_body_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value), + GetArenaNoVirtual()); + // @@protoc_insertion_point(field_set_char:google.api.HttpRule.response_body) +} +inline void HttpRule::set_response_body(const char* value, + size_t size) { + + response_body_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string( + reinterpret_cast<const char*>(value), size), GetArenaNoVirtual()); + // @@protoc_insertion_point(field_set_pointer:google.api.HttpRule.response_body) +} +inline std::string* HttpRule::_internal_mutable_response_body() { + + return response_body_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual()); +} +inline std::string* HttpRule::release_response_body() { + // @@protoc_insertion_point(field_release:google.api.HttpRule.response_body) + + return response_body_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual()); +} +inline void HttpRule::set_allocated_response_body(std::string* response_body) { + if (response_body != nullptr) { + + } else { + + } + response_body_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), response_body, + GetArenaNoVirtual()); + // @@protoc_insertion_point(field_set_allocated:google.api.HttpRule.response_body) +} +inline std::string* HttpRule::unsafe_arena_release_response_body() { + // @@protoc_insertion_point(field_unsafe_arena_release:google.api.HttpRule.response_body) + GOOGLE_DCHECK(GetArenaNoVirtual() != nullptr); + + return response_body_.UnsafeArenaRelease(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); +} +inline void HttpRule::unsafe_arena_set_allocated_response_body( + std::string* response_body) { + GOOGLE_DCHECK(GetArenaNoVirtual() != nullptr); + if (response_body != nullptr) { + + } else { + + } + response_body_.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + response_body, GetArenaNoVirtual()); + // @@protoc_insertion_point(field_unsafe_arena_set_allocated:google.api.HttpRule.response_body) +} + +// repeated .google.api.HttpRule additional_bindings = 11; +inline int HttpRule::_internal_additional_bindings_size() const { + return additional_bindings_.size(); +} +inline int HttpRule::additional_bindings_size() const { + return _internal_additional_bindings_size(); +} +inline void HttpRule::clear_additional_bindings() { + additional_bindings_.Clear(); +} +inline ::google::api::HttpRule* HttpRule::mutable_additional_bindings(int index) { + // @@protoc_insertion_point(field_mutable:google.api.HttpRule.additional_bindings) + return additional_bindings_.Mutable(index); +} +inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::api::HttpRule >* +HttpRule::mutable_additional_bindings() { + // @@protoc_insertion_point(field_mutable_list:google.api.HttpRule.additional_bindings) + return &additional_bindings_; +} +inline const ::google::api::HttpRule& HttpRule::_internal_additional_bindings(int index) const { + return additional_bindings_.Get(index); +} +inline const ::google::api::HttpRule& HttpRule::additional_bindings(int index) const { + // @@protoc_insertion_point(field_get:google.api.HttpRule.additional_bindings) + return _internal_additional_bindings(index); +} +inline ::google::api::HttpRule* HttpRule::_internal_add_additional_bindings() { + return additional_bindings_.Add(); +} +inline ::google::api::HttpRule* HttpRule::add_additional_bindings() { + // @@protoc_insertion_point(field_add:google.api.HttpRule.additional_bindings) + return _internal_add_additional_bindings(); +} +inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::api::HttpRule >& +HttpRule::additional_bindings() const { + // @@protoc_insertion_point(field_list:google.api.HttpRule.additional_bindings) + return additional_bindings_; +} + +inline bool HttpRule::has_pattern() const { + return pattern_case() != PATTERN_NOT_SET; +} +inline void HttpRule::clear_has_pattern() { + _oneof_case_[0] = PATTERN_NOT_SET; +} +inline HttpRule::PatternCase HttpRule::pattern_case() const { + return HttpRule::PatternCase(_oneof_case_[0]); +} +// ------------------------------------------------------------------- + +// CustomHttpPattern + +// string kind = 1; +inline void CustomHttpPattern::clear_kind() { + kind_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual()); +} +inline const std::string& CustomHttpPattern::kind() const { + // @@protoc_insertion_point(field_get:google.api.CustomHttpPattern.kind) + return _internal_kind(); +} +inline void CustomHttpPattern::set_kind(const std::string& value) { + _internal_set_kind(value); + // @@protoc_insertion_point(field_set:google.api.CustomHttpPattern.kind) +} +inline std::string* CustomHttpPattern::mutable_kind() { + // @@protoc_insertion_point(field_mutable:google.api.CustomHttpPattern.kind) + return _internal_mutable_kind(); +} +inline const std::string& CustomHttpPattern::_internal_kind() const { + return kind_.Get(); +} +inline void CustomHttpPattern::_internal_set_kind(const std::string& value) { + + kind_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArenaNoVirtual()); +} +inline void CustomHttpPattern::set_kind(std::string&& value) { + + kind_.Set( + &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArenaNoVirtual()); + // @@protoc_insertion_point(field_set_rvalue:google.api.CustomHttpPattern.kind) +} +inline void CustomHttpPattern::set_kind(const char* value) { + GOOGLE_DCHECK(value != nullptr); + + kind_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value), + GetArenaNoVirtual()); + // @@protoc_insertion_point(field_set_char:google.api.CustomHttpPattern.kind) +} +inline void CustomHttpPattern::set_kind(const char* value, + size_t size) { + + kind_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string( + reinterpret_cast<const char*>(value), size), GetArenaNoVirtual()); + // @@protoc_insertion_point(field_set_pointer:google.api.CustomHttpPattern.kind) +} +inline std::string* CustomHttpPattern::_internal_mutable_kind() { + + return kind_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual()); +} +inline std::string* CustomHttpPattern::release_kind() { + // @@protoc_insertion_point(field_release:google.api.CustomHttpPattern.kind) + + return kind_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual()); +} +inline void CustomHttpPattern::set_allocated_kind(std::string* kind) { + if (kind != nullptr) { + + } else { + + } + kind_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), kind, + GetArenaNoVirtual()); + // @@protoc_insertion_point(field_set_allocated:google.api.CustomHttpPattern.kind) +} +inline std::string* CustomHttpPattern::unsafe_arena_release_kind() { + // @@protoc_insertion_point(field_unsafe_arena_release:google.api.CustomHttpPattern.kind) + GOOGLE_DCHECK(GetArenaNoVirtual() != nullptr); + + return kind_.UnsafeArenaRelease(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); +} +inline void CustomHttpPattern::unsafe_arena_set_allocated_kind( + std::string* kind) { + GOOGLE_DCHECK(GetArenaNoVirtual() != nullptr); + if (kind != nullptr) { + + } else { + + } + kind_.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + kind, GetArenaNoVirtual()); + // @@protoc_insertion_point(field_unsafe_arena_set_allocated:google.api.CustomHttpPattern.kind) +} + +// string path = 2; +inline void CustomHttpPattern::clear_path() { + path_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual()); +} +inline const std::string& CustomHttpPattern::path() const { + // @@protoc_insertion_point(field_get:google.api.CustomHttpPattern.path) + return _internal_path(); +} +inline void CustomHttpPattern::set_path(const std::string& value) { + _internal_set_path(value); + // @@protoc_insertion_point(field_set:google.api.CustomHttpPattern.path) +} +inline std::string* CustomHttpPattern::mutable_path() { + // @@protoc_insertion_point(field_mutable:google.api.CustomHttpPattern.path) + return _internal_mutable_path(); +} +inline const std::string& CustomHttpPattern::_internal_path() const { + return path_.Get(); +} +inline void CustomHttpPattern::_internal_set_path(const std::string& value) { + + path_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArenaNoVirtual()); +} +inline void CustomHttpPattern::set_path(std::string&& value) { + + path_.Set( + &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArenaNoVirtual()); + // @@protoc_insertion_point(field_set_rvalue:google.api.CustomHttpPattern.path) +} +inline void CustomHttpPattern::set_path(const char* value) { + GOOGLE_DCHECK(value != nullptr); + + path_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value), + GetArenaNoVirtual()); + // @@protoc_insertion_point(field_set_char:google.api.CustomHttpPattern.path) +} +inline void CustomHttpPattern::set_path(const char* value, + size_t size) { + + path_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string( + reinterpret_cast<const char*>(value), size), GetArenaNoVirtual()); + // @@protoc_insertion_point(field_set_pointer:google.api.CustomHttpPattern.path) +} +inline std::string* CustomHttpPattern::_internal_mutable_path() { + + return path_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual()); +} +inline std::string* CustomHttpPattern::release_path() { + // @@protoc_insertion_point(field_release:google.api.CustomHttpPattern.path) + + return path_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual()); +} +inline void CustomHttpPattern::set_allocated_path(std::string* path) { + if (path != nullptr) { + + } else { + + } + path_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), path, + GetArenaNoVirtual()); + // @@protoc_insertion_point(field_set_allocated:google.api.CustomHttpPattern.path) +} +inline std::string* CustomHttpPattern::unsafe_arena_release_path() { + // @@protoc_insertion_point(field_unsafe_arena_release:google.api.CustomHttpPattern.path) + GOOGLE_DCHECK(GetArenaNoVirtual() != nullptr); + + return path_.UnsafeArenaRelease(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); +} +inline void CustomHttpPattern::unsafe_arena_set_allocated_path( + std::string* path) { + GOOGLE_DCHECK(GetArenaNoVirtual() != nullptr); + if (path != nullptr) { + + } else { + + } + path_.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + path, GetArenaNoVirtual()); + // @@protoc_insertion_point(field_unsafe_arena_set_allocated:google.api.CustomHttpPattern.path) +} + +#ifdef __GNUC__ + #pragma GCC diagnostic pop +#endif // __GNUC__ +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + + +// @@protoc_insertion_point(namespace_scope) + +} // namespace api +} // namespace google + +// @@protoc_insertion_point(global_scope) + +#include <google/protobuf/port_undef.inc> +#endif // GOOGLE_PROTOBUF_INCLUDED_GOOGLE_PROTOBUF_INCLUDED_google_2fapi_2fhttp_2eproto diff --git a/cpp/src/vereign/v1pb/identity_types.pb.cc b/cpp/src/vereign/v1pb/identity_types.pb.cc new file mode 100644 index 0000000000000000000000000000000000000000..4fdb50f4f136ee8730f653a380a8cb6eb3871169 --- /dev/null +++ b/cpp/src/vereign/v1pb/identity_types.pb.cc @@ -0,0 +1,1004 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: identity_types.proto + +#include "identity_types.pb.h" + +#include <algorithm> + +#include <google/protobuf/io/coded_stream.h> +#include <google/protobuf/extension_set.h> +#include <google/protobuf/wire_format_lite.h> +#include <google/protobuf/descriptor.h> +#include <google/protobuf/generated_message_reflection.h> +#include <google/protobuf/reflection_ops.h> +#include <google/protobuf/wire_format.h> +// @@protoc_insertion_point(includes) +#include <google/protobuf/port_def.inc> +extern PROTOBUF_INTERNAL_EXPORT_identity_5ftypes_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_LoginFormPreviousAddedDeviceResponsePayload_identity_5ftypes_2eproto; +namespace vereign { +namespace v1pb { +class LoginFormDefaultTypeInternal { + public: + ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<LoginForm> _instance; +} _LoginForm_default_instance_; +class LoginFormPreviousAddedDeviceResponsePayloadDefaultTypeInternal { + public: + ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<LoginFormPreviousAddedDeviceResponsePayload> _instance; +} _LoginFormPreviousAddedDeviceResponsePayload_default_instance_; +class LoginFormPreviousAddedDeviceResponseDefaultTypeInternal { + public: + ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<LoginFormPreviousAddedDeviceResponse> _instance; +} _LoginFormPreviousAddedDeviceResponse_default_instance_; +} // namespace v1pb +} // namespace vereign +static void InitDefaultsscc_info_LoginForm_identity_5ftypes_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::vereign::v1pb::_LoginForm_default_instance_; + new (ptr) ::vereign::v1pb::LoginForm(); + ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr); + } + ::vereign::v1pb::LoginForm::InitAsDefaultInstance(); +} + +::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_LoginForm_identity_5ftypes_2eproto = + {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_LoginForm_identity_5ftypes_2eproto}, {}}; + +static void InitDefaultsscc_info_LoginFormPreviousAddedDeviceResponse_identity_5ftypes_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::vereign::v1pb::_LoginFormPreviousAddedDeviceResponse_default_instance_; + new (ptr) ::vereign::v1pb::LoginFormPreviousAddedDeviceResponse(); + ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr); + } + ::vereign::v1pb::LoginFormPreviousAddedDeviceResponse::InitAsDefaultInstance(); +} + +::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_LoginFormPreviousAddedDeviceResponse_identity_5ftypes_2eproto = + {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_LoginFormPreviousAddedDeviceResponse_identity_5ftypes_2eproto}, { + &scc_info_LoginFormPreviousAddedDeviceResponsePayload_identity_5ftypes_2eproto.base,}}; + +static void InitDefaultsscc_info_LoginFormPreviousAddedDeviceResponsePayload_identity_5ftypes_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::vereign::v1pb::_LoginFormPreviousAddedDeviceResponsePayload_default_instance_; + new (ptr) ::vereign::v1pb::LoginFormPreviousAddedDeviceResponsePayload(); + ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr); + } + ::vereign::v1pb::LoginFormPreviousAddedDeviceResponsePayload::InitAsDefaultInstance(); +} + +::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_LoginFormPreviousAddedDeviceResponsePayload_identity_5ftypes_2eproto = + {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_LoginFormPreviousAddedDeviceResponsePayload_identity_5ftypes_2eproto}, {}}; + +static ::PROTOBUF_NAMESPACE_ID::Metadata file_level_metadata_identity_5ftypes_2eproto[3]; +static constexpr ::PROTOBUF_NAMESPACE_ID::EnumDescriptor const** file_level_enum_descriptors_identity_5ftypes_2eproto = nullptr; +static constexpr ::PROTOBUF_NAMESPACE_ID::ServiceDescriptor const** file_level_service_descriptors_identity_5ftypes_2eproto = nullptr; + +const ::PROTOBUF_NAMESPACE_ID::uint32 TableStruct_identity_5ftypes_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::vereign::v1pb::LoginForm, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + PROTOBUF_FIELD_OFFSET(::vereign::v1pb::LoginForm, mode_), + PROTOBUF_FIELD_OFFSET(::vereign::v1pb::LoginForm, code_), + PROTOBUF_FIELD_OFFSET(::vereign::v1pb::LoginForm, actionid_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::vereign::v1pb::LoginFormPreviousAddedDeviceResponsePayload, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + PROTOBUF_FIELD_OFFSET(::vereign::v1pb::LoginFormPreviousAddedDeviceResponsePayload, uuid_), + PROTOBUF_FIELD_OFFSET(::vereign::v1pb::LoginFormPreviousAddedDeviceResponsePayload, session_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::vereign::v1pb::LoginFormPreviousAddedDeviceResponse, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + PROTOBUF_FIELD_OFFSET(::vereign::v1pb::LoginFormPreviousAddedDeviceResponse, status_), + PROTOBUF_FIELD_OFFSET(::vereign::v1pb::LoginFormPreviousAddedDeviceResponse, code_), + PROTOBUF_FIELD_OFFSET(::vereign::v1pb::LoginFormPreviousAddedDeviceResponse, error_), + PROTOBUF_FIELD_OFFSET(::vereign::v1pb::LoginFormPreviousAddedDeviceResponse, data_), +}; +static const ::PROTOBUF_NAMESPACE_ID::internal::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { + { 0, -1, sizeof(::vereign::v1pb::LoginForm)}, + { 8, -1, sizeof(::vereign::v1pb::LoginFormPreviousAddedDeviceResponsePayload)}, + { 15, -1, sizeof(::vereign::v1pb::LoginFormPreviousAddedDeviceResponse)}, +}; + +static ::PROTOBUF_NAMESPACE_ID::Message const * const file_default_instances[] = { + reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::vereign::v1pb::_LoginForm_default_instance_), + reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::vereign::v1pb::_LoginFormPreviousAddedDeviceResponsePayload_default_instance_), + reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::vereign::v1pb::_LoginFormPreviousAddedDeviceResponse_default_instance_), +}; + +const char descriptor_table_protodef_identity_5ftypes_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = + "\n\024identity_types.proto\022\014vereign.v1pb\032\022de" + "pendencies.proto\"9\n\tLoginForm\022\014\n\004mode\030\001 " + "\001(\t\022\014\n\004code\030\002 \001(\t\022\020\n\010actionID\030\003 \001(\t\"L\n+L" + "oginFormPreviousAddedDeviceResponsePaylo" + "ad\022\014\n\004Uuid\030\001 \001(\t\022\017\n\007Session\030\002 \001(\t\"\234\001\n$Lo" + "ginFormPreviousAddedDeviceResponse\022\016\n\006st" + "atus\030\001 \001(\t\022\014\n\004code\030\002 \001(\t\022\r\n\005error\030\003 \001(\t\022" + "G\n\004data\030\004 \001(\01329.vereign.v1pb.LoginFormPr" + "eviousAddedDeviceResponsePayloadb\006proto3" + ; +static const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable*const descriptor_table_identity_5ftypes_2eproto_deps[1] = { + &::descriptor_table_dependencies_2eproto, +}; +static ::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase*const descriptor_table_identity_5ftypes_2eproto_sccs[3] = { + &scc_info_LoginForm_identity_5ftypes_2eproto.base, + &scc_info_LoginFormPreviousAddedDeviceResponse_identity_5ftypes_2eproto.base, + &scc_info_LoginFormPreviousAddedDeviceResponsePayload_identity_5ftypes_2eproto.base, +}; +static ::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_identity_5ftypes_2eproto_once; +static bool descriptor_table_identity_5ftypes_2eproto_initialized = false; +const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_identity_5ftypes_2eproto = { + &descriptor_table_identity_5ftypes_2eproto_initialized, descriptor_table_protodef_identity_5ftypes_2eproto, "identity_types.proto", 360, + &descriptor_table_identity_5ftypes_2eproto_once, descriptor_table_identity_5ftypes_2eproto_sccs, descriptor_table_identity_5ftypes_2eproto_deps, 3, 1, + schemas, file_default_instances, TableStruct_identity_5ftypes_2eproto::offsets, + file_level_metadata_identity_5ftypes_2eproto, 3, file_level_enum_descriptors_identity_5ftypes_2eproto, file_level_service_descriptors_identity_5ftypes_2eproto, +}; + +// Force running AddDescriptors() at dynamic initialization time. +static bool dynamic_init_dummy_identity_5ftypes_2eproto = ( ::PROTOBUF_NAMESPACE_ID::internal::AddDescriptors(&descriptor_table_identity_5ftypes_2eproto), true); +namespace vereign { +namespace v1pb { + +// =================================================================== + +void LoginForm::InitAsDefaultInstance() { +} +class LoginForm::_Internal { + public: +}; + +LoginForm::LoginForm() + : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) { + SharedCtor(); + // @@protoc_insertion_point(constructor:vereign.v1pb.LoginForm) +} +LoginForm::LoginForm(const LoginForm& from) + : ::PROTOBUF_NAMESPACE_ID::Message(), + _internal_metadata_(nullptr) { + _internal_metadata_.MergeFrom(from._internal_metadata_); + mode_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + if (!from._internal_mode().empty()) { + mode_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.mode_); + } + code_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + if (!from._internal_code().empty()) { + code_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.code_); + } + actionid_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + if (!from._internal_actionid().empty()) { + actionid_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.actionid_); + } + // @@protoc_insertion_point(copy_constructor:vereign.v1pb.LoginForm) +} + +void LoginForm::SharedCtor() { + ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_LoginForm_identity_5ftypes_2eproto.base); + mode_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + code_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + actionid_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} + +LoginForm::~LoginForm() { + // @@protoc_insertion_point(destructor:vereign.v1pb.LoginForm) + SharedDtor(); +} + +void LoginForm::SharedDtor() { + mode_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + code_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + actionid_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} + +void LoginForm::SetCachedSize(int size) const { + _cached_size_.Set(size); +} +const LoginForm& LoginForm::default_instance() { + ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_LoginForm_identity_5ftypes_2eproto.base); + return *internal_default_instance(); +} + + +void LoginForm::Clear() { +// @@protoc_insertion_point(message_clear_start:vereign.v1pb.LoginForm) + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + mode_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + code_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + actionid_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + _internal_metadata_.Clear(); +} + +const char* LoginForm::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + ::PROTOBUF_NAMESPACE_ID::uint32 tag; + ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag); + CHK_(ptr); + switch (tag >> 3) { + // string mode = 1; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) { + auto str = _internal_mutable_mode(); + ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); + CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "vereign.v1pb.LoginForm.mode")); + CHK_(ptr); + } else goto handle_unusual; + continue; + // string code = 2; + case 2: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) { + auto str = _internal_mutable_code(); + ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); + CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "vereign.v1pb.LoginForm.code")); + CHK_(ptr); + } else goto handle_unusual; + continue; + // string actionID = 3; + case 3: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) { + auto str = _internal_mutable_actionid(); + ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); + CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "vereign.v1pb.LoginForm.actionID")); + CHK_(ptr); + } else goto handle_unusual; + continue; + default: { + handle_unusual: + if ((tag & 7) == 4 || tag == 0) { + ctx->SetLastTag(tag); + goto success; + } + ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx); + CHK_(ptr != nullptr); + continue; + } + } // switch + } // while +success: + return ptr; +failure: + ptr = nullptr; + goto success; +#undef CHK_ +} + +::PROTOBUF_NAMESPACE_ID::uint8* LoginForm::_InternalSerialize( + ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:vereign.v1pb.LoginForm) + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + // string mode = 1; + if (this->mode().size() > 0) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_mode().data(), static_cast<int>(this->_internal_mode().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "vereign.v1pb.LoginForm.mode"); + target = stream->WriteStringMaybeAliased( + 1, this->_internal_mode(), target); + } + + // string code = 2; + if (this->code().size() > 0) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_code().data(), static_cast<int>(this->_internal_code().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "vereign.v1pb.LoginForm.code"); + target = stream->WriteStringMaybeAliased( + 2, this->_internal_code(), target); + } + + // string actionID = 3; + if (this->actionid().size() > 0) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_actionid().data(), static_cast<int>(this->_internal_actionid().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "vereign.v1pb.LoginForm.actionID"); + target = stream->WriteStringMaybeAliased( + 3, this->_internal_actionid(), target); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields(), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:vereign.v1pb.LoginForm) + return target; +} + +size_t LoginForm::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:vereign.v1pb.LoginForm) + size_t total_size = 0; + + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // string mode = 1; + if (this->mode().size() > 0) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_mode()); + } + + // string code = 2; + if (this->code().size() > 0) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_code()); + } + + // string actionID = 3; + if (this->actionid().size() > 0) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_actionid()); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize( + _internal_metadata_, total_size, &_cached_size_); + } + int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size); + SetCachedSize(cached_size); + return total_size; +} + +void LoginForm::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { +// @@protoc_insertion_point(generalized_merge_from_start:vereign.v1pb.LoginForm) + GOOGLE_DCHECK_NE(&from, this); + const LoginForm* source = + ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<LoginForm>( + &from); + if (source == nullptr) { + // @@protoc_insertion_point(generalized_merge_from_cast_fail:vereign.v1pb.LoginForm) + ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this); + } else { + // @@protoc_insertion_point(generalized_merge_from_cast_success:vereign.v1pb.LoginForm) + MergeFrom(*source); + } +} + +void LoginForm::MergeFrom(const LoginForm& from) { +// @@protoc_insertion_point(class_specific_merge_from_start:vereign.v1pb.LoginForm) + GOOGLE_DCHECK_NE(&from, this); + _internal_metadata_.MergeFrom(from._internal_metadata_); + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + if (from.mode().size() > 0) { + + mode_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.mode_); + } + if (from.code().size() > 0) { + + code_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.code_); + } + if (from.actionid().size() > 0) { + + actionid_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.actionid_); + } +} + +void LoginForm::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { +// @@protoc_insertion_point(generalized_copy_from_start:vereign.v1pb.LoginForm) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +void LoginForm::CopyFrom(const LoginForm& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:vereign.v1pb.LoginForm) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool LoginForm::IsInitialized() const { + return true; +} + +void LoginForm::InternalSwap(LoginForm* other) { + using std::swap; + _internal_metadata_.Swap(&other->_internal_metadata_); + mode_.Swap(&other->mode_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); + code_.Swap(&other->code_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); + actionid_.Swap(&other->actionid_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); +} + +::PROTOBUF_NAMESPACE_ID::Metadata LoginForm::GetMetadata() const { + return GetMetadataStatic(); +} + + +// =================================================================== + +void LoginFormPreviousAddedDeviceResponsePayload::InitAsDefaultInstance() { +} +class LoginFormPreviousAddedDeviceResponsePayload::_Internal { + public: +}; + +LoginFormPreviousAddedDeviceResponsePayload::LoginFormPreviousAddedDeviceResponsePayload() + : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) { + SharedCtor(); + // @@protoc_insertion_point(constructor:vereign.v1pb.LoginFormPreviousAddedDeviceResponsePayload) +} +LoginFormPreviousAddedDeviceResponsePayload::LoginFormPreviousAddedDeviceResponsePayload(const LoginFormPreviousAddedDeviceResponsePayload& from) + : ::PROTOBUF_NAMESPACE_ID::Message(), + _internal_metadata_(nullptr) { + _internal_metadata_.MergeFrom(from._internal_metadata_); + uuid_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + if (!from._internal_uuid().empty()) { + uuid_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.uuid_); + } + session_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + if (!from._internal_session().empty()) { + session_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.session_); + } + // @@protoc_insertion_point(copy_constructor:vereign.v1pb.LoginFormPreviousAddedDeviceResponsePayload) +} + +void LoginFormPreviousAddedDeviceResponsePayload::SharedCtor() { + ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_LoginFormPreviousAddedDeviceResponsePayload_identity_5ftypes_2eproto.base); + uuid_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + session_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} + +LoginFormPreviousAddedDeviceResponsePayload::~LoginFormPreviousAddedDeviceResponsePayload() { + // @@protoc_insertion_point(destructor:vereign.v1pb.LoginFormPreviousAddedDeviceResponsePayload) + SharedDtor(); +} + +void LoginFormPreviousAddedDeviceResponsePayload::SharedDtor() { + uuid_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + session_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} + +void LoginFormPreviousAddedDeviceResponsePayload::SetCachedSize(int size) const { + _cached_size_.Set(size); +} +const LoginFormPreviousAddedDeviceResponsePayload& LoginFormPreviousAddedDeviceResponsePayload::default_instance() { + ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_LoginFormPreviousAddedDeviceResponsePayload_identity_5ftypes_2eproto.base); + return *internal_default_instance(); +} + + +void LoginFormPreviousAddedDeviceResponsePayload::Clear() { +// @@protoc_insertion_point(message_clear_start:vereign.v1pb.LoginFormPreviousAddedDeviceResponsePayload) + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + uuid_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + session_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + _internal_metadata_.Clear(); +} + +const char* LoginFormPreviousAddedDeviceResponsePayload::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + ::PROTOBUF_NAMESPACE_ID::uint32 tag; + ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag); + CHK_(ptr); + switch (tag >> 3) { + // string Uuid = 1; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) { + auto str = _internal_mutable_uuid(); + ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); + CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "vereign.v1pb.LoginFormPreviousAddedDeviceResponsePayload.Uuid")); + CHK_(ptr); + } else goto handle_unusual; + continue; + // string Session = 2; + case 2: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) { + auto str = _internal_mutable_session(); + ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); + CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "vereign.v1pb.LoginFormPreviousAddedDeviceResponsePayload.Session")); + CHK_(ptr); + } else goto handle_unusual; + continue; + default: { + handle_unusual: + if ((tag & 7) == 4 || tag == 0) { + ctx->SetLastTag(tag); + goto success; + } + ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx); + CHK_(ptr != nullptr); + continue; + } + } // switch + } // while +success: + return ptr; +failure: + ptr = nullptr; + goto success; +#undef CHK_ +} + +::PROTOBUF_NAMESPACE_ID::uint8* LoginFormPreviousAddedDeviceResponsePayload::_InternalSerialize( + ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:vereign.v1pb.LoginFormPreviousAddedDeviceResponsePayload) + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + // string Uuid = 1; + if (this->uuid().size() > 0) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_uuid().data(), static_cast<int>(this->_internal_uuid().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "vereign.v1pb.LoginFormPreviousAddedDeviceResponsePayload.Uuid"); + target = stream->WriteStringMaybeAliased( + 1, this->_internal_uuid(), target); + } + + // string Session = 2; + if (this->session().size() > 0) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_session().data(), static_cast<int>(this->_internal_session().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "vereign.v1pb.LoginFormPreviousAddedDeviceResponsePayload.Session"); + target = stream->WriteStringMaybeAliased( + 2, this->_internal_session(), target); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields(), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:vereign.v1pb.LoginFormPreviousAddedDeviceResponsePayload) + return target; +} + +size_t LoginFormPreviousAddedDeviceResponsePayload::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:vereign.v1pb.LoginFormPreviousAddedDeviceResponsePayload) + size_t total_size = 0; + + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // string Uuid = 1; + if (this->uuid().size() > 0) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_uuid()); + } + + // string Session = 2; + if (this->session().size() > 0) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_session()); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize( + _internal_metadata_, total_size, &_cached_size_); + } + int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size); + SetCachedSize(cached_size); + return total_size; +} + +void LoginFormPreviousAddedDeviceResponsePayload::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { +// @@protoc_insertion_point(generalized_merge_from_start:vereign.v1pb.LoginFormPreviousAddedDeviceResponsePayload) + GOOGLE_DCHECK_NE(&from, this); + const LoginFormPreviousAddedDeviceResponsePayload* source = + ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<LoginFormPreviousAddedDeviceResponsePayload>( + &from); + if (source == nullptr) { + // @@protoc_insertion_point(generalized_merge_from_cast_fail:vereign.v1pb.LoginFormPreviousAddedDeviceResponsePayload) + ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this); + } else { + // @@protoc_insertion_point(generalized_merge_from_cast_success:vereign.v1pb.LoginFormPreviousAddedDeviceResponsePayload) + MergeFrom(*source); + } +} + +void LoginFormPreviousAddedDeviceResponsePayload::MergeFrom(const LoginFormPreviousAddedDeviceResponsePayload& from) { +// @@protoc_insertion_point(class_specific_merge_from_start:vereign.v1pb.LoginFormPreviousAddedDeviceResponsePayload) + GOOGLE_DCHECK_NE(&from, this); + _internal_metadata_.MergeFrom(from._internal_metadata_); + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + if (from.uuid().size() > 0) { + + uuid_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.uuid_); + } + if (from.session().size() > 0) { + + session_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.session_); + } +} + +void LoginFormPreviousAddedDeviceResponsePayload::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { +// @@protoc_insertion_point(generalized_copy_from_start:vereign.v1pb.LoginFormPreviousAddedDeviceResponsePayload) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +void LoginFormPreviousAddedDeviceResponsePayload::CopyFrom(const LoginFormPreviousAddedDeviceResponsePayload& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:vereign.v1pb.LoginFormPreviousAddedDeviceResponsePayload) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool LoginFormPreviousAddedDeviceResponsePayload::IsInitialized() const { + return true; +} + +void LoginFormPreviousAddedDeviceResponsePayload::InternalSwap(LoginFormPreviousAddedDeviceResponsePayload* other) { + using std::swap; + _internal_metadata_.Swap(&other->_internal_metadata_); + uuid_.Swap(&other->uuid_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); + session_.Swap(&other->session_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); +} + +::PROTOBUF_NAMESPACE_ID::Metadata LoginFormPreviousAddedDeviceResponsePayload::GetMetadata() const { + return GetMetadataStatic(); +} + + +// =================================================================== + +void LoginFormPreviousAddedDeviceResponse::InitAsDefaultInstance() { + ::vereign::v1pb::_LoginFormPreviousAddedDeviceResponse_default_instance_._instance.get_mutable()->data_ = const_cast< ::vereign::v1pb::LoginFormPreviousAddedDeviceResponsePayload*>( + ::vereign::v1pb::LoginFormPreviousAddedDeviceResponsePayload::internal_default_instance()); +} +class LoginFormPreviousAddedDeviceResponse::_Internal { + public: + static const ::vereign::v1pb::LoginFormPreviousAddedDeviceResponsePayload& data(const LoginFormPreviousAddedDeviceResponse* msg); +}; + +const ::vereign::v1pb::LoginFormPreviousAddedDeviceResponsePayload& +LoginFormPreviousAddedDeviceResponse::_Internal::data(const LoginFormPreviousAddedDeviceResponse* msg) { + return *msg->data_; +} +LoginFormPreviousAddedDeviceResponse::LoginFormPreviousAddedDeviceResponse() + : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) { + SharedCtor(); + // @@protoc_insertion_point(constructor:vereign.v1pb.LoginFormPreviousAddedDeviceResponse) +} +LoginFormPreviousAddedDeviceResponse::LoginFormPreviousAddedDeviceResponse(const LoginFormPreviousAddedDeviceResponse& from) + : ::PROTOBUF_NAMESPACE_ID::Message(), + _internal_metadata_(nullptr) { + _internal_metadata_.MergeFrom(from._internal_metadata_); + status_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + if (!from._internal_status().empty()) { + status_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.status_); + } + code_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + if (!from._internal_code().empty()) { + code_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.code_); + } + error_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + if (!from._internal_error().empty()) { + error_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.error_); + } + if (from._internal_has_data()) { + data_ = new ::vereign::v1pb::LoginFormPreviousAddedDeviceResponsePayload(*from.data_); + } else { + data_ = nullptr; + } + // @@protoc_insertion_point(copy_constructor:vereign.v1pb.LoginFormPreviousAddedDeviceResponse) +} + +void LoginFormPreviousAddedDeviceResponse::SharedCtor() { + ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_LoginFormPreviousAddedDeviceResponse_identity_5ftypes_2eproto.base); + status_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + code_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + error_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + data_ = nullptr; +} + +LoginFormPreviousAddedDeviceResponse::~LoginFormPreviousAddedDeviceResponse() { + // @@protoc_insertion_point(destructor:vereign.v1pb.LoginFormPreviousAddedDeviceResponse) + SharedDtor(); +} + +void LoginFormPreviousAddedDeviceResponse::SharedDtor() { + status_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + code_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + error_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + if (this != internal_default_instance()) delete data_; +} + +void LoginFormPreviousAddedDeviceResponse::SetCachedSize(int size) const { + _cached_size_.Set(size); +} +const LoginFormPreviousAddedDeviceResponse& LoginFormPreviousAddedDeviceResponse::default_instance() { + ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_LoginFormPreviousAddedDeviceResponse_identity_5ftypes_2eproto.base); + return *internal_default_instance(); +} + + +void LoginFormPreviousAddedDeviceResponse::Clear() { +// @@protoc_insertion_point(message_clear_start:vereign.v1pb.LoginFormPreviousAddedDeviceResponse) + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + status_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + code_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + error_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + if (GetArenaNoVirtual() == nullptr && data_ != nullptr) { + delete data_; + } + data_ = nullptr; + _internal_metadata_.Clear(); +} + +const char* LoginFormPreviousAddedDeviceResponse::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + ::PROTOBUF_NAMESPACE_ID::uint32 tag; + ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag); + CHK_(ptr); + switch (tag >> 3) { + // string status = 1; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) { + auto str = _internal_mutable_status(); + ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); + CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "vereign.v1pb.LoginFormPreviousAddedDeviceResponse.status")); + CHK_(ptr); + } else goto handle_unusual; + continue; + // string code = 2; + case 2: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) { + auto str = _internal_mutable_code(); + ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); + CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "vereign.v1pb.LoginFormPreviousAddedDeviceResponse.code")); + CHK_(ptr); + } else goto handle_unusual; + continue; + // string error = 3; + case 3: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) { + auto str = _internal_mutable_error(); + ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); + CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "vereign.v1pb.LoginFormPreviousAddedDeviceResponse.error")); + CHK_(ptr); + } else goto handle_unusual; + continue; + // .vereign.v1pb.LoginFormPreviousAddedDeviceResponsePayload data = 4; + case 4: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) { + ptr = ctx->ParseMessage(_internal_mutable_data(), ptr); + CHK_(ptr); + } else goto handle_unusual; + continue; + default: { + handle_unusual: + if ((tag & 7) == 4 || tag == 0) { + ctx->SetLastTag(tag); + goto success; + } + ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx); + CHK_(ptr != nullptr); + continue; + } + } // switch + } // while +success: + return ptr; +failure: + ptr = nullptr; + goto success; +#undef CHK_ +} + +::PROTOBUF_NAMESPACE_ID::uint8* LoginFormPreviousAddedDeviceResponse::_InternalSerialize( + ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:vereign.v1pb.LoginFormPreviousAddedDeviceResponse) + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + // string status = 1; + if (this->status().size() > 0) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_status().data(), static_cast<int>(this->_internal_status().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "vereign.v1pb.LoginFormPreviousAddedDeviceResponse.status"); + target = stream->WriteStringMaybeAliased( + 1, this->_internal_status(), target); + } + + // string code = 2; + if (this->code().size() > 0) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_code().data(), static_cast<int>(this->_internal_code().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "vereign.v1pb.LoginFormPreviousAddedDeviceResponse.code"); + target = stream->WriteStringMaybeAliased( + 2, this->_internal_code(), target); + } + + // string error = 3; + if (this->error().size() > 0) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_error().data(), static_cast<int>(this->_internal_error().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "vereign.v1pb.LoginFormPreviousAddedDeviceResponse.error"); + target = stream->WriteStringMaybeAliased( + 3, this->_internal_error(), target); + } + + // .vereign.v1pb.LoginFormPreviousAddedDeviceResponsePayload data = 4; + if (this->has_data()) { + target = stream->EnsureSpace(target); + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: + InternalWriteMessage( + 4, _Internal::data(this), target, stream); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields(), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:vereign.v1pb.LoginFormPreviousAddedDeviceResponse) + return target; +} + +size_t LoginFormPreviousAddedDeviceResponse::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:vereign.v1pb.LoginFormPreviousAddedDeviceResponse) + size_t total_size = 0; + + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // string status = 1; + if (this->status().size() > 0) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_status()); + } + + // string code = 2; + if (this->code().size() > 0) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_code()); + } + + // string error = 3; + if (this->error().size() > 0) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_error()); + } + + // .vereign.v1pb.LoginFormPreviousAddedDeviceResponsePayload data = 4; + if (this->has_data()) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( + *data_); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize( + _internal_metadata_, total_size, &_cached_size_); + } + int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size); + SetCachedSize(cached_size); + return total_size; +} + +void LoginFormPreviousAddedDeviceResponse::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { +// @@protoc_insertion_point(generalized_merge_from_start:vereign.v1pb.LoginFormPreviousAddedDeviceResponse) + GOOGLE_DCHECK_NE(&from, this); + const LoginFormPreviousAddedDeviceResponse* source = + ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<LoginFormPreviousAddedDeviceResponse>( + &from); + if (source == nullptr) { + // @@protoc_insertion_point(generalized_merge_from_cast_fail:vereign.v1pb.LoginFormPreviousAddedDeviceResponse) + ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this); + } else { + // @@protoc_insertion_point(generalized_merge_from_cast_success:vereign.v1pb.LoginFormPreviousAddedDeviceResponse) + MergeFrom(*source); + } +} + +void LoginFormPreviousAddedDeviceResponse::MergeFrom(const LoginFormPreviousAddedDeviceResponse& from) { +// @@protoc_insertion_point(class_specific_merge_from_start:vereign.v1pb.LoginFormPreviousAddedDeviceResponse) + GOOGLE_DCHECK_NE(&from, this); + _internal_metadata_.MergeFrom(from._internal_metadata_); + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + if (from.status().size() > 0) { + + status_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.status_); + } + if (from.code().size() > 0) { + + code_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.code_); + } + if (from.error().size() > 0) { + + error_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.error_); + } + if (from.has_data()) { + _internal_mutable_data()->::vereign::v1pb::LoginFormPreviousAddedDeviceResponsePayload::MergeFrom(from._internal_data()); + } +} + +void LoginFormPreviousAddedDeviceResponse::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { +// @@protoc_insertion_point(generalized_copy_from_start:vereign.v1pb.LoginFormPreviousAddedDeviceResponse) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +void LoginFormPreviousAddedDeviceResponse::CopyFrom(const LoginFormPreviousAddedDeviceResponse& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:vereign.v1pb.LoginFormPreviousAddedDeviceResponse) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool LoginFormPreviousAddedDeviceResponse::IsInitialized() const { + return true; +} + +void LoginFormPreviousAddedDeviceResponse::InternalSwap(LoginFormPreviousAddedDeviceResponse* other) { + using std::swap; + _internal_metadata_.Swap(&other->_internal_metadata_); + status_.Swap(&other->status_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); + code_.Swap(&other->code_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); + error_.Swap(&other->error_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); + swap(data_, other->data_); +} + +::PROTOBUF_NAMESPACE_ID::Metadata LoginFormPreviousAddedDeviceResponse::GetMetadata() const { + return GetMetadataStatic(); +} + + +// @@protoc_insertion_point(namespace_scope) +} // namespace v1pb +} // namespace vereign +PROTOBUF_NAMESPACE_OPEN +template<> PROTOBUF_NOINLINE ::vereign::v1pb::LoginForm* Arena::CreateMaybeMessage< ::vereign::v1pb::LoginForm >(Arena* arena) { + return Arena::CreateInternal< ::vereign::v1pb::LoginForm >(arena); +} +template<> PROTOBUF_NOINLINE ::vereign::v1pb::LoginFormPreviousAddedDeviceResponsePayload* Arena::CreateMaybeMessage< ::vereign::v1pb::LoginFormPreviousAddedDeviceResponsePayload >(Arena* arena) { + return Arena::CreateInternal< ::vereign::v1pb::LoginFormPreviousAddedDeviceResponsePayload >(arena); +} +template<> PROTOBUF_NOINLINE ::vereign::v1pb::LoginFormPreviousAddedDeviceResponse* Arena::CreateMaybeMessage< ::vereign::v1pb::LoginFormPreviousAddedDeviceResponse >(Arena* arena) { + return Arena::CreateInternal< ::vereign::v1pb::LoginFormPreviousAddedDeviceResponse >(arena); +} +PROTOBUF_NAMESPACE_CLOSE + +// @@protoc_insertion_point(global_scope) +#include <google/protobuf/port_undef.inc> diff --git a/cpp/src/vereign/v1pb/identity_types.pb.h b/cpp/src/vereign/v1pb/identity_types.pb.h new file mode 100644 index 0000000000000000000000000000000000000000..88b80ae5304876d7701aa37106375f04d167e05f --- /dev/null +++ b/cpp/src/vereign/v1pb/identity_types.pb.h @@ -0,0 +1,1166 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: identity_types.proto + +#ifndef GOOGLE_PROTOBUF_INCLUDED_identity_5ftypes_2eproto +#define GOOGLE_PROTOBUF_INCLUDED_identity_5ftypes_2eproto + +#include <limits> +#include <string> + +#include <google/protobuf/port_def.inc> +#if PROTOBUF_VERSION < 3011000 +#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 3011002 < 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/port_undef.inc> +#include <google/protobuf/io/coded_stream.h> +#include <google/protobuf/arena.h> +#include <google/protobuf/arenastring.h> +#include <google/protobuf/generated_message_table_driven.h> +#include <google/protobuf/generated_message_util.h> +#include <google/protobuf/inlined_string_field.h> +#include <google/protobuf/metadata.h> +#include <google/protobuf/generated_message_reflection.h> +#include <google/protobuf/message.h> +#include <google/protobuf/repeated_field.h> // IWYU pragma: export +#include <google/protobuf/extension_set.h> // IWYU pragma: export +#include <google/protobuf/unknown_field_set.h> +#include "dependencies.pb.h" +// @@protoc_insertion_point(includes) +#include <google/protobuf/port_def.inc> +#define PROTOBUF_INTERNAL_EXPORT_identity_5ftypes_2eproto +PROTOBUF_NAMESPACE_OPEN +namespace internal { +class AnyMetadata; +} // namespace internal +PROTOBUF_NAMESPACE_CLOSE + +// Internal implementation detail -- do not use these members. +struct TableStruct_identity_5ftypes_2eproto { + static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTableField entries[] + PROTOBUF_SECTION_VARIABLE(protodesc_cold); + static const ::PROTOBUF_NAMESPACE_ID::internal::AuxillaryParseTableField aux[] + PROTOBUF_SECTION_VARIABLE(protodesc_cold); + static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTable schema[3] + PROTOBUF_SECTION_VARIABLE(protodesc_cold); + static const ::PROTOBUF_NAMESPACE_ID::internal::FieldMetadata field_metadata[]; + static const ::PROTOBUF_NAMESPACE_ID::internal::SerializationTable serialization_table[]; + static const ::PROTOBUF_NAMESPACE_ID::uint32 offsets[]; +}; +extern const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_identity_5ftypes_2eproto; +namespace vereign { +namespace v1pb { +class LoginForm; +class LoginFormDefaultTypeInternal; +extern LoginFormDefaultTypeInternal _LoginForm_default_instance_; +class LoginFormPreviousAddedDeviceResponse; +class LoginFormPreviousAddedDeviceResponseDefaultTypeInternal; +extern LoginFormPreviousAddedDeviceResponseDefaultTypeInternal _LoginFormPreviousAddedDeviceResponse_default_instance_; +class LoginFormPreviousAddedDeviceResponsePayload; +class LoginFormPreviousAddedDeviceResponsePayloadDefaultTypeInternal; +extern LoginFormPreviousAddedDeviceResponsePayloadDefaultTypeInternal _LoginFormPreviousAddedDeviceResponsePayload_default_instance_; +} // namespace v1pb +} // namespace vereign +PROTOBUF_NAMESPACE_OPEN +template<> ::vereign::v1pb::LoginForm* Arena::CreateMaybeMessage<::vereign::v1pb::LoginForm>(Arena*); +template<> ::vereign::v1pb::LoginFormPreviousAddedDeviceResponse* Arena::CreateMaybeMessage<::vereign::v1pb::LoginFormPreviousAddedDeviceResponse>(Arena*); +template<> ::vereign::v1pb::LoginFormPreviousAddedDeviceResponsePayload* Arena::CreateMaybeMessage<::vereign::v1pb::LoginFormPreviousAddedDeviceResponsePayload>(Arena*); +PROTOBUF_NAMESPACE_CLOSE +namespace vereign { +namespace v1pb { + +// =================================================================== + +class LoginForm : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vereign.v1pb.LoginForm) */ { + public: + LoginForm(); + virtual ~LoginForm(); + + LoginForm(const LoginForm& from); + LoginForm(LoginForm&& from) noexcept + : LoginForm() { + *this = ::std::move(from); + } + + inline LoginForm& operator=(const LoginForm& from) { + CopyFrom(from); + return *this; + } + inline LoginForm& operator=(LoginForm&& from) noexcept { + if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) { + if (this != &from) InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return GetMetadataStatic().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return GetMetadataStatic().reflection; + } + static const LoginForm& default_instance(); + + static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY + static inline const LoginForm* internal_default_instance() { + return reinterpret_cast<const LoginForm*>( + &_LoginForm_default_instance_); + } + static constexpr int kIndexInFileMessages = + 0; + + friend void swap(LoginForm& a, LoginForm& b) { + a.Swap(&b); + } + inline void Swap(LoginForm* other) { + if (other == this) return; + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + inline LoginForm* New() const final { + return CreateMaybeMessage<LoginForm>(nullptr); + } + + LoginForm* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final { + return CreateMaybeMessage<LoginForm>(arena); + } + void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; + void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; + void CopyFrom(const LoginForm& from); + void MergeFrom(const LoginForm& from); + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize( + ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _cached_size_.Get(); } + + private: + inline void SharedCtor(); + inline void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(LoginForm* other); + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "vereign.v1pb.LoginForm"; + } + private: + inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const { + return nullptr; + } + inline void* MaybeArenaPtr() const { + return nullptr; + } + public: + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + private: + static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() { + ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_identity_5ftypes_2eproto); + return ::descriptor_table_identity_5ftypes_2eproto.file_level_metadata[kIndexInFileMessages]; + } + + public: + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + enum : int { + kModeFieldNumber = 1, + kCodeFieldNumber = 2, + kActionIDFieldNumber = 3, + }; + // string mode = 1; + void clear_mode(); + const std::string& mode() const; + void set_mode(const std::string& value); + void set_mode(std::string&& value); + void set_mode(const char* value); + void set_mode(const char* value, size_t size); + std::string* mutable_mode(); + std::string* release_mode(); + void set_allocated_mode(std::string* mode); + private: + const std::string& _internal_mode() const; + void _internal_set_mode(const std::string& value); + std::string* _internal_mutable_mode(); + public: + + // string code = 2; + void clear_code(); + const std::string& code() const; + void set_code(const std::string& value); + void set_code(std::string&& value); + void set_code(const char* value); + void set_code(const char* value, size_t size); + std::string* mutable_code(); + std::string* release_code(); + void set_allocated_code(std::string* code); + private: + const std::string& _internal_code() const; + void _internal_set_code(const std::string& value); + std::string* _internal_mutable_code(); + public: + + // string actionID = 3; + void clear_actionid(); + const std::string& actionid() const; + void set_actionid(const std::string& value); + void set_actionid(std::string&& value); + void set_actionid(const char* value); + void set_actionid(const char* value, size_t size); + std::string* mutable_actionid(); + std::string* release_actionid(); + void set_allocated_actionid(std::string* actionid); + private: + const std::string& _internal_actionid() const; + void _internal_set_actionid(const std::string& value); + std::string* _internal_mutable_actionid(); + public: + + // @@protoc_insertion_point(class_scope:vereign.v1pb.LoginForm) + private: + class _Internal; + + ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr mode_; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr code_; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr actionid_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + friend struct ::TableStruct_identity_5ftypes_2eproto; +}; +// ------------------------------------------------------------------- + +class LoginFormPreviousAddedDeviceResponsePayload : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vereign.v1pb.LoginFormPreviousAddedDeviceResponsePayload) */ { + public: + LoginFormPreviousAddedDeviceResponsePayload(); + virtual ~LoginFormPreviousAddedDeviceResponsePayload(); + + LoginFormPreviousAddedDeviceResponsePayload(const LoginFormPreviousAddedDeviceResponsePayload& from); + LoginFormPreviousAddedDeviceResponsePayload(LoginFormPreviousAddedDeviceResponsePayload&& from) noexcept + : LoginFormPreviousAddedDeviceResponsePayload() { + *this = ::std::move(from); + } + + inline LoginFormPreviousAddedDeviceResponsePayload& operator=(const LoginFormPreviousAddedDeviceResponsePayload& from) { + CopyFrom(from); + return *this; + } + inline LoginFormPreviousAddedDeviceResponsePayload& operator=(LoginFormPreviousAddedDeviceResponsePayload&& from) noexcept { + if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) { + if (this != &from) InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return GetMetadataStatic().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return GetMetadataStatic().reflection; + } + static const LoginFormPreviousAddedDeviceResponsePayload& default_instance(); + + static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY + static inline const LoginFormPreviousAddedDeviceResponsePayload* internal_default_instance() { + return reinterpret_cast<const LoginFormPreviousAddedDeviceResponsePayload*>( + &_LoginFormPreviousAddedDeviceResponsePayload_default_instance_); + } + static constexpr int kIndexInFileMessages = + 1; + + friend void swap(LoginFormPreviousAddedDeviceResponsePayload& a, LoginFormPreviousAddedDeviceResponsePayload& b) { + a.Swap(&b); + } + inline void Swap(LoginFormPreviousAddedDeviceResponsePayload* other) { + if (other == this) return; + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + inline LoginFormPreviousAddedDeviceResponsePayload* New() const final { + return CreateMaybeMessage<LoginFormPreviousAddedDeviceResponsePayload>(nullptr); + } + + LoginFormPreviousAddedDeviceResponsePayload* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final { + return CreateMaybeMessage<LoginFormPreviousAddedDeviceResponsePayload>(arena); + } + void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; + void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; + void CopyFrom(const LoginFormPreviousAddedDeviceResponsePayload& from); + void MergeFrom(const LoginFormPreviousAddedDeviceResponsePayload& from); + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize( + ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _cached_size_.Get(); } + + private: + inline void SharedCtor(); + inline void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(LoginFormPreviousAddedDeviceResponsePayload* other); + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "vereign.v1pb.LoginFormPreviousAddedDeviceResponsePayload"; + } + private: + inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const { + return nullptr; + } + inline void* MaybeArenaPtr() const { + return nullptr; + } + public: + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + private: + static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() { + ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_identity_5ftypes_2eproto); + return ::descriptor_table_identity_5ftypes_2eproto.file_level_metadata[kIndexInFileMessages]; + } + + public: + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + enum : int { + kUuidFieldNumber = 1, + kSessionFieldNumber = 2, + }; + // string Uuid = 1; + void clear_uuid(); + const std::string& uuid() const; + void set_uuid(const std::string& value); + void set_uuid(std::string&& value); + void set_uuid(const char* value); + void set_uuid(const char* value, size_t size); + std::string* mutable_uuid(); + std::string* release_uuid(); + void set_allocated_uuid(std::string* uuid); + private: + const std::string& _internal_uuid() const; + void _internal_set_uuid(const std::string& value); + std::string* _internal_mutable_uuid(); + public: + + // string Session = 2; + void clear_session(); + const std::string& session() const; + void set_session(const std::string& value); + void set_session(std::string&& value); + void set_session(const char* value); + void set_session(const char* value, size_t size); + std::string* mutable_session(); + std::string* release_session(); + void set_allocated_session(std::string* session); + private: + const std::string& _internal_session() const; + void _internal_set_session(const std::string& value); + std::string* _internal_mutable_session(); + public: + + // @@protoc_insertion_point(class_scope:vereign.v1pb.LoginFormPreviousAddedDeviceResponsePayload) + private: + class _Internal; + + ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr uuid_; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr session_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + friend struct ::TableStruct_identity_5ftypes_2eproto; +}; +// ------------------------------------------------------------------- + +class LoginFormPreviousAddedDeviceResponse : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vereign.v1pb.LoginFormPreviousAddedDeviceResponse) */ { + public: + LoginFormPreviousAddedDeviceResponse(); + virtual ~LoginFormPreviousAddedDeviceResponse(); + + LoginFormPreviousAddedDeviceResponse(const LoginFormPreviousAddedDeviceResponse& from); + LoginFormPreviousAddedDeviceResponse(LoginFormPreviousAddedDeviceResponse&& from) noexcept + : LoginFormPreviousAddedDeviceResponse() { + *this = ::std::move(from); + } + + inline LoginFormPreviousAddedDeviceResponse& operator=(const LoginFormPreviousAddedDeviceResponse& from) { + CopyFrom(from); + return *this; + } + inline LoginFormPreviousAddedDeviceResponse& operator=(LoginFormPreviousAddedDeviceResponse&& from) noexcept { + if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) { + if (this != &from) InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return GetMetadataStatic().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return GetMetadataStatic().reflection; + } + static const LoginFormPreviousAddedDeviceResponse& default_instance(); + + static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY + static inline const LoginFormPreviousAddedDeviceResponse* internal_default_instance() { + return reinterpret_cast<const LoginFormPreviousAddedDeviceResponse*>( + &_LoginFormPreviousAddedDeviceResponse_default_instance_); + } + static constexpr int kIndexInFileMessages = + 2; + + friend void swap(LoginFormPreviousAddedDeviceResponse& a, LoginFormPreviousAddedDeviceResponse& b) { + a.Swap(&b); + } + inline void Swap(LoginFormPreviousAddedDeviceResponse* other) { + if (other == this) return; + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + inline LoginFormPreviousAddedDeviceResponse* New() const final { + return CreateMaybeMessage<LoginFormPreviousAddedDeviceResponse>(nullptr); + } + + LoginFormPreviousAddedDeviceResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final { + return CreateMaybeMessage<LoginFormPreviousAddedDeviceResponse>(arena); + } + void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; + void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; + void CopyFrom(const LoginFormPreviousAddedDeviceResponse& from); + void MergeFrom(const LoginFormPreviousAddedDeviceResponse& from); + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize( + ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _cached_size_.Get(); } + + private: + inline void SharedCtor(); + inline void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(LoginFormPreviousAddedDeviceResponse* other); + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "vereign.v1pb.LoginFormPreviousAddedDeviceResponse"; + } + private: + inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const { + return nullptr; + } + inline void* MaybeArenaPtr() const { + return nullptr; + } + public: + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + private: + static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() { + ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_identity_5ftypes_2eproto); + return ::descriptor_table_identity_5ftypes_2eproto.file_level_metadata[kIndexInFileMessages]; + } + + public: + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + enum : int { + kStatusFieldNumber = 1, + kCodeFieldNumber = 2, + kErrorFieldNumber = 3, + kDataFieldNumber = 4, + }; + // string status = 1; + void clear_status(); + const std::string& status() const; + void set_status(const std::string& value); + void set_status(std::string&& value); + void set_status(const char* value); + void set_status(const char* value, size_t size); + std::string* mutable_status(); + std::string* release_status(); + void set_allocated_status(std::string* status); + private: + const std::string& _internal_status() const; + void _internal_set_status(const std::string& value); + std::string* _internal_mutable_status(); + public: + + // string code = 2; + void clear_code(); + const std::string& code() const; + void set_code(const std::string& value); + void set_code(std::string&& value); + void set_code(const char* value); + void set_code(const char* value, size_t size); + std::string* mutable_code(); + std::string* release_code(); + void set_allocated_code(std::string* code); + private: + const std::string& _internal_code() const; + void _internal_set_code(const std::string& value); + std::string* _internal_mutable_code(); + public: + + // string error = 3; + void clear_error(); + const std::string& error() const; + void set_error(const std::string& value); + void set_error(std::string&& value); + void set_error(const char* value); + void set_error(const char* value, size_t size); + std::string* mutable_error(); + std::string* release_error(); + void set_allocated_error(std::string* error); + private: + const std::string& _internal_error() const; + void _internal_set_error(const std::string& value); + std::string* _internal_mutable_error(); + public: + + // .vereign.v1pb.LoginFormPreviousAddedDeviceResponsePayload data = 4; + bool has_data() const; + private: + bool _internal_has_data() const; + public: + void clear_data(); + const ::vereign::v1pb::LoginFormPreviousAddedDeviceResponsePayload& data() const; + ::vereign::v1pb::LoginFormPreviousAddedDeviceResponsePayload* release_data(); + ::vereign::v1pb::LoginFormPreviousAddedDeviceResponsePayload* mutable_data(); + void set_allocated_data(::vereign::v1pb::LoginFormPreviousAddedDeviceResponsePayload* data); + private: + const ::vereign::v1pb::LoginFormPreviousAddedDeviceResponsePayload& _internal_data() const; + ::vereign::v1pb::LoginFormPreviousAddedDeviceResponsePayload* _internal_mutable_data(); + public: + + // @@protoc_insertion_point(class_scope:vereign.v1pb.LoginFormPreviousAddedDeviceResponse) + private: + class _Internal; + + ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr status_; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr code_; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr error_; + ::vereign::v1pb::LoginFormPreviousAddedDeviceResponsePayload* data_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + friend struct ::TableStruct_identity_5ftypes_2eproto; +}; +// =================================================================== + + +// =================================================================== + +#ifdef __GNUC__ + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wstrict-aliasing" +#endif // __GNUC__ +// LoginForm + +// string mode = 1; +inline void LoginForm::clear_mode() { + mode_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline const std::string& LoginForm::mode() const { + // @@protoc_insertion_point(field_get:vereign.v1pb.LoginForm.mode) + return _internal_mode(); +} +inline void LoginForm::set_mode(const std::string& value) { + _internal_set_mode(value); + // @@protoc_insertion_point(field_set:vereign.v1pb.LoginForm.mode) +} +inline std::string* LoginForm::mutable_mode() { + // @@protoc_insertion_point(field_mutable:vereign.v1pb.LoginForm.mode) + return _internal_mutable_mode(); +} +inline const std::string& LoginForm::_internal_mode() const { + return mode_.GetNoArena(); +} +inline void LoginForm::_internal_set_mode(const std::string& value) { + + mode_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value); +} +inline void LoginForm::set_mode(std::string&& value) { + + mode_.SetNoArena( + &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); + // @@protoc_insertion_point(field_set_rvalue:vereign.v1pb.LoginForm.mode) +} +inline void LoginForm::set_mode(const char* value) { + GOOGLE_DCHECK(value != nullptr); + + mode_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); + // @@protoc_insertion_point(field_set_char:vereign.v1pb.LoginForm.mode) +} +inline void LoginForm::set_mode(const char* value, size_t size) { + + mode_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + ::std::string(reinterpret_cast<const char*>(value), size)); + // @@protoc_insertion_point(field_set_pointer:vereign.v1pb.LoginForm.mode) +} +inline std::string* LoginForm::_internal_mutable_mode() { + + return mode_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline std::string* LoginForm::release_mode() { + // @@protoc_insertion_point(field_release:vereign.v1pb.LoginForm.mode) + + return mode_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline void LoginForm::set_allocated_mode(std::string* mode) { + if (mode != nullptr) { + + } else { + + } + mode_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), mode); + // @@protoc_insertion_point(field_set_allocated:vereign.v1pb.LoginForm.mode) +} + +// string code = 2; +inline void LoginForm::clear_code() { + code_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline const std::string& LoginForm::code() const { + // @@protoc_insertion_point(field_get:vereign.v1pb.LoginForm.code) + return _internal_code(); +} +inline void LoginForm::set_code(const std::string& value) { + _internal_set_code(value); + // @@protoc_insertion_point(field_set:vereign.v1pb.LoginForm.code) +} +inline std::string* LoginForm::mutable_code() { + // @@protoc_insertion_point(field_mutable:vereign.v1pb.LoginForm.code) + return _internal_mutable_code(); +} +inline const std::string& LoginForm::_internal_code() const { + return code_.GetNoArena(); +} +inline void LoginForm::_internal_set_code(const std::string& value) { + + code_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value); +} +inline void LoginForm::set_code(std::string&& value) { + + code_.SetNoArena( + &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); + // @@protoc_insertion_point(field_set_rvalue:vereign.v1pb.LoginForm.code) +} +inline void LoginForm::set_code(const char* value) { + GOOGLE_DCHECK(value != nullptr); + + code_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); + // @@protoc_insertion_point(field_set_char:vereign.v1pb.LoginForm.code) +} +inline void LoginForm::set_code(const char* value, size_t size) { + + code_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + ::std::string(reinterpret_cast<const char*>(value), size)); + // @@protoc_insertion_point(field_set_pointer:vereign.v1pb.LoginForm.code) +} +inline std::string* LoginForm::_internal_mutable_code() { + + return code_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline std::string* LoginForm::release_code() { + // @@protoc_insertion_point(field_release:vereign.v1pb.LoginForm.code) + + return code_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline void LoginForm::set_allocated_code(std::string* code) { + if (code != nullptr) { + + } else { + + } + code_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), code); + // @@protoc_insertion_point(field_set_allocated:vereign.v1pb.LoginForm.code) +} + +// string actionID = 3; +inline void LoginForm::clear_actionid() { + actionid_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline const std::string& LoginForm::actionid() const { + // @@protoc_insertion_point(field_get:vereign.v1pb.LoginForm.actionID) + return _internal_actionid(); +} +inline void LoginForm::set_actionid(const std::string& value) { + _internal_set_actionid(value); + // @@protoc_insertion_point(field_set:vereign.v1pb.LoginForm.actionID) +} +inline std::string* LoginForm::mutable_actionid() { + // @@protoc_insertion_point(field_mutable:vereign.v1pb.LoginForm.actionID) + return _internal_mutable_actionid(); +} +inline const std::string& LoginForm::_internal_actionid() const { + return actionid_.GetNoArena(); +} +inline void LoginForm::_internal_set_actionid(const std::string& value) { + + actionid_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value); +} +inline void LoginForm::set_actionid(std::string&& value) { + + actionid_.SetNoArena( + &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); + // @@protoc_insertion_point(field_set_rvalue:vereign.v1pb.LoginForm.actionID) +} +inline void LoginForm::set_actionid(const char* value) { + GOOGLE_DCHECK(value != nullptr); + + actionid_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); + // @@protoc_insertion_point(field_set_char:vereign.v1pb.LoginForm.actionID) +} +inline void LoginForm::set_actionid(const char* value, size_t size) { + + actionid_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + ::std::string(reinterpret_cast<const char*>(value), size)); + // @@protoc_insertion_point(field_set_pointer:vereign.v1pb.LoginForm.actionID) +} +inline std::string* LoginForm::_internal_mutable_actionid() { + + return actionid_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline std::string* LoginForm::release_actionid() { + // @@protoc_insertion_point(field_release:vereign.v1pb.LoginForm.actionID) + + return actionid_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline void LoginForm::set_allocated_actionid(std::string* actionid) { + if (actionid != nullptr) { + + } else { + + } + actionid_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), actionid); + // @@protoc_insertion_point(field_set_allocated:vereign.v1pb.LoginForm.actionID) +} + +// ------------------------------------------------------------------- + +// LoginFormPreviousAddedDeviceResponsePayload + +// string Uuid = 1; +inline void LoginFormPreviousAddedDeviceResponsePayload::clear_uuid() { + uuid_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline const std::string& LoginFormPreviousAddedDeviceResponsePayload::uuid() const { + // @@protoc_insertion_point(field_get:vereign.v1pb.LoginFormPreviousAddedDeviceResponsePayload.Uuid) + return _internal_uuid(); +} +inline void LoginFormPreviousAddedDeviceResponsePayload::set_uuid(const std::string& value) { + _internal_set_uuid(value); + // @@protoc_insertion_point(field_set:vereign.v1pb.LoginFormPreviousAddedDeviceResponsePayload.Uuid) +} +inline std::string* LoginFormPreviousAddedDeviceResponsePayload::mutable_uuid() { + // @@protoc_insertion_point(field_mutable:vereign.v1pb.LoginFormPreviousAddedDeviceResponsePayload.Uuid) + return _internal_mutable_uuid(); +} +inline const std::string& LoginFormPreviousAddedDeviceResponsePayload::_internal_uuid() const { + return uuid_.GetNoArena(); +} +inline void LoginFormPreviousAddedDeviceResponsePayload::_internal_set_uuid(const std::string& value) { + + uuid_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value); +} +inline void LoginFormPreviousAddedDeviceResponsePayload::set_uuid(std::string&& value) { + + uuid_.SetNoArena( + &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); + // @@protoc_insertion_point(field_set_rvalue:vereign.v1pb.LoginFormPreviousAddedDeviceResponsePayload.Uuid) +} +inline void LoginFormPreviousAddedDeviceResponsePayload::set_uuid(const char* value) { + GOOGLE_DCHECK(value != nullptr); + + uuid_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); + // @@protoc_insertion_point(field_set_char:vereign.v1pb.LoginFormPreviousAddedDeviceResponsePayload.Uuid) +} +inline void LoginFormPreviousAddedDeviceResponsePayload::set_uuid(const char* value, size_t size) { + + uuid_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + ::std::string(reinterpret_cast<const char*>(value), size)); + // @@protoc_insertion_point(field_set_pointer:vereign.v1pb.LoginFormPreviousAddedDeviceResponsePayload.Uuid) +} +inline std::string* LoginFormPreviousAddedDeviceResponsePayload::_internal_mutable_uuid() { + + return uuid_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline std::string* LoginFormPreviousAddedDeviceResponsePayload::release_uuid() { + // @@protoc_insertion_point(field_release:vereign.v1pb.LoginFormPreviousAddedDeviceResponsePayload.Uuid) + + return uuid_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline void LoginFormPreviousAddedDeviceResponsePayload::set_allocated_uuid(std::string* uuid) { + if (uuid != nullptr) { + + } else { + + } + uuid_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), uuid); + // @@protoc_insertion_point(field_set_allocated:vereign.v1pb.LoginFormPreviousAddedDeviceResponsePayload.Uuid) +} + +// string Session = 2; +inline void LoginFormPreviousAddedDeviceResponsePayload::clear_session() { + session_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline const std::string& LoginFormPreviousAddedDeviceResponsePayload::session() const { + // @@protoc_insertion_point(field_get:vereign.v1pb.LoginFormPreviousAddedDeviceResponsePayload.Session) + return _internal_session(); +} +inline void LoginFormPreviousAddedDeviceResponsePayload::set_session(const std::string& value) { + _internal_set_session(value); + // @@protoc_insertion_point(field_set:vereign.v1pb.LoginFormPreviousAddedDeviceResponsePayload.Session) +} +inline std::string* LoginFormPreviousAddedDeviceResponsePayload::mutable_session() { + // @@protoc_insertion_point(field_mutable:vereign.v1pb.LoginFormPreviousAddedDeviceResponsePayload.Session) + return _internal_mutable_session(); +} +inline const std::string& LoginFormPreviousAddedDeviceResponsePayload::_internal_session() const { + return session_.GetNoArena(); +} +inline void LoginFormPreviousAddedDeviceResponsePayload::_internal_set_session(const std::string& value) { + + session_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value); +} +inline void LoginFormPreviousAddedDeviceResponsePayload::set_session(std::string&& value) { + + session_.SetNoArena( + &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); + // @@protoc_insertion_point(field_set_rvalue:vereign.v1pb.LoginFormPreviousAddedDeviceResponsePayload.Session) +} +inline void LoginFormPreviousAddedDeviceResponsePayload::set_session(const char* value) { + GOOGLE_DCHECK(value != nullptr); + + session_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); + // @@protoc_insertion_point(field_set_char:vereign.v1pb.LoginFormPreviousAddedDeviceResponsePayload.Session) +} +inline void LoginFormPreviousAddedDeviceResponsePayload::set_session(const char* value, size_t size) { + + session_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + ::std::string(reinterpret_cast<const char*>(value), size)); + // @@protoc_insertion_point(field_set_pointer:vereign.v1pb.LoginFormPreviousAddedDeviceResponsePayload.Session) +} +inline std::string* LoginFormPreviousAddedDeviceResponsePayload::_internal_mutable_session() { + + return session_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline std::string* LoginFormPreviousAddedDeviceResponsePayload::release_session() { + // @@protoc_insertion_point(field_release:vereign.v1pb.LoginFormPreviousAddedDeviceResponsePayload.Session) + + return session_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline void LoginFormPreviousAddedDeviceResponsePayload::set_allocated_session(std::string* session) { + if (session != nullptr) { + + } else { + + } + session_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), session); + // @@protoc_insertion_point(field_set_allocated:vereign.v1pb.LoginFormPreviousAddedDeviceResponsePayload.Session) +} + +// ------------------------------------------------------------------- + +// LoginFormPreviousAddedDeviceResponse + +// string status = 1; +inline void LoginFormPreviousAddedDeviceResponse::clear_status() { + status_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline const std::string& LoginFormPreviousAddedDeviceResponse::status() const { + // @@protoc_insertion_point(field_get:vereign.v1pb.LoginFormPreviousAddedDeviceResponse.status) + return _internal_status(); +} +inline void LoginFormPreviousAddedDeviceResponse::set_status(const std::string& value) { + _internal_set_status(value); + // @@protoc_insertion_point(field_set:vereign.v1pb.LoginFormPreviousAddedDeviceResponse.status) +} +inline std::string* LoginFormPreviousAddedDeviceResponse::mutable_status() { + // @@protoc_insertion_point(field_mutable:vereign.v1pb.LoginFormPreviousAddedDeviceResponse.status) + return _internal_mutable_status(); +} +inline const std::string& LoginFormPreviousAddedDeviceResponse::_internal_status() const { + return status_.GetNoArena(); +} +inline void LoginFormPreviousAddedDeviceResponse::_internal_set_status(const std::string& value) { + + status_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value); +} +inline void LoginFormPreviousAddedDeviceResponse::set_status(std::string&& value) { + + status_.SetNoArena( + &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); + // @@protoc_insertion_point(field_set_rvalue:vereign.v1pb.LoginFormPreviousAddedDeviceResponse.status) +} +inline void LoginFormPreviousAddedDeviceResponse::set_status(const char* value) { + GOOGLE_DCHECK(value != nullptr); + + status_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); + // @@protoc_insertion_point(field_set_char:vereign.v1pb.LoginFormPreviousAddedDeviceResponse.status) +} +inline void LoginFormPreviousAddedDeviceResponse::set_status(const char* value, size_t size) { + + status_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + ::std::string(reinterpret_cast<const char*>(value), size)); + // @@protoc_insertion_point(field_set_pointer:vereign.v1pb.LoginFormPreviousAddedDeviceResponse.status) +} +inline std::string* LoginFormPreviousAddedDeviceResponse::_internal_mutable_status() { + + return status_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline std::string* LoginFormPreviousAddedDeviceResponse::release_status() { + // @@protoc_insertion_point(field_release:vereign.v1pb.LoginFormPreviousAddedDeviceResponse.status) + + return status_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline void LoginFormPreviousAddedDeviceResponse::set_allocated_status(std::string* status) { + if (status != nullptr) { + + } else { + + } + status_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), status); + // @@protoc_insertion_point(field_set_allocated:vereign.v1pb.LoginFormPreviousAddedDeviceResponse.status) +} + +// string code = 2; +inline void LoginFormPreviousAddedDeviceResponse::clear_code() { + code_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline const std::string& LoginFormPreviousAddedDeviceResponse::code() const { + // @@protoc_insertion_point(field_get:vereign.v1pb.LoginFormPreviousAddedDeviceResponse.code) + return _internal_code(); +} +inline void LoginFormPreviousAddedDeviceResponse::set_code(const std::string& value) { + _internal_set_code(value); + // @@protoc_insertion_point(field_set:vereign.v1pb.LoginFormPreviousAddedDeviceResponse.code) +} +inline std::string* LoginFormPreviousAddedDeviceResponse::mutable_code() { + // @@protoc_insertion_point(field_mutable:vereign.v1pb.LoginFormPreviousAddedDeviceResponse.code) + return _internal_mutable_code(); +} +inline const std::string& LoginFormPreviousAddedDeviceResponse::_internal_code() const { + return code_.GetNoArena(); +} +inline void LoginFormPreviousAddedDeviceResponse::_internal_set_code(const std::string& value) { + + code_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value); +} +inline void LoginFormPreviousAddedDeviceResponse::set_code(std::string&& value) { + + code_.SetNoArena( + &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); + // @@protoc_insertion_point(field_set_rvalue:vereign.v1pb.LoginFormPreviousAddedDeviceResponse.code) +} +inline void LoginFormPreviousAddedDeviceResponse::set_code(const char* value) { + GOOGLE_DCHECK(value != nullptr); + + code_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); + // @@protoc_insertion_point(field_set_char:vereign.v1pb.LoginFormPreviousAddedDeviceResponse.code) +} +inline void LoginFormPreviousAddedDeviceResponse::set_code(const char* value, size_t size) { + + code_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + ::std::string(reinterpret_cast<const char*>(value), size)); + // @@protoc_insertion_point(field_set_pointer:vereign.v1pb.LoginFormPreviousAddedDeviceResponse.code) +} +inline std::string* LoginFormPreviousAddedDeviceResponse::_internal_mutable_code() { + + return code_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline std::string* LoginFormPreviousAddedDeviceResponse::release_code() { + // @@protoc_insertion_point(field_release:vereign.v1pb.LoginFormPreviousAddedDeviceResponse.code) + + return code_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline void LoginFormPreviousAddedDeviceResponse::set_allocated_code(std::string* code) { + if (code != nullptr) { + + } else { + + } + code_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), code); + // @@protoc_insertion_point(field_set_allocated:vereign.v1pb.LoginFormPreviousAddedDeviceResponse.code) +} + +// string error = 3; +inline void LoginFormPreviousAddedDeviceResponse::clear_error() { + error_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline const std::string& LoginFormPreviousAddedDeviceResponse::error() const { + // @@protoc_insertion_point(field_get:vereign.v1pb.LoginFormPreviousAddedDeviceResponse.error) + return _internal_error(); +} +inline void LoginFormPreviousAddedDeviceResponse::set_error(const std::string& value) { + _internal_set_error(value); + // @@protoc_insertion_point(field_set:vereign.v1pb.LoginFormPreviousAddedDeviceResponse.error) +} +inline std::string* LoginFormPreviousAddedDeviceResponse::mutable_error() { + // @@protoc_insertion_point(field_mutable:vereign.v1pb.LoginFormPreviousAddedDeviceResponse.error) + return _internal_mutable_error(); +} +inline const std::string& LoginFormPreviousAddedDeviceResponse::_internal_error() const { + return error_.GetNoArena(); +} +inline void LoginFormPreviousAddedDeviceResponse::_internal_set_error(const std::string& value) { + + error_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value); +} +inline void LoginFormPreviousAddedDeviceResponse::set_error(std::string&& value) { + + error_.SetNoArena( + &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); + // @@protoc_insertion_point(field_set_rvalue:vereign.v1pb.LoginFormPreviousAddedDeviceResponse.error) +} +inline void LoginFormPreviousAddedDeviceResponse::set_error(const char* value) { + GOOGLE_DCHECK(value != nullptr); + + error_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); + // @@protoc_insertion_point(field_set_char:vereign.v1pb.LoginFormPreviousAddedDeviceResponse.error) +} +inline void LoginFormPreviousAddedDeviceResponse::set_error(const char* value, size_t size) { + + error_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + ::std::string(reinterpret_cast<const char*>(value), size)); + // @@protoc_insertion_point(field_set_pointer:vereign.v1pb.LoginFormPreviousAddedDeviceResponse.error) +} +inline std::string* LoginFormPreviousAddedDeviceResponse::_internal_mutable_error() { + + return error_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline std::string* LoginFormPreviousAddedDeviceResponse::release_error() { + // @@protoc_insertion_point(field_release:vereign.v1pb.LoginFormPreviousAddedDeviceResponse.error) + + return error_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline void LoginFormPreviousAddedDeviceResponse::set_allocated_error(std::string* error) { + if (error != nullptr) { + + } else { + + } + error_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), error); + // @@protoc_insertion_point(field_set_allocated:vereign.v1pb.LoginFormPreviousAddedDeviceResponse.error) +} + +// .vereign.v1pb.LoginFormPreviousAddedDeviceResponsePayload data = 4; +inline bool LoginFormPreviousAddedDeviceResponse::_internal_has_data() const { + return this != internal_default_instance() && data_ != nullptr; +} +inline bool LoginFormPreviousAddedDeviceResponse::has_data() const { + return _internal_has_data(); +} +inline void LoginFormPreviousAddedDeviceResponse::clear_data() { + if (GetArenaNoVirtual() == nullptr && data_ != nullptr) { + delete data_; + } + data_ = nullptr; +} +inline const ::vereign::v1pb::LoginFormPreviousAddedDeviceResponsePayload& LoginFormPreviousAddedDeviceResponse::_internal_data() const { + const ::vereign::v1pb::LoginFormPreviousAddedDeviceResponsePayload* p = data_; + return p != nullptr ? *p : *reinterpret_cast<const ::vereign::v1pb::LoginFormPreviousAddedDeviceResponsePayload*>( + &::vereign::v1pb::_LoginFormPreviousAddedDeviceResponsePayload_default_instance_); +} +inline const ::vereign::v1pb::LoginFormPreviousAddedDeviceResponsePayload& LoginFormPreviousAddedDeviceResponse::data() const { + // @@protoc_insertion_point(field_get:vereign.v1pb.LoginFormPreviousAddedDeviceResponse.data) + return _internal_data(); +} +inline ::vereign::v1pb::LoginFormPreviousAddedDeviceResponsePayload* LoginFormPreviousAddedDeviceResponse::release_data() { + // @@protoc_insertion_point(field_release:vereign.v1pb.LoginFormPreviousAddedDeviceResponse.data) + + ::vereign::v1pb::LoginFormPreviousAddedDeviceResponsePayload* temp = data_; + data_ = nullptr; + return temp; +} +inline ::vereign::v1pb::LoginFormPreviousAddedDeviceResponsePayload* LoginFormPreviousAddedDeviceResponse::_internal_mutable_data() { + + if (data_ == nullptr) { + auto* p = CreateMaybeMessage<::vereign::v1pb::LoginFormPreviousAddedDeviceResponsePayload>(GetArenaNoVirtual()); + data_ = p; + } + return data_; +} +inline ::vereign::v1pb::LoginFormPreviousAddedDeviceResponsePayload* LoginFormPreviousAddedDeviceResponse::mutable_data() { + // @@protoc_insertion_point(field_mutable:vereign.v1pb.LoginFormPreviousAddedDeviceResponse.data) + return _internal_mutable_data(); +} +inline void LoginFormPreviousAddedDeviceResponse::set_allocated_data(::vereign::v1pb::LoginFormPreviousAddedDeviceResponsePayload* data) { + ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual(); + if (message_arena == nullptr) { + delete data_; + } + if (data) { + ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr; + if (message_arena != submessage_arena) { + data = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage( + message_arena, data, submessage_arena); + } + + } else { + + } + data_ = data; + // @@protoc_insertion_point(field_set_allocated:vereign.v1pb.LoginFormPreviousAddedDeviceResponse.data) +} + +#ifdef __GNUC__ + #pragma GCC diagnostic pop +#endif // __GNUC__ +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + + +// @@protoc_insertion_point(namespace_scope) + +} // namespace v1pb +} // namespace vereign + +// @@protoc_insertion_point(global_scope) + +#include <google/protobuf/port_undef.inc> +#endif // GOOGLE_PROTOBUF_INCLUDED_GOOGLE_PROTOBUF_INCLUDED_identity_5ftypes_2eproto diff --git a/cpp/src/vereign/v1pb/passport_api.gen.grpc.pb.cc b/cpp/src/vereign/v1pb/passport_api.gen.grpc.pb.cc new file mode 100644 index 0000000000000000000000000000000000000000..b21d680a9ed2ce36e8c8a99f2b9fe02281509579 --- /dev/null +++ b/cpp/src/vereign/v1pb/passport_api.gen.grpc.pb.cc @@ -0,0 +1,130 @@ +// Generated by the gRPC C++ plugin. +// If you make any local change, they will be lost. +// source: passport_api.gen.proto + +#include "passport_api.gen.pb.h" +#include "passport_api.gen.grpc.pb.h" + +#include <functional> +#include <grpcpp/impl/codegen/async_stream.h> +#include <grpcpp/impl/codegen/async_unary_call.h> +#include <grpcpp/impl/codegen/channel_interface.h> +#include <grpcpp/impl/codegen/client_unary_call.h> +#include <grpcpp/impl/codegen/client_callback.h> +#include <grpcpp/impl/codegen/message_allocator.h> +#include <grpcpp/impl/codegen/method_handler.h> +#include <grpcpp/impl/codegen/rpc_service_method.h> +#include <grpcpp/impl/codegen/server_callback.h> +#include <grpcpp/impl/codegen/server_callback_handlers.h> +#include <grpcpp/impl/codegen/server_context.h> +#include <grpcpp/impl/codegen/service_type.h> +#include <grpcpp/impl/codegen/sync_stream.h> +namespace vereign { +namespace v1pb { + +static const char* PassportAPI_method_names[] = { + "/vereign.v1pb.PassportAPI/ListPassportsManually", + "/vereign.v1pb.PassportAPI/ListPassports", +}; + +std::unique_ptr< PassportAPI::Stub> PassportAPI::NewStub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options) { + (void)options; + std::unique_ptr< PassportAPI::Stub> stub(new PassportAPI::Stub(channel)); + return stub; +} + +PassportAPI::Stub::Stub(const std::shared_ptr< ::grpc::ChannelInterface>& channel) + : channel_(channel), rpcmethod_ListPassportsManually_(PassportAPI_method_names[0], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_ListPassports_(PassportAPI_method_names[1], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) + {} + +::grpc::Status PassportAPI::Stub::ListPassportsManually(::grpc::ClientContext* context, const ::vereign::v1pb::ListPassportsForm& request, ::vereign::v1pb::ListPassportsFormResponse* response) { + return ::grpc::internal::BlockingUnaryCall(channel_.get(), rpcmethod_ListPassportsManually_, context, request, response); +} + +void PassportAPI::Stub::experimental_async::ListPassportsManually(::grpc::ClientContext* context, const ::vereign::v1pb::ListPassportsForm* request, ::vereign::v1pb::ListPassportsFormResponse* response, std::function<void(::grpc::Status)> f) { + ::grpc_impl::internal::CallbackUnaryCall(stub_->channel_.get(), stub_->rpcmethod_ListPassportsManually_, context, request, response, std::move(f)); +} + +void PassportAPI::Stub::experimental_async::ListPassportsManually(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::vereign::v1pb::ListPassportsFormResponse* response, std::function<void(::grpc::Status)> f) { + ::grpc_impl::internal::CallbackUnaryCall(stub_->channel_.get(), stub_->rpcmethod_ListPassportsManually_, context, request, response, std::move(f)); +} + +void PassportAPI::Stub::experimental_async::ListPassportsManually(::grpc::ClientContext* context, const ::vereign::v1pb::ListPassportsForm* request, ::vereign::v1pb::ListPassportsFormResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) { + ::grpc_impl::internal::ClientCallbackUnaryFactory::Create(stub_->channel_.get(), stub_->rpcmethod_ListPassportsManually_, context, request, response, reactor); +} + +void PassportAPI::Stub::experimental_async::ListPassportsManually(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::vereign::v1pb::ListPassportsFormResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) { + ::grpc_impl::internal::ClientCallbackUnaryFactory::Create(stub_->channel_.get(), stub_->rpcmethod_ListPassportsManually_, context, request, response, reactor); +} + +::grpc::ClientAsyncResponseReader< ::vereign::v1pb::ListPassportsFormResponse>* PassportAPI::Stub::AsyncListPassportsManuallyRaw(::grpc::ClientContext* context, const ::vereign::v1pb::ListPassportsForm& request, ::grpc::CompletionQueue* cq) { + return ::grpc_impl::internal::ClientAsyncResponseReaderFactory< ::vereign::v1pb::ListPassportsFormResponse>::Create(channel_.get(), cq, rpcmethod_ListPassportsManually_, context, request, true); +} + +::grpc::ClientAsyncResponseReader< ::vereign::v1pb::ListPassportsFormResponse>* PassportAPI::Stub::PrepareAsyncListPassportsManuallyRaw(::grpc::ClientContext* context, const ::vereign::v1pb::ListPassportsForm& request, ::grpc::CompletionQueue* cq) { + return ::grpc_impl::internal::ClientAsyncResponseReaderFactory< ::vereign::v1pb::ListPassportsFormResponse>::Create(channel_.get(), cq, rpcmethod_ListPassportsManually_, context, request, false); +} + +::grpc::Status PassportAPI::Stub::ListPassports(::grpc::ClientContext* context, const ::vereign::v1pb::ListPassportsForm& request, ::vereign::v1pb::ListPassportsFormResponse* response) { + return ::grpc::internal::BlockingUnaryCall(channel_.get(), rpcmethod_ListPassports_, context, request, response); +} + +void PassportAPI::Stub::experimental_async::ListPassports(::grpc::ClientContext* context, const ::vereign::v1pb::ListPassportsForm* request, ::vereign::v1pb::ListPassportsFormResponse* response, std::function<void(::grpc::Status)> f) { + ::grpc_impl::internal::CallbackUnaryCall(stub_->channel_.get(), stub_->rpcmethod_ListPassports_, context, request, response, std::move(f)); +} + +void PassportAPI::Stub::experimental_async::ListPassports(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::vereign::v1pb::ListPassportsFormResponse* response, std::function<void(::grpc::Status)> f) { + ::grpc_impl::internal::CallbackUnaryCall(stub_->channel_.get(), stub_->rpcmethod_ListPassports_, context, request, response, std::move(f)); +} + +void PassportAPI::Stub::experimental_async::ListPassports(::grpc::ClientContext* context, const ::vereign::v1pb::ListPassportsForm* request, ::vereign::v1pb::ListPassportsFormResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) { + ::grpc_impl::internal::ClientCallbackUnaryFactory::Create(stub_->channel_.get(), stub_->rpcmethod_ListPassports_, context, request, response, reactor); +} + +void PassportAPI::Stub::experimental_async::ListPassports(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::vereign::v1pb::ListPassportsFormResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) { + ::grpc_impl::internal::ClientCallbackUnaryFactory::Create(stub_->channel_.get(), stub_->rpcmethod_ListPassports_, context, request, response, reactor); +} + +::grpc::ClientAsyncResponseReader< ::vereign::v1pb::ListPassportsFormResponse>* PassportAPI::Stub::AsyncListPassportsRaw(::grpc::ClientContext* context, const ::vereign::v1pb::ListPassportsForm& request, ::grpc::CompletionQueue* cq) { + return ::grpc_impl::internal::ClientAsyncResponseReaderFactory< ::vereign::v1pb::ListPassportsFormResponse>::Create(channel_.get(), cq, rpcmethod_ListPassports_, context, request, true); +} + +::grpc::ClientAsyncResponseReader< ::vereign::v1pb::ListPassportsFormResponse>* PassportAPI::Stub::PrepareAsyncListPassportsRaw(::grpc::ClientContext* context, const ::vereign::v1pb::ListPassportsForm& request, ::grpc::CompletionQueue* cq) { + return ::grpc_impl::internal::ClientAsyncResponseReaderFactory< ::vereign::v1pb::ListPassportsFormResponse>::Create(channel_.get(), cq, rpcmethod_ListPassports_, context, request, false); +} + +PassportAPI::Service::Service() { + AddMethod(new ::grpc::internal::RpcServiceMethod( + PassportAPI_method_names[0], + ::grpc::internal::RpcMethod::NORMAL_RPC, + new ::grpc::internal::RpcMethodHandler< PassportAPI::Service, ::vereign::v1pb::ListPassportsForm, ::vereign::v1pb::ListPassportsFormResponse>( + std::mem_fn(&PassportAPI::Service::ListPassportsManually), this))); + AddMethod(new ::grpc::internal::RpcServiceMethod( + PassportAPI_method_names[1], + ::grpc::internal::RpcMethod::NORMAL_RPC, + new ::grpc::internal::RpcMethodHandler< PassportAPI::Service, ::vereign::v1pb::ListPassportsForm, ::vereign::v1pb::ListPassportsFormResponse>( + std::mem_fn(&PassportAPI::Service::ListPassports), this))); +} + +PassportAPI::Service::~Service() { +} + +::grpc::Status PassportAPI::Service::ListPassportsManually(::grpc::ServerContext* context, const ::vereign::v1pb::ListPassportsForm* request, ::vereign::v1pb::ListPassportsFormResponse* response) { + (void) context; + (void) request; + (void) response; + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); +} + +::grpc::Status PassportAPI::Service::ListPassports(::grpc::ServerContext* context, const ::vereign::v1pb::ListPassportsForm* request, ::vereign::v1pb::ListPassportsFormResponse* response) { + (void) context; + (void) request; + (void) response; + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); +} + + +} // namespace vereign +} // namespace v1pb + diff --git a/cpp/src/vereign/v1pb/passport_api.gen.grpc.pb.h b/cpp/src/vereign/v1pb/passport_api.gen.grpc.pb.h new file mode 100644 index 0000000000000000000000000000000000000000..ed91f490424e8d9fecf08ebe484136d38f365a42 --- /dev/null +++ b/cpp/src/vereign/v1pb/passport_api.gen.grpc.pb.h @@ -0,0 +1,505 @@ +// Generated by the gRPC C++ plugin. +// If you make any local change, they will be lost. +// source: passport_api.gen.proto +#ifndef GRPC_passport_5fapi_2egen_2eproto__INCLUDED +#define GRPC_passport_5fapi_2egen_2eproto__INCLUDED + +#include "passport_api.gen.pb.h" + +#include <functional> +#include <grpc/impl/codegen/port_platform.h> +#include <grpcpp/impl/codegen/async_generic_service.h> +#include <grpcpp/impl/codegen/async_stream.h> +#include <grpcpp/impl/codegen/async_unary_call.h> +#include <grpcpp/impl/codegen/client_callback.h> +#include <grpcpp/impl/codegen/client_context.h> +#include <grpcpp/impl/codegen/completion_queue.h> +#include <grpcpp/impl/codegen/message_allocator.h> +#include <grpcpp/impl/codegen/method_handler.h> +#include <grpcpp/impl/codegen/proto_utils.h> +#include <grpcpp/impl/codegen/rpc_method.h> +#include <grpcpp/impl/codegen/server_callback.h> +#include <grpcpp/impl/codegen/server_callback_handlers.h> +#include <grpcpp/impl/codegen/server_context.h> +#include <grpcpp/impl/codegen/service_type.h> +#include <grpcpp/impl/codegen/status.h> +#include <grpcpp/impl/codegen/stub_options.h> +#include <grpcpp/impl/codegen/sync_stream.h> + +namespace vereign { +namespace v1pb { + +class PassportAPI final { + public: + static constexpr char const* service_full_name() { + return "vereign.v1pb.PassportAPI"; + } + class StubInterface { + public: + virtual ~StubInterface() {} + virtual ::grpc::Status ListPassportsManually(::grpc::ClientContext* context, const ::vereign::v1pb::ListPassportsForm& request, ::vereign::v1pb::ListPassportsFormResponse* response) = 0; + std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::vereign::v1pb::ListPassportsFormResponse>> AsyncListPassportsManually(::grpc::ClientContext* context, const ::vereign::v1pb::ListPassportsForm& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::vereign::v1pb::ListPassportsFormResponse>>(AsyncListPassportsManuallyRaw(context, request, cq)); + } + std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::vereign::v1pb::ListPassportsFormResponse>> PrepareAsyncListPassportsManually(::grpc::ClientContext* context, const ::vereign::v1pb::ListPassportsForm& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::vereign::v1pb::ListPassportsFormResponse>>(PrepareAsyncListPassportsManuallyRaw(context, request, cq)); + } + virtual ::grpc::Status ListPassports(::grpc::ClientContext* context, const ::vereign::v1pb::ListPassportsForm& request, ::vereign::v1pb::ListPassportsFormResponse* response) = 0; + std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::vereign::v1pb::ListPassportsFormResponse>> AsyncListPassports(::grpc::ClientContext* context, const ::vereign::v1pb::ListPassportsForm& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::vereign::v1pb::ListPassportsFormResponse>>(AsyncListPassportsRaw(context, request, cq)); + } + std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::vereign::v1pb::ListPassportsFormResponse>> PrepareAsyncListPassports(::grpc::ClientContext* context, const ::vereign::v1pb::ListPassportsForm& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::vereign::v1pb::ListPassportsFormResponse>>(PrepareAsyncListPassportsRaw(context, request, cq)); + } + class experimental_async_interface { + public: + virtual ~experimental_async_interface() {} + virtual void ListPassportsManually(::grpc::ClientContext* context, const ::vereign::v1pb::ListPassportsForm* request, ::vereign::v1pb::ListPassportsFormResponse* response, std::function<void(::grpc::Status)>) = 0; + virtual void ListPassportsManually(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::vereign::v1pb::ListPassportsFormResponse* response, std::function<void(::grpc::Status)>) = 0; + #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL + virtual void ListPassportsManually(::grpc::ClientContext* context, const ::vereign::v1pb::ListPassportsForm* request, ::vereign::v1pb::ListPassportsFormResponse* response, ::grpc::ClientUnaryReactor* reactor) = 0; + #else + virtual void ListPassportsManually(::grpc::ClientContext* context, const ::vereign::v1pb::ListPassportsForm* request, ::vereign::v1pb::ListPassportsFormResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; + #endif + #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL + virtual void ListPassportsManually(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::vereign::v1pb::ListPassportsFormResponse* response, ::grpc::ClientUnaryReactor* reactor) = 0; + #else + virtual void ListPassportsManually(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::vereign::v1pb::ListPassportsFormResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; + #endif + virtual void ListPassports(::grpc::ClientContext* context, const ::vereign::v1pb::ListPassportsForm* request, ::vereign::v1pb::ListPassportsFormResponse* response, std::function<void(::grpc::Status)>) = 0; + virtual void ListPassports(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::vereign::v1pb::ListPassportsFormResponse* response, std::function<void(::grpc::Status)>) = 0; + #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL + virtual void ListPassports(::grpc::ClientContext* context, const ::vereign::v1pb::ListPassportsForm* request, ::vereign::v1pb::ListPassportsFormResponse* response, ::grpc::ClientUnaryReactor* reactor) = 0; + #else + virtual void ListPassports(::grpc::ClientContext* context, const ::vereign::v1pb::ListPassportsForm* request, ::vereign::v1pb::ListPassportsFormResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; + #endif + #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL + virtual void ListPassports(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::vereign::v1pb::ListPassportsFormResponse* response, ::grpc::ClientUnaryReactor* reactor) = 0; + #else + virtual void ListPassports(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::vereign::v1pb::ListPassportsFormResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; + #endif + }; + #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL + typedef class experimental_async_interface async_interface; + #endif + #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL + async_interface* async() { return experimental_async(); } + #endif + virtual class experimental_async_interface* experimental_async() { return nullptr; } + private: + virtual ::grpc::ClientAsyncResponseReaderInterface< ::vereign::v1pb::ListPassportsFormResponse>* AsyncListPassportsManuallyRaw(::grpc::ClientContext* context, const ::vereign::v1pb::ListPassportsForm& request, ::grpc::CompletionQueue* cq) = 0; + virtual ::grpc::ClientAsyncResponseReaderInterface< ::vereign::v1pb::ListPassportsFormResponse>* PrepareAsyncListPassportsManuallyRaw(::grpc::ClientContext* context, const ::vereign::v1pb::ListPassportsForm& request, ::grpc::CompletionQueue* cq) = 0; + virtual ::grpc::ClientAsyncResponseReaderInterface< ::vereign::v1pb::ListPassportsFormResponse>* AsyncListPassportsRaw(::grpc::ClientContext* context, const ::vereign::v1pb::ListPassportsForm& request, ::grpc::CompletionQueue* cq) = 0; + virtual ::grpc::ClientAsyncResponseReaderInterface< ::vereign::v1pb::ListPassportsFormResponse>* PrepareAsyncListPassportsRaw(::grpc::ClientContext* context, const ::vereign::v1pb::ListPassportsForm& request, ::grpc::CompletionQueue* cq) = 0; + }; + class Stub final : public StubInterface { + public: + Stub(const std::shared_ptr< ::grpc::ChannelInterface>& channel); + ::grpc::Status ListPassportsManually(::grpc::ClientContext* context, const ::vereign::v1pb::ListPassportsForm& request, ::vereign::v1pb::ListPassportsFormResponse* response) override; + std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::vereign::v1pb::ListPassportsFormResponse>> AsyncListPassportsManually(::grpc::ClientContext* context, const ::vereign::v1pb::ListPassportsForm& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::vereign::v1pb::ListPassportsFormResponse>>(AsyncListPassportsManuallyRaw(context, request, cq)); + } + std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::vereign::v1pb::ListPassportsFormResponse>> PrepareAsyncListPassportsManually(::grpc::ClientContext* context, const ::vereign::v1pb::ListPassportsForm& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::vereign::v1pb::ListPassportsFormResponse>>(PrepareAsyncListPassportsManuallyRaw(context, request, cq)); + } + ::grpc::Status ListPassports(::grpc::ClientContext* context, const ::vereign::v1pb::ListPassportsForm& request, ::vereign::v1pb::ListPassportsFormResponse* response) override; + std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::vereign::v1pb::ListPassportsFormResponse>> AsyncListPassports(::grpc::ClientContext* context, const ::vereign::v1pb::ListPassportsForm& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::vereign::v1pb::ListPassportsFormResponse>>(AsyncListPassportsRaw(context, request, cq)); + } + std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::vereign::v1pb::ListPassportsFormResponse>> PrepareAsyncListPassports(::grpc::ClientContext* context, const ::vereign::v1pb::ListPassportsForm& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::vereign::v1pb::ListPassportsFormResponse>>(PrepareAsyncListPassportsRaw(context, request, cq)); + } + class experimental_async final : + public StubInterface::experimental_async_interface { + public: + void ListPassportsManually(::grpc::ClientContext* context, const ::vereign::v1pb::ListPassportsForm* request, ::vereign::v1pb::ListPassportsFormResponse* response, std::function<void(::grpc::Status)>) override; + void ListPassportsManually(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::vereign::v1pb::ListPassportsFormResponse* response, std::function<void(::grpc::Status)>) override; + #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL + void ListPassportsManually(::grpc::ClientContext* context, const ::vereign::v1pb::ListPassportsForm* request, ::vereign::v1pb::ListPassportsFormResponse* response, ::grpc::ClientUnaryReactor* reactor) override; + #else + void ListPassportsManually(::grpc::ClientContext* context, const ::vereign::v1pb::ListPassportsForm* request, ::vereign::v1pb::ListPassportsFormResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) override; + #endif + #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL + void ListPassportsManually(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::vereign::v1pb::ListPassportsFormResponse* response, ::grpc::ClientUnaryReactor* reactor) override; + #else + void ListPassportsManually(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::vereign::v1pb::ListPassportsFormResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) override; + #endif + void ListPassports(::grpc::ClientContext* context, const ::vereign::v1pb::ListPassportsForm* request, ::vereign::v1pb::ListPassportsFormResponse* response, std::function<void(::grpc::Status)>) override; + void ListPassports(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::vereign::v1pb::ListPassportsFormResponse* response, std::function<void(::grpc::Status)>) override; + #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL + void ListPassports(::grpc::ClientContext* context, const ::vereign::v1pb::ListPassportsForm* request, ::vereign::v1pb::ListPassportsFormResponse* response, ::grpc::ClientUnaryReactor* reactor) override; + #else + void ListPassports(::grpc::ClientContext* context, const ::vereign::v1pb::ListPassportsForm* request, ::vereign::v1pb::ListPassportsFormResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) override; + #endif + #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL + void ListPassports(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::vereign::v1pb::ListPassportsFormResponse* response, ::grpc::ClientUnaryReactor* reactor) override; + #else + void ListPassports(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::vereign::v1pb::ListPassportsFormResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) override; + #endif + private: + friend class Stub; + explicit experimental_async(Stub* stub): stub_(stub) { } + Stub* stub() { return stub_; } + Stub* stub_; + }; + class experimental_async_interface* experimental_async() override { return &async_stub_; } + + private: + std::shared_ptr< ::grpc::ChannelInterface> channel_; + class experimental_async async_stub_{this}; + ::grpc::ClientAsyncResponseReader< ::vereign::v1pb::ListPassportsFormResponse>* AsyncListPassportsManuallyRaw(::grpc::ClientContext* context, const ::vereign::v1pb::ListPassportsForm& request, ::grpc::CompletionQueue* cq) override; + ::grpc::ClientAsyncResponseReader< ::vereign::v1pb::ListPassportsFormResponse>* PrepareAsyncListPassportsManuallyRaw(::grpc::ClientContext* context, const ::vereign::v1pb::ListPassportsForm& request, ::grpc::CompletionQueue* cq) override; + ::grpc::ClientAsyncResponseReader< ::vereign::v1pb::ListPassportsFormResponse>* AsyncListPassportsRaw(::grpc::ClientContext* context, const ::vereign::v1pb::ListPassportsForm& request, ::grpc::CompletionQueue* cq) override; + ::grpc::ClientAsyncResponseReader< ::vereign::v1pb::ListPassportsFormResponse>* PrepareAsyncListPassportsRaw(::grpc::ClientContext* context, const ::vereign::v1pb::ListPassportsForm& request, ::grpc::CompletionQueue* cq) override; + const ::grpc::internal::RpcMethod rpcmethod_ListPassportsManually_; + const ::grpc::internal::RpcMethod rpcmethod_ListPassports_; + }; + static std::unique_ptr<Stub> NewStub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options = ::grpc::StubOptions()); + + class Service : public ::grpc::Service { + public: + Service(); + virtual ~Service(); + virtual ::grpc::Status ListPassportsManually(::grpc::ServerContext* context, const ::vereign::v1pb::ListPassportsForm* request, ::vereign::v1pb::ListPassportsFormResponse* response); + virtual ::grpc::Status ListPassports(::grpc::ServerContext* context, const ::vereign::v1pb::ListPassportsForm* request, ::vereign::v1pb::ListPassportsFormResponse* response); + }; + template <class BaseClass> + class WithAsyncMethod_ListPassportsManually : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithAsyncMethod_ListPassportsManually() { + ::grpc::Service::MarkMethodAsync(0); + } + ~WithAsyncMethod_ListPassportsManually() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status ListPassportsManually(::grpc::ServerContext* /*context*/, const ::vereign::v1pb::ListPassportsForm* /*request*/, ::vereign::v1pb::ListPassportsFormResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + void RequestListPassportsManually(::grpc::ServerContext* context, ::vereign::v1pb::ListPassportsForm* request, ::grpc::ServerAsyncResponseWriter< ::vereign::v1pb::ListPassportsFormResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { + ::grpc::Service::RequestAsyncUnary(0, context, request, response, new_call_cq, notification_cq, tag); + } + }; + template <class BaseClass> + class WithAsyncMethod_ListPassports : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithAsyncMethod_ListPassports() { + ::grpc::Service::MarkMethodAsync(1); + } + ~WithAsyncMethod_ListPassports() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status ListPassports(::grpc::ServerContext* /*context*/, const ::vereign::v1pb::ListPassportsForm* /*request*/, ::vereign::v1pb::ListPassportsFormResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + void RequestListPassports(::grpc::ServerContext* context, ::vereign::v1pb::ListPassportsForm* request, ::grpc::ServerAsyncResponseWriter< ::vereign::v1pb::ListPassportsFormResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { + ::grpc::Service::RequestAsyncUnary(1, context, request, response, new_call_cq, notification_cq, tag); + } + }; + typedef WithAsyncMethod_ListPassportsManually<WithAsyncMethod_ListPassports<Service > > AsyncService; + template <class BaseClass> + class ExperimentalWithCallbackMethod_ListPassportsManually : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + ExperimentalWithCallbackMethod_ListPassportsManually() { + #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL + ::grpc::Service:: + #else + ::grpc::Service::experimental(). + #endif + MarkMethodCallback(0, + new ::grpc_impl::internal::CallbackUnaryHandler< ::vereign::v1pb::ListPassportsForm, ::vereign::v1pb::ListPassportsFormResponse>( + [this]( + #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL + ::grpc::CallbackServerContext* + #else + ::grpc::experimental::CallbackServerContext* + #endif + context, const ::vereign::v1pb::ListPassportsForm* request, ::vereign::v1pb::ListPassportsFormResponse* response) { return this->ListPassportsManually(context, request, response); }));} + void SetMessageAllocatorFor_ListPassportsManually( + ::grpc::experimental::MessageAllocator< ::vereign::v1pb::ListPassportsForm, ::vereign::v1pb::ListPassportsFormResponse>* allocator) { + #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL + ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(0); + #else + ::grpc::internal::MethodHandler* const handler = ::grpc::Service::experimental().GetHandler(0); + #endif + static_cast<::grpc_impl::internal::CallbackUnaryHandler< ::vereign::v1pb::ListPassportsForm, ::vereign::v1pb::ListPassportsFormResponse>*>(handler) + ->SetMessageAllocator(allocator); + } + ~ExperimentalWithCallbackMethod_ListPassportsManually() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status ListPassportsManually(::grpc::ServerContext* /*context*/, const ::vereign::v1pb::ListPassportsForm* /*request*/, ::vereign::v1pb::ListPassportsFormResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL + virtual ::grpc::ServerUnaryReactor* ListPassportsManually( + ::grpc::CallbackServerContext* /*context*/, const ::vereign::v1pb::ListPassportsForm* /*request*/, ::vereign::v1pb::ListPassportsFormResponse* /*response*/) + #else + virtual ::grpc::experimental::ServerUnaryReactor* ListPassportsManually( + ::grpc::experimental::CallbackServerContext* /*context*/, const ::vereign::v1pb::ListPassportsForm* /*request*/, ::vereign::v1pb::ListPassportsFormResponse* /*response*/) + #endif + { return nullptr; } + }; + template <class BaseClass> + class ExperimentalWithCallbackMethod_ListPassports : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + ExperimentalWithCallbackMethod_ListPassports() { + #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL + ::grpc::Service:: + #else + ::grpc::Service::experimental(). + #endif + MarkMethodCallback(1, + new ::grpc_impl::internal::CallbackUnaryHandler< ::vereign::v1pb::ListPassportsForm, ::vereign::v1pb::ListPassportsFormResponse>( + [this]( + #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL + ::grpc::CallbackServerContext* + #else + ::grpc::experimental::CallbackServerContext* + #endif + context, const ::vereign::v1pb::ListPassportsForm* request, ::vereign::v1pb::ListPassportsFormResponse* response) { return this->ListPassports(context, request, response); }));} + void SetMessageAllocatorFor_ListPassports( + ::grpc::experimental::MessageAllocator< ::vereign::v1pb::ListPassportsForm, ::vereign::v1pb::ListPassportsFormResponse>* allocator) { + #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL + ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(1); + #else + ::grpc::internal::MethodHandler* const handler = ::grpc::Service::experimental().GetHandler(1); + #endif + static_cast<::grpc_impl::internal::CallbackUnaryHandler< ::vereign::v1pb::ListPassportsForm, ::vereign::v1pb::ListPassportsFormResponse>*>(handler) + ->SetMessageAllocator(allocator); + } + ~ExperimentalWithCallbackMethod_ListPassports() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status ListPassports(::grpc::ServerContext* /*context*/, const ::vereign::v1pb::ListPassportsForm* /*request*/, ::vereign::v1pb::ListPassportsFormResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL + virtual ::grpc::ServerUnaryReactor* ListPassports( + ::grpc::CallbackServerContext* /*context*/, const ::vereign::v1pb::ListPassportsForm* /*request*/, ::vereign::v1pb::ListPassportsFormResponse* /*response*/) + #else + virtual ::grpc::experimental::ServerUnaryReactor* ListPassports( + ::grpc::experimental::CallbackServerContext* /*context*/, const ::vereign::v1pb::ListPassportsForm* /*request*/, ::vereign::v1pb::ListPassportsFormResponse* /*response*/) + #endif + { return nullptr; } + }; + #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL + typedef ExperimentalWithCallbackMethod_ListPassportsManually<ExperimentalWithCallbackMethod_ListPassports<Service > > CallbackService; + #endif + + typedef ExperimentalWithCallbackMethod_ListPassportsManually<ExperimentalWithCallbackMethod_ListPassports<Service > > ExperimentalCallbackService; + template <class BaseClass> + class WithGenericMethod_ListPassportsManually : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithGenericMethod_ListPassportsManually() { + ::grpc::Service::MarkMethodGeneric(0); + } + ~WithGenericMethod_ListPassportsManually() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status ListPassportsManually(::grpc::ServerContext* /*context*/, const ::vereign::v1pb::ListPassportsForm* /*request*/, ::vereign::v1pb::ListPassportsFormResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + }; + template <class BaseClass> + class WithGenericMethod_ListPassports : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithGenericMethod_ListPassports() { + ::grpc::Service::MarkMethodGeneric(1); + } + ~WithGenericMethod_ListPassports() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status ListPassports(::grpc::ServerContext* /*context*/, const ::vereign::v1pb::ListPassportsForm* /*request*/, ::vereign::v1pb::ListPassportsFormResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + }; + template <class BaseClass> + class WithRawMethod_ListPassportsManually : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithRawMethod_ListPassportsManually() { + ::grpc::Service::MarkMethodRaw(0); + } + ~WithRawMethod_ListPassportsManually() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status ListPassportsManually(::grpc::ServerContext* /*context*/, const ::vereign::v1pb::ListPassportsForm* /*request*/, ::vereign::v1pb::ListPassportsFormResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + void RequestListPassportsManually(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { + ::grpc::Service::RequestAsyncUnary(0, context, request, response, new_call_cq, notification_cq, tag); + } + }; + template <class BaseClass> + class WithRawMethod_ListPassports : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithRawMethod_ListPassports() { + ::grpc::Service::MarkMethodRaw(1); + } + ~WithRawMethod_ListPassports() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status ListPassports(::grpc::ServerContext* /*context*/, const ::vereign::v1pb::ListPassportsForm* /*request*/, ::vereign::v1pb::ListPassportsFormResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + void RequestListPassports(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { + ::grpc::Service::RequestAsyncUnary(1, context, request, response, new_call_cq, notification_cq, tag); + } + }; + template <class BaseClass> + class ExperimentalWithRawCallbackMethod_ListPassportsManually : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + ExperimentalWithRawCallbackMethod_ListPassportsManually() { + #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL + ::grpc::Service:: + #else + ::grpc::Service::experimental(). + #endif + MarkMethodRawCallback(0, + new ::grpc_impl::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( + [this]( + #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL + ::grpc::CallbackServerContext* + #else + ::grpc::experimental::CallbackServerContext* + #endif + context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->ListPassportsManually(context, request, response); })); + } + ~ExperimentalWithRawCallbackMethod_ListPassportsManually() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status ListPassportsManually(::grpc::ServerContext* /*context*/, const ::vereign::v1pb::ListPassportsForm* /*request*/, ::vereign::v1pb::ListPassportsFormResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL + virtual ::grpc::ServerUnaryReactor* ListPassportsManually( + ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/) + #else + virtual ::grpc::experimental::ServerUnaryReactor* ListPassportsManually( + ::grpc::experimental::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/) + #endif + { return nullptr; } + }; + template <class BaseClass> + class ExperimentalWithRawCallbackMethod_ListPassports : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + ExperimentalWithRawCallbackMethod_ListPassports() { + #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL + ::grpc::Service:: + #else + ::grpc::Service::experimental(). + #endif + MarkMethodRawCallback(1, + new ::grpc_impl::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( + [this]( + #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL + ::grpc::CallbackServerContext* + #else + ::grpc::experimental::CallbackServerContext* + #endif + context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->ListPassports(context, request, response); })); + } + ~ExperimentalWithRawCallbackMethod_ListPassports() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status ListPassports(::grpc::ServerContext* /*context*/, const ::vereign::v1pb::ListPassportsForm* /*request*/, ::vereign::v1pb::ListPassportsFormResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL + virtual ::grpc::ServerUnaryReactor* ListPassports( + ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/) + #else + virtual ::grpc::experimental::ServerUnaryReactor* ListPassports( + ::grpc::experimental::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/) + #endif + { return nullptr; } + }; + template <class BaseClass> + class WithStreamedUnaryMethod_ListPassportsManually : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithStreamedUnaryMethod_ListPassportsManually() { + ::grpc::Service::MarkMethodStreamed(0, + new ::grpc::internal::StreamedUnaryHandler< ::vereign::v1pb::ListPassportsForm, ::vereign::v1pb::ListPassportsFormResponse>(std::bind(&WithStreamedUnaryMethod_ListPassportsManually<BaseClass>::StreamedListPassportsManually, this, std::placeholders::_1, std::placeholders::_2))); + } + ~WithStreamedUnaryMethod_ListPassportsManually() override { + BaseClassMustBeDerivedFromService(this); + } + // disable regular version of this method + ::grpc::Status ListPassportsManually(::grpc::ServerContext* /*context*/, const ::vereign::v1pb::ListPassportsForm* /*request*/, ::vereign::v1pb::ListPassportsFormResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + // replace default version of method with streamed unary + virtual ::grpc::Status StreamedListPassportsManually(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::vereign::v1pb::ListPassportsForm,::vereign::v1pb::ListPassportsFormResponse>* server_unary_streamer) = 0; + }; + template <class BaseClass> + class WithStreamedUnaryMethod_ListPassports : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithStreamedUnaryMethod_ListPassports() { + ::grpc::Service::MarkMethodStreamed(1, + new ::grpc::internal::StreamedUnaryHandler< ::vereign::v1pb::ListPassportsForm, ::vereign::v1pb::ListPassportsFormResponse>(std::bind(&WithStreamedUnaryMethod_ListPassports<BaseClass>::StreamedListPassports, this, std::placeholders::_1, std::placeholders::_2))); + } + ~WithStreamedUnaryMethod_ListPassports() override { + BaseClassMustBeDerivedFromService(this); + } + // disable regular version of this method + ::grpc::Status ListPassports(::grpc::ServerContext* /*context*/, const ::vereign::v1pb::ListPassportsForm* /*request*/, ::vereign::v1pb::ListPassportsFormResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + // replace default version of method with streamed unary + virtual ::grpc::Status StreamedListPassports(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::vereign::v1pb::ListPassportsForm,::vereign::v1pb::ListPassportsFormResponse>* server_unary_streamer) = 0; + }; + typedef WithStreamedUnaryMethod_ListPassportsManually<WithStreamedUnaryMethod_ListPassports<Service > > StreamedUnaryService; + typedef Service SplitStreamedService; + typedef WithStreamedUnaryMethod_ListPassportsManually<WithStreamedUnaryMethod_ListPassports<Service > > StreamedService; +}; + +} // namespace v1pb +} // namespace vereign + + +#endif // GRPC_passport_5fapi_2egen_2eproto__INCLUDED diff --git a/cpp/src/vereign/v1pb/passport_api.gen.pb.cc b/cpp/src/vereign/v1pb/passport_api.gen.pb.cc new file mode 100644 index 0000000000000000000000000000000000000000..082332ffb3981cf004bb60d9144fc91943a58f6a --- /dev/null +++ b/cpp/src/vereign/v1pb/passport_api.gen.pb.cc @@ -0,0 +1,63 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: passport_api.gen.proto + +#include "passport_api.gen.pb.h" + +#include <algorithm> + +#include <google/protobuf/io/coded_stream.h> +#include <google/protobuf/extension_set.h> +#include <google/protobuf/wire_format_lite.h> +#include <google/protobuf/descriptor.h> +#include <google/protobuf/generated_message_reflection.h> +#include <google/protobuf/reflection_ops.h> +#include <google/protobuf/wire_format.h> +// @@protoc_insertion_point(includes) +#include <google/protobuf/port_def.inc> +namespace vereign { +namespace v1pb { +} // namespace v1pb +} // namespace vereign +static constexpr ::PROTOBUF_NAMESPACE_ID::Metadata* file_level_metadata_passport_5fapi_2egen_2eproto = nullptr; +static constexpr ::PROTOBUF_NAMESPACE_ID::EnumDescriptor const** file_level_enum_descriptors_passport_5fapi_2egen_2eproto = nullptr; +static constexpr ::PROTOBUF_NAMESPACE_ID::ServiceDescriptor const** file_level_service_descriptors_passport_5fapi_2egen_2eproto = nullptr; +const ::PROTOBUF_NAMESPACE_ID::uint32 TableStruct_passport_5fapi_2egen_2eproto::offsets[1] = {}; +static constexpr ::PROTOBUF_NAMESPACE_ID::internal::MigrationSchema* schemas = nullptr; +static constexpr ::PROTOBUF_NAMESPACE_ID::Message* const* file_default_instances = nullptr; + +const char descriptor_table_protodef_passport_5fapi_2egen_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = + "\n\026passport_api.gen.proto\022\014vereign.v1pb\032\030" + "passport_types.gen.proto2\313\001\n\013PassportAPI" + "\022a\n\025ListPassportsManually\022\037.vereign.v1pb" + ".ListPassportsForm\032\'.vereign.v1pb.ListPa" + "ssportsFormResponse\022Y\n\rListPassports\022\037.v" + "ereign.v1pb.ListPassportsForm\032\'.vereign." + "v1pb.ListPassportsFormResponseb\006proto3" + ; +static const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable*const descriptor_table_passport_5fapi_2egen_2eproto_deps[1] = { + &::descriptor_table_passport_5ftypes_2egen_2eproto, +}; +static ::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase*const descriptor_table_passport_5fapi_2egen_2eproto_sccs[1] = { +}; +static ::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_passport_5fapi_2egen_2eproto_once; +static bool descriptor_table_passport_5fapi_2egen_2eproto_initialized = false; +const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_passport_5fapi_2egen_2eproto = { + &descriptor_table_passport_5fapi_2egen_2eproto_initialized, descriptor_table_protodef_passport_5fapi_2egen_2eproto, "passport_api.gen.proto", 278, + &descriptor_table_passport_5fapi_2egen_2eproto_once, descriptor_table_passport_5fapi_2egen_2eproto_sccs, descriptor_table_passport_5fapi_2egen_2eproto_deps, 0, 1, + schemas, file_default_instances, TableStruct_passport_5fapi_2egen_2eproto::offsets, + file_level_metadata_passport_5fapi_2egen_2eproto, 0, file_level_enum_descriptors_passport_5fapi_2egen_2eproto, file_level_service_descriptors_passport_5fapi_2egen_2eproto, +}; + +// Force running AddDescriptors() at dynamic initialization time. +static bool dynamic_init_dummy_passport_5fapi_2egen_2eproto = ( ::PROTOBUF_NAMESPACE_ID::internal::AddDescriptors(&descriptor_table_passport_5fapi_2egen_2eproto), true); +namespace vereign { +namespace v1pb { + +// @@protoc_insertion_point(namespace_scope) +} // namespace v1pb +} // namespace vereign +PROTOBUF_NAMESPACE_OPEN +PROTOBUF_NAMESPACE_CLOSE + +// @@protoc_insertion_point(global_scope) +#include <google/protobuf/port_undef.inc> diff --git a/cpp/src/vereign/v1pb/passport_api.gen.pb.h b/cpp/src/vereign/v1pb/passport_api.gen.pb.h new file mode 100644 index 0000000000000000000000000000000000000000..61d6bad35af9068842022420856bc45030e4546f --- /dev/null +++ b/cpp/src/vereign/v1pb/passport_api.gen.pb.h @@ -0,0 +1,85 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: passport_api.gen.proto + +#ifndef GOOGLE_PROTOBUF_INCLUDED_passport_5fapi_2egen_2eproto +#define GOOGLE_PROTOBUF_INCLUDED_passport_5fapi_2egen_2eproto + +#include <limits> +#include <string> + +#include <google/protobuf/port_def.inc> +#if PROTOBUF_VERSION < 3011000 +#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 3011002 < 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/port_undef.inc> +#include <google/protobuf/io/coded_stream.h> +#include <google/protobuf/arena.h> +#include <google/protobuf/arenastring.h> +#include <google/protobuf/generated_message_table_driven.h> +#include <google/protobuf/generated_message_util.h> +#include <google/protobuf/inlined_string_field.h> +#include <google/protobuf/metadata.h> +#include <google/protobuf/generated_message_reflection.h> +#include <google/protobuf/repeated_field.h> // IWYU pragma: export +#include <google/protobuf/extension_set.h> // IWYU pragma: export +#include "passport_types.gen.pb.h" +// @@protoc_insertion_point(includes) +#include <google/protobuf/port_def.inc> +#define PROTOBUF_INTERNAL_EXPORT_passport_5fapi_2egen_2eproto +PROTOBUF_NAMESPACE_OPEN +namespace internal { +class AnyMetadata; +} // namespace internal +PROTOBUF_NAMESPACE_CLOSE + +// Internal implementation detail -- do not use these members. +struct TableStruct_passport_5fapi_2egen_2eproto { + static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTableField entries[] + PROTOBUF_SECTION_VARIABLE(protodesc_cold); + static const ::PROTOBUF_NAMESPACE_ID::internal::AuxillaryParseTableField aux[] + PROTOBUF_SECTION_VARIABLE(protodesc_cold); + static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTable schema[1] + PROTOBUF_SECTION_VARIABLE(protodesc_cold); + static const ::PROTOBUF_NAMESPACE_ID::internal::FieldMetadata field_metadata[]; + static const ::PROTOBUF_NAMESPACE_ID::internal::SerializationTable serialization_table[]; + static const ::PROTOBUF_NAMESPACE_ID::uint32 offsets[]; +}; +extern const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_passport_5fapi_2egen_2eproto; +PROTOBUF_NAMESPACE_OPEN +PROTOBUF_NAMESPACE_CLOSE +namespace vereign { +namespace v1pb { + +// =================================================================== + + +// =================================================================== + + +// =================================================================== + +#ifdef __GNUC__ + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wstrict-aliasing" +#endif // __GNUC__ +#ifdef __GNUC__ + #pragma GCC diagnostic pop +#endif // __GNUC__ + +// @@protoc_insertion_point(namespace_scope) + +} // namespace v1pb +} // namespace vereign + +// @@protoc_insertion_point(global_scope) + +#include <google/protobuf/port_undef.inc> +#endif // GOOGLE_PROTOBUF_INCLUDED_GOOGLE_PROTOBUF_INCLUDED_passport_5fapi_2egen_2eproto diff --git a/cpp/src/vereign/v1pb/passport_api.grpc.pb.cc b/cpp/src/vereign/v1pb/passport_api.grpc.pb.cc new file mode 100644 index 0000000000000000000000000000000000000000..c4b4dc72552ab8e5db051bd5b723ca6273d62f72 --- /dev/null +++ b/cpp/src/vereign/v1pb/passport_api.grpc.pb.cc @@ -0,0 +1,88 @@ +// Generated by the gRPC C++ plugin. +// If you make any local change, they will be lost. +// source: passport_api.proto + +#include "passport_api.pb.h" +#include "passport_api.grpc.pb.h" + +#include <functional> +#include <grpcpp/impl/codegen/async_stream.h> +#include <grpcpp/impl/codegen/async_unary_call.h> +#include <grpcpp/impl/codegen/channel_interface.h> +#include <grpcpp/impl/codegen/client_unary_call.h> +#include <grpcpp/impl/codegen/client_callback.h> +#include <grpcpp/impl/codegen/message_allocator.h> +#include <grpcpp/impl/codegen/method_handler.h> +#include <grpcpp/impl/codegen/rpc_service_method.h> +#include <grpcpp/impl/codegen/server_callback.h> +#include <grpcpp/impl/codegen/server_callback_handlers.h> +#include <grpcpp/impl/codegen/server_context.h> +#include <grpcpp/impl/codegen/service_type.h> +#include <grpcpp/impl/codegen/sync_stream.h> +namespace vereign { +namespace v1pb { + +static const char* PassportAPI_method_names[] = { + "/vereign.v1pb.PassportAPI/ListPassportsManualy", +}; + +std::unique_ptr< PassportAPI::Stub> PassportAPI::NewStub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options) { + (void)options; + std::unique_ptr< PassportAPI::Stub> stub(new PassportAPI::Stub(channel)); + return stub; +} + +PassportAPI::Stub::Stub(const std::shared_ptr< ::grpc::ChannelInterface>& channel) + : channel_(channel), rpcmethod_ListPassportsManualy_(PassportAPI_method_names[0], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) + {} + +::grpc::Status PassportAPI::Stub::ListPassportsManualy(::grpc::ClientContext* context, const ::vereign::v1pb::ListPassportsForm& request, ::vereign::v1pb::ListPassportsFormResponse* response) { + return ::grpc::internal::BlockingUnaryCall(channel_.get(), rpcmethod_ListPassportsManualy_, context, request, response); +} + +void PassportAPI::Stub::experimental_async::ListPassportsManualy(::grpc::ClientContext* context, const ::vereign::v1pb::ListPassportsForm* request, ::vereign::v1pb::ListPassportsFormResponse* response, std::function<void(::grpc::Status)> f) { + ::grpc_impl::internal::CallbackUnaryCall(stub_->channel_.get(), stub_->rpcmethod_ListPassportsManualy_, context, request, response, std::move(f)); +} + +void PassportAPI::Stub::experimental_async::ListPassportsManualy(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::vereign::v1pb::ListPassportsFormResponse* response, std::function<void(::grpc::Status)> f) { + ::grpc_impl::internal::CallbackUnaryCall(stub_->channel_.get(), stub_->rpcmethod_ListPassportsManualy_, context, request, response, std::move(f)); +} + +void PassportAPI::Stub::experimental_async::ListPassportsManualy(::grpc::ClientContext* context, const ::vereign::v1pb::ListPassportsForm* request, ::vereign::v1pb::ListPassportsFormResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) { + ::grpc_impl::internal::ClientCallbackUnaryFactory::Create(stub_->channel_.get(), stub_->rpcmethod_ListPassportsManualy_, context, request, response, reactor); +} + +void PassportAPI::Stub::experimental_async::ListPassportsManualy(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::vereign::v1pb::ListPassportsFormResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) { + ::grpc_impl::internal::ClientCallbackUnaryFactory::Create(stub_->channel_.get(), stub_->rpcmethod_ListPassportsManualy_, context, request, response, reactor); +} + +::grpc::ClientAsyncResponseReader< ::vereign::v1pb::ListPassportsFormResponse>* PassportAPI::Stub::AsyncListPassportsManualyRaw(::grpc::ClientContext* context, const ::vereign::v1pb::ListPassportsForm& request, ::grpc::CompletionQueue* cq) { + return ::grpc_impl::internal::ClientAsyncResponseReaderFactory< ::vereign::v1pb::ListPassportsFormResponse>::Create(channel_.get(), cq, rpcmethod_ListPassportsManualy_, context, request, true); +} + +::grpc::ClientAsyncResponseReader< ::vereign::v1pb::ListPassportsFormResponse>* PassportAPI::Stub::PrepareAsyncListPassportsManualyRaw(::grpc::ClientContext* context, const ::vereign::v1pb::ListPassportsForm& request, ::grpc::CompletionQueue* cq) { + return ::grpc_impl::internal::ClientAsyncResponseReaderFactory< ::vereign::v1pb::ListPassportsFormResponse>::Create(channel_.get(), cq, rpcmethod_ListPassportsManualy_, context, request, false); +} + +PassportAPI::Service::Service() { + AddMethod(new ::grpc::internal::RpcServiceMethod( + PassportAPI_method_names[0], + ::grpc::internal::RpcMethod::NORMAL_RPC, + new ::grpc::internal::RpcMethodHandler< PassportAPI::Service, ::vereign::v1pb::ListPassportsForm, ::vereign::v1pb::ListPassportsFormResponse>( + std::mem_fn(&PassportAPI::Service::ListPassportsManualy), this))); +} + +PassportAPI::Service::~Service() { +} + +::grpc::Status PassportAPI::Service::ListPassportsManualy(::grpc::ServerContext* context, const ::vereign::v1pb::ListPassportsForm* request, ::vereign::v1pb::ListPassportsFormResponse* response) { + (void) context; + (void) request; + (void) response; + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); +} + + +} // namespace vereign +} // namespace v1pb + diff --git a/cpp/src/vereign/v1pb/passport_api.grpc.pb.h b/cpp/src/vereign/v1pb/passport_api.grpc.pb.h new file mode 100644 index 0000000000000000000000000000000000000000..4de8ee6ac9f87491175f0bdeb56005d05f6f8b32 --- /dev/null +++ b/cpp/src/vereign/v1pb/passport_api.grpc.pb.h @@ -0,0 +1,299 @@ +// Generated by the gRPC C++ plugin. +// If you make any local change, they will be lost. +// source: passport_api.proto +#ifndef GRPC_passport_5fapi_2eproto__INCLUDED +#define GRPC_passport_5fapi_2eproto__INCLUDED + +#include "passport_api.pb.h" + +#include <functional> +#include <grpc/impl/codegen/port_platform.h> +#include <grpcpp/impl/codegen/async_generic_service.h> +#include <grpcpp/impl/codegen/async_stream.h> +#include <grpcpp/impl/codegen/async_unary_call.h> +#include <grpcpp/impl/codegen/client_callback.h> +#include <grpcpp/impl/codegen/client_context.h> +#include <grpcpp/impl/codegen/completion_queue.h> +#include <grpcpp/impl/codegen/message_allocator.h> +#include <grpcpp/impl/codegen/method_handler.h> +#include <grpcpp/impl/codegen/proto_utils.h> +#include <grpcpp/impl/codegen/rpc_method.h> +#include <grpcpp/impl/codegen/server_callback.h> +#include <grpcpp/impl/codegen/server_callback_handlers.h> +#include <grpcpp/impl/codegen/server_context.h> +#include <grpcpp/impl/codegen/service_type.h> +#include <grpcpp/impl/codegen/status.h> +#include <grpcpp/impl/codegen/stub_options.h> +#include <grpcpp/impl/codegen/sync_stream.h> + +namespace vereign { +namespace v1pb { + +class PassportAPI final { + public: + static constexpr char const* service_full_name() { + return "vereign.v1pb.PassportAPI"; + } + class StubInterface { + public: + virtual ~StubInterface() {} + virtual ::grpc::Status ListPassportsManualy(::grpc::ClientContext* context, const ::vereign::v1pb::ListPassportsForm& request, ::vereign::v1pb::ListPassportsFormResponse* response) = 0; + std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::vereign::v1pb::ListPassportsFormResponse>> AsyncListPassportsManualy(::grpc::ClientContext* context, const ::vereign::v1pb::ListPassportsForm& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::vereign::v1pb::ListPassportsFormResponse>>(AsyncListPassportsManualyRaw(context, request, cq)); + } + std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::vereign::v1pb::ListPassportsFormResponse>> PrepareAsyncListPassportsManualy(::grpc::ClientContext* context, const ::vereign::v1pb::ListPassportsForm& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::vereign::v1pb::ListPassportsFormResponse>>(PrepareAsyncListPassportsManualyRaw(context, request, cq)); + } + class experimental_async_interface { + public: + virtual ~experimental_async_interface() {} + virtual void ListPassportsManualy(::grpc::ClientContext* context, const ::vereign::v1pb::ListPassportsForm* request, ::vereign::v1pb::ListPassportsFormResponse* response, std::function<void(::grpc::Status)>) = 0; + virtual void ListPassportsManualy(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::vereign::v1pb::ListPassportsFormResponse* response, std::function<void(::grpc::Status)>) = 0; + #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL + virtual void ListPassportsManualy(::grpc::ClientContext* context, const ::vereign::v1pb::ListPassportsForm* request, ::vereign::v1pb::ListPassportsFormResponse* response, ::grpc::ClientUnaryReactor* reactor) = 0; + #else + virtual void ListPassportsManualy(::grpc::ClientContext* context, const ::vereign::v1pb::ListPassportsForm* request, ::vereign::v1pb::ListPassportsFormResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; + #endif + #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL + virtual void ListPassportsManualy(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::vereign::v1pb::ListPassportsFormResponse* response, ::grpc::ClientUnaryReactor* reactor) = 0; + #else + virtual void ListPassportsManualy(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::vereign::v1pb::ListPassportsFormResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; + #endif + }; + #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL + typedef class experimental_async_interface async_interface; + #endif + #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL + async_interface* async() { return experimental_async(); } + #endif + virtual class experimental_async_interface* experimental_async() { return nullptr; } + private: + virtual ::grpc::ClientAsyncResponseReaderInterface< ::vereign::v1pb::ListPassportsFormResponse>* AsyncListPassportsManualyRaw(::grpc::ClientContext* context, const ::vereign::v1pb::ListPassportsForm& request, ::grpc::CompletionQueue* cq) = 0; + virtual ::grpc::ClientAsyncResponseReaderInterface< ::vereign::v1pb::ListPassportsFormResponse>* PrepareAsyncListPassportsManualyRaw(::grpc::ClientContext* context, const ::vereign::v1pb::ListPassportsForm& request, ::grpc::CompletionQueue* cq) = 0; + }; + class Stub final : public StubInterface { + public: + Stub(const std::shared_ptr< ::grpc::ChannelInterface>& channel); + ::grpc::Status ListPassportsManualy(::grpc::ClientContext* context, const ::vereign::v1pb::ListPassportsForm& request, ::vereign::v1pb::ListPassportsFormResponse* response) override; + std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::vereign::v1pb::ListPassportsFormResponse>> AsyncListPassportsManualy(::grpc::ClientContext* context, const ::vereign::v1pb::ListPassportsForm& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::vereign::v1pb::ListPassportsFormResponse>>(AsyncListPassportsManualyRaw(context, request, cq)); + } + std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::vereign::v1pb::ListPassportsFormResponse>> PrepareAsyncListPassportsManualy(::grpc::ClientContext* context, const ::vereign::v1pb::ListPassportsForm& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::vereign::v1pb::ListPassportsFormResponse>>(PrepareAsyncListPassportsManualyRaw(context, request, cq)); + } + class experimental_async final : + public StubInterface::experimental_async_interface { + public: + void ListPassportsManualy(::grpc::ClientContext* context, const ::vereign::v1pb::ListPassportsForm* request, ::vereign::v1pb::ListPassportsFormResponse* response, std::function<void(::grpc::Status)>) override; + void ListPassportsManualy(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::vereign::v1pb::ListPassportsFormResponse* response, std::function<void(::grpc::Status)>) override; + #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL + void ListPassportsManualy(::grpc::ClientContext* context, const ::vereign::v1pb::ListPassportsForm* request, ::vereign::v1pb::ListPassportsFormResponse* response, ::grpc::ClientUnaryReactor* reactor) override; + #else + void ListPassportsManualy(::grpc::ClientContext* context, const ::vereign::v1pb::ListPassportsForm* request, ::vereign::v1pb::ListPassportsFormResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) override; + #endif + #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL + void ListPassportsManualy(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::vereign::v1pb::ListPassportsFormResponse* response, ::grpc::ClientUnaryReactor* reactor) override; + #else + void ListPassportsManualy(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::vereign::v1pb::ListPassportsFormResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) override; + #endif + private: + friend class Stub; + explicit experimental_async(Stub* stub): stub_(stub) { } + Stub* stub() { return stub_; } + Stub* stub_; + }; + class experimental_async_interface* experimental_async() override { return &async_stub_; } + + private: + std::shared_ptr< ::grpc::ChannelInterface> channel_; + class experimental_async async_stub_{this}; + ::grpc::ClientAsyncResponseReader< ::vereign::v1pb::ListPassportsFormResponse>* AsyncListPassportsManualyRaw(::grpc::ClientContext* context, const ::vereign::v1pb::ListPassportsForm& request, ::grpc::CompletionQueue* cq) override; + ::grpc::ClientAsyncResponseReader< ::vereign::v1pb::ListPassportsFormResponse>* PrepareAsyncListPassportsManualyRaw(::grpc::ClientContext* context, const ::vereign::v1pb::ListPassportsForm& request, ::grpc::CompletionQueue* cq) override; + const ::grpc::internal::RpcMethod rpcmethod_ListPassportsManualy_; + }; + static std::unique_ptr<Stub> NewStub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options = ::grpc::StubOptions()); + + class Service : public ::grpc::Service { + public: + Service(); + virtual ~Service(); + virtual ::grpc::Status ListPassportsManualy(::grpc::ServerContext* context, const ::vereign::v1pb::ListPassportsForm* request, ::vereign::v1pb::ListPassportsFormResponse* response); + }; + template <class BaseClass> + class WithAsyncMethod_ListPassportsManualy : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithAsyncMethod_ListPassportsManualy() { + ::grpc::Service::MarkMethodAsync(0); + } + ~WithAsyncMethod_ListPassportsManualy() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status ListPassportsManualy(::grpc::ServerContext* /*context*/, const ::vereign::v1pb::ListPassportsForm* /*request*/, ::vereign::v1pb::ListPassportsFormResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + void RequestListPassportsManualy(::grpc::ServerContext* context, ::vereign::v1pb::ListPassportsForm* request, ::grpc::ServerAsyncResponseWriter< ::vereign::v1pb::ListPassportsFormResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { + ::grpc::Service::RequestAsyncUnary(0, context, request, response, new_call_cq, notification_cq, tag); + } + }; + typedef WithAsyncMethod_ListPassportsManualy<Service > AsyncService; + template <class BaseClass> + class ExperimentalWithCallbackMethod_ListPassportsManualy : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + ExperimentalWithCallbackMethod_ListPassportsManualy() { + #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL + ::grpc::Service:: + #else + ::grpc::Service::experimental(). + #endif + MarkMethodCallback(0, + new ::grpc_impl::internal::CallbackUnaryHandler< ::vereign::v1pb::ListPassportsForm, ::vereign::v1pb::ListPassportsFormResponse>( + [this]( + #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL + ::grpc::CallbackServerContext* + #else + ::grpc::experimental::CallbackServerContext* + #endif + context, const ::vereign::v1pb::ListPassportsForm* request, ::vereign::v1pb::ListPassportsFormResponse* response) { return this->ListPassportsManualy(context, request, response); }));} + void SetMessageAllocatorFor_ListPassportsManualy( + ::grpc::experimental::MessageAllocator< ::vereign::v1pb::ListPassportsForm, ::vereign::v1pb::ListPassportsFormResponse>* allocator) { + #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL + ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(0); + #else + ::grpc::internal::MethodHandler* const handler = ::grpc::Service::experimental().GetHandler(0); + #endif + static_cast<::grpc_impl::internal::CallbackUnaryHandler< ::vereign::v1pb::ListPassportsForm, ::vereign::v1pb::ListPassportsFormResponse>*>(handler) + ->SetMessageAllocator(allocator); + } + ~ExperimentalWithCallbackMethod_ListPassportsManualy() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status ListPassportsManualy(::grpc::ServerContext* /*context*/, const ::vereign::v1pb::ListPassportsForm* /*request*/, ::vereign::v1pb::ListPassportsFormResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL + virtual ::grpc::ServerUnaryReactor* ListPassportsManualy( + ::grpc::CallbackServerContext* /*context*/, const ::vereign::v1pb::ListPassportsForm* /*request*/, ::vereign::v1pb::ListPassportsFormResponse* /*response*/) + #else + virtual ::grpc::experimental::ServerUnaryReactor* ListPassportsManualy( + ::grpc::experimental::CallbackServerContext* /*context*/, const ::vereign::v1pb::ListPassportsForm* /*request*/, ::vereign::v1pb::ListPassportsFormResponse* /*response*/) + #endif + { return nullptr; } + }; + #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL + typedef ExperimentalWithCallbackMethod_ListPassportsManualy<Service > CallbackService; + #endif + + typedef ExperimentalWithCallbackMethod_ListPassportsManualy<Service > ExperimentalCallbackService; + template <class BaseClass> + class WithGenericMethod_ListPassportsManualy : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithGenericMethod_ListPassportsManualy() { + ::grpc::Service::MarkMethodGeneric(0); + } + ~WithGenericMethod_ListPassportsManualy() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status ListPassportsManualy(::grpc::ServerContext* /*context*/, const ::vereign::v1pb::ListPassportsForm* /*request*/, ::vereign::v1pb::ListPassportsFormResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + }; + template <class BaseClass> + class WithRawMethod_ListPassportsManualy : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithRawMethod_ListPassportsManualy() { + ::grpc::Service::MarkMethodRaw(0); + } + ~WithRawMethod_ListPassportsManualy() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status ListPassportsManualy(::grpc::ServerContext* /*context*/, const ::vereign::v1pb::ListPassportsForm* /*request*/, ::vereign::v1pb::ListPassportsFormResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + void RequestListPassportsManualy(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { + ::grpc::Service::RequestAsyncUnary(0, context, request, response, new_call_cq, notification_cq, tag); + } + }; + template <class BaseClass> + class ExperimentalWithRawCallbackMethod_ListPassportsManualy : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + ExperimentalWithRawCallbackMethod_ListPassportsManualy() { + #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL + ::grpc::Service:: + #else + ::grpc::Service::experimental(). + #endif + MarkMethodRawCallback(0, + new ::grpc_impl::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( + [this]( + #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL + ::grpc::CallbackServerContext* + #else + ::grpc::experimental::CallbackServerContext* + #endif + context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->ListPassportsManualy(context, request, response); })); + } + ~ExperimentalWithRawCallbackMethod_ListPassportsManualy() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status ListPassportsManualy(::grpc::ServerContext* /*context*/, const ::vereign::v1pb::ListPassportsForm* /*request*/, ::vereign::v1pb::ListPassportsFormResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL + virtual ::grpc::ServerUnaryReactor* ListPassportsManualy( + ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/) + #else + virtual ::grpc::experimental::ServerUnaryReactor* ListPassportsManualy( + ::grpc::experimental::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/) + #endif + { return nullptr; } + }; + template <class BaseClass> + class WithStreamedUnaryMethod_ListPassportsManualy : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithStreamedUnaryMethod_ListPassportsManualy() { + ::grpc::Service::MarkMethodStreamed(0, + new ::grpc::internal::StreamedUnaryHandler< ::vereign::v1pb::ListPassportsForm, ::vereign::v1pb::ListPassportsFormResponse>(std::bind(&WithStreamedUnaryMethod_ListPassportsManualy<BaseClass>::StreamedListPassportsManualy, this, std::placeholders::_1, std::placeholders::_2))); + } + ~WithStreamedUnaryMethod_ListPassportsManualy() override { + BaseClassMustBeDerivedFromService(this); + } + // disable regular version of this method + ::grpc::Status ListPassportsManualy(::grpc::ServerContext* /*context*/, const ::vereign::v1pb::ListPassportsForm* /*request*/, ::vereign::v1pb::ListPassportsFormResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + // replace default version of method with streamed unary + virtual ::grpc::Status StreamedListPassportsManualy(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::vereign::v1pb::ListPassportsForm,::vereign::v1pb::ListPassportsFormResponse>* server_unary_streamer) = 0; + }; + typedef WithStreamedUnaryMethod_ListPassportsManualy<Service > StreamedUnaryService; + typedef Service SplitStreamedService; + typedef WithStreamedUnaryMethod_ListPassportsManualy<Service > StreamedService; +}; + +} // namespace v1pb +} // namespace vereign + + +#endif // GRPC_passport_5fapi_2eproto__INCLUDED diff --git a/cpp/src/vereign/v1pb/passport_api.pb.cc b/cpp/src/vereign/v1pb/passport_api.pb.cc new file mode 100644 index 0000000000000000000000000000000000000000..aa934d742449a369e7c64b16e7c042cb72ae9560 --- /dev/null +++ b/cpp/src/vereign/v1pb/passport_api.pb.cc @@ -0,0 +1,61 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: passport_api.proto + +#include "passport_api.pb.h" + +#include <algorithm> + +#include <google/protobuf/io/coded_stream.h> +#include <google/protobuf/extension_set.h> +#include <google/protobuf/wire_format_lite.h> +#include <google/protobuf/descriptor.h> +#include <google/protobuf/generated_message_reflection.h> +#include <google/protobuf/reflection_ops.h> +#include <google/protobuf/wire_format.h> +// @@protoc_insertion_point(includes) +#include <google/protobuf/port_def.inc> +namespace vereign { +namespace v1pb { +} // namespace v1pb +} // namespace vereign +static constexpr ::PROTOBUF_NAMESPACE_ID::Metadata* file_level_metadata_passport_5fapi_2eproto = nullptr; +static constexpr ::PROTOBUF_NAMESPACE_ID::EnumDescriptor const** file_level_enum_descriptors_passport_5fapi_2eproto = nullptr; +static constexpr ::PROTOBUF_NAMESPACE_ID::ServiceDescriptor const** file_level_service_descriptors_passport_5fapi_2eproto = nullptr; +const ::PROTOBUF_NAMESPACE_ID::uint32 TableStruct_passport_5fapi_2eproto::offsets[1] = {}; +static constexpr ::PROTOBUF_NAMESPACE_ID::internal::MigrationSchema* schemas = nullptr; +static constexpr ::PROTOBUF_NAMESPACE_ID::Message* const* file_default_instances = nullptr; + +const char descriptor_table_protodef_passport_5fapi_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = + "\n\022passport_api.proto\022\014vereign.v1pb\032\030pass" + "port_types.gen.proto2o\n\013PassportAPI\022`\n\024L" + "istPassportsManualy\022\037.vereign.v1pb.ListP" + "assportsForm\032\'.vereign.v1pb.ListPassport" + "sFormResponseb\006proto3" + ; +static const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable*const descriptor_table_passport_5fapi_2eproto_deps[1] = { + &::descriptor_table_passport_5ftypes_2egen_2eproto, +}; +static ::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase*const descriptor_table_passport_5fapi_2eproto_sccs[1] = { +}; +static ::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_passport_5fapi_2eproto_once; +static bool descriptor_table_passport_5fapi_2eproto_initialized = false; +const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_passport_5fapi_2eproto = { + &descriptor_table_passport_5fapi_2eproto_initialized, descriptor_table_protodef_passport_5fapi_2eproto, "passport_api.proto", 181, + &descriptor_table_passport_5fapi_2eproto_once, descriptor_table_passport_5fapi_2eproto_sccs, descriptor_table_passport_5fapi_2eproto_deps, 0, 1, + schemas, file_default_instances, TableStruct_passport_5fapi_2eproto::offsets, + file_level_metadata_passport_5fapi_2eproto, 0, file_level_enum_descriptors_passport_5fapi_2eproto, file_level_service_descriptors_passport_5fapi_2eproto, +}; + +// Force running AddDescriptors() at dynamic initialization time. +static bool dynamic_init_dummy_passport_5fapi_2eproto = ( ::PROTOBUF_NAMESPACE_ID::internal::AddDescriptors(&descriptor_table_passport_5fapi_2eproto), true); +namespace vereign { +namespace v1pb { + +// @@protoc_insertion_point(namespace_scope) +} // namespace v1pb +} // namespace vereign +PROTOBUF_NAMESPACE_OPEN +PROTOBUF_NAMESPACE_CLOSE + +// @@protoc_insertion_point(global_scope) +#include <google/protobuf/port_undef.inc> diff --git a/cpp/src/vereign/v1pb/passport_api.pb.h b/cpp/src/vereign/v1pb/passport_api.pb.h new file mode 100644 index 0000000000000000000000000000000000000000..207a858a133ccac96bf58ca7dba44a648e30cd85 --- /dev/null +++ b/cpp/src/vereign/v1pb/passport_api.pb.h @@ -0,0 +1,85 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: passport_api.proto + +#ifndef GOOGLE_PROTOBUF_INCLUDED_passport_5fapi_2eproto +#define GOOGLE_PROTOBUF_INCLUDED_passport_5fapi_2eproto + +#include <limits> +#include <string> + +#include <google/protobuf/port_def.inc> +#if PROTOBUF_VERSION < 3011000 +#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 3011002 < 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/port_undef.inc> +#include <google/protobuf/io/coded_stream.h> +#include <google/protobuf/arena.h> +#include <google/protobuf/arenastring.h> +#include <google/protobuf/generated_message_table_driven.h> +#include <google/protobuf/generated_message_util.h> +#include <google/protobuf/inlined_string_field.h> +#include <google/protobuf/metadata.h> +#include <google/protobuf/generated_message_reflection.h> +#include <google/protobuf/repeated_field.h> // IWYU pragma: export +#include <google/protobuf/extension_set.h> // IWYU pragma: export +#include "passport_types.gen.pb.h" +// @@protoc_insertion_point(includes) +#include <google/protobuf/port_def.inc> +#define PROTOBUF_INTERNAL_EXPORT_passport_5fapi_2eproto +PROTOBUF_NAMESPACE_OPEN +namespace internal { +class AnyMetadata; +} // namespace internal +PROTOBUF_NAMESPACE_CLOSE + +// Internal implementation detail -- do not use these members. +struct TableStruct_passport_5fapi_2eproto { + static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTableField entries[] + PROTOBUF_SECTION_VARIABLE(protodesc_cold); + static const ::PROTOBUF_NAMESPACE_ID::internal::AuxillaryParseTableField aux[] + PROTOBUF_SECTION_VARIABLE(protodesc_cold); + static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTable schema[1] + PROTOBUF_SECTION_VARIABLE(protodesc_cold); + static const ::PROTOBUF_NAMESPACE_ID::internal::FieldMetadata field_metadata[]; + static const ::PROTOBUF_NAMESPACE_ID::internal::SerializationTable serialization_table[]; + static const ::PROTOBUF_NAMESPACE_ID::uint32 offsets[]; +}; +extern const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_passport_5fapi_2eproto; +PROTOBUF_NAMESPACE_OPEN +PROTOBUF_NAMESPACE_CLOSE +namespace vereign { +namespace v1pb { + +// =================================================================== + + +// =================================================================== + + +// =================================================================== + +#ifdef __GNUC__ + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wstrict-aliasing" +#endif // __GNUC__ +#ifdef __GNUC__ + #pragma GCC diagnostic pop +#endif // __GNUC__ + +// @@protoc_insertion_point(namespace_scope) + +} // namespace v1pb +} // namespace vereign + +// @@protoc_insertion_point(global_scope) + +#include <google/protobuf/port_undef.inc> +#endif // GOOGLE_PROTOBUF_INCLUDED_GOOGLE_PROTOBUF_INCLUDED_passport_5fapi_2eproto diff --git a/cpp/src/vereign/v1pb/passport_types.gen.pb.cc b/cpp/src/vereign/v1pb/passport_types.gen.pb.cc new file mode 100644 index 0000000000000000000000000000000000000000..c3879bd2f8dc998bef2d9ecc901d30baa1003145 --- /dev/null +++ b/cpp/src/vereign/v1pb/passport_types.gen.pb.cc @@ -0,0 +1,627 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: passport_types.gen.proto + +#include "passport_types.gen.pb.h" + +#include <algorithm> + +#include <google/protobuf/io/coded_stream.h> +#include <google/protobuf/extension_set.h> +#include <google/protobuf/wire_format_lite.h> +#include <google/protobuf/descriptor.h> +#include <google/protobuf/generated_message_reflection.h> +#include <google/protobuf/reflection_ops.h> +#include <google/protobuf/wire_format.h> +// @@protoc_insertion_point(includes) +#include <google/protobuf/port_def.inc> +extern PROTOBUF_INTERNAL_EXPORT_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<14> scc_info_EntityMessage_V2_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto; +namespace vereign { +namespace v1pb { +class ListPassportsFormDefaultTypeInternal { + public: + ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<ListPassportsForm> _instance; +} _ListPassportsForm_default_instance_; +class ListPassportsFormResponseDefaultTypeInternal { + public: + ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<ListPassportsFormResponse> _instance; +} _ListPassportsFormResponse_default_instance_; +} // namespace v1pb +} // namespace vereign +static void InitDefaultsscc_info_ListPassportsForm_passport_5ftypes_2egen_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::vereign::v1pb::_ListPassportsForm_default_instance_; + new (ptr) ::vereign::v1pb::ListPassportsForm(); + ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr); + } + ::vereign::v1pb::ListPassportsForm::InitAsDefaultInstance(); +} + +::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_ListPassportsForm_passport_5ftypes_2egen_2eproto = + {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_ListPassportsForm_passport_5ftypes_2egen_2eproto}, {}}; + +static void InitDefaultsscc_info_ListPassportsFormResponse_passport_5ftypes_2egen_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::vereign::v1pb::_ListPassportsFormResponse_default_instance_; + new (ptr) ::vereign::v1pb::ListPassportsFormResponse(); + ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr); + } + ::vereign::v1pb::ListPassportsFormResponse::InitAsDefaultInstance(); +} + +::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_ListPassportsFormResponse_passport_5ftypes_2egen_2eproto = + {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_ListPassportsFormResponse_passport_5ftypes_2egen_2eproto}, { + &scc_info_EntityMessage_V2_code_2evereign_2ecom_2fcode_2fviam_2dapis_2fentities_2dmanagement_2dagent_2fapi_2fapi_2eproto.base,}}; + +static ::PROTOBUF_NAMESPACE_ID::Metadata file_level_metadata_passport_5ftypes_2egen_2eproto[2]; +static constexpr ::PROTOBUF_NAMESPACE_ID::EnumDescriptor const** file_level_enum_descriptors_passport_5ftypes_2egen_2eproto = nullptr; +static constexpr ::PROTOBUF_NAMESPACE_ID::ServiceDescriptor const** file_level_service_descriptors_passport_5ftypes_2egen_2eproto = nullptr; + +const ::PROTOBUF_NAMESPACE_ID::uint32 TableStruct_passport_5ftypes_2egen_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::vereign::v1pb::ListPassportsForm, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + PROTOBUF_FIELD_OFFSET(::vereign::v1pb::ListPassportsForm, donotattachavatars_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::vereign::v1pb::ListPassportsFormResponse, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + PROTOBUF_FIELD_OFFSET(::vereign::v1pb::ListPassportsFormResponse, status_), + PROTOBUF_FIELD_OFFSET(::vereign::v1pb::ListPassportsFormResponse, code_), + PROTOBUF_FIELD_OFFSET(::vereign::v1pb::ListPassportsFormResponse, error_), + PROTOBUF_FIELD_OFFSET(::vereign::v1pb::ListPassportsFormResponse, data_), +}; +static const ::PROTOBUF_NAMESPACE_ID::internal::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { + { 0, -1, sizeof(::vereign::v1pb::ListPassportsForm)}, + { 6, -1, sizeof(::vereign::v1pb::ListPassportsFormResponse)}, +}; + +static ::PROTOBUF_NAMESPACE_ID::Message const * const file_default_instances[] = { + reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::vereign::v1pb::_ListPassportsForm_default_instance_), + reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::vereign::v1pb::_ListPassportsFormResponse_default_instance_), +}; + +const char descriptor_table_protodef_passport_5ftypes_2egen_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = + "\n\030passport_types.gen.proto\022\014vereign.v1pb" + "\032\022dependencies.proto\"/\n\021ListPassportsFor" + "m\022\032\n\022doNotAttachAvatars\030\001 \001(\010\"m\n\031ListPas" + "sportsFormResponse\022\016\n\006status\030\001 \001(\t\022\014\n\004co" + "de\030\002 \001(\t\022\r\n\005error\030\003 \001(\t\022#\n\004data\030\004 \003(\0132\025." + "api.EntityMessage_V2b\006proto3" + ; +static const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable*const descriptor_table_passport_5ftypes_2egen_2eproto_deps[1] = { + &::descriptor_table_dependencies_2eproto, +}; +static ::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase*const descriptor_table_passport_5ftypes_2egen_2eproto_sccs[2] = { + &scc_info_ListPassportsForm_passport_5ftypes_2egen_2eproto.base, + &scc_info_ListPassportsFormResponse_passport_5ftypes_2egen_2eproto.base, +}; +static ::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_passport_5ftypes_2egen_2eproto_once; +static bool descriptor_table_passport_5ftypes_2egen_2eproto_initialized = false; +const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_passport_5ftypes_2egen_2eproto = { + &descriptor_table_passport_5ftypes_2egen_2eproto_initialized, descriptor_table_protodef_passport_5ftypes_2egen_2eproto, "passport_types.gen.proto", 228, + &descriptor_table_passport_5ftypes_2egen_2eproto_once, descriptor_table_passport_5ftypes_2egen_2eproto_sccs, descriptor_table_passport_5ftypes_2egen_2eproto_deps, 2, 1, + schemas, file_default_instances, TableStruct_passport_5ftypes_2egen_2eproto::offsets, + file_level_metadata_passport_5ftypes_2egen_2eproto, 2, file_level_enum_descriptors_passport_5ftypes_2egen_2eproto, file_level_service_descriptors_passport_5ftypes_2egen_2eproto, +}; + +// Force running AddDescriptors() at dynamic initialization time. +static bool dynamic_init_dummy_passport_5ftypes_2egen_2eproto = ( ::PROTOBUF_NAMESPACE_ID::internal::AddDescriptors(&descriptor_table_passport_5ftypes_2egen_2eproto), true); +namespace vereign { +namespace v1pb { + +// =================================================================== + +void ListPassportsForm::InitAsDefaultInstance() { +} +class ListPassportsForm::_Internal { + public: +}; + +ListPassportsForm::ListPassportsForm() + : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) { + SharedCtor(); + // @@protoc_insertion_point(constructor:vereign.v1pb.ListPassportsForm) +} +ListPassportsForm::ListPassportsForm(const ListPassportsForm& from) + : ::PROTOBUF_NAMESPACE_ID::Message(), + _internal_metadata_(nullptr) { + _internal_metadata_.MergeFrom(from._internal_metadata_); + donotattachavatars_ = from.donotattachavatars_; + // @@protoc_insertion_point(copy_constructor:vereign.v1pb.ListPassportsForm) +} + +void ListPassportsForm::SharedCtor() { + donotattachavatars_ = false; +} + +ListPassportsForm::~ListPassportsForm() { + // @@protoc_insertion_point(destructor:vereign.v1pb.ListPassportsForm) + SharedDtor(); +} + +void ListPassportsForm::SharedDtor() { +} + +void ListPassportsForm::SetCachedSize(int size) const { + _cached_size_.Set(size); +} +const ListPassportsForm& ListPassportsForm::default_instance() { + ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_ListPassportsForm_passport_5ftypes_2egen_2eproto.base); + return *internal_default_instance(); +} + + +void ListPassportsForm::Clear() { +// @@protoc_insertion_point(message_clear_start:vereign.v1pb.ListPassportsForm) + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + donotattachavatars_ = false; + _internal_metadata_.Clear(); +} + +const char* ListPassportsForm::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + ::PROTOBUF_NAMESPACE_ID::uint32 tag; + ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag); + CHK_(ptr); + switch (tag >> 3) { + // bool doNotAttachAvatars = 1; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) { + donotattachavatars_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr); + CHK_(ptr); + } else goto handle_unusual; + continue; + default: { + handle_unusual: + if ((tag & 7) == 4 || tag == 0) { + ctx->SetLastTag(tag); + goto success; + } + ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx); + CHK_(ptr != nullptr); + continue; + } + } // switch + } // while +success: + return ptr; +failure: + ptr = nullptr; + goto success; +#undef CHK_ +} + +::PROTOBUF_NAMESPACE_ID::uint8* ListPassportsForm::_InternalSerialize( + ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:vereign.v1pb.ListPassportsForm) + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + // bool doNotAttachAvatars = 1; + if (this->donotattachavatars() != 0) { + target = stream->EnsureSpace(target); + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(1, this->_internal_donotattachavatars(), target); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields(), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:vereign.v1pb.ListPassportsForm) + return target; +} + +size_t ListPassportsForm::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:vereign.v1pb.ListPassportsForm) + size_t total_size = 0; + + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // bool doNotAttachAvatars = 1; + if (this->donotattachavatars() != 0) { + total_size += 1 + 1; + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize( + _internal_metadata_, total_size, &_cached_size_); + } + int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size); + SetCachedSize(cached_size); + return total_size; +} + +void ListPassportsForm::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { +// @@protoc_insertion_point(generalized_merge_from_start:vereign.v1pb.ListPassportsForm) + GOOGLE_DCHECK_NE(&from, this); + const ListPassportsForm* source = + ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<ListPassportsForm>( + &from); + if (source == nullptr) { + // @@protoc_insertion_point(generalized_merge_from_cast_fail:vereign.v1pb.ListPassportsForm) + ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this); + } else { + // @@protoc_insertion_point(generalized_merge_from_cast_success:vereign.v1pb.ListPassportsForm) + MergeFrom(*source); + } +} + +void ListPassportsForm::MergeFrom(const ListPassportsForm& from) { +// @@protoc_insertion_point(class_specific_merge_from_start:vereign.v1pb.ListPassportsForm) + GOOGLE_DCHECK_NE(&from, this); + _internal_metadata_.MergeFrom(from._internal_metadata_); + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + if (from.donotattachavatars() != 0) { + _internal_set_donotattachavatars(from._internal_donotattachavatars()); + } +} + +void ListPassportsForm::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { +// @@protoc_insertion_point(generalized_copy_from_start:vereign.v1pb.ListPassportsForm) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +void ListPassportsForm::CopyFrom(const ListPassportsForm& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:vereign.v1pb.ListPassportsForm) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool ListPassportsForm::IsInitialized() const { + return true; +} + +void ListPassportsForm::InternalSwap(ListPassportsForm* other) { + using std::swap; + _internal_metadata_.Swap(&other->_internal_metadata_); + swap(donotattachavatars_, other->donotattachavatars_); +} + +::PROTOBUF_NAMESPACE_ID::Metadata ListPassportsForm::GetMetadata() const { + return GetMetadataStatic(); +} + + +// =================================================================== + +void ListPassportsFormResponse::InitAsDefaultInstance() { +} +class ListPassportsFormResponse::_Internal { + public: +}; + +void ListPassportsFormResponse::clear_data() { + data_.Clear(); +} +ListPassportsFormResponse::ListPassportsFormResponse() + : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) { + SharedCtor(); + // @@protoc_insertion_point(constructor:vereign.v1pb.ListPassportsFormResponse) +} +ListPassportsFormResponse::ListPassportsFormResponse(const ListPassportsFormResponse& from) + : ::PROTOBUF_NAMESPACE_ID::Message(), + _internal_metadata_(nullptr), + data_(from.data_) { + _internal_metadata_.MergeFrom(from._internal_metadata_); + status_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + if (!from._internal_status().empty()) { + status_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.status_); + } + code_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + if (!from._internal_code().empty()) { + code_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.code_); + } + error_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + if (!from._internal_error().empty()) { + error_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.error_); + } + // @@protoc_insertion_point(copy_constructor:vereign.v1pb.ListPassportsFormResponse) +} + +void ListPassportsFormResponse::SharedCtor() { + ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_ListPassportsFormResponse_passport_5ftypes_2egen_2eproto.base); + status_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + code_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + error_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} + +ListPassportsFormResponse::~ListPassportsFormResponse() { + // @@protoc_insertion_point(destructor:vereign.v1pb.ListPassportsFormResponse) + SharedDtor(); +} + +void ListPassportsFormResponse::SharedDtor() { + status_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + code_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + error_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} + +void ListPassportsFormResponse::SetCachedSize(int size) const { + _cached_size_.Set(size); +} +const ListPassportsFormResponse& ListPassportsFormResponse::default_instance() { + ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_ListPassportsFormResponse_passport_5ftypes_2egen_2eproto.base); + return *internal_default_instance(); +} + + +void ListPassportsFormResponse::Clear() { +// @@protoc_insertion_point(message_clear_start:vereign.v1pb.ListPassportsFormResponse) + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + data_.Clear(); + status_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + code_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + error_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + _internal_metadata_.Clear(); +} + +const char* ListPassportsFormResponse::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + ::PROTOBUF_NAMESPACE_ID::uint32 tag; + ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag); + CHK_(ptr); + switch (tag >> 3) { + // string status = 1; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) { + auto str = _internal_mutable_status(); + ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); + CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "vereign.v1pb.ListPassportsFormResponse.status")); + CHK_(ptr); + } else goto handle_unusual; + continue; + // string code = 2; + case 2: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) { + auto str = _internal_mutable_code(); + ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); + CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "vereign.v1pb.ListPassportsFormResponse.code")); + CHK_(ptr); + } else goto handle_unusual; + continue; + // string error = 3; + case 3: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) { + auto str = _internal_mutable_error(); + ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); + CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "vereign.v1pb.ListPassportsFormResponse.error")); + CHK_(ptr); + } else goto handle_unusual; + continue; + // repeated .api.EntityMessage_V2 data = 4; + case 4: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) { + ptr -= 1; + do { + ptr += 1; + ptr = ctx->ParseMessage(_internal_add_data(), ptr); + CHK_(ptr); + if (!ctx->DataAvailable(ptr)) break; + } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<34>(ptr)); + } else goto handle_unusual; + continue; + default: { + handle_unusual: + if ((tag & 7) == 4 || tag == 0) { + ctx->SetLastTag(tag); + goto success; + } + ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx); + CHK_(ptr != nullptr); + continue; + } + } // switch + } // while +success: + return ptr; +failure: + ptr = nullptr; + goto success; +#undef CHK_ +} + +::PROTOBUF_NAMESPACE_ID::uint8* ListPassportsFormResponse::_InternalSerialize( + ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:vereign.v1pb.ListPassportsFormResponse) + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + // string status = 1; + if (this->status().size() > 0) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_status().data(), static_cast<int>(this->_internal_status().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "vereign.v1pb.ListPassportsFormResponse.status"); + target = stream->WriteStringMaybeAliased( + 1, this->_internal_status(), target); + } + + // string code = 2; + if (this->code().size() > 0) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_code().data(), static_cast<int>(this->_internal_code().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "vereign.v1pb.ListPassportsFormResponse.code"); + target = stream->WriteStringMaybeAliased( + 2, this->_internal_code(), target); + } + + // string error = 3; + if (this->error().size() > 0) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_error().data(), static_cast<int>(this->_internal_error().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "vereign.v1pb.ListPassportsFormResponse.error"); + target = stream->WriteStringMaybeAliased( + 3, this->_internal_error(), target); + } + + // repeated .api.EntityMessage_V2 data = 4; + for (unsigned int i = 0, + n = static_cast<unsigned int>(this->_internal_data_size()); i < n; i++) { + target = stream->EnsureSpace(target); + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: + InternalWriteMessage(4, this->_internal_data(i), target, stream); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields(), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:vereign.v1pb.ListPassportsFormResponse) + return target; +} + +size_t ListPassportsFormResponse::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:vereign.v1pb.ListPassportsFormResponse) + size_t total_size = 0; + + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // repeated .api.EntityMessage_V2 data = 4; + total_size += 1UL * this->_internal_data_size(); + for (const auto& msg : this->data_) { + total_size += + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg); + } + + // string status = 1; + if (this->status().size() > 0) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_status()); + } + + // string code = 2; + if (this->code().size() > 0) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_code()); + } + + // string error = 3; + if (this->error().size() > 0) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_error()); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize( + _internal_metadata_, total_size, &_cached_size_); + } + int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size); + SetCachedSize(cached_size); + return total_size; +} + +void ListPassportsFormResponse::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { +// @@protoc_insertion_point(generalized_merge_from_start:vereign.v1pb.ListPassportsFormResponse) + GOOGLE_DCHECK_NE(&from, this); + const ListPassportsFormResponse* source = + ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<ListPassportsFormResponse>( + &from); + if (source == nullptr) { + // @@protoc_insertion_point(generalized_merge_from_cast_fail:vereign.v1pb.ListPassportsFormResponse) + ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this); + } else { + // @@protoc_insertion_point(generalized_merge_from_cast_success:vereign.v1pb.ListPassportsFormResponse) + MergeFrom(*source); + } +} + +void ListPassportsFormResponse::MergeFrom(const ListPassportsFormResponse& from) { +// @@protoc_insertion_point(class_specific_merge_from_start:vereign.v1pb.ListPassportsFormResponse) + GOOGLE_DCHECK_NE(&from, this); + _internal_metadata_.MergeFrom(from._internal_metadata_); + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + data_.MergeFrom(from.data_); + if (from.status().size() > 0) { + + status_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.status_); + } + if (from.code().size() > 0) { + + code_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.code_); + } + if (from.error().size() > 0) { + + error_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.error_); + } +} + +void ListPassportsFormResponse::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { +// @@protoc_insertion_point(generalized_copy_from_start:vereign.v1pb.ListPassportsFormResponse) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +void ListPassportsFormResponse::CopyFrom(const ListPassportsFormResponse& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:vereign.v1pb.ListPassportsFormResponse) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool ListPassportsFormResponse::IsInitialized() const { + return true; +} + +void ListPassportsFormResponse::InternalSwap(ListPassportsFormResponse* other) { + using std::swap; + _internal_metadata_.Swap(&other->_internal_metadata_); + data_.InternalSwap(&other->data_); + status_.Swap(&other->status_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); + code_.Swap(&other->code_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); + error_.Swap(&other->error_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); +} + +::PROTOBUF_NAMESPACE_ID::Metadata ListPassportsFormResponse::GetMetadata() const { + return GetMetadataStatic(); +} + + +// @@protoc_insertion_point(namespace_scope) +} // namespace v1pb +} // namespace vereign +PROTOBUF_NAMESPACE_OPEN +template<> PROTOBUF_NOINLINE ::vereign::v1pb::ListPassportsForm* Arena::CreateMaybeMessage< ::vereign::v1pb::ListPassportsForm >(Arena* arena) { + return Arena::CreateInternal< ::vereign::v1pb::ListPassportsForm >(arena); +} +template<> PROTOBUF_NOINLINE ::vereign::v1pb::ListPassportsFormResponse* Arena::CreateMaybeMessage< ::vereign::v1pb::ListPassportsFormResponse >(Arena* arena) { + return Arena::CreateInternal< ::vereign::v1pb::ListPassportsFormResponse >(arena); +} +PROTOBUF_NAMESPACE_CLOSE + +// @@protoc_insertion_point(global_scope) +#include <google/protobuf/port_undef.inc> diff --git a/cpp/src/vereign/v1pb/passport_types.gen.pb.h b/cpp/src/vereign/v1pb/passport_types.gen.pb.h new file mode 100644 index 0000000000000000000000000000000000000000..79b7592718ba717c1b957bc96dde35003376affa --- /dev/null +++ b/cpp/src/vereign/v1pb/passport_types.gen.pb.h @@ -0,0 +1,659 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: passport_types.gen.proto + +#ifndef GOOGLE_PROTOBUF_INCLUDED_passport_5ftypes_2egen_2eproto +#define GOOGLE_PROTOBUF_INCLUDED_passport_5ftypes_2egen_2eproto + +#include <limits> +#include <string> + +#include <google/protobuf/port_def.inc> +#if PROTOBUF_VERSION < 3011000 +#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 3011002 < 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/port_undef.inc> +#include <google/protobuf/io/coded_stream.h> +#include <google/protobuf/arena.h> +#include <google/protobuf/arenastring.h> +#include <google/protobuf/generated_message_table_driven.h> +#include <google/protobuf/generated_message_util.h> +#include <google/protobuf/inlined_string_field.h> +#include <google/protobuf/metadata.h> +#include <google/protobuf/generated_message_reflection.h> +#include <google/protobuf/message.h> +#include <google/protobuf/repeated_field.h> // IWYU pragma: export +#include <google/protobuf/extension_set.h> // IWYU pragma: export +#include <google/protobuf/unknown_field_set.h> +#include "dependencies.pb.h" +// @@protoc_insertion_point(includes) +#include <google/protobuf/port_def.inc> +#define PROTOBUF_INTERNAL_EXPORT_passport_5ftypes_2egen_2eproto +PROTOBUF_NAMESPACE_OPEN +namespace internal { +class AnyMetadata; +} // namespace internal +PROTOBUF_NAMESPACE_CLOSE + +// Internal implementation detail -- do not use these members. +struct TableStruct_passport_5ftypes_2egen_2eproto { + static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTableField entries[] + PROTOBUF_SECTION_VARIABLE(protodesc_cold); + static const ::PROTOBUF_NAMESPACE_ID::internal::AuxillaryParseTableField aux[] + PROTOBUF_SECTION_VARIABLE(protodesc_cold); + static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTable schema[2] + PROTOBUF_SECTION_VARIABLE(protodesc_cold); + static const ::PROTOBUF_NAMESPACE_ID::internal::FieldMetadata field_metadata[]; + static const ::PROTOBUF_NAMESPACE_ID::internal::SerializationTable serialization_table[]; + static const ::PROTOBUF_NAMESPACE_ID::uint32 offsets[]; +}; +extern const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_passport_5ftypes_2egen_2eproto; +namespace vereign { +namespace v1pb { +class ListPassportsForm; +class ListPassportsFormDefaultTypeInternal; +extern ListPassportsFormDefaultTypeInternal _ListPassportsForm_default_instance_; +class ListPassportsFormResponse; +class ListPassportsFormResponseDefaultTypeInternal; +extern ListPassportsFormResponseDefaultTypeInternal _ListPassportsFormResponse_default_instance_; +} // namespace v1pb +} // namespace vereign +PROTOBUF_NAMESPACE_OPEN +template<> ::vereign::v1pb::ListPassportsForm* Arena::CreateMaybeMessage<::vereign::v1pb::ListPassportsForm>(Arena*); +template<> ::vereign::v1pb::ListPassportsFormResponse* Arena::CreateMaybeMessage<::vereign::v1pb::ListPassportsFormResponse>(Arena*); +PROTOBUF_NAMESPACE_CLOSE +namespace vereign { +namespace v1pb { + +// =================================================================== + +class ListPassportsForm : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vereign.v1pb.ListPassportsForm) */ { + public: + ListPassportsForm(); + virtual ~ListPassportsForm(); + + ListPassportsForm(const ListPassportsForm& from); + ListPassportsForm(ListPassportsForm&& from) noexcept + : ListPassportsForm() { + *this = ::std::move(from); + } + + inline ListPassportsForm& operator=(const ListPassportsForm& from) { + CopyFrom(from); + return *this; + } + inline ListPassportsForm& operator=(ListPassportsForm&& from) noexcept { + if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) { + if (this != &from) InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return GetMetadataStatic().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return GetMetadataStatic().reflection; + } + static const ListPassportsForm& default_instance(); + + static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY + static inline const ListPassportsForm* internal_default_instance() { + return reinterpret_cast<const ListPassportsForm*>( + &_ListPassportsForm_default_instance_); + } + static constexpr int kIndexInFileMessages = + 0; + + friend void swap(ListPassportsForm& a, ListPassportsForm& b) { + a.Swap(&b); + } + inline void Swap(ListPassportsForm* other) { + if (other == this) return; + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + inline ListPassportsForm* New() const final { + return CreateMaybeMessage<ListPassportsForm>(nullptr); + } + + ListPassportsForm* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final { + return CreateMaybeMessage<ListPassportsForm>(arena); + } + void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; + void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; + void CopyFrom(const ListPassportsForm& from); + void MergeFrom(const ListPassportsForm& from); + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize( + ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _cached_size_.Get(); } + + private: + inline void SharedCtor(); + inline void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(ListPassportsForm* other); + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "vereign.v1pb.ListPassportsForm"; + } + private: + inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const { + return nullptr; + } + inline void* MaybeArenaPtr() const { + return nullptr; + } + public: + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + private: + static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() { + ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_passport_5ftypes_2egen_2eproto); + return ::descriptor_table_passport_5ftypes_2egen_2eproto.file_level_metadata[kIndexInFileMessages]; + } + + public: + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + enum : int { + kDoNotAttachAvatarsFieldNumber = 1, + }; + // bool doNotAttachAvatars = 1; + void clear_donotattachavatars(); + bool donotattachavatars() const; + void set_donotattachavatars(bool value); + private: + bool _internal_donotattachavatars() const; + void _internal_set_donotattachavatars(bool value); + public: + + // @@protoc_insertion_point(class_scope:vereign.v1pb.ListPassportsForm) + private: + class _Internal; + + ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_; + bool donotattachavatars_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + friend struct ::TableStruct_passport_5ftypes_2egen_2eproto; +}; +// ------------------------------------------------------------------- + +class ListPassportsFormResponse : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vereign.v1pb.ListPassportsFormResponse) */ { + public: + ListPassportsFormResponse(); + virtual ~ListPassportsFormResponse(); + + ListPassportsFormResponse(const ListPassportsFormResponse& from); + ListPassportsFormResponse(ListPassportsFormResponse&& from) noexcept + : ListPassportsFormResponse() { + *this = ::std::move(from); + } + + inline ListPassportsFormResponse& operator=(const ListPassportsFormResponse& from) { + CopyFrom(from); + return *this; + } + inline ListPassportsFormResponse& operator=(ListPassportsFormResponse&& from) noexcept { + if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) { + if (this != &from) InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return GetMetadataStatic().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return GetMetadataStatic().reflection; + } + static const ListPassportsFormResponse& default_instance(); + + static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY + static inline const ListPassportsFormResponse* internal_default_instance() { + return reinterpret_cast<const ListPassportsFormResponse*>( + &_ListPassportsFormResponse_default_instance_); + } + static constexpr int kIndexInFileMessages = + 1; + + friend void swap(ListPassportsFormResponse& a, ListPassportsFormResponse& b) { + a.Swap(&b); + } + inline void Swap(ListPassportsFormResponse* other) { + if (other == this) return; + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + inline ListPassportsFormResponse* New() const final { + return CreateMaybeMessage<ListPassportsFormResponse>(nullptr); + } + + ListPassportsFormResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final { + return CreateMaybeMessage<ListPassportsFormResponse>(arena); + } + void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; + void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; + void CopyFrom(const ListPassportsFormResponse& from); + void MergeFrom(const ListPassportsFormResponse& from); + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize( + ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _cached_size_.Get(); } + + private: + inline void SharedCtor(); + inline void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(ListPassportsFormResponse* other); + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "vereign.v1pb.ListPassportsFormResponse"; + } + private: + inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const { + return nullptr; + } + inline void* MaybeArenaPtr() const { + return nullptr; + } + public: + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + private: + static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() { + ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_passport_5ftypes_2egen_2eproto); + return ::descriptor_table_passport_5ftypes_2egen_2eproto.file_level_metadata[kIndexInFileMessages]; + } + + public: + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + enum : int { + kDataFieldNumber = 4, + kStatusFieldNumber = 1, + kCodeFieldNumber = 2, + kErrorFieldNumber = 3, + }; + // repeated .api.EntityMessage_V2 data = 4; + int data_size() const; + private: + int _internal_data_size() const; + public: + void clear_data(); + ::api::EntityMessage_V2* mutable_data(int index); + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::api::EntityMessage_V2 >* + mutable_data(); + private: + const ::api::EntityMessage_V2& _internal_data(int index) const; + ::api::EntityMessage_V2* _internal_add_data(); + public: + const ::api::EntityMessage_V2& data(int index) const; + ::api::EntityMessage_V2* add_data(); + const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::api::EntityMessage_V2 >& + data() const; + + // string status = 1; + void clear_status(); + const std::string& status() const; + void set_status(const std::string& value); + void set_status(std::string&& value); + void set_status(const char* value); + void set_status(const char* value, size_t size); + std::string* mutable_status(); + std::string* release_status(); + void set_allocated_status(std::string* status); + private: + const std::string& _internal_status() const; + void _internal_set_status(const std::string& value); + std::string* _internal_mutable_status(); + public: + + // string code = 2; + void clear_code(); + const std::string& code() const; + void set_code(const std::string& value); + void set_code(std::string&& value); + void set_code(const char* value); + void set_code(const char* value, size_t size); + std::string* mutable_code(); + std::string* release_code(); + void set_allocated_code(std::string* code); + private: + const std::string& _internal_code() const; + void _internal_set_code(const std::string& value); + std::string* _internal_mutable_code(); + public: + + // string error = 3; + void clear_error(); + const std::string& error() const; + void set_error(const std::string& value); + void set_error(std::string&& value); + void set_error(const char* value); + void set_error(const char* value, size_t size); + std::string* mutable_error(); + std::string* release_error(); + void set_allocated_error(std::string* error); + private: + const std::string& _internal_error() const; + void _internal_set_error(const std::string& value); + std::string* _internal_mutable_error(); + public: + + // @@protoc_insertion_point(class_scope:vereign.v1pb.ListPassportsFormResponse) + private: + class _Internal; + + ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_; + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::api::EntityMessage_V2 > data_; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr status_; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr code_; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr error_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + friend struct ::TableStruct_passport_5ftypes_2egen_2eproto; +}; +// =================================================================== + + +// =================================================================== + +#ifdef __GNUC__ + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wstrict-aliasing" +#endif // __GNUC__ +// ListPassportsForm + +// bool doNotAttachAvatars = 1; +inline void ListPassportsForm::clear_donotattachavatars() { + donotattachavatars_ = false; +} +inline bool ListPassportsForm::_internal_donotattachavatars() const { + return donotattachavatars_; +} +inline bool ListPassportsForm::donotattachavatars() const { + // @@protoc_insertion_point(field_get:vereign.v1pb.ListPassportsForm.doNotAttachAvatars) + return _internal_donotattachavatars(); +} +inline void ListPassportsForm::_internal_set_donotattachavatars(bool value) { + + donotattachavatars_ = value; +} +inline void ListPassportsForm::set_donotattachavatars(bool value) { + _internal_set_donotattachavatars(value); + // @@protoc_insertion_point(field_set:vereign.v1pb.ListPassportsForm.doNotAttachAvatars) +} + +// ------------------------------------------------------------------- + +// ListPassportsFormResponse + +// string status = 1; +inline void ListPassportsFormResponse::clear_status() { + status_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline const std::string& ListPassportsFormResponse::status() const { + // @@protoc_insertion_point(field_get:vereign.v1pb.ListPassportsFormResponse.status) + return _internal_status(); +} +inline void ListPassportsFormResponse::set_status(const std::string& value) { + _internal_set_status(value); + // @@protoc_insertion_point(field_set:vereign.v1pb.ListPassportsFormResponse.status) +} +inline std::string* ListPassportsFormResponse::mutable_status() { + // @@protoc_insertion_point(field_mutable:vereign.v1pb.ListPassportsFormResponse.status) + return _internal_mutable_status(); +} +inline const std::string& ListPassportsFormResponse::_internal_status() const { + return status_.GetNoArena(); +} +inline void ListPassportsFormResponse::_internal_set_status(const std::string& value) { + + status_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value); +} +inline void ListPassportsFormResponse::set_status(std::string&& value) { + + status_.SetNoArena( + &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); + // @@protoc_insertion_point(field_set_rvalue:vereign.v1pb.ListPassportsFormResponse.status) +} +inline void ListPassportsFormResponse::set_status(const char* value) { + GOOGLE_DCHECK(value != nullptr); + + status_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); + // @@protoc_insertion_point(field_set_char:vereign.v1pb.ListPassportsFormResponse.status) +} +inline void ListPassportsFormResponse::set_status(const char* value, size_t size) { + + status_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + ::std::string(reinterpret_cast<const char*>(value), size)); + // @@protoc_insertion_point(field_set_pointer:vereign.v1pb.ListPassportsFormResponse.status) +} +inline std::string* ListPassportsFormResponse::_internal_mutable_status() { + + return status_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline std::string* ListPassportsFormResponse::release_status() { + // @@protoc_insertion_point(field_release:vereign.v1pb.ListPassportsFormResponse.status) + + return status_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline void ListPassportsFormResponse::set_allocated_status(std::string* status) { + if (status != nullptr) { + + } else { + + } + status_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), status); + // @@protoc_insertion_point(field_set_allocated:vereign.v1pb.ListPassportsFormResponse.status) +} + +// string code = 2; +inline void ListPassportsFormResponse::clear_code() { + code_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline const std::string& ListPassportsFormResponse::code() const { + // @@protoc_insertion_point(field_get:vereign.v1pb.ListPassportsFormResponse.code) + return _internal_code(); +} +inline void ListPassportsFormResponse::set_code(const std::string& value) { + _internal_set_code(value); + // @@protoc_insertion_point(field_set:vereign.v1pb.ListPassportsFormResponse.code) +} +inline std::string* ListPassportsFormResponse::mutable_code() { + // @@protoc_insertion_point(field_mutable:vereign.v1pb.ListPassportsFormResponse.code) + return _internal_mutable_code(); +} +inline const std::string& ListPassportsFormResponse::_internal_code() const { + return code_.GetNoArena(); +} +inline void ListPassportsFormResponse::_internal_set_code(const std::string& value) { + + code_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value); +} +inline void ListPassportsFormResponse::set_code(std::string&& value) { + + code_.SetNoArena( + &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); + // @@protoc_insertion_point(field_set_rvalue:vereign.v1pb.ListPassportsFormResponse.code) +} +inline void ListPassportsFormResponse::set_code(const char* value) { + GOOGLE_DCHECK(value != nullptr); + + code_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); + // @@protoc_insertion_point(field_set_char:vereign.v1pb.ListPassportsFormResponse.code) +} +inline void ListPassportsFormResponse::set_code(const char* value, size_t size) { + + code_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + ::std::string(reinterpret_cast<const char*>(value), size)); + // @@protoc_insertion_point(field_set_pointer:vereign.v1pb.ListPassportsFormResponse.code) +} +inline std::string* ListPassportsFormResponse::_internal_mutable_code() { + + return code_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline std::string* ListPassportsFormResponse::release_code() { + // @@protoc_insertion_point(field_release:vereign.v1pb.ListPassportsFormResponse.code) + + return code_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline void ListPassportsFormResponse::set_allocated_code(std::string* code) { + if (code != nullptr) { + + } else { + + } + code_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), code); + // @@protoc_insertion_point(field_set_allocated:vereign.v1pb.ListPassportsFormResponse.code) +} + +// string error = 3; +inline void ListPassportsFormResponse::clear_error() { + error_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline const std::string& ListPassportsFormResponse::error() const { + // @@protoc_insertion_point(field_get:vereign.v1pb.ListPassportsFormResponse.error) + return _internal_error(); +} +inline void ListPassportsFormResponse::set_error(const std::string& value) { + _internal_set_error(value); + // @@protoc_insertion_point(field_set:vereign.v1pb.ListPassportsFormResponse.error) +} +inline std::string* ListPassportsFormResponse::mutable_error() { + // @@protoc_insertion_point(field_mutable:vereign.v1pb.ListPassportsFormResponse.error) + return _internal_mutable_error(); +} +inline const std::string& ListPassportsFormResponse::_internal_error() const { + return error_.GetNoArena(); +} +inline void ListPassportsFormResponse::_internal_set_error(const std::string& value) { + + error_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value); +} +inline void ListPassportsFormResponse::set_error(std::string&& value) { + + error_.SetNoArena( + &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); + // @@protoc_insertion_point(field_set_rvalue:vereign.v1pb.ListPassportsFormResponse.error) +} +inline void ListPassportsFormResponse::set_error(const char* value) { + GOOGLE_DCHECK(value != nullptr); + + error_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); + // @@protoc_insertion_point(field_set_char:vereign.v1pb.ListPassportsFormResponse.error) +} +inline void ListPassportsFormResponse::set_error(const char* value, size_t size) { + + error_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + ::std::string(reinterpret_cast<const char*>(value), size)); + // @@protoc_insertion_point(field_set_pointer:vereign.v1pb.ListPassportsFormResponse.error) +} +inline std::string* ListPassportsFormResponse::_internal_mutable_error() { + + return error_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline std::string* ListPassportsFormResponse::release_error() { + // @@protoc_insertion_point(field_release:vereign.v1pb.ListPassportsFormResponse.error) + + return error_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline void ListPassportsFormResponse::set_allocated_error(std::string* error) { + if (error != nullptr) { + + } else { + + } + error_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), error); + // @@protoc_insertion_point(field_set_allocated:vereign.v1pb.ListPassportsFormResponse.error) +} + +// repeated .api.EntityMessage_V2 data = 4; +inline int ListPassportsFormResponse::_internal_data_size() const { + return data_.size(); +} +inline int ListPassportsFormResponse::data_size() const { + return _internal_data_size(); +} +inline ::api::EntityMessage_V2* ListPassportsFormResponse::mutable_data(int index) { + // @@protoc_insertion_point(field_mutable:vereign.v1pb.ListPassportsFormResponse.data) + return data_.Mutable(index); +} +inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::api::EntityMessage_V2 >* +ListPassportsFormResponse::mutable_data() { + // @@protoc_insertion_point(field_mutable_list:vereign.v1pb.ListPassportsFormResponse.data) + return &data_; +} +inline const ::api::EntityMessage_V2& ListPassportsFormResponse::_internal_data(int index) const { + return data_.Get(index); +} +inline const ::api::EntityMessage_V2& ListPassportsFormResponse::data(int index) const { + // @@protoc_insertion_point(field_get:vereign.v1pb.ListPassportsFormResponse.data) + return _internal_data(index); +} +inline ::api::EntityMessage_V2* ListPassportsFormResponse::_internal_add_data() { + return data_.Add(); +} +inline ::api::EntityMessage_V2* ListPassportsFormResponse::add_data() { + // @@protoc_insertion_point(field_add:vereign.v1pb.ListPassportsFormResponse.data) + return _internal_add_data(); +} +inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::api::EntityMessage_V2 >& +ListPassportsFormResponse::data() const { + // @@protoc_insertion_point(field_list:vereign.v1pb.ListPassportsFormResponse.data) + return data_; +} + +#ifdef __GNUC__ + #pragma GCC diagnostic pop +#endif // __GNUC__ +// ------------------------------------------------------------------- + + +// @@protoc_insertion_point(namespace_scope) + +} // namespace v1pb +} // namespace vereign + +// @@protoc_insertion_point(global_scope) + +#include <google/protobuf/port_undef.inc> +#endif // GOOGLE_PROTOBUF_INCLUDED_GOOGLE_PROTOBUF_INCLUDED_passport_5ftypes_2egen_2eproto diff --git a/cpp/tests/CMakeLists.txt b/cpp/tests/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..f6aaf77a116e3dde272f68d65ca95d2951fc1ef3 --- /dev/null +++ b/cpp/tests/CMakeLists.txt @@ -0,0 +1,8 @@ + +include_directories( + "./" + "${VENDOR_INSTALL_DIR}/boost/include" +) + +add_subdirectory("protobuf") +add_subdirectory("vereign") diff --git a/cpp/tests/catch.hpp b/cpp/tests/catch.hpp new file mode 100644 index 0000000000000000000000000000000000000000..6beb0eadb3a402a3c18ecec1d3c2793b066a3c07 --- /dev/null +++ b/cpp/tests/catch.hpp @@ -0,0 +1,17698 @@ +/* + * Catch v2.12.1 + * Generated: 2020-04-21 19:29:20.964532 + * ---------------------------------------------------------- + * This file has been merged from multiple headers. Please don't edit it directly + * Copyright (c) 2020 Two Blue Cubes Ltd. All rights reserved. + * + * Distributed under the Boost Software License, Version 1.0. (See accompanying + * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + */ +#ifndef TWOBLUECUBES_SINGLE_INCLUDE_CATCH_HPP_INCLUDED +#define TWOBLUECUBES_SINGLE_INCLUDE_CATCH_HPP_INCLUDED +// start catch.hpp + + +#define CATCH_VERSION_MAJOR 2 +#define CATCH_VERSION_MINOR 12 +#define CATCH_VERSION_PATCH 1 + +#ifdef __clang__ +# pragma clang system_header +#elif defined __GNUC__ +# pragma GCC system_header +#endif + +// start catch_suppress_warnings.h + +#ifdef __clang__ +# ifdef __ICC // icpc defines the __clang__ macro +# pragma warning(push) +# pragma warning(disable: 161 1682) +# else // __ICC +# pragma clang diagnostic push +# pragma clang diagnostic ignored "-Wpadded" +# pragma clang diagnostic ignored "-Wswitch-enum" +# pragma clang diagnostic ignored "-Wcovered-switch-default" +# endif +#elif defined __GNUC__ + // Because REQUIREs trigger GCC's -Wparentheses, and because still + // supported version of g++ have only buggy support for _Pragmas, + // Wparentheses have to be suppressed globally. +# pragma GCC diagnostic ignored "-Wparentheses" // See #674 for details + +# pragma GCC diagnostic push +# pragma GCC diagnostic ignored "-Wunused-variable" +# pragma GCC diagnostic ignored "-Wpadded" +#endif +// end catch_suppress_warnings.h +#if defined(CATCH_CONFIG_MAIN) || defined(CATCH_CONFIG_RUNNER) +# define CATCH_IMPL +# define CATCH_CONFIG_ALL_PARTS +#endif + +// In the impl file, we want to have access to all parts of the headers +// Can also be used to sanely support PCHs +#if defined(CATCH_CONFIG_ALL_PARTS) +# define CATCH_CONFIG_EXTERNAL_INTERFACES +# if defined(CATCH_CONFIG_DISABLE_MATCHERS) +# undef CATCH_CONFIG_DISABLE_MATCHERS +# endif +# if !defined(CATCH_CONFIG_ENABLE_CHRONO_STRINGMAKER) +# define CATCH_CONFIG_ENABLE_CHRONO_STRINGMAKER +# endif +#endif + +#if !defined(CATCH_CONFIG_IMPL_ONLY) +// start catch_platform.h + +#ifdef __APPLE__ +# include <TargetConditionals.h> +# if TARGET_OS_OSX == 1 +# define CATCH_PLATFORM_MAC +# elif TARGET_OS_IPHONE == 1 +# define CATCH_PLATFORM_IPHONE +# endif + +#elif defined(linux) || defined(__linux) || defined(__linux__) +# define CATCH_PLATFORM_LINUX + +#elif defined(WIN32) || defined(__WIN32__) || defined(_WIN32) || defined(_MSC_VER) || defined(__MINGW32__) +# define CATCH_PLATFORM_WINDOWS +#endif + +// end catch_platform.h + +#ifdef CATCH_IMPL +# ifndef CLARA_CONFIG_MAIN +# define CLARA_CONFIG_MAIN_NOT_DEFINED +# define CLARA_CONFIG_MAIN +# endif +#endif + +// start catch_user_interfaces.h + +namespace Catch { + unsigned int rngSeed(); +} + +// end catch_user_interfaces.h +// start catch_tag_alias_autoregistrar.h + +// start catch_common.h + +// start catch_compiler_capabilities.h + +// Detect a number of compiler features - by compiler +// The following features are defined: +// +// CATCH_CONFIG_COUNTER : is the __COUNTER__ macro supported? +// CATCH_CONFIG_WINDOWS_SEH : is Windows SEH supported? +// CATCH_CONFIG_POSIX_SIGNALS : are POSIX signals supported? +// CATCH_CONFIG_DISABLE_EXCEPTIONS : Are exceptions enabled? +// **************** +// Note to maintainers: if new toggles are added please document them +// in configuration.md, too +// **************** + +// In general each macro has a _NO_<feature name> form +// (e.g. CATCH_CONFIG_NO_POSIX_SIGNALS) which disables the feature. +// Many features, at point of detection, define an _INTERNAL_ macro, so they +// can be combined, en-mass, with the _NO_ forms later. + +#ifdef __cplusplus + +# if (__cplusplus >= 201402L) || (defined(_MSVC_LANG) && _MSVC_LANG >= 201402L) +# define CATCH_CPP14_OR_GREATER +# endif + +# if (__cplusplus >= 201703L) || (defined(_MSVC_LANG) && _MSVC_LANG >= 201703L) +# define CATCH_CPP17_OR_GREATER +# endif + +#endif + +#if defined(__cpp_lib_uncaught_exceptions) +# define CATCH_INTERNAL_CONFIG_CPP17_UNCAUGHT_EXCEPTIONS +#endif + +// We have to avoid both ICC and Clang, because they try to mask themselves +// as gcc, and we want only GCC in this block +#if defined(__GNUC__) && !defined(__clang__) && !defined(__ICC) +# define CATCH_INTERNAL_START_WARNINGS_SUPPRESSION _Pragma( "GCC diagnostic push" ) +# define CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION _Pragma( "GCC diagnostic pop" ) + +# define CATCH_INTERNAL_IGNORE_BUT_WARN(...) (void)__builtin_constant_p(__VA_ARGS__) + +#endif + +#if defined(__clang__) + +# define CATCH_INTERNAL_START_WARNINGS_SUPPRESSION _Pragma( "clang diagnostic push" ) +# define CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION _Pragma( "clang diagnostic pop" ) + +// As of this writing, IBM XL's implementation of __builtin_constant_p has a bug +// which results in calls to destructors being emitted for each temporary, +// without a matching initialization. In practice, this can result in something +// like `std::string::~string` being called on an uninitialized value. +// +// For example, this code will likely segfault under IBM XL: +// ``` +// REQUIRE(std::string("12") + "34" == "1234") +// ``` +// +// Therefore, `CATCH_INTERNAL_IGNORE_BUT_WARN` is not implemented. +# if !defined(__ibmxl__) +# define CATCH_INTERNAL_IGNORE_BUT_WARN(...) (void)__builtin_constant_p(__VA_ARGS__) /* NOLINT(cppcoreguidelines-pro-type-vararg) */ +# endif + +# define CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS \ + _Pragma( "clang diagnostic ignored \"-Wexit-time-destructors\"" ) \ + _Pragma( "clang diagnostic ignored \"-Wglobal-constructors\"") + +# define CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS \ + _Pragma( "clang diagnostic ignored \"-Wparentheses\"" ) + +# define CATCH_INTERNAL_SUPPRESS_UNUSED_WARNINGS \ + _Pragma( "clang diagnostic ignored \"-Wunused-variable\"" ) + +# define CATCH_INTERNAL_SUPPRESS_ZERO_VARIADIC_WARNINGS \ + _Pragma( "clang diagnostic ignored \"-Wgnu-zero-variadic-macro-arguments\"" ) + +# define CATCH_INTERNAL_SUPPRESS_UNUSED_TEMPLATE_WARNINGS \ + _Pragma( "clang diagnostic ignored \"-Wunused-template\"" ) + +#endif // __clang__ + +//////////////////////////////////////////////////////////////////////////////// +// Assume that non-Windows platforms support posix signals by default +#if !defined(CATCH_PLATFORM_WINDOWS) + #define CATCH_INTERNAL_CONFIG_POSIX_SIGNALS +#endif + +//////////////////////////////////////////////////////////////////////////////// +// We know some environments not to support full POSIX signals +#if defined(__CYGWIN__) || defined(__QNX__) || defined(__EMSCRIPTEN__) || defined(__DJGPP__) + #define CATCH_INTERNAL_CONFIG_NO_POSIX_SIGNALS +#endif + +#ifdef __OS400__ +# define CATCH_INTERNAL_CONFIG_NO_POSIX_SIGNALS +# define CATCH_CONFIG_COLOUR_NONE +#endif + +//////////////////////////////////////////////////////////////////////////////// +// Android somehow still does not support std::to_string +#if defined(__ANDROID__) +# define CATCH_INTERNAL_CONFIG_NO_CPP11_TO_STRING +# define CATCH_INTERNAL_CONFIG_ANDROID_LOGWRITE +#endif + +//////////////////////////////////////////////////////////////////////////////// +// Not all Windows environments support SEH properly +#if defined(__MINGW32__) +# define CATCH_INTERNAL_CONFIG_NO_WINDOWS_SEH +#endif + +//////////////////////////////////////////////////////////////////////////////// +// PS4 +#if defined(__ORBIS__) +# define CATCH_INTERNAL_CONFIG_NO_NEW_CAPTURE +#endif + +//////////////////////////////////////////////////////////////////////////////// +// Cygwin +#ifdef __CYGWIN__ + +// Required for some versions of Cygwin to declare gettimeofday +// see: http://stackoverflow.com/questions/36901803/gettimeofday-not-declared-in-this-scope-cygwin +# define _BSD_SOURCE +// some versions of cygwin (most) do not support std::to_string. Use the libstd check. +// https://gcc.gnu.org/onlinedocs/gcc-4.8.2/libstdc++/api/a01053_source.html line 2812-2813 +# if !((__cplusplus >= 201103L) && defined(_GLIBCXX_USE_C99) \ + && !defined(_GLIBCXX_HAVE_BROKEN_VSWPRINTF)) + +# define CATCH_INTERNAL_CONFIG_NO_CPP11_TO_STRING + +# endif +#endif // __CYGWIN__ + +//////////////////////////////////////////////////////////////////////////////// +// Visual C++ +#if defined(_MSC_VER) + +# define CATCH_INTERNAL_START_WARNINGS_SUPPRESSION __pragma( warning(push) ) +# define CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION __pragma( warning(pop) ) + +# if _MSC_VER >= 1900 // Visual Studio 2015 or newer +# define CATCH_INTERNAL_CONFIG_CPP17_UNCAUGHT_EXCEPTIONS +# endif + +// Universal Windows platform does not support SEH +// Or console colours (or console at all...) +# if defined(WINAPI_FAMILY) && (WINAPI_FAMILY == WINAPI_FAMILY_APP) +# define CATCH_CONFIG_COLOUR_NONE +# else +# define CATCH_INTERNAL_CONFIG_WINDOWS_SEH +# endif + +// MSVC traditional preprocessor needs some workaround for __VA_ARGS__ +// _MSVC_TRADITIONAL == 0 means new conformant preprocessor +// _MSVC_TRADITIONAL == 1 means old traditional non-conformant preprocessor +# if !defined(__clang__) // Handle Clang masquerading for msvc +# if !defined(_MSVC_TRADITIONAL) || (defined(_MSVC_TRADITIONAL) && _MSVC_TRADITIONAL) +# define CATCH_INTERNAL_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR +# endif // MSVC_TRADITIONAL +# endif // __clang__ + +#endif // _MSC_VER + +#if defined(_REENTRANT) || defined(_MSC_VER) +// Enable async processing, as -pthread is specified or no additional linking is required +# define CATCH_INTERNAL_CONFIG_USE_ASYNC +#endif // _MSC_VER + +//////////////////////////////////////////////////////////////////////////////// +// Check if we are compiled with -fno-exceptions or equivalent +#if defined(__EXCEPTIONS) || defined(__cpp_exceptions) || defined(_CPPUNWIND) +# define CATCH_INTERNAL_CONFIG_EXCEPTIONS_ENABLED +#endif + +//////////////////////////////////////////////////////////////////////////////// +// DJGPP +#ifdef __DJGPP__ +# define CATCH_INTERNAL_CONFIG_NO_WCHAR +#endif // __DJGPP__ + +//////////////////////////////////////////////////////////////////////////////// +// Embarcadero C++Build +#if defined(__BORLANDC__) + #define CATCH_INTERNAL_CONFIG_POLYFILL_ISNAN +#endif + +//////////////////////////////////////////////////////////////////////////////// + +// Use of __COUNTER__ is suppressed during code analysis in +// CLion/AppCode 2017.2.x and former, because __COUNTER__ is not properly +// handled by it. +// Otherwise all supported compilers support COUNTER macro, +// but user still might want to turn it off +#if ( !defined(__JETBRAINS_IDE__) || __JETBRAINS_IDE__ >= 20170300L ) + #define CATCH_INTERNAL_CONFIG_COUNTER +#endif + +//////////////////////////////////////////////////////////////////////////////// + +// RTX is a special version of Windows that is real time. +// This means that it is detected as Windows, but does not provide +// the same set of capabilities as real Windows does. +#if defined(UNDER_RTSS) || defined(RTX64_BUILD) + #define CATCH_INTERNAL_CONFIG_NO_WINDOWS_SEH + #define CATCH_INTERNAL_CONFIG_NO_ASYNC + #define CATCH_CONFIG_COLOUR_NONE +#endif + +#if !defined(_GLIBCXX_USE_C99_MATH_TR1) +#define CATCH_INTERNAL_CONFIG_GLOBAL_NEXTAFTER +#endif + +// Various stdlib support checks that require __has_include +#if defined(__has_include) + // Check if string_view is available and usable + #if __has_include(<string_view>) && defined(CATCH_CPP17_OR_GREATER) + # define CATCH_INTERNAL_CONFIG_CPP17_STRING_VIEW + #endif + + // Check if optional is available and usable + # if __has_include(<optional>) && defined(CATCH_CPP17_OR_GREATER) + # define CATCH_INTERNAL_CONFIG_CPP17_OPTIONAL + # endif // __has_include(<optional>) && defined(CATCH_CPP17_OR_GREATER) + + // Check if byte is available and usable + # if __has_include(<cstddef>) && defined(CATCH_CPP17_OR_GREATER) + # define CATCH_INTERNAL_CONFIG_CPP17_BYTE + # endif // __has_include(<cstddef>) && defined(CATCH_CPP17_OR_GREATER) + + // Check if variant is available and usable + # if __has_include(<variant>) && defined(CATCH_CPP17_OR_GREATER) + # if defined(__clang__) && (__clang_major__ < 8) + // work around clang bug with libstdc++ https://bugs.llvm.org/show_bug.cgi?id=31852 + // fix should be in clang 8, workaround in libstdc++ 8.2 + # include <ciso646> + # if defined(__GLIBCXX__) && defined(_GLIBCXX_RELEASE) && (_GLIBCXX_RELEASE < 9) + # define CATCH_CONFIG_NO_CPP17_VARIANT + # else + # define CATCH_INTERNAL_CONFIG_CPP17_VARIANT + # endif // defined(__GLIBCXX__) && defined(_GLIBCXX_RELEASE) && (_GLIBCXX_RELEASE < 9) + # else + # define CATCH_INTERNAL_CONFIG_CPP17_VARIANT + # endif // defined(__clang__) && (__clang_major__ < 8) + # endif // __has_include(<variant>) && defined(CATCH_CPP17_OR_GREATER) +#endif // defined(__has_include) + +#if defined(CATCH_INTERNAL_CONFIG_COUNTER) && !defined(CATCH_CONFIG_NO_COUNTER) && !defined(CATCH_CONFIG_COUNTER) +# define CATCH_CONFIG_COUNTER +#endif +#if defined(CATCH_INTERNAL_CONFIG_WINDOWS_SEH) && !defined(CATCH_CONFIG_NO_WINDOWS_SEH) && !defined(CATCH_CONFIG_WINDOWS_SEH) && !defined(CATCH_INTERNAL_CONFIG_NO_WINDOWS_SEH) +# define CATCH_CONFIG_WINDOWS_SEH +#endif +// This is set by default, because we assume that unix compilers are posix-signal-compatible by default. +#if defined(CATCH_INTERNAL_CONFIG_POSIX_SIGNALS) && !defined(CATCH_INTERNAL_CONFIG_NO_POSIX_SIGNALS) && !defined(CATCH_CONFIG_NO_POSIX_SIGNALS) && !defined(CATCH_CONFIG_POSIX_SIGNALS) +# define CATCH_CONFIG_POSIX_SIGNALS +#endif +// This is set by default, because we assume that compilers with no wchar_t support are just rare exceptions. +#if !defined(CATCH_INTERNAL_CONFIG_NO_WCHAR) && !defined(CATCH_CONFIG_NO_WCHAR) && !defined(CATCH_CONFIG_WCHAR) +# define CATCH_CONFIG_WCHAR +#endif + +#if !defined(CATCH_INTERNAL_CONFIG_NO_CPP11_TO_STRING) && !defined(CATCH_CONFIG_NO_CPP11_TO_STRING) && !defined(CATCH_CONFIG_CPP11_TO_STRING) +# define CATCH_CONFIG_CPP11_TO_STRING +#endif + +#if defined(CATCH_INTERNAL_CONFIG_CPP17_OPTIONAL) && !defined(CATCH_CONFIG_NO_CPP17_OPTIONAL) && !defined(CATCH_CONFIG_CPP17_OPTIONAL) +# define CATCH_CONFIG_CPP17_OPTIONAL +#endif + +#if defined(CATCH_INTERNAL_CONFIG_CPP17_UNCAUGHT_EXCEPTIONS) && !defined(CATCH_CONFIG_NO_CPP17_UNCAUGHT_EXCEPTIONS) && !defined(CATCH_CONFIG_CPP17_UNCAUGHT_EXCEPTIONS) +# define CATCH_CONFIG_CPP17_UNCAUGHT_EXCEPTIONS +#endif + +#if defined(CATCH_INTERNAL_CONFIG_CPP17_STRING_VIEW) && !defined(CATCH_CONFIG_NO_CPP17_STRING_VIEW) && !defined(CATCH_CONFIG_CPP17_STRING_VIEW) +# define CATCH_CONFIG_CPP17_STRING_VIEW +#endif + +#if defined(CATCH_INTERNAL_CONFIG_CPP17_VARIANT) && !defined(CATCH_CONFIG_NO_CPP17_VARIANT) && !defined(CATCH_CONFIG_CPP17_VARIANT) +# define CATCH_CONFIG_CPP17_VARIANT +#endif + +#if defined(CATCH_INTERNAL_CONFIG_CPP17_BYTE) && !defined(CATCH_CONFIG_NO_CPP17_BYTE) && !defined(CATCH_CONFIG_CPP17_BYTE) +# define CATCH_CONFIG_CPP17_BYTE +#endif + +#if defined(CATCH_CONFIG_EXPERIMENTAL_REDIRECT) +# define CATCH_INTERNAL_CONFIG_NEW_CAPTURE +#endif + +#if defined(CATCH_INTERNAL_CONFIG_NEW_CAPTURE) && !defined(CATCH_INTERNAL_CONFIG_NO_NEW_CAPTURE) && !defined(CATCH_CONFIG_NO_NEW_CAPTURE) && !defined(CATCH_CONFIG_NEW_CAPTURE) +# define CATCH_CONFIG_NEW_CAPTURE +#endif + +#if !defined(CATCH_INTERNAL_CONFIG_EXCEPTIONS_ENABLED) && !defined(CATCH_CONFIG_DISABLE_EXCEPTIONS) +# define CATCH_CONFIG_DISABLE_EXCEPTIONS +#endif + +#if defined(CATCH_INTERNAL_CONFIG_POLYFILL_ISNAN) && !defined(CATCH_CONFIG_NO_POLYFILL_ISNAN) && !defined(CATCH_CONFIG_POLYFILL_ISNAN) +# define CATCH_CONFIG_POLYFILL_ISNAN +#endif + +#if defined(CATCH_INTERNAL_CONFIG_USE_ASYNC) && !defined(CATCH_INTERNAL_CONFIG_NO_ASYNC) && !defined(CATCH_CONFIG_NO_USE_ASYNC) && !defined(CATCH_CONFIG_USE_ASYNC) +# define CATCH_CONFIG_USE_ASYNC +#endif + +#if defined(CATCH_INTERNAL_CONFIG_ANDROID_LOGWRITE) && !defined(CATCH_CONFIG_NO_ANDROID_LOGWRITE) && !defined(CATCH_CONFIG_ANDROID_LOGWRITE) +# define CATCH_CONFIG_ANDROID_LOGWRITE +#endif + +#if defined(CATCH_INTERNAL_CONFIG_GLOBAL_NEXTAFTER) && !defined(CATCH_CONFIG_NO_GLOBAL_NEXTAFTER) && !defined(CATCH_CONFIG_GLOBAL_NEXTAFTER) +# define CATCH_CONFIG_GLOBAL_NEXTAFTER +#endif + +// Even if we do not think the compiler has that warning, we still have +// to provide a macro that can be used by the code. +#if !defined(CATCH_INTERNAL_START_WARNINGS_SUPPRESSION) +# define CATCH_INTERNAL_START_WARNINGS_SUPPRESSION +#endif +#if !defined(CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION) +# define CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION +#endif +#if !defined(CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS) +# define CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS +#endif +#if !defined(CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS) +# define CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS +#endif +#if !defined(CATCH_INTERNAL_SUPPRESS_UNUSED_WARNINGS) +# define CATCH_INTERNAL_SUPPRESS_UNUSED_WARNINGS +#endif +#if !defined(CATCH_INTERNAL_SUPPRESS_ZERO_VARIADIC_WARNINGS) +# define CATCH_INTERNAL_SUPPRESS_ZERO_VARIADIC_WARNINGS +#endif + +// The goal of this macro is to avoid evaluation of the arguments, but +// still have the compiler warn on problems inside... +#if !defined(CATCH_INTERNAL_IGNORE_BUT_WARN) +# define CATCH_INTERNAL_IGNORE_BUT_WARN(...) +#endif + +#if defined(__APPLE__) && defined(__apple_build_version__) && (__clang_major__ < 10) +# undef CATCH_INTERNAL_SUPPRESS_UNUSED_TEMPLATE_WARNINGS +#elif defined(__clang__) && (__clang_major__ < 5) +# undef CATCH_INTERNAL_SUPPRESS_UNUSED_TEMPLATE_WARNINGS +#endif + +#if !defined(CATCH_INTERNAL_SUPPRESS_UNUSED_TEMPLATE_WARNINGS) +# define CATCH_INTERNAL_SUPPRESS_UNUSED_TEMPLATE_WARNINGS +#endif + +#if defined(CATCH_CONFIG_DISABLE_EXCEPTIONS) +#define CATCH_TRY if ((true)) +#define CATCH_CATCH_ALL if ((false)) +#define CATCH_CATCH_ANON(type) if ((false)) +#else +#define CATCH_TRY try +#define CATCH_CATCH_ALL catch (...) +#define CATCH_CATCH_ANON(type) catch (type) +#endif + +#if defined(CATCH_INTERNAL_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR) && !defined(CATCH_CONFIG_NO_TRADITIONAL_MSVC_PREPROCESSOR) && !defined(CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR) +#define CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR +#endif + +// end catch_compiler_capabilities.h +#define INTERNAL_CATCH_UNIQUE_NAME_LINE2( name, line ) name##line +#define INTERNAL_CATCH_UNIQUE_NAME_LINE( name, line ) INTERNAL_CATCH_UNIQUE_NAME_LINE2( name, line ) +#ifdef CATCH_CONFIG_COUNTER +# define INTERNAL_CATCH_UNIQUE_NAME( name ) INTERNAL_CATCH_UNIQUE_NAME_LINE( name, __COUNTER__ ) +#else +# define INTERNAL_CATCH_UNIQUE_NAME( name ) INTERNAL_CATCH_UNIQUE_NAME_LINE( name, __LINE__ ) +#endif + +#include <iosfwd> +#include <string> +#include <cstdint> + +// We need a dummy global operator<< so we can bring it into Catch namespace later +struct Catch_global_namespace_dummy {}; +std::ostream& operator<<(std::ostream&, Catch_global_namespace_dummy); + +namespace Catch { + + struct CaseSensitive { enum Choice { + Yes, + No + }; }; + + class NonCopyable { + NonCopyable( NonCopyable const& ) = delete; + NonCopyable( NonCopyable && ) = delete; + NonCopyable& operator = ( NonCopyable const& ) = delete; + NonCopyable& operator = ( NonCopyable && ) = delete; + + protected: + NonCopyable(); + virtual ~NonCopyable(); + }; + + struct SourceLineInfo { + + SourceLineInfo() = delete; + SourceLineInfo( char const* _file, std::size_t _line ) noexcept + : file( _file ), + line( _line ) + {} + + SourceLineInfo( SourceLineInfo const& other ) = default; + SourceLineInfo& operator = ( SourceLineInfo const& ) = default; + SourceLineInfo( SourceLineInfo&& ) noexcept = default; + SourceLineInfo& operator = ( SourceLineInfo&& ) noexcept = default; + + bool empty() const noexcept { return file[0] == '\0'; } + bool operator == ( SourceLineInfo const& other ) const noexcept; + bool operator < ( SourceLineInfo const& other ) const noexcept; + + char const* file; + std::size_t line; + }; + + std::ostream& operator << ( std::ostream& os, SourceLineInfo const& info ); + + // Bring in operator<< from global namespace into Catch namespace + // This is necessary because the overload of operator<< above makes + // lookup stop at namespace Catch + using ::operator<<; + + // Use this in variadic streaming macros to allow + // >> +StreamEndStop + // as well as + // >> stuff +StreamEndStop + struct StreamEndStop { + std::string operator+() const; + }; + template<typename T> + T const& operator + ( T const& value, StreamEndStop ) { + return value; + } +} + +#define CATCH_INTERNAL_LINEINFO \ + ::Catch::SourceLineInfo( __FILE__, static_cast<std::size_t>( __LINE__ ) ) + +// end catch_common.h +namespace Catch { + + struct RegistrarForTagAliases { + RegistrarForTagAliases( char const* alias, char const* tag, SourceLineInfo const& lineInfo ); + }; + +} // end namespace Catch + +#define CATCH_REGISTER_TAG_ALIAS( alias, spec ) \ + CATCH_INTERNAL_START_WARNINGS_SUPPRESSION \ + CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS \ + namespace{ Catch::RegistrarForTagAliases INTERNAL_CATCH_UNIQUE_NAME( AutoRegisterTagAlias )( alias, spec, CATCH_INTERNAL_LINEINFO ); } \ + CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION + +// end catch_tag_alias_autoregistrar.h +// start catch_test_registry.h + +// start catch_interfaces_testcase.h + +#include <vector> + +namespace Catch { + + class TestSpec; + + struct ITestInvoker { + virtual void invoke () const = 0; + virtual ~ITestInvoker(); + }; + + class TestCase; + struct IConfig; + + struct ITestCaseRegistry { + virtual ~ITestCaseRegistry(); + virtual std::vector<TestCase> const& getAllTests() const = 0; + virtual std::vector<TestCase> const& getAllTestsSorted( IConfig const& config ) const = 0; + }; + + bool isThrowSafe( TestCase const& testCase, IConfig const& config ); + bool matchTest( TestCase const& testCase, TestSpec const& testSpec, IConfig const& config ); + std::vector<TestCase> filterTests( std::vector<TestCase> const& testCases, TestSpec const& testSpec, IConfig const& config ); + std::vector<TestCase> const& getAllTestCasesSorted( IConfig const& config ); + +} + +// end catch_interfaces_testcase.h +// start catch_stringref.h + +#include <cstddef> +#include <string> +#include <iosfwd> +#include <cassert> + +namespace Catch { + + /// A non-owning string class (similar to the forthcoming std::string_view) + /// Note that, because a StringRef may be a substring of another string, + /// it may not be null terminated. + class StringRef { + public: + using size_type = std::size_t; + using const_iterator = const char*; + + private: + static constexpr char const* const s_empty = ""; + + char const* m_start = s_empty; + size_type m_size = 0; + + public: // construction + constexpr StringRef() noexcept = default; + + StringRef( char const* rawChars ) noexcept; + + constexpr StringRef( char const* rawChars, size_type size ) noexcept + : m_start( rawChars ), + m_size( size ) + {} + + StringRef( std::string const& stdString ) noexcept + : m_start( stdString.c_str() ), + m_size( stdString.size() ) + {} + + explicit operator std::string() const { + return std::string(m_start, m_size); + } + + public: // operators + auto operator == ( StringRef const& other ) const noexcept -> bool; + auto operator != (StringRef const& other) const noexcept -> bool { + return !(*this == other); + } + + auto operator[] ( size_type index ) const noexcept -> char { + assert(index < m_size); + return m_start[index]; + } + + public: // named queries + constexpr auto empty() const noexcept -> bool { + return m_size == 0; + } + constexpr auto size() const noexcept -> size_type { + return m_size; + } + + // Returns the current start pointer. If the StringRef is not + // null-terminated, throws std::domain_exception + auto c_str() const -> char const*; + + public: // substrings and searches + // Returns a substring of [start, start + length). + // If start + length > size(), then the substring is [start, size()). + // If start > size(), then the substring is empty. + auto substr( size_type start, size_type length ) const noexcept -> StringRef; + + // Returns the current start pointer. May not be null-terminated. + auto data() const noexcept -> char const*; + + constexpr auto isNullTerminated() const noexcept -> bool { + return m_start[m_size] == '\0'; + } + + public: // iterators + constexpr const_iterator begin() const { return m_start; } + constexpr const_iterator end() const { return m_start + m_size; } + }; + + auto operator += ( std::string& lhs, StringRef const& sr ) -> std::string&; + auto operator << ( std::ostream& os, StringRef const& sr ) -> std::ostream&; + + constexpr auto operator "" _sr( char const* rawChars, std::size_t size ) noexcept -> StringRef { + return StringRef( rawChars, size ); + } +} // namespace Catch + +constexpr auto operator "" _catch_sr( char const* rawChars, std::size_t size ) noexcept -> Catch::StringRef { + return Catch::StringRef( rawChars, size ); +} + +// end catch_stringref.h +// start catch_preprocessor.hpp + + +#define CATCH_RECURSION_LEVEL0(...) __VA_ARGS__ +#define CATCH_RECURSION_LEVEL1(...) CATCH_RECURSION_LEVEL0(CATCH_RECURSION_LEVEL0(CATCH_RECURSION_LEVEL0(__VA_ARGS__))) +#define CATCH_RECURSION_LEVEL2(...) CATCH_RECURSION_LEVEL1(CATCH_RECURSION_LEVEL1(CATCH_RECURSION_LEVEL1(__VA_ARGS__))) +#define CATCH_RECURSION_LEVEL3(...) CATCH_RECURSION_LEVEL2(CATCH_RECURSION_LEVEL2(CATCH_RECURSION_LEVEL2(__VA_ARGS__))) +#define CATCH_RECURSION_LEVEL4(...) CATCH_RECURSION_LEVEL3(CATCH_RECURSION_LEVEL3(CATCH_RECURSION_LEVEL3(__VA_ARGS__))) +#define CATCH_RECURSION_LEVEL5(...) CATCH_RECURSION_LEVEL4(CATCH_RECURSION_LEVEL4(CATCH_RECURSION_LEVEL4(__VA_ARGS__))) + +#ifdef CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR +#define INTERNAL_CATCH_EXPAND_VARGS(...) __VA_ARGS__ +// MSVC needs more evaluations +#define CATCH_RECURSION_LEVEL6(...) CATCH_RECURSION_LEVEL5(CATCH_RECURSION_LEVEL5(CATCH_RECURSION_LEVEL5(__VA_ARGS__))) +#define CATCH_RECURSE(...) CATCH_RECURSION_LEVEL6(CATCH_RECURSION_LEVEL6(__VA_ARGS__)) +#else +#define CATCH_RECURSE(...) CATCH_RECURSION_LEVEL5(__VA_ARGS__) +#endif + +#define CATCH_REC_END(...) +#define CATCH_REC_OUT + +#define CATCH_EMPTY() +#define CATCH_DEFER(id) id CATCH_EMPTY() + +#define CATCH_REC_GET_END2() 0, CATCH_REC_END +#define CATCH_REC_GET_END1(...) CATCH_REC_GET_END2 +#define CATCH_REC_GET_END(...) CATCH_REC_GET_END1 +#define CATCH_REC_NEXT0(test, next, ...) next CATCH_REC_OUT +#define CATCH_REC_NEXT1(test, next) CATCH_DEFER ( CATCH_REC_NEXT0 ) ( test, next, 0) +#define CATCH_REC_NEXT(test, next) CATCH_REC_NEXT1(CATCH_REC_GET_END test, next) + +#define CATCH_REC_LIST0(f, x, peek, ...) , f(x) CATCH_DEFER ( CATCH_REC_NEXT(peek, CATCH_REC_LIST1) ) ( f, peek, __VA_ARGS__ ) +#define CATCH_REC_LIST1(f, x, peek, ...) , f(x) CATCH_DEFER ( CATCH_REC_NEXT(peek, CATCH_REC_LIST0) ) ( f, peek, __VA_ARGS__ ) +#define CATCH_REC_LIST2(f, x, peek, ...) f(x) CATCH_DEFER ( CATCH_REC_NEXT(peek, CATCH_REC_LIST1) ) ( f, peek, __VA_ARGS__ ) + +#define CATCH_REC_LIST0_UD(f, userdata, x, peek, ...) , f(userdata, x) CATCH_DEFER ( CATCH_REC_NEXT(peek, CATCH_REC_LIST1_UD) ) ( f, userdata, peek, __VA_ARGS__ ) +#define CATCH_REC_LIST1_UD(f, userdata, x, peek, ...) , f(userdata, x) CATCH_DEFER ( CATCH_REC_NEXT(peek, CATCH_REC_LIST0_UD) ) ( f, userdata, peek, __VA_ARGS__ ) +#define CATCH_REC_LIST2_UD(f, userdata, x, peek, ...) f(userdata, x) CATCH_DEFER ( CATCH_REC_NEXT(peek, CATCH_REC_LIST1_UD) ) ( f, userdata, peek, __VA_ARGS__ ) + +// Applies the function macro `f` to each of the remaining parameters, inserts commas between the results, +// and passes userdata as the first parameter to each invocation, +// e.g. CATCH_REC_LIST_UD(f, x, a, b, c) evaluates to f(x, a), f(x, b), f(x, c) +#define CATCH_REC_LIST_UD(f, userdata, ...) CATCH_RECURSE(CATCH_REC_LIST2_UD(f, userdata, __VA_ARGS__, ()()(), ()()(), ()()(), 0)) + +#define CATCH_REC_LIST(f, ...) CATCH_RECURSE(CATCH_REC_LIST2(f, __VA_ARGS__, ()()(), ()()(), ()()(), 0)) + +#define INTERNAL_CATCH_EXPAND1(param) INTERNAL_CATCH_EXPAND2(param) +#define INTERNAL_CATCH_EXPAND2(...) INTERNAL_CATCH_NO## __VA_ARGS__ +#define INTERNAL_CATCH_DEF(...) INTERNAL_CATCH_DEF __VA_ARGS__ +#define INTERNAL_CATCH_NOINTERNAL_CATCH_DEF +#define INTERNAL_CATCH_STRINGIZE(...) INTERNAL_CATCH_STRINGIZE2(__VA_ARGS__) +#ifndef CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR +#define INTERNAL_CATCH_STRINGIZE2(...) #__VA_ARGS__ +#define INTERNAL_CATCH_STRINGIZE_WITHOUT_PARENS(param) INTERNAL_CATCH_STRINGIZE(INTERNAL_CATCH_REMOVE_PARENS(param)) +#else +// MSVC is adding extra space and needs another indirection to expand INTERNAL_CATCH_NOINTERNAL_CATCH_DEF +#define INTERNAL_CATCH_STRINGIZE2(...) INTERNAL_CATCH_STRINGIZE3(__VA_ARGS__) +#define INTERNAL_CATCH_STRINGIZE3(...) #__VA_ARGS__ +#define INTERNAL_CATCH_STRINGIZE_WITHOUT_PARENS(param) (INTERNAL_CATCH_STRINGIZE(INTERNAL_CATCH_REMOVE_PARENS(param)) + 1) +#endif + +#define INTERNAL_CATCH_MAKE_NAMESPACE2(...) ns_##__VA_ARGS__ +#define INTERNAL_CATCH_MAKE_NAMESPACE(name) INTERNAL_CATCH_MAKE_NAMESPACE2(name) + +#define INTERNAL_CATCH_REMOVE_PARENS(...) INTERNAL_CATCH_EXPAND1(INTERNAL_CATCH_DEF __VA_ARGS__) + +#ifndef CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR +#define INTERNAL_CATCH_MAKE_TYPE_LIST2(...) decltype(get_wrapper<INTERNAL_CATCH_REMOVE_PARENS_GEN(__VA_ARGS__)>()) +#define INTERNAL_CATCH_MAKE_TYPE_LIST(...) INTERNAL_CATCH_MAKE_TYPE_LIST2(INTERNAL_CATCH_REMOVE_PARENS(__VA_ARGS__)) +#else +#define INTERNAL_CATCH_MAKE_TYPE_LIST2(...) INTERNAL_CATCH_EXPAND_VARGS(decltype(get_wrapper<INTERNAL_CATCH_REMOVE_PARENS_GEN(__VA_ARGS__)>())) +#define INTERNAL_CATCH_MAKE_TYPE_LIST(...) INTERNAL_CATCH_EXPAND_VARGS(INTERNAL_CATCH_MAKE_TYPE_LIST2(INTERNAL_CATCH_REMOVE_PARENS(__VA_ARGS__))) +#endif + +#define INTERNAL_CATCH_MAKE_TYPE_LISTS_FROM_TYPES(...)\ + CATCH_REC_LIST(INTERNAL_CATCH_MAKE_TYPE_LIST,__VA_ARGS__) + +#define INTERNAL_CATCH_REMOVE_PARENS_1_ARG(_0) INTERNAL_CATCH_REMOVE_PARENS(_0) +#define INTERNAL_CATCH_REMOVE_PARENS_2_ARG(_0, _1) INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_1_ARG(_1) +#define INTERNAL_CATCH_REMOVE_PARENS_3_ARG(_0, _1, _2) INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_2_ARG(_1, _2) +#define INTERNAL_CATCH_REMOVE_PARENS_4_ARG(_0, _1, _2, _3) INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_3_ARG(_1, _2, _3) +#define INTERNAL_CATCH_REMOVE_PARENS_5_ARG(_0, _1, _2, _3, _4) INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_4_ARG(_1, _2, _3, _4) +#define INTERNAL_CATCH_REMOVE_PARENS_6_ARG(_0, _1, _2, _3, _4, _5) INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_5_ARG(_1, _2, _3, _4, _5) +#define INTERNAL_CATCH_REMOVE_PARENS_7_ARG(_0, _1, _2, _3, _4, _5, _6) INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_6_ARG(_1, _2, _4, _5, _6) +#define INTERNAL_CATCH_REMOVE_PARENS_8_ARG(_0, _1, _2, _3, _4, _5, _6, _7) INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_7_ARG(_1, _2, _3, _4, _5, _6, _7) +#define INTERNAL_CATCH_REMOVE_PARENS_9_ARG(_0, _1, _2, _3, _4, _5, _6, _7, _8) INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_8_ARG(_1, _2, _3, _4, _5, _6, _7, _8) +#define INTERNAL_CATCH_REMOVE_PARENS_10_ARG(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9) INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_9_ARG(_1, _2, _3, _4, _5, _6, _7, _8, _9) +#define INTERNAL_CATCH_REMOVE_PARENS_11_ARG(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10) INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_10_ARG(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10) + +#define INTERNAL_CATCH_VA_NARGS_IMPL(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, N, ...) N + +#define INTERNAL_CATCH_TYPE_GEN\ + template<typename...> struct TypeList {};\ + template<typename...Ts>\ + constexpr auto get_wrapper() noexcept -> TypeList<Ts...> { return {}; }\ + template<template<typename...> class...> struct TemplateTypeList{};\ + template<template<typename...> class...Cs>\ + constexpr auto get_wrapper() noexcept -> TemplateTypeList<Cs...> { return {}; }\ + template<typename...>\ + struct append;\ + template<typename...>\ + struct rewrap;\ + template<template<typename...> class, typename...>\ + struct create;\ + template<template<typename...> class, typename>\ + struct convert;\ + \ + template<typename T> \ + struct append<T> { using type = T; };\ + template< template<typename...> class L1, typename...E1, template<typename...> class L2, typename...E2, typename...Rest>\ + struct append<L1<E1...>, L2<E2...>, Rest...> { using type = typename append<L1<E1...,E2...>, Rest...>::type; };\ + template< template<typename...> class L1, typename...E1, typename...Rest>\ + struct append<L1<E1...>, TypeList<mpl_::na>, Rest...> { using type = L1<E1...>; };\ + \ + template< template<typename...> class Container, template<typename...> class List, typename...elems>\ + struct rewrap<TemplateTypeList<Container>, List<elems...>> { using type = TypeList<Container<elems...>>; };\ + template< template<typename...> class Container, template<typename...> class List, class...Elems, typename...Elements>\ + struct rewrap<TemplateTypeList<Container>, List<Elems...>, Elements...> { using type = typename append<TypeList<Container<Elems...>>, typename rewrap<TemplateTypeList<Container>, Elements...>::type>::type; };\ + \ + template<template <typename...> class Final, template< typename...> class...Containers, typename...Types>\ + struct create<Final, TemplateTypeList<Containers...>, TypeList<Types...>> { using type = typename append<Final<>, typename rewrap<TemplateTypeList<Containers>, Types...>::type...>::type; };\ + template<template <typename...> class Final, template <typename...> class List, typename...Ts>\ + struct convert<Final, List<Ts...>> { using type = typename append<Final<>,TypeList<Ts>...>::type; }; + +#define INTERNAL_CATCH_NTTP_1(signature, ...)\ + template<INTERNAL_CATCH_REMOVE_PARENS(signature)> struct Nttp{};\ + template<INTERNAL_CATCH_REMOVE_PARENS(signature)>\ + constexpr auto get_wrapper() noexcept -> Nttp<__VA_ARGS__> { return {}; } \ + template<template<INTERNAL_CATCH_REMOVE_PARENS(signature)> class...> struct NttpTemplateTypeList{};\ + template<template<INTERNAL_CATCH_REMOVE_PARENS(signature)> class...Cs>\ + constexpr auto get_wrapper() noexcept -> NttpTemplateTypeList<Cs...> { return {}; } \ + \ + template< template<INTERNAL_CATCH_REMOVE_PARENS(signature)> class Container, template<INTERNAL_CATCH_REMOVE_PARENS(signature)> class List, INTERNAL_CATCH_REMOVE_PARENS(signature)>\ + struct rewrap<NttpTemplateTypeList<Container>, List<__VA_ARGS__>> { using type = TypeList<Container<__VA_ARGS__>>; };\ + template< template<INTERNAL_CATCH_REMOVE_PARENS(signature)> class Container, template<INTERNAL_CATCH_REMOVE_PARENS(signature)> class List, INTERNAL_CATCH_REMOVE_PARENS(signature), typename...Elements>\ + struct rewrap<NttpTemplateTypeList<Container>, List<__VA_ARGS__>, Elements...> { using type = typename append<TypeList<Container<__VA_ARGS__>>, typename rewrap<NttpTemplateTypeList<Container>, Elements...>::type>::type; };\ + template<template <typename...> class Final, template<INTERNAL_CATCH_REMOVE_PARENS(signature)> class...Containers, typename...Types>\ + struct create<Final, NttpTemplateTypeList<Containers...>, TypeList<Types...>> { using type = typename append<Final<>, typename rewrap<NttpTemplateTypeList<Containers>, Types...>::type...>::type; }; + +#define INTERNAL_CATCH_DECLARE_SIG_TEST0(TestName) +#define INTERNAL_CATCH_DECLARE_SIG_TEST1(TestName, signature)\ + template<INTERNAL_CATCH_REMOVE_PARENS(signature)>\ + static void TestName() +#define INTERNAL_CATCH_DECLARE_SIG_TEST_X(TestName, signature, ...)\ + template<INTERNAL_CATCH_REMOVE_PARENS(signature)>\ + static void TestName() + +#define INTERNAL_CATCH_DEFINE_SIG_TEST0(TestName) +#define INTERNAL_CATCH_DEFINE_SIG_TEST1(TestName, signature)\ + template<INTERNAL_CATCH_REMOVE_PARENS(signature)>\ + static void TestName() +#define INTERNAL_CATCH_DEFINE_SIG_TEST_X(TestName, signature,...)\ + template<INTERNAL_CATCH_REMOVE_PARENS(signature)>\ + static void TestName() + +#define INTERNAL_CATCH_NTTP_REGISTER0(TestFunc, signature)\ + template<typename Type>\ + void reg_test(TypeList<Type>, Catch::NameAndTags nameAndTags)\ + {\ + Catch::AutoReg( Catch::makeTestInvoker(&TestFunc<Type>), CATCH_INTERNAL_LINEINFO, Catch::StringRef(), nameAndTags);\ + } + +#define INTERNAL_CATCH_NTTP_REGISTER(TestFunc, signature, ...)\ + template<INTERNAL_CATCH_REMOVE_PARENS(signature)>\ + void reg_test(Nttp<__VA_ARGS__>, Catch::NameAndTags nameAndTags)\ + {\ + Catch::AutoReg( Catch::makeTestInvoker(&TestFunc<__VA_ARGS__>), CATCH_INTERNAL_LINEINFO, Catch::StringRef(), nameAndTags);\ + } + +#define INTERNAL_CATCH_NTTP_REGISTER_METHOD0(TestName, signature, ...)\ + template<typename Type>\ + void reg_test(TypeList<Type>, Catch::StringRef className, Catch::NameAndTags nameAndTags)\ + {\ + Catch::AutoReg( Catch::makeTestInvoker(&TestName<Type>::test), CATCH_INTERNAL_LINEINFO, className, nameAndTags);\ + } + +#define INTERNAL_CATCH_NTTP_REGISTER_METHOD(TestName, signature, ...)\ + template<INTERNAL_CATCH_REMOVE_PARENS(signature)>\ + void reg_test(Nttp<__VA_ARGS__>, Catch::StringRef className, Catch::NameAndTags nameAndTags)\ + {\ + Catch::AutoReg( Catch::makeTestInvoker(&TestName<__VA_ARGS__>::test), CATCH_INTERNAL_LINEINFO, className, nameAndTags);\ + } + +#define INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD0(TestName, ClassName) +#define INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD1(TestName, ClassName, signature)\ + template<typename TestType> \ + struct TestName : INTERNAL_CATCH_REMOVE_PARENS(ClassName)<TestType> { \ + void test();\ + } + +#define INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD_X(TestName, ClassName, signature, ...)\ + template<INTERNAL_CATCH_REMOVE_PARENS(signature)> \ + struct TestName : INTERNAL_CATCH_REMOVE_PARENS(ClassName)<__VA_ARGS__> { \ + void test();\ + } + +#define INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD0(TestName) +#define INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD1(TestName, signature)\ + template<typename TestType> \ + void INTERNAL_CATCH_MAKE_NAMESPACE(TestName)::TestName<TestType>::test() +#define INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD_X(TestName, signature, ...)\ + template<INTERNAL_CATCH_REMOVE_PARENS(signature)> \ + void INTERNAL_CATCH_MAKE_NAMESPACE(TestName)::TestName<__VA_ARGS__>::test() + +#ifndef CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR +#define INTERNAL_CATCH_NTTP_0 +#define INTERNAL_CATCH_NTTP_GEN(...) INTERNAL_CATCH_VA_NARGS_IMPL(__VA_ARGS__, INTERNAL_CATCH_NTTP_1(__VA_ARGS__), INTERNAL_CATCH_NTTP_1(__VA_ARGS__), INTERNAL_CATCH_NTTP_1(__VA_ARGS__), INTERNAL_CATCH_NTTP_1(__VA_ARGS__), INTERNAL_CATCH_NTTP_1(__VA_ARGS__), INTERNAL_CATCH_NTTP_1( __VA_ARGS__), INTERNAL_CATCH_NTTP_1( __VA_ARGS__), INTERNAL_CATCH_NTTP_1( __VA_ARGS__), INTERNAL_CATCH_NTTP_1( __VA_ARGS__),INTERNAL_CATCH_NTTP_1( __VA_ARGS__), INTERNAL_CATCH_NTTP_0) +#define INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD(TestName, ...) INTERNAL_CATCH_VA_NARGS_IMPL( "dummy", __VA_ARGS__, INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD_X,INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD_X, INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD_X, INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD_X, INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD_X, INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD_X, INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD_X,INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD_X,INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD_X, INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD1, INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD0)(TestName, __VA_ARGS__) +#define INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD(TestName, ClassName, ...) INTERNAL_CATCH_VA_NARGS_IMPL( "dummy", __VA_ARGS__, INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD_X,INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD_X, INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD_X, INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD_X, INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD_X, INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD_X, INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD_X,INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD_X,INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD_X, INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD1, INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD0)(TestName, ClassName, __VA_ARGS__) +#define INTERNAL_CATCH_NTTP_REG_METHOD_GEN(TestName, ...) INTERNAL_CATCH_VA_NARGS_IMPL( "dummy", __VA_ARGS__, INTERNAL_CATCH_NTTP_REGISTER_METHOD, INTERNAL_CATCH_NTTP_REGISTER_METHOD, INTERNAL_CATCH_NTTP_REGISTER_METHOD, INTERNAL_CATCH_NTTP_REGISTER_METHOD, INTERNAL_CATCH_NTTP_REGISTER_METHOD, INTERNAL_CATCH_NTTP_REGISTER_METHOD, INTERNAL_CATCH_NTTP_REGISTER_METHOD, INTERNAL_CATCH_NTTP_REGISTER_METHOD, INTERNAL_CATCH_NTTP_REGISTER_METHOD, INTERNAL_CATCH_NTTP_REGISTER_METHOD0, INTERNAL_CATCH_NTTP_REGISTER_METHOD0)(TestName, __VA_ARGS__) +#define INTERNAL_CATCH_NTTP_REG_GEN(TestFunc, ...) INTERNAL_CATCH_VA_NARGS_IMPL( "dummy", __VA_ARGS__, INTERNAL_CATCH_NTTP_REGISTER, INTERNAL_CATCH_NTTP_REGISTER, INTERNAL_CATCH_NTTP_REGISTER, INTERNAL_CATCH_NTTP_REGISTER, INTERNAL_CATCH_NTTP_REGISTER, INTERNAL_CATCH_NTTP_REGISTER, INTERNAL_CATCH_NTTP_REGISTER, INTERNAL_CATCH_NTTP_REGISTER, INTERNAL_CATCH_NTTP_REGISTER, INTERNAL_CATCH_NTTP_REGISTER0, INTERNAL_CATCH_NTTP_REGISTER0)(TestFunc, __VA_ARGS__) +#define INTERNAL_CATCH_DEFINE_SIG_TEST(TestName, ...) INTERNAL_CATCH_VA_NARGS_IMPL( "dummy", __VA_ARGS__, INTERNAL_CATCH_DEFINE_SIG_TEST_X, INTERNAL_CATCH_DEFINE_SIG_TEST_X, INTERNAL_CATCH_DEFINE_SIG_TEST_X, INTERNAL_CATCH_DEFINE_SIG_TEST_X, INTERNAL_CATCH_DEFINE_SIG_TEST_X, INTERNAL_CATCH_DEFINE_SIG_TEST_X, INTERNAL_CATCH_DEFINE_SIG_TEST_X, INTERNAL_CATCH_DEFINE_SIG_TEST_X,INTERNAL_CATCH_DEFINE_SIG_TEST_X,INTERNAL_CATCH_DEFINE_SIG_TEST1, INTERNAL_CATCH_DEFINE_SIG_TEST0)(TestName, __VA_ARGS__) +#define INTERNAL_CATCH_DECLARE_SIG_TEST(TestName, ...) INTERNAL_CATCH_VA_NARGS_IMPL( "dummy", __VA_ARGS__, INTERNAL_CATCH_DECLARE_SIG_TEST_X,INTERNAL_CATCH_DECLARE_SIG_TEST_X, INTERNAL_CATCH_DECLARE_SIG_TEST_X, INTERNAL_CATCH_DECLARE_SIG_TEST_X, INTERNAL_CATCH_DECLARE_SIG_TEST_X, INTERNAL_CATCH_DECLARE_SIG_TEST_X, INTERNAL_CATCH_DEFINE_SIG_TEST_X,INTERNAL_CATCH_DECLARE_SIG_TEST_X,INTERNAL_CATCH_DECLARE_SIG_TEST_X, INTERNAL_CATCH_DECLARE_SIG_TEST1, INTERNAL_CATCH_DECLARE_SIG_TEST0)(TestName, __VA_ARGS__) +#define INTERNAL_CATCH_REMOVE_PARENS_GEN(...) INTERNAL_CATCH_VA_NARGS_IMPL(__VA_ARGS__, INTERNAL_CATCH_REMOVE_PARENS_11_ARG,INTERNAL_CATCH_REMOVE_PARENS_10_ARG,INTERNAL_CATCH_REMOVE_PARENS_9_ARG,INTERNAL_CATCH_REMOVE_PARENS_8_ARG,INTERNAL_CATCH_REMOVE_PARENS_7_ARG,INTERNAL_CATCH_REMOVE_PARENS_6_ARG,INTERNAL_CATCH_REMOVE_PARENS_5_ARG,INTERNAL_CATCH_REMOVE_PARENS_4_ARG,INTERNAL_CATCH_REMOVE_PARENS_3_ARG,INTERNAL_CATCH_REMOVE_PARENS_2_ARG,INTERNAL_CATCH_REMOVE_PARENS_1_ARG)(__VA_ARGS__) +#else +#define INTERNAL_CATCH_NTTP_0(signature) +#define INTERNAL_CATCH_NTTP_GEN(...) INTERNAL_CATCH_EXPAND_VARGS(INTERNAL_CATCH_VA_NARGS_IMPL(__VA_ARGS__, INTERNAL_CATCH_NTTP_1, INTERNAL_CATCH_NTTP_1, INTERNAL_CATCH_NTTP_1, INTERNAL_CATCH_NTTP_1, INTERNAL_CATCH_NTTP_1, INTERNAL_CATCH_NTTP_1, INTERNAL_CATCH_NTTP_1, INTERNAL_CATCH_NTTP_1, INTERNAL_CATCH_NTTP_1,INTERNAL_CATCH_NTTP_1, INTERNAL_CATCH_NTTP_0)( __VA_ARGS__)) +#define INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD(TestName, ...) INTERNAL_CATCH_EXPAND_VARGS(INTERNAL_CATCH_VA_NARGS_IMPL( "dummy", __VA_ARGS__, INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD_X,INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD_X, INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD_X, INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD_X, INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD_X, INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD_X, INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD_X,INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD_X,INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD_X, INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD1, INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD0)(TestName, __VA_ARGS__)) +#define INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD(TestName, ClassName, ...) INTERNAL_CATCH_EXPAND_VARGS(INTERNAL_CATCH_VA_NARGS_IMPL( "dummy", __VA_ARGS__, INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD_X,INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD_X, INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD_X, INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD_X, INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD_X, INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD_X, INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD_X,INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD_X,INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD_X, INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD1, INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD0)(TestName, ClassName, __VA_ARGS__)) +#define INTERNAL_CATCH_NTTP_REG_METHOD_GEN(TestName, ...) INTERNAL_CATCH_EXPAND_VARGS(INTERNAL_CATCH_VA_NARGS_IMPL( "dummy", __VA_ARGS__, INTERNAL_CATCH_NTTP_REGISTER_METHOD, INTERNAL_CATCH_NTTP_REGISTER_METHOD, INTERNAL_CATCH_NTTP_REGISTER_METHOD, INTERNAL_CATCH_NTTP_REGISTER_METHOD, INTERNAL_CATCH_NTTP_REGISTER_METHOD, INTERNAL_CATCH_NTTP_REGISTER_METHOD, INTERNAL_CATCH_NTTP_REGISTER_METHOD, INTERNAL_CATCH_NTTP_REGISTER_METHOD, INTERNAL_CATCH_NTTP_REGISTER_METHOD, INTERNAL_CATCH_NTTP_REGISTER_METHOD0, INTERNAL_CATCH_NTTP_REGISTER_METHOD0)(TestName, __VA_ARGS__)) +#define INTERNAL_CATCH_NTTP_REG_GEN(TestFunc, ...) INTERNAL_CATCH_EXPAND_VARGS(INTERNAL_CATCH_VA_NARGS_IMPL( "dummy", __VA_ARGS__, INTERNAL_CATCH_NTTP_REGISTER, INTERNAL_CATCH_NTTP_REGISTER, INTERNAL_CATCH_NTTP_REGISTER, INTERNAL_CATCH_NTTP_REGISTER, INTERNAL_CATCH_NTTP_REGISTER, INTERNAL_CATCH_NTTP_REGISTER, INTERNAL_CATCH_NTTP_REGISTER, INTERNAL_CATCH_NTTP_REGISTER, INTERNAL_CATCH_NTTP_REGISTER, INTERNAL_CATCH_NTTP_REGISTER0, INTERNAL_CATCH_NTTP_REGISTER0)(TestFunc, __VA_ARGS__)) +#define INTERNAL_CATCH_DEFINE_SIG_TEST(TestName, ...) INTERNAL_CATCH_EXPAND_VARGS(INTERNAL_CATCH_VA_NARGS_IMPL( "dummy", __VA_ARGS__, INTERNAL_CATCH_DEFINE_SIG_TEST_X, INTERNAL_CATCH_DEFINE_SIG_TEST_X, INTERNAL_CATCH_DEFINE_SIG_TEST_X, INTERNAL_CATCH_DEFINE_SIG_TEST_X, INTERNAL_CATCH_DEFINE_SIG_TEST_X, INTERNAL_CATCH_DEFINE_SIG_TEST_X, INTERNAL_CATCH_DEFINE_SIG_TEST_X, INTERNAL_CATCH_DEFINE_SIG_TEST_X,INTERNAL_CATCH_DEFINE_SIG_TEST_X,INTERNAL_CATCH_DEFINE_SIG_TEST1, INTERNAL_CATCH_DEFINE_SIG_TEST0)(TestName, __VA_ARGS__)) +#define INTERNAL_CATCH_DECLARE_SIG_TEST(TestName, ...) INTERNAL_CATCH_EXPAND_VARGS(INTERNAL_CATCH_VA_NARGS_IMPL( "dummy", __VA_ARGS__, INTERNAL_CATCH_DECLARE_SIG_TEST_X,INTERNAL_CATCH_DECLARE_SIG_TEST_X, INTERNAL_CATCH_DECLARE_SIG_TEST_X, INTERNAL_CATCH_DECLARE_SIG_TEST_X, INTERNAL_CATCH_DECLARE_SIG_TEST_X, INTERNAL_CATCH_DECLARE_SIG_TEST_X, INTERNAL_CATCH_DEFINE_SIG_TEST_X,INTERNAL_CATCH_DECLARE_SIG_TEST_X,INTERNAL_CATCH_DECLARE_SIG_TEST_X, INTERNAL_CATCH_DECLARE_SIG_TEST1, INTERNAL_CATCH_DECLARE_SIG_TEST0)(TestName, __VA_ARGS__)) +#define INTERNAL_CATCH_REMOVE_PARENS_GEN(...) INTERNAL_CATCH_EXPAND_VARGS(INTERNAL_CATCH_VA_NARGS_IMPL(__VA_ARGS__, INTERNAL_CATCH_REMOVE_PARENS_11_ARG,INTERNAL_CATCH_REMOVE_PARENS_10_ARG,INTERNAL_CATCH_REMOVE_PARENS_9_ARG,INTERNAL_CATCH_REMOVE_PARENS_8_ARG,INTERNAL_CATCH_REMOVE_PARENS_7_ARG,INTERNAL_CATCH_REMOVE_PARENS_6_ARG,INTERNAL_CATCH_REMOVE_PARENS_5_ARG,INTERNAL_CATCH_REMOVE_PARENS_4_ARG,INTERNAL_CATCH_REMOVE_PARENS_3_ARG,INTERNAL_CATCH_REMOVE_PARENS_2_ARG,INTERNAL_CATCH_REMOVE_PARENS_1_ARG)(__VA_ARGS__)) +#endif + +// end catch_preprocessor.hpp +// start catch_meta.hpp + + +#include <type_traits> + +namespace Catch { + template<typename T> + struct always_false : std::false_type {}; + + template <typename> struct true_given : std::true_type {}; + struct is_callable_tester { + template <typename Fun, typename... Args> + true_given<decltype(std::declval<Fun>()(std::declval<Args>()...))> static test(int); + template <typename...> + std::false_type static test(...); + }; + + template <typename T> + struct is_callable; + + template <typename Fun, typename... Args> + struct is_callable<Fun(Args...)> : decltype(is_callable_tester::test<Fun, Args...>(0)) {}; + +#if defined(__cpp_lib_is_invocable) && __cpp_lib_is_invocable >= 201703 + // std::result_of is deprecated in C++17 and removed in C++20. Hence, it is + // replaced with std::invoke_result here. Also *_t format is preferred over + // typename *::type format. + template <typename Func, typename U> + using FunctionReturnType = std::remove_reference_t<std::remove_cv_t<std::invoke_result_t<Func, U>>>; +#else + template <typename Func, typename U> + using FunctionReturnType = typename std::remove_reference<typename std::remove_cv<typename std::result_of<Func(U)>::type>::type>::type; +#endif + +} // namespace Catch + +namespace mpl_{ + struct na; +} + +// end catch_meta.hpp +namespace Catch { + +template<typename C> +class TestInvokerAsMethod : public ITestInvoker { + void (C::*m_testAsMethod)(); +public: + TestInvokerAsMethod( void (C::*testAsMethod)() ) noexcept : m_testAsMethod( testAsMethod ) {} + + void invoke() const override { + C obj; + (obj.*m_testAsMethod)(); + } +}; + +auto makeTestInvoker( void(*testAsFunction)() ) noexcept -> ITestInvoker*; + +template<typename C> +auto makeTestInvoker( void (C::*testAsMethod)() ) noexcept -> ITestInvoker* { + return new(std::nothrow) TestInvokerAsMethod<C>( testAsMethod ); +} + +struct NameAndTags { + NameAndTags( StringRef const& name_ = StringRef(), StringRef const& tags_ = StringRef() ) noexcept; + StringRef name; + StringRef tags; +}; + +struct AutoReg : NonCopyable { + AutoReg( ITestInvoker* invoker, SourceLineInfo const& lineInfo, StringRef const& classOrMethod, NameAndTags const& nameAndTags ) noexcept; + ~AutoReg(); +}; + +} // end namespace Catch + +#if defined(CATCH_CONFIG_DISABLE) + #define INTERNAL_CATCH_TESTCASE_NO_REGISTRATION( TestName, ... ) \ + static void TestName() + #define INTERNAL_CATCH_TESTCASE_METHOD_NO_REGISTRATION( TestName, ClassName, ... ) \ + namespace{ \ + struct TestName : INTERNAL_CATCH_REMOVE_PARENS(ClassName) { \ + void test(); \ + }; \ + } \ + void TestName::test() + #define INTERNAL_CATCH_TEMPLATE_TEST_CASE_NO_REGISTRATION_2( TestName, TestFunc, Name, Tags, Signature, ... ) \ + INTERNAL_CATCH_DEFINE_SIG_TEST(TestFunc, INTERNAL_CATCH_REMOVE_PARENS(Signature)) + #define INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_NO_REGISTRATION_2( TestNameClass, TestName, ClassName, Name, Tags, Signature, ... ) \ + namespace{ \ + namespace INTERNAL_CATCH_MAKE_NAMESPACE(TestName) { \ + INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD(TestName, ClassName, INTERNAL_CATCH_REMOVE_PARENS(Signature));\ + } \ + } \ + INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD(TestName, INTERNAL_CATCH_REMOVE_PARENS(Signature)) + + #ifndef CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR + #define INTERNAL_CATCH_TEMPLATE_TEST_CASE_NO_REGISTRATION(Name, Tags, ...) \ + INTERNAL_CATCH_TEMPLATE_TEST_CASE_NO_REGISTRATION_2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____F_U_N_C____ ), Name, Tags, typename TestType, __VA_ARGS__ ) + #else + #define INTERNAL_CATCH_TEMPLATE_TEST_CASE_NO_REGISTRATION(Name, Tags, ...) \ + INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_TEST_CASE_NO_REGISTRATION_2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____F_U_N_C____ ), Name, Tags, typename TestType, __VA_ARGS__ ) ) + #endif + + #ifndef CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR + #define INTERNAL_CATCH_TEMPLATE_TEST_CASE_SIG_NO_REGISTRATION(Name, Tags, Signature, ...) \ + INTERNAL_CATCH_TEMPLATE_TEST_CASE_NO_REGISTRATION_2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____F_U_N_C____ ), Name, Tags, Signature, __VA_ARGS__ ) + #else + #define INTERNAL_CATCH_TEMPLATE_TEST_CASE_SIG_NO_REGISTRATION(Name, Tags, Signature, ...) \ + INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_TEST_CASE_NO_REGISTRATION_2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____F_U_N_C____ ), Name, Tags, Signature, __VA_ARGS__ ) ) + #endif + + #ifndef CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR + #define INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_NO_REGISTRATION( ClassName, Name, Tags,... ) \ + INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_NO_REGISTRATION_2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____C_L_A_S_S____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ) , ClassName, Name, Tags, typename T, __VA_ARGS__ ) + #else + #define INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_NO_REGISTRATION( ClassName, Name, Tags,... ) \ + INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_NO_REGISTRATION_2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____C_L_A_S_S____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ) , ClassName, Name, Tags, typename T, __VA_ARGS__ ) ) + #endif + + #ifndef CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR + #define INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_SIG_NO_REGISTRATION( ClassName, Name, Tags, Signature, ... ) \ + INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_NO_REGISTRATION_2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____C_L_A_S_S____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ) , ClassName, Name, Tags, Signature, __VA_ARGS__ ) + #else + #define INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_SIG_NO_REGISTRATION( ClassName, Name, Tags, Signature, ... ) \ + INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_NO_REGISTRATION_2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____C_L_A_S_S____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ) , ClassName, Name, Tags, Signature, __VA_ARGS__ ) ) + #endif +#endif + + /////////////////////////////////////////////////////////////////////////////// + #define INTERNAL_CATCH_TESTCASE2( TestName, ... ) \ + static void TestName(); \ + CATCH_INTERNAL_START_WARNINGS_SUPPRESSION \ + CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS \ + namespace{ Catch::AutoReg INTERNAL_CATCH_UNIQUE_NAME( autoRegistrar )( Catch::makeTestInvoker( &TestName ), CATCH_INTERNAL_LINEINFO, Catch::StringRef(), Catch::NameAndTags{ __VA_ARGS__ } ); } /* NOLINT */ \ + CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION \ + static void TestName() + #define INTERNAL_CATCH_TESTCASE( ... ) \ + INTERNAL_CATCH_TESTCASE2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ ), __VA_ARGS__ ) + + /////////////////////////////////////////////////////////////////////////////// + #define INTERNAL_CATCH_METHOD_AS_TEST_CASE( QualifiedMethod, ... ) \ + CATCH_INTERNAL_START_WARNINGS_SUPPRESSION \ + CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS \ + namespace{ Catch::AutoReg INTERNAL_CATCH_UNIQUE_NAME( autoRegistrar )( Catch::makeTestInvoker( &QualifiedMethod ), CATCH_INTERNAL_LINEINFO, "&" #QualifiedMethod, Catch::NameAndTags{ __VA_ARGS__ } ); } /* NOLINT */ \ + CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION + + /////////////////////////////////////////////////////////////////////////////// + #define INTERNAL_CATCH_TEST_CASE_METHOD2( TestName, ClassName, ... )\ + CATCH_INTERNAL_START_WARNINGS_SUPPRESSION \ + CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS \ + namespace{ \ + struct TestName : INTERNAL_CATCH_REMOVE_PARENS(ClassName) { \ + void test(); \ + }; \ + Catch::AutoReg INTERNAL_CATCH_UNIQUE_NAME( autoRegistrar ) ( Catch::makeTestInvoker( &TestName::test ), CATCH_INTERNAL_LINEINFO, #ClassName, Catch::NameAndTags{ __VA_ARGS__ } ); /* NOLINT */ \ + } \ + CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION \ + void TestName::test() + #define INTERNAL_CATCH_TEST_CASE_METHOD( ClassName, ... ) \ + INTERNAL_CATCH_TEST_CASE_METHOD2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ ), ClassName, __VA_ARGS__ ) + + /////////////////////////////////////////////////////////////////////////////// + #define INTERNAL_CATCH_REGISTER_TESTCASE( Function, ... ) \ + CATCH_INTERNAL_START_WARNINGS_SUPPRESSION \ + CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS \ + Catch::AutoReg INTERNAL_CATCH_UNIQUE_NAME( autoRegistrar )( Catch::makeTestInvoker( Function ), CATCH_INTERNAL_LINEINFO, Catch::StringRef(), Catch::NameAndTags{ __VA_ARGS__ } ); /* NOLINT */ \ + CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION + + /////////////////////////////////////////////////////////////////////////////// + #define INTERNAL_CATCH_TEMPLATE_TEST_CASE_2(TestName, TestFunc, Name, Tags, Signature, ... )\ + CATCH_INTERNAL_START_WARNINGS_SUPPRESSION \ + CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS \ + CATCH_INTERNAL_SUPPRESS_ZERO_VARIADIC_WARNINGS \ + CATCH_INTERNAL_SUPPRESS_UNUSED_TEMPLATE_WARNINGS \ + INTERNAL_CATCH_DECLARE_SIG_TEST(TestFunc, INTERNAL_CATCH_REMOVE_PARENS(Signature));\ + namespace {\ + namespace INTERNAL_CATCH_MAKE_NAMESPACE(TestName){\ + INTERNAL_CATCH_TYPE_GEN\ + INTERNAL_CATCH_NTTP_GEN(INTERNAL_CATCH_REMOVE_PARENS(Signature))\ + INTERNAL_CATCH_NTTP_REG_GEN(TestFunc,INTERNAL_CATCH_REMOVE_PARENS(Signature))\ + template<typename...Types> \ + struct TestName{\ + TestName(){\ + int index = 0; \ + constexpr char const* tmpl_types[] = {CATCH_REC_LIST(INTERNAL_CATCH_STRINGIZE_WITHOUT_PARENS, __VA_ARGS__)};\ + using expander = int[];\ + (void)expander{(reg_test(Types{}, Catch::NameAndTags{ Name " - " + std::string(tmpl_types[index]), Tags } ), index++, 0)... };/* NOLINT */ \ + }\ + };\ + static int INTERNAL_CATCH_UNIQUE_NAME( globalRegistrar ) = [](){\ + TestName<INTERNAL_CATCH_MAKE_TYPE_LISTS_FROM_TYPES(__VA_ARGS__)>();\ + return 0;\ + }();\ + }\ + }\ + CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION \ + INTERNAL_CATCH_DEFINE_SIG_TEST(TestFunc,INTERNAL_CATCH_REMOVE_PARENS(Signature)) + +#ifndef CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR + #define INTERNAL_CATCH_TEMPLATE_TEST_CASE(Name, Tags, ...) \ + INTERNAL_CATCH_TEMPLATE_TEST_CASE_2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____F_U_N_C____ ), Name, Tags, typename TestType, __VA_ARGS__ ) +#else + #define INTERNAL_CATCH_TEMPLATE_TEST_CASE(Name, Tags, ...) \ + INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_TEST_CASE_2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____F_U_N_C____ ), Name, Tags, typename TestType, __VA_ARGS__ ) ) +#endif + +#ifndef CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR + #define INTERNAL_CATCH_TEMPLATE_TEST_CASE_SIG(Name, Tags, Signature, ...) \ + INTERNAL_CATCH_TEMPLATE_TEST_CASE_2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____F_U_N_C____ ), Name, Tags, Signature, __VA_ARGS__ ) +#else + #define INTERNAL_CATCH_TEMPLATE_TEST_CASE_SIG(Name, Tags, Signature, ...) \ + INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_TEST_CASE_2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____F_U_N_C____ ), Name, Tags, Signature, __VA_ARGS__ ) ) +#endif + + #define INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE2(TestName, TestFuncName, Name, Tags, Signature, TmplTypes, TypesList) \ + CATCH_INTERNAL_START_WARNINGS_SUPPRESSION \ + CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS \ + CATCH_INTERNAL_SUPPRESS_ZERO_VARIADIC_WARNINGS \ + CATCH_INTERNAL_SUPPRESS_UNUSED_TEMPLATE_WARNINGS \ + template<typename TestType> static void TestFuncName(); \ + namespace {\ + namespace INTERNAL_CATCH_MAKE_NAMESPACE(TestName) { \ + INTERNAL_CATCH_TYPE_GEN \ + INTERNAL_CATCH_NTTP_GEN(INTERNAL_CATCH_REMOVE_PARENS(Signature)) \ + template<typename... Types> \ + struct TestName { \ + void reg_tests() { \ + int index = 0; \ + using expander = int[]; \ + constexpr char const* tmpl_types[] = {CATCH_REC_LIST(INTERNAL_CATCH_STRINGIZE_WITHOUT_PARENS, INTERNAL_CATCH_REMOVE_PARENS(TmplTypes))};\ + constexpr char const* types_list[] = {CATCH_REC_LIST(INTERNAL_CATCH_STRINGIZE_WITHOUT_PARENS, INTERNAL_CATCH_REMOVE_PARENS(TypesList))};\ + constexpr auto num_types = sizeof(types_list) / sizeof(types_list[0]);\ + (void)expander{(Catch::AutoReg( Catch::makeTestInvoker( &TestFuncName<Types> ), CATCH_INTERNAL_LINEINFO, Catch::StringRef(), Catch::NameAndTags{ Name " - " + std::string(tmpl_types[index / num_types]) + "<" + std::string(types_list[index % num_types]) + ">", Tags } ), index++, 0)... };/* NOLINT */\ + } \ + }; \ + static int INTERNAL_CATCH_UNIQUE_NAME( globalRegistrar ) = [](){ \ + using TestInit = typename create<TestName, decltype(get_wrapper<INTERNAL_CATCH_REMOVE_PARENS(TmplTypes)>()), TypeList<INTERNAL_CATCH_MAKE_TYPE_LISTS_FROM_TYPES(INTERNAL_CATCH_REMOVE_PARENS(TypesList))>>::type; \ + TestInit t; \ + t.reg_tests(); \ + return 0; \ + }(); \ + } \ + } \ + CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION \ + template<typename TestType> \ + static void TestFuncName() + +#ifndef CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR + #define INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE(Name, Tags, ...)\ + INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE2(INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____F_U_N_C____ ), Name, Tags, typename T,__VA_ARGS__) +#else + #define INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE(Name, Tags, ...)\ + INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____F_U_N_C____ ), Name, Tags, typename T, __VA_ARGS__ ) ) +#endif + +#ifndef CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR + #define INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_SIG(Name, Tags, Signature, ...)\ + INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE2(INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____F_U_N_C____ ), Name, Tags, Signature, __VA_ARGS__) +#else + #define INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_SIG(Name, Tags, Signature, ...)\ + INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____F_U_N_C____ ), Name, Tags, Signature, __VA_ARGS__ ) ) +#endif + + #define INTERNAL_CATCH_TEMPLATE_LIST_TEST_CASE_2(TestName, TestFunc, Name, Tags, TmplList)\ + CATCH_INTERNAL_START_WARNINGS_SUPPRESSION \ + CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS \ + CATCH_INTERNAL_SUPPRESS_UNUSED_TEMPLATE_WARNINGS \ + template<typename TestType> static void TestFunc(); \ + namespace {\ + namespace INTERNAL_CATCH_MAKE_NAMESPACE(TestName){\ + INTERNAL_CATCH_TYPE_GEN\ + template<typename... Types> \ + struct TestName { \ + void reg_tests() { \ + int index = 0; \ + using expander = int[]; \ + (void)expander{(Catch::AutoReg( Catch::makeTestInvoker( &TestFunc<Types> ), CATCH_INTERNAL_LINEINFO, Catch::StringRef(), Catch::NameAndTags{ Name " - " + std::string(INTERNAL_CATCH_STRINGIZE(TmplList)) + " - " + std::to_string(index), Tags } ), index++, 0)... };/* NOLINT */\ + } \ + };\ + static int INTERNAL_CATCH_UNIQUE_NAME( globalRegistrar ) = [](){ \ + using TestInit = typename convert<TestName, TmplList>::type; \ + TestInit t; \ + t.reg_tests(); \ + return 0; \ + }(); \ + }}\ + CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION \ + template<typename TestType> \ + static void TestFunc() + + #define INTERNAL_CATCH_TEMPLATE_LIST_TEST_CASE(Name, Tags, TmplList) \ + INTERNAL_CATCH_TEMPLATE_LIST_TEST_CASE_2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____F_U_N_C____ ), Name, Tags, TmplList ) + + #define INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_2( TestNameClass, TestName, ClassName, Name, Tags, Signature, ... ) \ + CATCH_INTERNAL_START_WARNINGS_SUPPRESSION \ + CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS \ + CATCH_INTERNAL_SUPPRESS_ZERO_VARIADIC_WARNINGS \ + CATCH_INTERNAL_SUPPRESS_UNUSED_TEMPLATE_WARNINGS \ + namespace {\ + namespace INTERNAL_CATCH_MAKE_NAMESPACE(TestName){ \ + INTERNAL_CATCH_TYPE_GEN\ + INTERNAL_CATCH_NTTP_GEN(INTERNAL_CATCH_REMOVE_PARENS(Signature))\ + INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD(TestName, ClassName, INTERNAL_CATCH_REMOVE_PARENS(Signature));\ + INTERNAL_CATCH_NTTP_REG_METHOD_GEN(TestName, INTERNAL_CATCH_REMOVE_PARENS(Signature))\ + template<typename...Types> \ + struct TestNameClass{\ + TestNameClass(){\ + int index = 0; \ + constexpr char const* tmpl_types[] = {CATCH_REC_LIST(INTERNAL_CATCH_STRINGIZE_WITHOUT_PARENS, __VA_ARGS__)};\ + using expander = int[];\ + (void)expander{(reg_test(Types{}, #ClassName, Catch::NameAndTags{ Name " - " + std::string(tmpl_types[index]), Tags } ), index++, 0)... };/* NOLINT */ \ + }\ + };\ + static int INTERNAL_CATCH_UNIQUE_NAME( globalRegistrar ) = [](){\ + TestNameClass<INTERNAL_CATCH_MAKE_TYPE_LISTS_FROM_TYPES(__VA_ARGS__)>();\ + return 0;\ + }();\ + }\ + }\ + CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION \ + INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD(TestName, INTERNAL_CATCH_REMOVE_PARENS(Signature)) + +#ifndef CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR + #define INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD( ClassName, Name, Tags,... ) \ + INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____C_L_A_S_S____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ) , ClassName, Name, Tags, typename T, __VA_ARGS__ ) +#else + #define INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD( ClassName, Name, Tags,... ) \ + INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____C_L_A_S_S____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ) , ClassName, Name, Tags, typename T, __VA_ARGS__ ) ) +#endif + +#ifndef CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR + #define INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_SIG( ClassName, Name, Tags, Signature, ... ) \ + INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____C_L_A_S_S____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ) , ClassName, Name, Tags, Signature, __VA_ARGS__ ) +#else + #define INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_SIG( ClassName, Name, Tags, Signature, ... ) \ + INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____C_L_A_S_S____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ) , ClassName, Name, Tags, Signature, __VA_ARGS__ ) ) +#endif + + #define INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD_2(TestNameClass, TestName, ClassName, Name, Tags, Signature, TmplTypes, TypesList)\ + CATCH_INTERNAL_START_WARNINGS_SUPPRESSION \ + CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS \ + CATCH_INTERNAL_SUPPRESS_ZERO_VARIADIC_WARNINGS \ + CATCH_INTERNAL_SUPPRESS_UNUSED_TEMPLATE_WARNINGS \ + template<typename TestType> \ + struct TestName : INTERNAL_CATCH_REMOVE_PARENS(ClassName <TestType>) { \ + void test();\ + };\ + namespace {\ + namespace INTERNAL_CATCH_MAKE_NAMESPACE(TestNameClass) {\ + INTERNAL_CATCH_TYPE_GEN \ + INTERNAL_CATCH_NTTP_GEN(INTERNAL_CATCH_REMOVE_PARENS(Signature))\ + template<typename...Types>\ + struct TestNameClass{\ + void reg_tests(){\ + int index = 0;\ + using expander = int[];\ + constexpr char const* tmpl_types[] = {CATCH_REC_LIST(INTERNAL_CATCH_STRINGIZE_WITHOUT_PARENS, INTERNAL_CATCH_REMOVE_PARENS(TmplTypes))};\ + constexpr char const* types_list[] = {CATCH_REC_LIST(INTERNAL_CATCH_STRINGIZE_WITHOUT_PARENS, INTERNAL_CATCH_REMOVE_PARENS(TypesList))};\ + constexpr auto num_types = sizeof(types_list) / sizeof(types_list[0]);\ + (void)expander{(Catch::AutoReg( Catch::makeTestInvoker( &TestName<Types>::test ), CATCH_INTERNAL_LINEINFO, #ClassName, Catch::NameAndTags{ Name " - " + std::string(tmpl_types[index / num_types]) + "<" + std::string(types_list[index % num_types]) + ">", Tags } ), index++, 0)... };/* NOLINT */ \ + }\ + };\ + static int INTERNAL_CATCH_UNIQUE_NAME( globalRegistrar ) = [](){\ + using TestInit = typename create<TestNameClass, decltype(get_wrapper<INTERNAL_CATCH_REMOVE_PARENS(TmplTypes)>()), TypeList<INTERNAL_CATCH_MAKE_TYPE_LISTS_FROM_TYPES(INTERNAL_CATCH_REMOVE_PARENS(TypesList))>>::type;\ + TestInit t;\ + t.reg_tests();\ + return 0;\ + }(); \ + }\ + }\ + CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION \ + template<typename TestType> \ + void TestName<TestType>::test() + +#ifndef CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR + #define INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD( ClassName, Name, Tags, ... )\ + INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD_2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____F_U_N_C____ ), ClassName, Name, Tags, typename T, __VA_ARGS__ ) +#else + #define INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD( ClassName, Name, Tags, ... )\ + INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD_2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____F_U_N_C____ ), ClassName, Name, Tags, typename T,__VA_ARGS__ ) ) +#endif + +#ifndef CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR + #define INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD_SIG( ClassName, Name, Tags, Signature, ... )\ + INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD_2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____F_U_N_C____ ), ClassName, Name, Tags, Signature, __VA_ARGS__ ) +#else + #define INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD_SIG( ClassName, Name, Tags, Signature, ... )\ + INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD_2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____F_U_N_C____ ), ClassName, Name, Tags, Signature,__VA_ARGS__ ) ) +#endif + + #define INTERNAL_CATCH_TEMPLATE_LIST_TEST_CASE_METHOD_2( TestNameClass, TestName, ClassName, Name, Tags, TmplList) \ + CATCH_INTERNAL_START_WARNINGS_SUPPRESSION \ + CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS \ + CATCH_INTERNAL_SUPPRESS_UNUSED_TEMPLATE_WARNINGS \ + template<typename TestType> \ + struct TestName : INTERNAL_CATCH_REMOVE_PARENS(ClassName <TestType>) { \ + void test();\ + };\ + namespace {\ + namespace INTERNAL_CATCH_MAKE_NAMESPACE(TestName){ \ + INTERNAL_CATCH_TYPE_GEN\ + template<typename...Types>\ + struct TestNameClass{\ + void reg_tests(){\ + int index = 0;\ + using expander = int[];\ + (void)expander{(Catch::AutoReg( Catch::makeTestInvoker( &TestName<Types>::test ), CATCH_INTERNAL_LINEINFO, #ClassName, Catch::NameAndTags{ Name " - " + std::string(INTERNAL_CATCH_STRINGIZE(TmplList)) + " - " + std::to_string(index), Tags } ), index++, 0)... };/* NOLINT */ \ + }\ + };\ + static int INTERNAL_CATCH_UNIQUE_NAME( globalRegistrar ) = [](){\ + using TestInit = typename convert<TestNameClass, TmplList>::type;\ + TestInit t;\ + t.reg_tests();\ + return 0;\ + }(); \ + }}\ + CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION \ + template<typename TestType> \ + void TestName<TestType>::test() + +#define INTERNAL_CATCH_TEMPLATE_LIST_TEST_CASE_METHOD(ClassName, Name, Tags, TmplList) \ + INTERNAL_CATCH_TEMPLATE_LIST_TEST_CASE_METHOD_2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____F_U_N_C____ ), ClassName, Name, Tags, TmplList ) + +// end catch_test_registry.h +// start catch_capture.hpp + +// start catch_assertionhandler.h + +// start catch_assertioninfo.h + +// start catch_result_type.h + +namespace Catch { + + // ResultWas::OfType enum + struct ResultWas { enum OfType { + Unknown = -1, + Ok = 0, + Info = 1, + Warning = 2, + + FailureBit = 0x10, + + ExpressionFailed = FailureBit | 1, + ExplicitFailure = FailureBit | 2, + + Exception = 0x100 | FailureBit, + + ThrewException = Exception | 1, + DidntThrowException = Exception | 2, + + FatalErrorCondition = 0x200 | FailureBit + + }; }; + + bool isOk( ResultWas::OfType resultType ); + bool isJustInfo( int flags ); + + // ResultDisposition::Flags enum + struct ResultDisposition { enum Flags { + Normal = 0x01, + + ContinueOnFailure = 0x02, // Failures fail test, but execution continues + FalseTest = 0x04, // Prefix expression with ! + SuppressFail = 0x08 // Failures are reported but do not fail the test + }; }; + + ResultDisposition::Flags operator | ( ResultDisposition::Flags lhs, ResultDisposition::Flags rhs ); + + bool shouldContinueOnFailure( int flags ); + inline bool isFalseTest( int flags ) { return ( flags & ResultDisposition::FalseTest ) != 0; } + bool shouldSuppressFailure( int flags ); + +} // end namespace Catch + +// end catch_result_type.h +namespace Catch { + + struct AssertionInfo + { + StringRef macroName; + SourceLineInfo lineInfo; + StringRef capturedExpression; + ResultDisposition::Flags resultDisposition; + + // We want to delete this constructor but a compiler bug in 4.8 means + // the struct is then treated as non-aggregate + //AssertionInfo() = delete; + }; + +} // end namespace Catch + +// end catch_assertioninfo.h +// start catch_decomposer.h + +// start catch_tostring.h + +#include <vector> +#include <cstddef> +#include <type_traits> +#include <string> +// start catch_stream.h + +#include <iosfwd> +#include <cstddef> +#include <ostream> + +namespace Catch { + + std::ostream& cout(); + std::ostream& cerr(); + std::ostream& clog(); + + class StringRef; + + struct IStream { + virtual ~IStream(); + virtual std::ostream& stream() const = 0; + }; + + auto makeStream( StringRef const &filename ) -> IStream const*; + + class ReusableStringStream : NonCopyable { + std::size_t m_index; + std::ostream* m_oss; + public: + ReusableStringStream(); + ~ReusableStringStream(); + + auto str() const -> std::string; + + template<typename T> + auto operator << ( T const& value ) -> ReusableStringStream& { + *m_oss << value; + return *this; + } + auto get() -> std::ostream& { return *m_oss; } + }; +} + +// end catch_stream.h +// start catch_interfaces_enum_values_registry.h + +#include <vector> + +namespace Catch { + + namespace Detail { + struct EnumInfo { + StringRef m_name; + std::vector<std::pair<int, StringRef>> m_values; + + ~EnumInfo(); + + StringRef lookup( int value ) const; + }; + } // namespace Detail + + struct IMutableEnumValuesRegistry { + virtual ~IMutableEnumValuesRegistry(); + + virtual Detail::EnumInfo const& registerEnum( StringRef enumName, StringRef allEnums, std::vector<int> const& values ) = 0; + + template<typename E> + Detail::EnumInfo const& registerEnum( StringRef enumName, StringRef allEnums, std::initializer_list<E> values ) { + static_assert(sizeof(int) >= sizeof(E), "Cannot serialize enum to int"); + std::vector<int> intValues; + intValues.reserve( values.size() ); + for( auto enumValue : values ) + intValues.push_back( static_cast<int>( enumValue ) ); + return registerEnum( enumName, allEnums, intValues ); + } + }; + +} // Catch + +// end catch_interfaces_enum_values_registry.h + +#ifdef CATCH_CONFIG_CPP17_STRING_VIEW +#include <string_view> +#endif + +#ifdef __OBJC__ +// start catch_objc_arc.hpp + +#import <Foundation/Foundation.h> + +#ifdef __has_feature +#define CATCH_ARC_ENABLED __has_feature(objc_arc) +#else +#define CATCH_ARC_ENABLED 0 +#endif + +void arcSafeRelease( NSObject* obj ); +id performOptionalSelector( id obj, SEL sel ); + +#if !CATCH_ARC_ENABLED +inline void arcSafeRelease( NSObject* obj ) { + [obj release]; +} +inline id performOptionalSelector( id obj, SEL sel ) { + if( [obj respondsToSelector: sel] ) + return [obj performSelector: sel]; + return nil; +} +#define CATCH_UNSAFE_UNRETAINED +#define CATCH_ARC_STRONG +#else +inline void arcSafeRelease( NSObject* ){} +inline id performOptionalSelector( id obj, SEL sel ) { +#ifdef __clang__ +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Warc-performSelector-leaks" +#endif + if( [obj respondsToSelector: sel] ) + return [obj performSelector: sel]; +#ifdef __clang__ +#pragma clang diagnostic pop +#endif + return nil; +} +#define CATCH_UNSAFE_UNRETAINED __unsafe_unretained +#define CATCH_ARC_STRONG __strong +#endif + +// end catch_objc_arc.hpp +#endif + +#ifdef _MSC_VER +#pragma warning(push) +#pragma warning(disable:4180) // We attempt to stream a function (address) by const&, which MSVC complains about but is harmless +#endif + +namespace Catch { + namespace Detail { + + extern const std::string unprintableString; + + std::string rawMemoryToString( const void *object, std::size_t size ); + + template<typename T> + std::string rawMemoryToString( const T& object ) { + return rawMemoryToString( &object, sizeof(object) ); + } + + template<typename T> + class IsStreamInsertable { + template<typename Stream, typename U> + static auto test(int) + -> decltype(std::declval<Stream&>() << std::declval<U>(), std::true_type()); + + template<typename, typename> + static auto test(...)->std::false_type; + + public: + static const bool value = decltype(test<std::ostream, const T&>(0))::value; + }; + + template<typename E> + std::string convertUnknownEnumToString( E e ); + + template<typename T> + typename std::enable_if< + !std::is_enum<T>::value && !std::is_base_of<std::exception, T>::value, + std::string>::type convertUnstreamable( T const& ) { + return Detail::unprintableString; + } + template<typename T> + typename std::enable_if< + !std::is_enum<T>::value && std::is_base_of<std::exception, T>::value, + std::string>::type convertUnstreamable(T const& ex) { + return ex.what(); + } + + template<typename T> + typename std::enable_if< + std::is_enum<T>::value + , std::string>::type convertUnstreamable( T const& value ) { + return convertUnknownEnumToString( value ); + } + +#if defined(_MANAGED) + //! Convert a CLR string to a utf8 std::string + template<typename T> + std::string clrReferenceToString( T^ ref ) { + if (ref == nullptr) + return std::string("null"); + auto bytes = System::Text::Encoding::UTF8->GetBytes(ref->ToString()); + cli::pin_ptr<System::Byte> p = &bytes[0]; + return std::string(reinterpret_cast<char const *>(p), bytes->Length); + } +#endif + + } // namespace Detail + + // If we decide for C++14, change these to enable_if_ts + template <typename T, typename = void> + struct StringMaker { + template <typename Fake = T> + static + typename std::enable_if<::Catch::Detail::IsStreamInsertable<Fake>::value, std::string>::type + convert(const Fake& value) { + ReusableStringStream rss; + // NB: call using the function-like syntax to avoid ambiguity with + // user-defined templated operator<< under clang. + rss.operator<<(value); + return rss.str(); + } + + template <typename Fake = T> + static + typename std::enable_if<!::Catch::Detail::IsStreamInsertable<Fake>::value, std::string>::type + convert( const Fake& value ) { +#if !defined(CATCH_CONFIG_FALLBACK_STRINGIFIER) + return Detail::convertUnstreamable(value); +#else + return CATCH_CONFIG_FALLBACK_STRINGIFIER(value); +#endif + } + }; + + namespace Detail { + + // This function dispatches all stringification requests inside of Catch. + // Should be preferably called fully qualified, like ::Catch::Detail::stringify + template <typename T> + std::string stringify(const T& e) { + return ::Catch::StringMaker<typename std::remove_cv<typename std::remove_reference<T>::type>::type>::convert(e); + } + + template<typename E> + std::string convertUnknownEnumToString( E e ) { + return ::Catch::Detail::stringify(static_cast<typename std::underlying_type<E>::type>(e)); + } + +#if defined(_MANAGED) + template <typename T> + std::string stringify( T^ e ) { + return ::Catch::StringMaker<T^>::convert(e); + } +#endif + + } // namespace Detail + + // Some predefined specializations + + template<> + struct StringMaker<std::string> { + static std::string convert(const std::string& str); + }; + +#ifdef CATCH_CONFIG_CPP17_STRING_VIEW + template<> + struct StringMaker<std::string_view> { + static std::string convert(std::string_view str); + }; +#endif + + template<> + struct StringMaker<char const *> { + static std::string convert(char const * str); + }; + template<> + struct StringMaker<char *> { + static std::string convert(char * str); + }; + +#ifdef CATCH_CONFIG_WCHAR + template<> + struct StringMaker<std::wstring> { + static std::string convert(const std::wstring& wstr); + }; + +# ifdef CATCH_CONFIG_CPP17_STRING_VIEW + template<> + struct StringMaker<std::wstring_view> { + static std::string convert(std::wstring_view str); + }; +# endif + + template<> + struct StringMaker<wchar_t const *> { + static std::string convert(wchar_t const * str); + }; + template<> + struct StringMaker<wchar_t *> { + static std::string convert(wchar_t * str); + }; +#endif + + // TBD: Should we use `strnlen` to ensure that we don't go out of the buffer, + // while keeping string semantics? + template<int SZ> + struct StringMaker<char[SZ]> { + static std::string convert(char const* str) { + return ::Catch::Detail::stringify(std::string{ str }); + } + }; + template<int SZ> + struct StringMaker<signed char[SZ]> { + static std::string convert(signed char const* str) { + return ::Catch::Detail::stringify(std::string{ reinterpret_cast<char const *>(str) }); + } + }; + template<int SZ> + struct StringMaker<unsigned char[SZ]> { + static std::string convert(unsigned char const* str) { + return ::Catch::Detail::stringify(std::string{ reinterpret_cast<char const *>(str) }); + } + }; + +#if defined(CATCH_CONFIG_CPP17_BYTE) + template<> + struct StringMaker<std::byte> { + static std::string convert(std::byte value); + }; +#endif // defined(CATCH_CONFIG_CPP17_BYTE) + template<> + struct StringMaker<int> { + static std::string convert(int value); + }; + template<> + struct StringMaker<long> { + static std::string convert(long value); + }; + template<> + struct StringMaker<long long> { + static std::string convert(long long value); + }; + template<> + struct StringMaker<unsigned int> { + static std::string convert(unsigned int value); + }; + template<> + struct StringMaker<unsigned long> { + static std::string convert(unsigned long value); + }; + template<> + struct StringMaker<unsigned long long> { + static std::string convert(unsigned long long value); + }; + + template<> + struct StringMaker<bool> { + static std::string convert(bool b); + }; + + template<> + struct StringMaker<char> { + static std::string convert(char c); + }; + template<> + struct StringMaker<signed char> { + static std::string convert(signed char c); + }; + template<> + struct StringMaker<unsigned char> { + static std::string convert(unsigned char c); + }; + + template<> + struct StringMaker<std::nullptr_t> { + static std::string convert(std::nullptr_t); + }; + + template<> + struct StringMaker<float> { + static std::string convert(float value); + static int precision; + }; + + template<> + struct StringMaker<double> { + static std::string convert(double value); + static int precision; + }; + + template <typename T> + struct StringMaker<T*> { + template <typename U> + static std::string convert(U* p) { + if (p) { + return ::Catch::Detail::rawMemoryToString(p); + } else { + return "nullptr"; + } + } + }; + + template <typename R, typename C> + struct StringMaker<R C::*> { + static std::string convert(R C::* p) { + if (p) { + return ::Catch::Detail::rawMemoryToString(p); + } else { + return "nullptr"; + } + } + }; + +#if defined(_MANAGED) + template <typename T> + struct StringMaker<T^> { + static std::string convert( T^ ref ) { + return ::Catch::Detail::clrReferenceToString(ref); + } + }; +#endif + + namespace Detail { + template<typename InputIterator> + std::string rangeToString(InputIterator first, InputIterator last) { + ReusableStringStream rss; + rss << "{ "; + if (first != last) { + rss << ::Catch::Detail::stringify(*first); + for (++first; first != last; ++first) + rss << ", " << ::Catch::Detail::stringify(*first); + } + rss << " }"; + return rss.str(); + } + } + +#ifdef __OBJC__ + template<> + struct StringMaker<NSString*> { + static std::string convert(NSString * nsstring) { + if (!nsstring) + return "nil"; + return std::string("@") + [nsstring UTF8String]; + } + }; + template<> + struct StringMaker<NSObject*> { + static std::string convert(NSObject* nsObject) { + return ::Catch::Detail::stringify([nsObject description]); + } + + }; + namespace Detail { + inline std::string stringify( NSString* nsstring ) { + return StringMaker<NSString*>::convert( nsstring ); + } + + } // namespace Detail +#endif // __OBJC__ + +} // namespace Catch + +////////////////////////////////////////////////////// +// Separate std-lib types stringification, so it can be selectively enabled +// This means that we do not bring in + +#if defined(CATCH_CONFIG_ENABLE_ALL_STRINGMAKERS) +# define CATCH_CONFIG_ENABLE_PAIR_STRINGMAKER +# define CATCH_CONFIG_ENABLE_TUPLE_STRINGMAKER +# define CATCH_CONFIG_ENABLE_VARIANT_STRINGMAKER +# define CATCH_CONFIG_ENABLE_CHRONO_STRINGMAKER +# define CATCH_CONFIG_ENABLE_OPTIONAL_STRINGMAKER +#endif + +// Separate std::pair specialization +#if defined(CATCH_CONFIG_ENABLE_PAIR_STRINGMAKER) +#include <utility> +namespace Catch { + template<typename T1, typename T2> + struct StringMaker<std::pair<T1, T2> > { + static std::string convert(const std::pair<T1, T2>& pair) { + ReusableStringStream rss; + rss << "{ " + << ::Catch::Detail::stringify(pair.first) + << ", " + << ::Catch::Detail::stringify(pair.second) + << " }"; + return rss.str(); + } + }; +} +#endif // CATCH_CONFIG_ENABLE_PAIR_STRINGMAKER + +#if defined(CATCH_CONFIG_ENABLE_OPTIONAL_STRINGMAKER) && defined(CATCH_CONFIG_CPP17_OPTIONAL) +#include <optional> +namespace Catch { + template<typename T> + struct StringMaker<std::optional<T> > { + static std::string convert(const std::optional<T>& optional) { + ReusableStringStream rss; + if (optional.has_value()) { + rss << ::Catch::Detail::stringify(*optional); + } else { + rss << "{ }"; + } + return rss.str(); + } + }; +} +#endif // CATCH_CONFIG_ENABLE_OPTIONAL_STRINGMAKER + +// Separate std::tuple specialization +#if defined(CATCH_CONFIG_ENABLE_TUPLE_STRINGMAKER) +#include <tuple> +namespace Catch { + namespace Detail { + template< + typename Tuple, + std::size_t N = 0, + bool = (N < std::tuple_size<Tuple>::value) + > + struct TupleElementPrinter { + static void print(const Tuple& tuple, std::ostream& os) { + os << (N ? ", " : " ") + << ::Catch::Detail::stringify(std::get<N>(tuple)); + TupleElementPrinter<Tuple, N + 1>::print(tuple, os); + } + }; + + template< + typename Tuple, + std::size_t N + > + struct TupleElementPrinter<Tuple, N, false> { + static void print(const Tuple&, std::ostream&) {} + }; + + } + + template<typename ...Types> + struct StringMaker<std::tuple<Types...>> { + static std::string convert(const std::tuple<Types...>& tuple) { + ReusableStringStream rss; + rss << '{'; + Detail::TupleElementPrinter<std::tuple<Types...>>::print(tuple, rss.get()); + rss << " }"; + return rss.str(); + } + }; +} +#endif // CATCH_CONFIG_ENABLE_TUPLE_STRINGMAKER + +#if defined(CATCH_CONFIG_ENABLE_VARIANT_STRINGMAKER) && defined(CATCH_CONFIG_CPP17_VARIANT) +#include <variant> +namespace Catch { + template<> + struct StringMaker<std::monostate> { + static std::string convert(const std::monostate&) { + return "{ }"; + } + }; + + template<typename... Elements> + struct StringMaker<std::variant<Elements...>> { + static std::string convert(const std::variant<Elements...>& variant) { + if (variant.valueless_by_exception()) { + return "{valueless variant}"; + } else { + return std::visit( + [](const auto& value) { + return ::Catch::Detail::stringify(value); + }, + variant + ); + } + } + }; +} +#endif // CATCH_CONFIG_ENABLE_VARIANT_STRINGMAKER + +namespace Catch { + struct not_this_one {}; // Tag type for detecting which begin/ end are being selected + + // Import begin/ end from std here so they are considered alongside the fallback (...) overloads in this namespace + using std::begin; + using std::end; + + not_this_one begin( ... ); + not_this_one end( ... ); + + template <typename T> + struct is_range { + static const bool value = + !std::is_same<decltype(begin(std::declval<T>())), not_this_one>::value && + !std::is_same<decltype(end(std::declval<T>())), not_this_one>::value; + }; + +#if defined(_MANAGED) // Managed types are never ranges + template <typename T> + struct is_range<T^> { + static const bool value = false; + }; +#endif + + template<typename Range> + std::string rangeToString( Range const& range ) { + return ::Catch::Detail::rangeToString( begin( range ), end( range ) ); + } + + // Handle vector<bool> specially + template<typename Allocator> + std::string rangeToString( std::vector<bool, Allocator> const& v ) { + ReusableStringStream rss; + rss << "{ "; + bool first = true; + for( bool b : v ) { + if( first ) + first = false; + else + rss << ", "; + rss << ::Catch::Detail::stringify( b ); + } + rss << " }"; + return rss.str(); + } + + template<typename R> + struct StringMaker<R, typename std::enable_if<is_range<R>::value && !::Catch::Detail::IsStreamInsertable<R>::value>::type> { + static std::string convert( R const& range ) { + return rangeToString( range ); + } + }; + + template <typename T, int SZ> + struct StringMaker<T[SZ]> { + static std::string convert(T const(&arr)[SZ]) { + return rangeToString(arr); + } + }; + +} // namespace Catch + +// Separate std::chrono::duration specialization +#if defined(CATCH_CONFIG_ENABLE_CHRONO_STRINGMAKER) +#include <ctime> +#include <ratio> +#include <chrono> + +namespace Catch { + +template <class Ratio> +struct ratio_string { + static std::string symbol(); +}; + +template <class Ratio> +std::string ratio_string<Ratio>::symbol() { + Catch::ReusableStringStream rss; + rss << '[' << Ratio::num << '/' + << Ratio::den << ']'; + return rss.str(); +} +template <> +struct ratio_string<std::atto> { + static std::string symbol(); +}; +template <> +struct ratio_string<std::femto> { + static std::string symbol(); +}; +template <> +struct ratio_string<std::pico> { + static std::string symbol(); +}; +template <> +struct ratio_string<std::nano> { + static std::string symbol(); +}; +template <> +struct ratio_string<std::micro> { + static std::string symbol(); +}; +template <> +struct ratio_string<std::milli> { + static std::string symbol(); +}; + + //////////// + // std::chrono::duration specializations + template<typename Value, typename Ratio> + struct StringMaker<std::chrono::duration<Value, Ratio>> { + static std::string convert(std::chrono::duration<Value, Ratio> const& duration) { + ReusableStringStream rss; + rss << duration.count() << ' ' << ratio_string<Ratio>::symbol() << 's'; + return rss.str(); + } + }; + template<typename Value> + struct StringMaker<std::chrono::duration<Value, std::ratio<1>>> { + static std::string convert(std::chrono::duration<Value, std::ratio<1>> const& duration) { + ReusableStringStream rss; + rss << duration.count() << " s"; + return rss.str(); + } + }; + template<typename Value> + struct StringMaker<std::chrono::duration<Value, std::ratio<60>>> { + static std::string convert(std::chrono::duration<Value, std::ratio<60>> const& duration) { + ReusableStringStream rss; + rss << duration.count() << " m"; + return rss.str(); + } + }; + template<typename Value> + struct StringMaker<std::chrono::duration<Value, std::ratio<3600>>> { + static std::string convert(std::chrono::duration<Value, std::ratio<3600>> const& duration) { + ReusableStringStream rss; + rss << duration.count() << " h"; + return rss.str(); + } + }; + + //////////// + // std::chrono::time_point specialization + // Generic time_point cannot be specialized, only std::chrono::time_point<system_clock> + template<typename Clock, typename Duration> + struct StringMaker<std::chrono::time_point<Clock, Duration>> { + static std::string convert(std::chrono::time_point<Clock, Duration> const& time_point) { + return ::Catch::Detail::stringify(time_point.time_since_epoch()) + " since epoch"; + } + }; + // std::chrono::time_point<system_clock> specialization + template<typename Duration> + struct StringMaker<std::chrono::time_point<std::chrono::system_clock, Duration>> { + static std::string convert(std::chrono::time_point<std::chrono::system_clock, Duration> const& time_point) { + auto converted = std::chrono::system_clock::to_time_t(time_point); + +#ifdef _MSC_VER + std::tm timeInfo = {}; + gmtime_s(&timeInfo, &converted); +#else + std::tm* timeInfo = std::gmtime(&converted); +#endif + + auto const timeStampSize = sizeof("2017-01-16T17:06:45Z"); + char timeStamp[timeStampSize]; + const char * const fmt = "%Y-%m-%dT%H:%M:%SZ"; + +#ifdef _MSC_VER + std::strftime(timeStamp, timeStampSize, fmt, &timeInfo); +#else + std::strftime(timeStamp, timeStampSize, fmt, timeInfo); +#endif + return std::string(timeStamp); + } + }; +} +#endif // CATCH_CONFIG_ENABLE_CHRONO_STRINGMAKER + +#define INTERNAL_CATCH_REGISTER_ENUM( enumName, ... ) \ +namespace Catch { \ + template<> struct StringMaker<enumName> { \ + static std::string convert( enumName value ) { \ + static const auto& enumInfo = ::Catch::getMutableRegistryHub().getMutableEnumValuesRegistry().registerEnum( #enumName, #__VA_ARGS__, { __VA_ARGS__ } ); \ + return static_cast<std::string>(enumInfo.lookup( static_cast<int>( value ) )); \ + } \ + }; \ +} + +#define CATCH_REGISTER_ENUM( enumName, ... ) INTERNAL_CATCH_REGISTER_ENUM( enumName, __VA_ARGS__ ) + +#ifdef _MSC_VER +#pragma warning(pop) +#endif + +// end catch_tostring.h +#include <iosfwd> + +#ifdef _MSC_VER +#pragma warning(push) +#pragma warning(disable:4389) // '==' : signed/unsigned mismatch +#pragma warning(disable:4018) // more "signed/unsigned mismatch" +#pragma warning(disable:4312) // Converting int to T* using reinterpret_cast (issue on x64 platform) +#pragma warning(disable:4180) // qualifier applied to function type has no meaning +#pragma warning(disable:4800) // Forcing result to true or false +#endif + +namespace Catch { + + struct ITransientExpression { + auto isBinaryExpression() const -> bool { return m_isBinaryExpression; } + auto getResult() const -> bool { return m_result; } + virtual void streamReconstructedExpression( std::ostream &os ) const = 0; + + ITransientExpression( bool isBinaryExpression, bool result ) + : m_isBinaryExpression( isBinaryExpression ), + m_result( result ) + {} + + // We don't actually need a virtual destructor, but many static analysers + // complain if it's not here :-( + virtual ~ITransientExpression(); + + bool m_isBinaryExpression; + bool m_result; + + }; + + void formatReconstructedExpression( std::ostream &os, std::string const& lhs, StringRef op, std::string const& rhs ); + + template<typename LhsT, typename RhsT> + class BinaryExpr : public ITransientExpression { + LhsT m_lhs; + StringRef m_op; + RhsT m_rhs; + + void streamReconstructedExpression( std::ostream &os ) const override { + formatReconstructedExpression + ( os, Catch::Detail::stringify( m_lhs ), m_op, Catch::Detail::stringify( m_rhs ) ); + } + + public: + BinaryExpr( bool comparisonResult, LhsT lhs, StringRef op, RhsT rhs ) + : ITransientExpression{ true, comparisonResult }, + m_lhs( lhs ), + m_op( op ), + m_rhs( rhs ) + {} + + template<typename T> + auto operator && ( T ) const -> BinaryExpr<LhsT, RhsT const&> const { + static_assert(always_false<T>::value, + "chained comparisons are not supported inside assertions, " + "wrap the expression inside parentheses, or decompose it"); + } + + template<typename T> + auto operator || ( T ) const -> BinaryExpr<LhsT, RhsT const&> const { + static_assert(always_false<T>::value, + "chained comparisons are not supported inside assertions, " + "wrap the expression inside parentheses, or decompose it"); + } + + template<typename T> + auto operator == ( T ) const -> BinaryExpr<LhsT, RhsT const&> const { + static_assert(always_false<T>::value, + "chained comparisons are not supported inside assertions, " + "wrap the expression inside parentheses, or decompose it"); + } + + template<typename T> + auto operator != ( T ) const -> BinaryExpr<LhsT, RhsT const&> const { + static_assert(always_false<T>::value, + "chained comparisons are not supported inside assertions, " + "wrap the expression inside parentheses, or decompose it"); + } + + template<typename T> + auto operator > ( T ) const -> BinaryExpr<LhsT, RhsT const&> const { + static_assert(always_false<T>::value, + "chained comparisons are not supported inside assertions, " + "wrap the expression inside parentheses, or decompose it"); + } + + template<typename T> + auto operator < ( T ) const -> BinaryExpr<LhsT, RhsT const&> const { + static_assert(always_false<T>::value, + "chained comparisons are not supported inside assertions, " + "wrap the expression inside parentheses, or decompose it"); + } + + template<typename T> + auto operator >= ( T ) const -> BinaryExpr<LhsT, RhsT const&> const { + static_assert(always_false<T>::value, + "chained comparisons are not supported inside assertions, " + "wrap the expression inside parentheses, or decompose it"); + } + + template<typename T> + auto operator <= ( T ) const -> BinaryExpr<LhsT, RhsT const&> const { + static_assert(always_false<T>::value, + "chained comparisons are not supported inside assertions, " + "wrap the expression inside parentheses, or decompose it"); + } + }; + + template<typename LhsT> + class UnaryExpr : public ITransientExpression { + LhsT m_lhs; + + void streamReconstructedExpression( std::ostream &os ) const override { + os << Catch::Detail::stringify( m_lhs ); + } + + public: + explicit UnaryExpr( LhsT lhs ) + : ITransientExpression{ false, static_cast<bool>(lhs) }, + m_lhs( lhs ) + {} + }; + + // Specialised comparison functions to handle equality comparisons between ints and pointers (NULL deduces as an int) + template<typename LhsT, typename RhsT> + auto compareEqual( LhsT const& lhs, RhsT const& rhs ) -> bool { return static_cast<bool>(lhs == rhs); } + template<typename T> + auto compareEqual( T* const& lhs, int rhs ) -> bool { return lhs == reinterpret_cast<void const*>( rhs ); } + template<typename T> + auto compareEqual( T* const& lhs, long rhs ) -> bool { return lhs == reinterpret_cast<void const*>( rhs ); } + template<typename T> + auto compareEqual( int lhs, T* const& rhs ) -> bool { return reinterpret_cast<void const*>( lhs ) == rhs; } + template<typename T> + auto compareEqual( long lhs, T* const& rhs ) -> bool { return reinterpret_cast<void const*>( lhs ) == rhs; } + + template<typename LhsT, typename RhsT> + auto compareNotEqual( LhsT const& lhs, RhsT&& rhs ) -> bool { return static_cast<bool>(lhs != rhs); } + template<typename T> + auto compareNotEqual( T* const& lhs, int rhs ) -> bool { return lhs != reinterpret_cast<void const*>( rhs ); } + template<typename T> + auto compareNotEqual( T* const& lhs, long rhs ) -> bool { return lhs != reinterpret_cast<void const*>( rhs ); } + template<typename T> + auto compareNotEqual( int lhs, T* const& rhs ) -> bool { return reinterpret_cast<void const*>( lhs ) != rhs; } + template<typename T> + auto compareNotEqual( long lhs, T* const& rhs ) -> bool { return reinterpret_cast<void const*>( lhs ) != rhs; } + + template<typename LhsT> + class ExprLhs { + LhsT m_lhs; + public: + explicit ExprLhs( LhsT lhs ) : m_lhs( lhs ) {} + + template<typename RhsT> + auto operator == ( RhsT const& rhs ) -> BinaryExpr<LhsT, RhsT const&> const { + return { compareEqual( m_lhs, rhs ), m_lhs, "==", rhs }; + } + auto operator == ( bool rhs ) -> BinaryExpr<LhsT, bool> const { + return { m_lhs == rhs, m_lhs, "==", rhs }; + } + + template<typename RhsT> + auto operator != ( RhsT const& rhs ) -> BinaryExpr<LhsT, RhsT const&> const { + return { compareNotEqual( m_lhs, rhs ), m_lhs, "!=", rhs }; + } + auto operator != ( bool rhs ) -> BinaryExpr<LhsT, bool> const { + return { m_lhs != rhs, m_lhs, "!=", rhs }; + } + + template<typename RhsT> + auto operator > ( RhsT const& rhs ) -> BinaryExpr<LhsT, RhsT const&> const { + return { static_cast<bool>(m_lhs > rhs), m_lhs, ">", rhs }; + } + template<typename RhsT> + auto operator < ( RhsT const& rhs ) -> BinaryExpr<LhsT, RhsT const&> const { + return { static_cast<bool>(m_lhs < rhs), m_lhs, "<", rhs }; + } + template<typename RhsT> + auto operator >= ( RhsT const& rhs ) -> BinaryExpr<LhsT, RhsT const&> const { + return { static_cast<bool>(m_lhs >= rhs), m_lhs, ">=", rhs }; + } + template<typename RhsT> + auto operator <= ( RhsT const& rhs ) -> BinaryExpr<LhsT, RhsT const&> const { + return { static_cast<bool>(m_lhs <= rhs), m_lhs, "<=", rhs }; + } + template <typename RhsT> + auto operator | (RhsT const& rhs) -> BinaryExpr<LhsT, RhsT const&> const { + return { static_cast<bool>(m_lhs | rhs), m_lhs, "|", rhs }; + } + template <typename RhsT> + auto operator & (RhsT const& rhs) -> BinaryExpr<LhsT, RhsT const&> const { + return { static_cast<bool>(m_lhs & rhs), m_lhs, "&", rhs }; + } + template <typename RhsT> + auto operator ^ (RhsT const& rhs) -> BinaryExpr<LhsT, RhsT const&> const { + return { static_cast<bool>(m_lhs ^ rhs), m_lhs, "^", rhs }; + } + + template<typename RhsT> + auto operator && ( RhsT const& ) -> BinaryExpr<LhsT, RhsT const&> const { + static_assert(always_false<RhsT>::value, + "operator&& is not supported inside assertions, " + "wrap the expression inside parentheses, or decompose it"); + } + + template<typename RhsT> + auto operator || ( RhsT const& ) -> BinaryExpr<LhsT, RhsT const&> const { + static_assert(always_false<RhsT>::value, + "operator|| is not supported inside assertions, " + "wrap the expression inside parentheses, or decompose it"); + } + + auto makeUnaryExpr() const -> UnaryExpr<LhsT> { + return UnaryExpr<LhsT>{ m_lhs }; + } + }; + + void handleExpression( ITransientExpression const& expr ); + + template<typename T> + void handleExpression( ExprLhs<T> const& expr ) { + handleExpression( expr.makeUnaryExpr() ); + } + + struct Decomposer { + template<typename T> + auto operator <= ( T const& lhs ) -> ExprLhs<T const&> { + return ExprLhs<T const&>{ lhs }; + } + + auto operator <=( bool value ) -> ExprLhs<bool> { + return ExprLhs<bool>{ value }; + } + }; + +} // end namespace Catch + +#ifdef _MSC_VER +#pragma warning(pop) +#endif + +// end catch_decomposer.h +// start catch_interfaces_capture.h + +#include <string> +#include <chrono> + +namespace Catch { + + class AssertionResult; + struct AssertionInfo; + struct SectionInfo; + struct SectionEndInfo; + struct MessageInfo; + struct MessageBuilder; + struct Counts; + struct AssertionReaction; + struct SourceLineInfo; + + struct ITransientExpression; + struct IGeneratorTracker; + +#if defined(CATCH_CONFIG_ENABLE_BENCHMARKING) + struct BenchmarkInfo; + template <typename Duration = std::chrono::duration<double, std::nano>> + struct BenchmarkStats; +#endif // CATCH_CONFIG_ENABLE_BENCHMARKING + + struct IResultCapture { + + virtual ~IResultCapture(); + + virtual bool sectionStarted( SectionInfo const& sectionInfo, + Counts& assertions ) = 0; + virtual void sectionEnded( SectionEndInfo const& endInfo ) = 0; + virtual void sectionEndedEarly( SectionEndInfo const& endInfo ) = 0; + + virtual auto acquireGeneratorTracker( SourceLineInfo const& lineInfo ) -> IGeneratorTracker& = 0; + +#if defined(CATCH_CONFIG_ENABLE_BENCHMARKING) + virtual void benchmarkPreparing( std::string const& name ) = 0; + virtual void benchmarkStarting( BenchmarkInfo const& info ) = 0; + virtual void benchmarkEnded( BenchmarkStats<> const& stats ) = 0; + virtual void benchmarkFailed( std::string const& error ) = 0; +#endif // CATCH_CONFIG_ENABLE_BENCHMARKING + + virtual void pushScopedMessage( MessageInfo const& message ) = 0; + virtual void popScopedMessage( MessageInfo const& message ) = 0; + + virtual void emplaceUnscopedMessage( MessageBuilder const& builder ) = 0; + + virtual void handleFatalErrorCondition( StringRef message ) = 0; + + virtual void handleExpr + ( AssertionInfo const& info, + ITransientExpression const& expr, + AssertionReaction& reaction ) = 0; + virtual void handleMessage + ( AssertionInfo const& info, + ResultWas::OfType resultType, + StringRef const& message, + AssertionReaction& reaction ) = 0; + virtual void handleUnexpectedExceptionNotThrown + ( AssertionInfo const& info, + AssertionReaction& reaction ) = 0; + virtual void handleUnexpectedInflightException + ( AssertionInfo const& info, + std::string const& message, + AssertionReaction& reaction ) = 0; + virtual void handleIncomplete + ( AssertionInfo const& info ) = 0; + virtual void handleNonExpr + ( AssertionInfo const &info, + ResultWas::OfType resultType, + AssertionReaction &reaction ) = 0; + + virtual bool lastAssertionPassed() = 0; + virtual void assertionPassed() = 0; + + // Deprecated, do not use: + virtual std::string getCurrentTestName() const = 0; + virtual const AssertionResult* getLastResult() const = 0; + virtual void exceptionEarlyReported() = 0; + }; + + IResultCapture& getResultCapture(); +} + +// end catch_interfaces_capture.h +namespace Catch { + + struct TestFailureException{}; + struct AssertionResultData; + struct IResultCapture; + class RunContext; + + class LazyExpression { + friend class AssertionHandler; + friend struct AssertionStats; + friend class RunContext; + + ITransientExpression const* m_transientExpression = nullptr; + bool m_isNegated; + public: + LazyExpression( bool isNegated ); + LazyExpression( LazyExpression const& other ); + LazyExpression& operator = ( LazyExpression const& ) = delete; + + explicit operator bool() const; + + friend auto operator << ( std::ostream& os, LazyExpression const& lazyExpr ) -> std::ostream&; + }; + + struct AssertionReaction { + bool shouldDebugBreak = false; + bool shouldThrow = false; + }; + + class AssertionHandler { + AssertionInfo m_assertionInfo; + AssertionReaction m_reaction; + bool m_completed = false; + IResultCapture& m_resultCapture; + + public: + AssertionHandler + ( StringRef const& macroName, + SourceLineInfo const& lineInfo, + StringRef capturedExpression, + ResultDisposition::Flags resultDisposition ); + ~AssertionHandler() { + if ( !m_completed ) { + m_resultCapture.handleIncomplete( m_assertionInfo ); + } + } + + template<typename T> + void handleExpr( ExprLhs<T> const& expr ) { + handleExpr( expr.makeUnaryExpr() ); + } + void handleExpr( ITransientExpression const& expr ); + + void handleMessage(ResultWas::OfType resultType, StringRef const& message); + + void handleExceptionThrownAsExpected(); + void handleUnexpectedExceptionNotThrown(); + void handleExceptionNotThrownAsExpected(); + void handleThrowingCallSkipped(); + void handleUnexpectedInflightException(); + + void complete(); + void setCompleted(); + + // query + auto allowThrows() const -> bool; + }; + + void handleExceptionMatchExpr( AssertionHandler& handler, std::string const& str, StringRef const& matcherString ); + +} // namespace Catch + +// end catch_assertionhandler.h +// start catch_message.h + +#include <string> +#include <vector> + +namespace Catch { + + struct MessageInfo { + MessageInfo( StringRef const& _macroName, + SourceLineInfo const& _lineInfo, + ResultWas::OfType _type ); + + StringRef macroName; + std::string message; + SourceLineInfo lineInfo; + ResultWas::OfType type; + unsigned int sequence; + + bool operator == ( MessageInfo const& other ) const; + bool operator < ( MessageInfo const& other ) const; + private: + static unsigned int globalCount; + }; + + struct MessageStream { + + template<typename T> + MessageStream& operator << ( T const& value ) { + m_stream << value; + return *this; + } + + ReusableStringStream m_stream; + }; + + struct MessageBuilder : MessageStream { + MessageBuilder( StringRef const& macroName, + SourceLineInfo const& lineInfo, + ResultWas::OfType type ); + + template<typename T> + MessageBuilder& operator << ( T const& value ) { + m_stream << value; + return *this; + } + + MessageInfo m_info; + }; + + class ScopedMessage { + public: + explicit ScopedMessage( MessageBuilder const& builder ); + ScopedMessage( ScopedMessage& duplicate ) = delete; + ScopedMessage( ScopedMessage&& old ); + ~ScopedMessage(); + + MessageInfo m_info; + bool m_moved; + }; + + class Capturer { + std::vector<MessageInfo> m_messages; + IResultCapture& m_resultCapture = getResultCapture(); + size_t m_captured = 0; + public: + Capturer( StringRef macroName, SourceLineInfo const& lineInfo, ResultWas::OfType resultType, StringRef names ); + ~Capturer(); + + void captureValue( size_t index, std::string const& value ); + + template<typename T> + void captureValues( size_t index, T const& value ) { + captureValue( index, Catch::Detail::stringify( value ) ); + } + + template<typename T, typename... Ts> + void captureValues( size_t index, T const& value, Ts const&... values ) { + captureValue( index, Catch::Detail::stringify(value) ); + captureValues( index+1, values... ); + } + }; + +} // end namespace Catch + +// end catch_message.h +#if !defined(CATCH_CONFIG_DISABLE) + +#if !defined(CATCH_CONFIG_DISABLE_STRINGIFICATION) + #define CATCH_INTERNAL_STRINGIFY(...) #__VA_ARGS__ +#else + #define CATCH_INTERNAL_STRINGIFY(...) "Disabled by CATCH_CONFIG_DISABLE_STRINGIFICATION" +#endif + +#if defined(CATCH_CONFIG_FAST_COMPILE) || defined(CATCH_CONFIG_DISABLE_EXCEPTIONS) + +/////////////////////////////////////////////////////////////////////////////// +// Another way to speed-up compilation is to omit local try-catch for REQUIRE* +// macros. +#define INTERNAL_CATCH_TRY +#define INTERNAL_CATCH_CATCH( capturer ) + +#else // CATCH_CONFIG_FAST_COMPILE + +#define INTERNAL_CATCH_TRY try +#define INTERNAL_CATCH_CATCH( handler ) catch(...) { handler.handleUnexpectedInflightException(); } + +#endif + +#define INTERNAL_CATCH_REACT( handler ) handler.complete(); + +/////////////////////////////////////////////////////////////////////////////// +#define INTERNAL_CATCH_TEST( macroName, resultDisposition, ... ) \ + do { \ + CATCH_INTERNAL_IGNORE_BUT_WARN(__VA_ARGS__); \ + Catch::AssertionHandler catchAssertionHandler( macroName##_catch_sr, CATCH_INTERNAL_LINEINFO, CATCH_INTERNAL_STRINGIFY(__VA_ARGS__), resultDisposition ); \ + INTERNAL_CATCH_TRY { \ + CATCH_INTERNAL_START_WARNINGS_SUPPRESSION \ + CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS \ + catchAssertionHandler.handleExpr( Catch::Decomposer() <= __VA_ARGS__ ); \ + CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION \ + } INTERNAL_CATCH_CATCH( catchAssertionHandler ) \ + INTERNAL_CATCH_REACT( catchAssertionHandler ) \ + } while( (void)0, (false) && static_cast<bool>( !!(__VA_ARGS__) ) ) + +/////////////////////////////////////////////////////////////////////////////// +#define INTERNAL_CATCH_IF( macroName, resultDisposition, ... ) \ + INTERNAL_CATCH_TEST( macroName, resultDisposition, __VA_ARGS__ ); \ + if( Catch::getResultCapture().lastAssertionPassed() ) + +/////////////////////////////////////////////////////////////////////////////// +#define INTERNAL_CATCH_ELSE( macroName, resultDisposition, ... ) \ + INTERNAL_CATCH_TEST( macroName, resultDisposition, __VA_ARGS__ ); \ + if( !Catch::getResultCapture().lastAssertionPassed() ) + +/////////////////////////////////////////////////////////////////////////////// +#define INTERNAL_CATCH_NO_THROW( macroName, resultDisposition, ... ) \ + do { \ + Catch::AssertionHandler catchAssertionHandler( macroName##_catch_sr, CATCH_INTERNAL_LINEINFO, CATCH_INTERNAL_STRINGIFY(__VA_ARGS__), resultDisposition ); \ + try { \ + static_cast<void>(__VA_ARGS__); \ + catchAssertionHandler.handleExceptionNotThrownAsExpected(); \ + } \ + catch( ... ) { \ + catchAssertionHandler.handleUnexpectedInflightException(); \ + } \ + INTERNAL_CATCH_REACT( catchAssertionHandler ) \ + } while( false ) + +/////////////////////////////////////////////////////////////////////////////// +#define INTERNAL_CATCH_THROWS( macroName, resultDisposition, ... ) \ + do { \ + Catch::AssertionHandler catchAssertionHandler( macroName##_catch_sr, CATCH_INTERNAL_LINEINFO, CATCH_INTERNAL_STRINGIFY(__VA_ARGS__), resultDisposition); \ + if( catchAssertionHandler.allowThrows() ) \ + try { \ + static_cast<void>(__VA_ARGS__); \ + catchAssertionHandler.handleUnexpectedExceptionNotThrown(); \ + } \ + catch( ... ) { \ + catchAssertionHandler.handleExceptionThrownAsExpected(); \ + } \ + else \ + catchAssertionHandler.handleThrowingCallSkipped(); \ + INTERNAL_CATCH_REACT( catchAssertionHandler ) \ + } while( false ) + +/////////////////////////////////////////////////////////////////////////////// +#define INTERNAL_CATCH_THROWS_AS( macroName, exceptionType, resultDisposition, expr ) \ + do { \ + Catch::AssertionHandler catchAssertionHandler( macroName##_catch_sr, CATCH_INTERNAL_LINEINFO, CATCH_INTERNAL_STRINGIFY(expr) ", " CATCH_INTERNAL_STRINGIFY(exceptionType), resultDisposition ); \ + if( catchAssertionHandler.allowThrows() ) \ + try { \ + static_cast<void>(expr); \ + catchAssertionHandler.handleUnexpectedExceptionNotThrown(); \ + } \ + catch( exceptionType const& ) { \ + catchAssertionHandler.handleExceptionThrownAsExpected(); \ + } \ + catch( ... ) { \ + catchAssertionHandler.handleUnexpectedInflightException(); \ + } \ + else \ + catchAssertionHandler.handleThrowingCallSkipped(); \ + INTERNAL_CATCH_REACT( catchAssertionHandler ) \ + } while( false ) + +/////////////////////////////////////////////////////////////////////////////// +#define INTERNAL_CATCH_MSG( macroName, messageType, resultDisposition, ... ) \ + do { \ + Catch::AssertionHandler catchAssertionHandler( macroName##_catch_sr, CATCH_INTERNAL_LINEINFO, Catch::StringRef(), resultDisposition ); \ + catchAssertionHandler.handleMessage( messageType, ( Catch::MessageStream() << __VA_ARGS__ + ::Catch::StreamEndStop() ).m_stream.str() ); \ + INTERNAL_CATCH_REACT( catchAssertionHandler ) \ + } while( false ) + +/////////////////////////////////////////////////////////////////////////////// +#define INTERNAL_CATCH_CAPTURE( varName, macroName, ... ) \ + auto varName = Catch::Capturer( macroName, CATCH_INTERNAL_LINEINFO, Catch::ResultWas::Info, #__VA_ARGS__ ); \ + varName.captureValues( 0, __VA_ARGS__ ) + +/////////////////////////////////////////////////////////////////////////////// +#define INTERNAL_CATCH_INFO( macroName, log ) \ + Catch::ScopedMessage INTERNAL_CATCH_UNIQUE_NAME( scopedMessage )( Catch::MessageBuilder( macroName##_catch_sr, CATCH_INTERNAL_LINEINFO, Catch::ResultWas::Info ) << log ); + +/////////////////////////////////////////////////////////////////////////////// +#define INTERNAL_CATCH_UNSCOPED_INFO( macroName, log ) \ + Catch::getResultCapture().emplaceUnscopedMessage( Catch::MessageBuilder( macroName##_catch_sr, CATCH_INTERNAL_LINEINFO, Catch::ResultWas::Info ) << log ) + +/////////////////////////////////////////////////////////////////////////////// +// Although this is matcher-based, it can be used with just a string +#define INTERNAL_CATCH_THROWS_STR_MATCHES( macroName, resultDisposition, matcher, ... ) \ + do { \ + Catch::AssertionHandler catchAssertionHandler( macroName##_catch_sr, CATCH_INTERNAL_LINEINFO, CATCH_INTERNAL_STRINGIFY(__VA_ARGS__) ", " CATCH_INTERNAL_STRINGIFY(matcher), resultDisposition ); \ + if( catchAssertionHandler.allowThrows() ) \ + try { \ + static_cast<void>(__VA_ARGS__); \ + catchAssertionHandler.handleUnexpectedExceptionNotThrown(); \ + } \ + catch( ... ) { \ + Catch::handleExceptionMatchExpr( catchAssertionHandler, matcher, #matcher##_catch_sr ); \ + } \ + else \ + catchAssertionHandler.handleThrowingCallSkipped(); \ + INTERNAL_CATCH_REACT( catchAssertionHandler ) \ + } while( false ) + +#endif // CATCH_CONFIG_DISABLE + +// end catch_capture.hpp +// start catch_section.h + +// start catch_section_info.h + +// start catch_totals.h + +#include <cstddef> + +namespace Catch { + + struct Counts { + Counts operator - ( Counts const& other ) const; + Counts& operator += ( Counts const& other ); + + std::size_t total() const; + bool allPassed() const; + bool allOk() const; + + std::size_t passed = 0; + std::size_t failed = 0; + std::size_t failedButOk = 0; + }; + + struct Totals { + + Totals operator - ( Totals const& other ) const; + Totals& operator += ( Totals const& other ); + + Totals delta( Totals const& prevTotals ) const; + + int error = 0; + Counts assertions; + Counts testCases; + }; +} + +// end catch_totals.h +#include <string> + +namespace Catch { + + struct SectionInfo { + SectionInfo + ( SourceLineInfo const& _lineInfo, + std::string const& _name ); + + // Deprecated + SectionInfo + ( SourceLineInfo const& _lineInfo, + std::string const& _name, + std::string const& ) : SectionInfo( _lineInfo, _name ) {} + + std::string name; + std::string description; // !Deprecated: this will always be empty + SourceLineInfo lineInfo; + }; + + struct SectionEndInfo { + SectionInfo sectionInfo; + Counts prevAssertions; + double durationInSeconds; + }; + +} // end namespace Catch + +// end catch_section_info.h +// start catch_timer.h + +#include <cstdint> + +namespace Catch { + + auto getCurrentNanosecondsSinceEpoch() -> uint64_t; + auto getEstimatedClockResolution() -> uint64_t; + + class Timer { + uint64_t m_nanoseconds = 0; + public: + void start(); + auto getElapsedNanoseconds() const -> uint64_t; + auto getElapsedMicroseconds() const -> uint64_t; + auto getElapsedMilliseconds() const -> unsigned int; + auto getElapsedSeconds() const -> double; + }; + +} // namespace Catch + +// end catch_timer.h +#include <string> + +namespace Catch { + + class Section : NonCopyable { + public: + Section( SectionInfo const& info ); + ~Section(); + + // This indicates whether the section should be executed or not + explicit operator bool() const; + + private: + SectionInfo m_info; + + std::string m_name; + Counts m_assertions; + bool m_sectionIncluded; + Timer m_timer; + }; + +} // end namespace Catch + +#define INTERNAL_CATCH_SECTION( ... ) \ + CATCH_INTERNAL_START_WARNINGS_SUPPRESSION \ + CATCH_INTERNAL_SUPPRESS_UNUSED_WARNINGS \ + if( Catch::Section const& INTERNAL_CATCH_UNIQUE_NAME( catch_internal_Section ) = Catch::SectionInfo( CATCH_INTERNAL_LINEINFO, __VA_ARGS__ ) ) \ + CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION + +#define INTERNAL_CATCH_DYNAMIC_SECTION( ... ) \ + CATCH_INTERNAL_START_WARNINGS_SUPPRESSION \ + CATCH_INTERNAL_SUPPRESS_UNUSED_WARNINGS \ + if( Catch::Section const& INTERNAL_CATCH_UNIQUE_NAME( catch_internal_Section ) = Catch::SectionInfo( CATCH_INTERNAL_LINEINFO, (Catch::ReusableStringStream() << __VA_ARGS__).str() ) ) \ + CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION + +// end catch_section.h +// start catch_interfaces_exception.h + +// start catch_interfaces_registry_hub.h + +#include <string> +#include <memory> + +namespace Catch { + + class TestCase; + struct ITestCaseRegistry; + struct IExceptionTranslatorRegistry; + struct IExceptionTranslator; + struct IReporterRegistry; + struct IReporterFactory; + struct ITagAliasRegistry; + struct IMutableEnumValuesRegistry; + + class StartupExceptionRegistry; + + using IReporterFactoryPtr = std::shared_ptr<IReporterFactory>; + + struct IRegistryHub { + virtual ~IRegistryHub(); + + virtual IReporterRegistry const& getReporterRegistry() const = 0; + virtual ITestCaseRegistry const& getTestCaseRegistry() const = 0; + virtual ITagAliasRegistry const& getTagAliasRegistry() const = 0; + virtual IExceptionTranslatorRegistry const& getExceptionTranslatorRegistry() const = 0; + + virtual StartupExceptionRegistry const& getStartupExceptionRegistry() const = 0; + }; + + struct IMutableRegistryHub { + virtual ~IMutableRegistryHub(); + virtual void registerReporter( std::string const& name, IReporterFactoryPtr const& factory ) = 0; + virtual void registerListener( IReporterFactoryPtr const& factory ) = 0; + virtual void registerTest( TestCase const& testInfo ) = 0; + virtual void registerTranslator( const IExceptionTranslator* translator ) = 0; + virtual void registerTagAlias( std::string const& alias, std::string const& tag, SourceLineInfo const& lineInfo ) = 0; + virtual void registerStartupException() noexcept = 0; + virtual IMutableEnumValuesRegistry& getMutableEnumValuesRegistry() = 0; + }; + + IRegistryHub const& getRegistryHub(); + IMutableRegistryHub& getMutableRegistryHub(); + void cleanUp(); + std::string translateActiveException(); + +} + +// end catch_interfaces_registry_hub.h +#if defined(CATCH_CONFIG_DISABLE) + #define INTERNAL_CATCH_TRANSLATE_EXCEPTION_NO_REG( translatorName, signature) \ + static std::string translatorName( signature ) +#endif + +#include <exception> +#include <string> +#include <vector> + +namespace Catch { + using exceptionTranslateFunction = std::string(*)(); + + struct IExceptionTranslator; + using ExceptionTranslators = std::vector<std::unique_ptr<IExceptionTranslator const>>; + + struct IExceptionTranslator { + virtual ~IExceptionTranslator(); + virtual std::string translate( ExceptionTranslators::const_iterator it, ExceptionTranslators::const_iterator itEnd ) const = 0; + }; + + struct IExceptionTranslatorRegistry { + virtual ~IExceptionTranslatorRegistry(); + + virtual std::string translateActiveException() const = 0; + }; + + class ExceptionTranslatorRegistrar { + template<typename T> + class ExceptionTranslator : public IExceptionTranslator { + public: + + ExceptionTranslator( std::string(*translateFunction)( T& ) ) + : m_translateFunction( translateFunction ) + {} + + std::string translate( ExceptionTranslators::const_iterator it, ExceptionTranslators::const_iterator itEnd ) const override { +#if defined(CATCH_CONFIG_DISABLE_EXCEPTIONS) + return ""; +#else + try { + if( it == itEnd ) + std::rethrow_exception(std::current_exception()); + else + return (*it)->translate( it+1, itEnd ); + } + catch( T& ex ) { + return m_translateFunction( ex ); + } +#endif + } + + protected: + std::string(*m_translateFunction)( T& ); + }; + + public: + template<typename T> + ExceptionTranslatorRegistrar( std::string(*translateFunction)( T& ) ) { + getMutableRegistryHub().registerTranslator + ( new ExceptionTranslator<T>( translateFunction ) ); + } + }; +} + +/////////////////////////////////////////////////////////////////////////////// +#define INTERNAL_CATCH_TRANSLATE_EXCEPTION2( translatorName, signature ) \ + static std::string translatorName( signature ); \ + CATCH_INTERNAL_START_WARNINGS_SUPPRESSION \ + CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS \ + namespace{ Catch::ExceptionTranslatorRegistrar INTERNAL_CATCH_UNIQUE_NAME( catch_internal_ExceptionRegistrar )( &translatorName ); } \ + CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION \ + static std::string translatorName( signature ) + +#define INTERNAL_CATCH_TRANSLATE_EXCEPTION( signature ) INTERNAL_CATCH_TRANSLATE_EXCEPTION2( INTERNAL_CATCH_UNIQUE_NAME( catch_internal_ExceptionTranslator ), signature ) + +// end catch_interfaces_exception.h +// start catch_approx.h + +#include <type_traits> + +namespace Catch { +namespace Detail { + + class Approx { + private: + bool equalityComparisonImpl(double other) const; + // Validates the new margin (margin >= 0) + // out-of-line to avoid including stdexcept in the header + void setMargin(double margin); + // Validates the new epsilon (0 < epsilon < 1) + // out-of-line to avoid including stdexcept in the header + void setEpsilon(double epsilon); + + public: + explicit Approx ( double value ); + + static Approx custom(); + + Approx operator-() const; + + template <typename T, typename = typename std::enable_if<std::is_constructible<double, T>::value>::type> + Approx operator()( T const& value ) { + Approx approx( static_cast<double>(value) ); + approx.m_epsilon = m_epsilon; + approx.m_margin = m_margin; + approx.m_scale = m_scale; + return approx; + } + + template <typename T, typename = typename std::enable_if<std::is_constructible<double, T>::value>::type> + explicit Approx( T const& value ): Approx(static_cast<double>(value)) + {} + + template <typename T, typename = typename std::enable_if<std::is_constructible<double, T>::value>::type> + friend bool operator == ( const T& lhs, Approx const& rhs ) { + auto lhs_v = static_cast<double>(lhs); + return rhs.equalityComparisonImpl(lhs_v); + } + + template <typename T, typename = typename std::enable_if<std::is_constructible<double, T>::value>::type> + friend bool operator == ( Approx const& lhs, const T& rhs ) { + return operator==( rhs, lhs ); + } + + template <typename T, typename = typename std::enable_if<std::is_constructible<double, T>::value>::type> + friend bool operator != ( T const& lhs, Approx const& rhs ) { + return !operator==( lhs, rhs ); + } + + template <typename T, typename = typename std::enable_if<std::is_constructible<double, T>::value>::type> + friend bool operator != ( Approx const& lhs, T const& rhs ) { + return !operator==( rhs, lhs ); + } + + template <typename T, typename = typename std::enable_if<std::is_constructible<double, T>::value>::type> + friend bool operator <= ( T const& lhs, Approx const& rhs ) { + return static_cast<double>(lhs) < rhs.m_value || lhs == rhs; + } + + template <typename T, typename = typename std::enable_if<std::is_constructible<double, T>::value>::type> + friend bool operator <= ( Approx const& lhs, T const& rhs ) { + return lhs.m_value < static_cast<double>(rhs) || lhs == rhs; + } + + template <typename T, typename = typename std::enable_if<std::is_constructible<double, T>::value>::type> + friend bool operator >= ( T const& lhs, Approx const& rhs ) { + return static_cast<double>(lhs) > rhs.m_value || lhs == rhs; + } + + template <typename T, typename = typename std::enable_if<std::is_constructible<double, T>::value>::type> + friend bool operator >= ( Approx const& lhs, T const& rhs ) { + return lhs.m_value > static_cast<double>(rhs) || lhs == rhs; + } + + template <typename T, typename = typename std::enable_if<std::is_constructible<double, T>::value>::type> + Approx& epsilon( T const& newEpsilon ) { + double epsilonAsDouble = static_cast<double>(newEpsilon); + setEpsilon(epsilonAsDouble); + return *this; + } + + template <typename T, typename = typename std::enable_if<std::is_constructible<double, T>::value>::type> + Approx& margin( T const& newMargin ) { + double marginAsDouble = static_cast<double>(newMargin); + setMargin(marginAsDouble); + return *this; + } + + template <typename T, typename = typename std::enable_if<std::is_constructible<double, T>::value>::type> + Approx& scale( T const& newScale ) { + m_scale = static_cast<double>(newScale); + return *this; + } + + std::string toString() const; + + private: + double m_epsilon; + double m_margin; + double m_scale; + double m_value; + }; +} // end namespace Detail + +namespace literals { + Detail::Approx operator "" _a(long double val); + Detail::Approx operator "" _a(unsigned long long val); +} // end namespace literals + +template<> +struct StringMaker<Catch::Detail::Approx> { + static std::string convert(Catch::Detail::Approx const& value); +}; + +} // end namespace Catch + +// end catch_approx.h +// start catch_string_manip.h + +#include <string> +#include <iosfwd> +#include <vector> + +namespace Catch { + + bool startsWith( std::string const& s, std::string const& prefix ); + bool startsWith( std::string const& s, char prefix ); + bool endsWith( std::string const& s, std::string const& suffix ); + bool endsWith( std::string const& s, char suffix ); + bool contains( std::string const& s, std::string const& infix ); + void toLowerInPlace( std::string& s ); + std::string toLower( std::string const& s ); + //! Returns a new string without whitespace at the start/end + std::string trim( std::string const& str ); + //! Returns a substring of the original ref without whitespace. Beware lifetimes! + StringRef trim(StringRef ref); + + // !!! Be aware, returns refs into original string - make sure original string outlives them + std::vector<StringRef> splitStringRef( StringRef str, char delimiter ); + bool replaceInPlace( std::string& str, std::string const& replaceThis, std::string const& withThis ); + + struct pluralise { + pluralise( std::size_t count, std::string const& label ); + + friend std::ostream& operator << ( std::ostream& os, pluralise const& pluraliser ); + + std::size_t m_count; + std::string m_label; + }; +} + +// end catch_string_manip.h +#ifndef CATCH_CONFIG_DISABLE_MATCHERS +// start catch_capture_matchers.h + +// start catch_matchers.h + +#include <string> +#include <vector> + +namespace Catch { +namespace Matchers { + namespace Impl { + + template<typename ArgT> struct MatchAllOf; + template<typename ArgT> struct MatchAnyOf; + template<typename ArgT> struct MatchNotOf; + + class MatcherUntypedBase { + public: + MatcherUntypedBase() = default; + MatcherUntypedBase ( MatcherUntypedBase const& ) = default; + MatcherUntypedBase& operator = ( MatcherUntypedBase const& ) = delete; + std::string toString() const; + + protected: + virtual ~MatcherUntypedBase(); + virtual std::string describe() const = 0; + mutable std::string m_cachedToString; + }; + +#ifdef __clang__ +# pragma clang diagnostic push +# pragma clang diagnostic ignored "-Wnon-virtual-dtor" +#endif + + template<typename ObjectT> + struct MatcherMethod { + virtual bool match( ObjectT const& arg ) const = 0; + }; + +#if defined(__OBJC__) + // Hack to fix Catch GH issue #1661. Could use id for generic Object support. + // use of const for Object pointers is very uncommon and under ARC it causes some kind of signature mismatch that breaks compilation + template<> + struct MatcherMethod<NSString*> { + virtual bool match( NSString* arg ) const = 0; + }; +#endif + +#ifdef __clang__ +# pragma clang diagnostic pop +#endif + + template<typename T> + struct MatcherBase : MatcherUntypedBase, MatcherMethod<T> { + + MatchAllOf<T> operator && ( MatcherBase const& other ) const; + MatchAnyOf<T> operator || ( MatcherBase const& other ) const; + MatchNotOf<T> operator ! () const; + }; + + template<typename ArgT> + struct MatchAllOf : MatcherBase<ArgT> { + bool match( ArgT const& arg ) const override { + for( auto matcher : m_matchers ) { + if (!matcher->match(arg)) + return false; + } + return true; + } + std::string describe() const override { + std::string description; + description.reserve( 4 + m_matchers.size()*32 ); + description += "( "; + bool first = true; + for( auto matcher : m_matchers ) { + if( first ) + first = false; + else + description += " and "; + description += matcher->toString(); + } + description += " )"; + return description; + } + + MatchAllOf<ArgT> operator && ( MatcherBase<ArgT> const& other ) { + auto copy(*this); + copy.m_matchers.push_back( &other ); + return copy; + } + + std::vector<MatcherBase<ArgT> const*> m_matchers; + }; + template<typename ArgT> + struct MatchAnyOf : MatcherBase<ArgT> { + + bool match( ArgT const& arg ) const override { + for( auto matcher : m_matchers ) { + if (matcher->match(arg)) + return true; + } + return false; + } + std::string describe() const override { + std::string description; + description.reserve( 4 + m_matchers.size()*32 ); + description += "( "; + bool first = true; + for( auto matcher : m_matchers ) { + if( first ) + first = false; + else + description += " or "; + description += matcher->toString(); + } + description += " )"; + return description; + } + + MatchAnyOf<ArgT> operator || ( MatcherBase<ArgT> const& other ) { + auto copy(*this); + copy.m_matchers.push_back( &other ); + return copy; + } + + std::vector<MatcherBase<ArgT> const*> m_matchers; + }; + + template<typename ArgT> + struct MatchNotOf : MatcherBase<ArgT> { + + MatchNotOf( MatcherBase<ArgT> const& underlyingMatcher ) : m_underlyingMatcher( underlyingMatcher ) {} + + bool match( ArgT const& arg ) const override { + return !m_underlyingMatcher.match( arg ); + } + + std::string describe() const override { + return "not " + m_underlyingMatcher.toString(); + } + MatcherBase<ArgT> const& m_underlyingMatcher; + }; + + template<typename T> + MatchAllOf<T> MatcherBase<T>::operator && ( MatcherBase const& other ) const { + return MatchAllOf<T>() && *this && other; + } + template<typename T> + MatchAnyOf<T> MatcherBase<T>::operator || ( MatcherBase const& other ) const { + return MatchAnyOf<T>() || *this || other; + } + template<typename T> + MatchNotOf<T> MatcherBase<T>::operator ! () const { + return MatchNotOf<T>( *this ); + } + + } // namespace Impl + +} // namespace Matchers + +using namespace Matchers; +using Matchers::Impl::MatcherBase; + +} // namespace Catch + +// end catch_matchers.h +// start catch_matchers_exception.hpp + +namespace Catch { +namespace Matchers { +namespace Exception { + +class ExceptionMessageMatcher : public MatcherBase<std::exception> { + std::string m_message; +public: + + ExceptionMessageMatcher(std::string const& message): + m_message(message) + {} + + bool match(std::exception const& ex) const override; + + std::string describe() const override; +}; + +} // namespace Exception + +Exception::ExceptionMessageMatcher Message(std::string const& message); + +} // namespace Matchers +} // namespace Catch + +// end catch_matchers_exception.hpp +// start catch_matchers_floating.h + +namespace Catch { +namespace Matchers { + + namespace Floating { + + enum class FloatingPointKind : uint8_t; + + struct WithinAbsMatcher : MatcherBase<double> { + WithinAbsMatcher(double target, double margin); + bool match(double const& matchee) const override; + std::string describe() const override; + private: + double m_target; + double m_margin; + }; + + struct WithinUlpsMatcher : MatcherBase<double> { + WithinUlpsMatcher(double target, uint64_t ulps, FloatingPointKind baseType); + bool match(double const& matchee) const override; + std::string describe() const override; + private: + double m_target; + uint64_t m_ulps; + FloatingPointKind m_type; + }; + + // Given IEEE-754 format for floats and doubles, we can assume + // that float -> double promotion is lossless. Given this, we can + // assume that if we do the standard relative comparison of + // |lhs - rhs| <= epsilon * max(fabs(lhs), fabs(rhs)), then we get + // the same result if we do this for floats, as if we do this for + // doubles that were promoted from floats. + struct WithinRelMatcher : MatcherBase<double> { + WithinRelMatcher(double target, double epsilon); + bool match(double const& matchee) const override; + std::string describe() const override; + private: + double m_target; + double m_epsilon; + }; + + } // namespace Floating + + // The following functions create the actual matcher objects. + // This allows the types to be inferred + Floating::WithinUlpsMatcher WithinULP(double target, uint64_t maxUlpDiff); + Floating::WithinUlpsMatcher WithinULP(float target, uint64_t maxUlpDiff); + Floating::WithinAbsMatcher WithinAbs(double target, double margin); + Floating::WithinRelMatcher WithinRel(double target, double eps); + // defaults epsilon to 100*numeric_limits<double>::epsilon() + Floating::WithinRelMatcher WithinRel(double target); + Floating::WithinRelMatcher WithinRel(float target, float eps); + // defaults epsilon to 100*numeric_limits<float>::epsilon() + Floating::WithinRelMatcher WithinRel(float target); + +} // namespace Matchers +} // namespace Catch + +// end catch_matchers_floating.h +// start catch_matchers_generic.hpp + +#include <functional> +#include <string> + +namespace Catch { +namespace Matchers { +namespace Generic { + +namespace Detail { + std::string finalizeDescription(const std::string& desc); +} + +template <typename T> +class PredicateMatcher : public MatcherBase<T> { + std::function<bool(T const&)> m_predicate; + std::string m_description; +public: + + PredicateMatcher(std::function<bool(T const&)> const& elem, std::string const& descr) + :m_predicate(std::move(elem)), + m_description(Detail::finalizeDescription(descr)) + {} + + bool match( T const& item ) const override { + return m_predicate(item); + } + + std::string describe() const override { + return m_description; + } +}; + +} // namespace Generic + + // The following functions create the actual matcher objects. + // The user has to explicitly specify type to the function, because + // inferring std::function<bool(T const&)> is hard (but possible) and + // requires a lot of TMP. + template<typename T> + Generic::PredicateMatcher<T> Predicate(std::function<bool(T const&)> const& predicate, std::string const& description = "") { + return Generic::PredicateMatcher<T>(predicate, description); + } + +} // namespace Matchers +} // namespace Catch + +// end catch_matchers_generic.hpp +// start catch_matchers_string.h + +#include <string> + +namespace Catch { +namespace Matchers { + + namespace StdString { + + struct CasedString + { + CasedString( std::string const& str, CaseSensitive::Choice caseSensitivity ); + std::string adjustString( std::string const& str ) const; + std::string caseSensitivitySuffix() const; + + CaseSensitive::Choice m_caseSensitivity; + std::string m_str; + }; + + struct StringMatcherBase : MatcherBase<std::string> { + StringMatcherBase( std::string const& operation, CasedString const& comparator ); + std::string describe() const override; + + CasedString m_comparator; + std::string m_operation; + }; + + struct EqualsMatcher : StringMatcherBase { + EqualsMatcher( CasedString const& comparator ); + bool match( std::string const& source ) const override; + }; + struct ContainsMatcher : StringMatcherBase { + ContainsMatcher( CasedString const& comparator ); + bool match( std::string const& source ) const override; + }; + struct StartsWithMatcher : StringMatcherBase { + StartsWithMatcher( CasedString const& comparator ); + bool match( std::string const& source ) const override; + }; + struct EndsWithMatcher : StringMatcherBase { + EndsWithMatcher( CasedString const& comparator ); + bool match( std::string const& source ) const override; + }; + + struct RegexMatcher : MatcherBase<std::string> { + RegexMatcher( std::string regex, CaseSensitive::Choice caseSensitivity ); + bool match( std::string const& matchee ) const override; + std::string describe() const override; + + private: + std::string m_regex; + CaseSensitive::Choice m_caseSensitivity; + }; + + } // namespace StdString + + // The following functions create the actual matcher objects. + // This allows the types to be inferred + + StdString::EqualsMatcher Equals( std::string const& str, CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes ); + StdString::ContainsMatcher Contains( std::string const& str, CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes ); + StdString::EndsWithMatcher EndsWith( std::string const& str, CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes ); + StdString::StartsWithMatcher StartsWith( std::string const& str, CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes ); + StdString::RegexMatcher Matches( std::string const& regex, CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes ); + +} // namespace Matchers +} // namespace Catch + +// end catch_matchers_string.h +// start catch_matchers_vector.h + +#include <algorithm> + +namespace Catch { +namespace Matchers { + + namespace Vector { + template<typename T, typename Alloc> + struct ContainsElementMatcher : MatcherBase<std::vector<T, Alloc>> { + + ContainsElementMatcher(T const &comparator) : m_comparator( comparator) {} + + bool match(std::vector<T, Alloc> const &v) const override { + for (auto const& el : v) { + if (el == m_comparator) { + return true; + } + } + return false; + } + + std::string describe() const override { + return "Contains: " + ::Catch::Detail::stringify( m_comparator ); + } + + T const& m_comparator; + }; + + template<typename T, typename AllocComp, typename AllocMatch> + struct ContainsMatcher : MatcherBase<std::vector<T, AllocMatch>> { + + ContainsMatcher(std::vector<T, AllocComp> const &comparator) : m_comparator( comparator ) {} + + bool match(std::vector<T, AllocMatch> const &v) const override { + // !TBD: see note in EqualsMatcher + if (m_comparator.size() > v.size()) + return false; + for (auto const& comparator : m_comparator) { + auto present = false; + for (const auto& el : v) { + if (el == comparator) { + present = true; + break; + } + } + if (!present) { + return false; + } + } + return true; + } + std::string describe() const override { + return "Contains: " + ::Catch::Detail::stringify( m_comparator ); + } + + std::vector<T, AllocComp> const& m_comparator; + }; + + template<typename T, typename AllocComp, typename AllocMatch> + struct EqualsMatcher : MatcherBase<std::vector<T, AllocMatch>> { + + EqualsMatcher(std::vector<T, AllocComp> const &comparator) : m_comparator( comparator ) {} + + bool match(std::vector<T, AllocMatch> const &v) const override { + // !TBD: This currently works if all elements can be compared using != + // - a more general approach would be via a compare template that defaults + // to using !=. but could be specialised for, e.g. std::vector<T, Alloc> etc + // - then just call that directly + if (m_comparator.size() != v.size()) + return false; + for (std::size_t i = 0; i < v.size(); ++i) + if (m_comparator[i] != v[i]) + return false; + return true; + } + std::string describe() const override { + return "Equals: " + ::Catch::Detail::stringify( m_comparator ); + } + std::vector<T, AllocComp> const& m_comparator; + }; + + template<typename T, typename AllocComp, typename AllocMatch> + struct ApproxMatcher : MatcherBase<std::vector<T, AllocMatch>> { + + ApproxMatcher(std::vector<T, AllocComp> const& comparator) : m_comparator( comparator ) {} + + bool match(std::vector<T, AllocMatch> const &v) const override { + if (m_comparator.size() != v.size()) + return false; + for (std::size_t i = 0; i < v.size(); ++i) + if (m_comparator[i] != approx(v[i])) + return false; + return true; + } + std::string describe() const override { + return "is approx: " + ::Catch::Detail::stringify( m_comparator ); + } + template <typename = typename std::enable_if<std::is_constructible<double, T>::value>::type> + ApproxMatcher& epsilon( T const& newEpsilon ) { + approx.epsilon(newEpsilon); + return *this; + } + template <typename = typename std::enable_if<std::is_constructible<double, T>::value>::type> + ApproxMatcher& margin( T const& newMargin ) { + approx.margin(newMargin); + return *this; + } + template <typename = typename std::enable_if<std::is_constructible<double, T>::value>::type> + ApproxMatcher& scale( T const& newScale ) { + approx.scale(newScale); + return *this; + } + + std::vector<T, AllocComp> const& m_comparator; + mutable Catch::Detail::Approx approx = Catch::Detail::Approx::custom(); + }; + + template<typename T, typename AllocComp, typename AllocMatch> + struct UnorderedEqualsMatcher : MatcherBase<std::vector<T, AllocMatch>> { + UnorderedEqualsMatcher(std::vector<T, AllocComp> const& target) : m_target(target) {} + bool match(std::vector<T, AllocMatch> const& vec) const override { + // Note: This is a reimplementation of std::is_permutation, + // because I don't want to include <algorithm> inside the common path + if (m_target.size() != vec.size()) { + return false; + } + return std::is_permutation(m_target.begin(), m_target.end(), vec.begin()); + } + + std::string describe() const override { + return "UnorderedEquals: " + ::Catch::Detail::stringify(m_target); + } + private: + std::vector<T, AllocComp> const& m_target; + }; + + } // namespace Vector + + // The following functions create the actual matcher objects. + // This allows the types to be inferred + + template<typename T, typename AllocComp = std::allocator<T>, typename AllocMatch = AllocComp> + Vector::ContainsMatcher<T, AllocComp, AllocMatch> Contains( std::vector<T, AllocComp> const& comparator ) { + return Vector::ContainsMatcher<T, AllocComp, AllocMatch>( comparator ); + } + + template<typename T, typename Alloc = std::allocator<T>> + Vector::ContainsElementMatcher<T, Alloc> VectorContains( T const& comparator ) { + return Vector::ContainsElementMatcher<T, Alloc>( comparator ); + } + + template<typename T, typename AllocComp = std::allocator<T>, typename AllocMatch = AllocComp> + Vector::EqualsMatcher<T, AllocComp, AllocMatch> Equals( std::vector<T, AllocComp> const& comparator ) { + return Vector::EqualsMatcher<T, AllocComp, AllocMatch>( comparator ); + } + + template<typename T, typename AllocComp = std::allocator<T>, typename AllocMatch = AllocComp> + Vector::ApproxMatcher<T, AllocComp, AllocMatch> Approx( std::vector<T, AllocComp> const& comparator ) { + return Vector::ApproxMatcher<T, AllocComp, AllocMatch>( comparator ); + } + + template<typename T, typename AllocComp = std::allocator<T>, typename AllocMatch = AllocComp> + Vector::UnorderedEqualsMatcher<T, AllocComp, AllocMatch> UnorderedEquals(std::vector<T, AllocComp> const& target) { + return Vector::UnorderedEqualsMatcher<T, AllocComp, AllocMatch>( target ); + } + +} // namespace Matchers +} // namespace Catch + +// end catch_matchers_vector.h +namespace Catch { + + template<typename ArgT, typename MatcherT> + class MatchExpr : public ITransientExpression { + ArgT const& m_arg; + MatcherT m_matcher; + StringRef m_matcherString; + public: + MatchExpr( ArgT const& arg, MatcherT const& matcher, StringRef const& matcherString ) + : ITransientExpression{ true, matcher.match( arg ) }, + m_arg( arg ), + m_matcher( matcher ), + m_matcherString( matcherString ) + {} + + void streamReconstructedExpression( std::ostream &os ) const override { + auto matcherAsString = m_matcher.toString(); + os << Catch::Detail::stringify( m_arg ) << ' '; + if( matcherAsString == Detail::unprintableString ) + os << m_matcherString; + else + os << matcherAsString; + } + }; + + using StringMatcher = Matchers::Impl::MatcherBase<std::string>; + + void handleExceptionMatchExpr( AssertionHandler& handler, StringMatcher const& matcher, StringRef const& matcherString ); + + template<typename ArgT, typename MatcherT> + auto makeMatchExpr( ArgT const& arg, MatcherT const& matcher, StringRef const& matcherString ) -> MatchExpr<ArgT, MatcherT> { + return MatchExpr<ArgT, MatcherT>( arg, matcher, matcherString ); + } + +} // namespace Catch + +/////////////////////////////////////////////////////////////////////////////// +#define INTERNAL_CHECK_THAT( macroName, matcher, resultDisposition, arg ) \ + do { \ + Catch::AssertionHandler catchAssertionHandler( macroName##_catch_sr, CATCH_INTERNAL_LINEINFO, CATCH_INTERNAL_STRINGIFY(arg) ", " CATCH_INTERNAL_STRINGIFY(matcher), resultDisposition ); \ + INTERNAL_CATCH_TRY { \ + catchAssertionHandler.handleExpr( Catch::makeMatchExpr( arg, matcher, #matcher##_catch_sr ) ); \ + } INTERNAL_CATCH_CATCH( catchAssertionHandler ) \ + INTERNAL_CATCH_REACT( catchAssertionHandler ) \ + } while( false ) + +/////////////////////////////////////////////////////////////////////////////// +#define INTERNAL_CATCH_THROWS_MATCHES( macroName, exceptionType, resultDisposition, matcher, ... ) \ + do { \ + Catch::AssertionHandler catchAssertionHandler( macroName##_catch_sr, CATCH_INTERNAL_LINEINFO, CATCH_INTERNAL_STRINGIFY(__VA_ARGS__) ", " CATCH_INTERNAL_STRINGIFY(exceptionType) ", " CATCH_INTERNAL_STRINGIFY(matcher), resultDisposition ); \ + if( catchAssertionHandler.allowThrows() ) \ + try { \ + static_cast<void>(__VA_ARGS__ ); \ + catchAssertionHandler.handleUnexpectedExceptionNotThrown(); \ + } \ + catch( exceptionType const& ex ) { \ + catchAssertionHandler.handleExpr( Catch::makeMatchExpr( ex, matcher, #matcher##_catch_sr ) ); \ + } \ + catch( ... ) { \ + catchAssertionHandler.handleUnexpectedInflightException(); \ + } \ + else \ + catchAssertionHandler.handleThrowingCallSkipped(); \ + INTERNAL_CATCH_REACT( catchAssertionHandler ) \ + } while( false ) + +// end catch_capture_matchers.h +#endif +// start catch_generators.hpp + +// start catch_interfaces_generatortracker.h + + +#include <memory> + +namespace Catch { + + namespace Generators { + class GeneratorUntypedBase { + public: + GeneratorUntypedBase() = default; + virtual ~GeneratorUntypedBase(); + // Attempts to move the generator to the next element + // + // Returns true iff the move succeeded (and a valid element + // can be retrieved). + virtual bool next() = 0; + }; + using GeneratorBasePtr = std::unique_ptr<GeneratorUntypedBase>; + + } // namespace Generators + + struct IGeneratorTracker { + virtual ~IGeneratorTracker(); + virtual auto hasGenerator() const -> bool = 0; + virtual auto getGenerator() const -> Generators::GeneratorBasePtr const& = 0; + virtual void setGenerator( Generators::GeneratorBasePtr&& generator ) = 0; + }; + +} // namespace Catch + +// end catch_interfaces_generatortracker.h +// start catch_enforce.h + +#include <exception> + +namespace Catch { +#if !defined(CATCH_CONFIG_DISABLE_EXCEPTIONS) + template <typename Ex> + [[noreturn]] + void throw_exception(Ex const& e) { + throw e; + } +#else // ^^ Exceptions are enabled // Exceptions are disabled vv + [[noreturn]] + void throw_exception(std::exception const& e); +#endif + + [[noreturn]] + void throw_logic_error(std::string const& msg); + [[noreturn]] + void throw_domain_error(std::string const& msg); + [[noreturn]] + void throw_runtime_error(std::string const& msg); + +} // namespace Catch; + +#define CATCH_MAKE_MSG(...) \ + (Catch::ReusableStringStream() << __VA_ARGS__).str() + +#define CATCH_INTERNAL_ERROR(...) \ + Catch::throw_logic_error(CATCH_MAKE_MSG( CATCH_INTERNAL_LINEINFO << ": Internal Catch2 error: " << __VA_ARGS__)) + +#define CATCH_ERROR(...) \ + Catch::throw_domain_error(CATCH_MAKE_MSG( __VA_ARGS__ )) + +#define CATCH_RUNTIME_ERROR(...) \ + Catch::throw_runtime_error(CATCH_MAKE_MSG( __VA_ARGS__ )) + +#define CATCH_ENFORCE( condition, ... ) \ + do{ if( !(condition) ) CATCH_ERROR( __VA_ARGS__ ); } while(false) + +// end catch_enforce.h +#include <memory> +#include <vector> +#include <cassert> + +#include <utility> +#include <exception> + +namespace Catch { + +class GeneratorException : public std::exception { + const char* const m_msg = ""; + +public: + GeneratorException(const char* msg): + m_msg(msg) + {} + + const char* what() const noexcept override final; +}; + +namespace Generators { + + // !TBD move this into its own location? + namespace pf{ + template<typename T, typename... Args> + std::unique_ptr<T> make_unique( Args&&... args ) { + return std::unique_ptr<T>(new T(std::forward<Args>(args)...)); + } + } + + template<typename T> + struct IGenerator : GeneratorUntypedBase { + virtual ~IGenerator() = default; + + // Returns the current element of the generator + // + // \Precondition The generator is either freshly constructed, + // or the last call to `next()` returned true + virtual T const& get() const = 0; + using type = T; + }; + + template<typename T> + class SingleValueGenerator final : public IGenerator<T> { + T m_value; + public: + SingleValueGenerator(T&& value) : m_value(std::move(value)) {} + + T const& get() const override { + return m_value; + } + bool next() override { + return false; + } + }; + + template<typename T> + class FixedValuesGenerator final : public IGenerator<T> { + static_assert(!std::is_same<T, bool>::value, + "FixedValuesGenerator does not support bools because of std::vector<bool>" + "specialization, use SingleValue Generator instead."); + std::vector<T> m_values; + size_t m_idx = 0; + public: + FixedValuesGenerator( std::initializer_list<T> values ) : m_values( values ) {} + + T const& get() const override { + return m_values[m_idx]; + } + bool next() override { + ++m_idx; + return m_idx < m_values.size(); + } + }; + + template <typename T> + class GeneratorWrapper final { + std::unique_ptr<IGenerator<T>> m_generator; + public: + GeneratorWrapper(std::unique_ptr<IGenerator<T>> generator): + m_generator(std::move(generator)) + {} + T const& get() const { + return m_generator->get(); + } + bool next() { + return m_generator->next(); + } + }; + + template <typename T> + GeneratorWrapper<T> value(T&& value) { + return GeneratorWrapper<T>(pf::make_unique<SingleValueGenerator<T>>(std::forward<T>(value))); + } + template <typename T> + GeneratorWrapper<T> values(std::initializer_list<T> values) { + return GeneratorWrapper<T>(pf::make_unique<FixedValuesGenerator<T>>(values)); + } + + template<typename T> + class Generators : public IGenerator<T> { + std::vector<GeneratorWrapper<T>> m_generators; + size_t m_current = 0; + + void populate(GeneratorWrapper<T>&& generator) { + m_generators.emplace_back(std::move(generator)); + } + void populate(T&& val) { + m_generators.emplace_back(value(std::forward<T>(val))); + } + template<typename U> + void populate(U&& val) { + populate(T(std::forward<U>(val))); + } + template<typename U, typename... Gs> + void populate(U&& valueOrGenerator, Gs &&... moreGenerators) { + populate(std::forward<U>(valueOrGenerator)); + populate(std::forward<Gs>(moreGenerators)...); + } + + public: + template <typename... Gs> + Generators(Gs &&... moreGenerators) { + m_generators.reserve(sizeof...(Gs)); + populate(std::forward<Gs>(moreGenerators)...); + } + + T const& get() const override { + return m_generators[m_current].get(); + } + + bool next() override { + if (m_current >= m_generators.size()) { + return false; + } + const bool current_status = m_generators[m_current].next(); + if (!current_status) { + ++m_current; + } + return m_current < m_generators.size(); + } + }; + + template<typename... Ts> + GeneratorWrapper<std::tuple<Ts...>> table( std::initializer_list<std::tuple<typename std::decay<Ts>::type...>> tuples ) { + return values<std::tuple<Ts...>>( tuples ); + } + + // Tag type to signal that a generator sequence should convert arguments to a specific type + template <typename T> + struct as {}; + + template<typename T, typename... Gs> + auto makeGenerators( GeneratorWrapper<T>&& generator, Gs &&... moreGenerators ) -> Generators<T> { + return Generators<T>(std::move(generator), std::forward<Gs>(moreGenerators)...); + } + template<typename T> + auto makeGenerators( GeneratorWrapper<T>&& generator ) -> Generators<T> { + return Generators<T>(std::move(generator)); + } + template<typename T, typename... Gs> + auto makeGenerators( T&& val, Gs &&... moreGenerators ) -> Generators<T> { + return makeGenerators( value( std::forward<T>( val ) ), std::forward<Gs>( moreGenerators )... ); + } + template<typename T, typename U, typename... Gs> + auto makeGenerators( as<T>, U&& val, Gs &&... moreGenerators ) -> Generators<T> { + return makeGenerators( value( T( std::forward<U>( val ) ) ), std::forward<Gs>( moreGenerators )... ); + } + + auto acquireGeneratorTracker( SourceLineInfo const& lineInfo ) -> IGeneratorTracker&; + + template<typename L> + // Note: The type after -> is weird, because VS2015 cannot parse + // the expression used in the typedef inside, when it is in + // return type. Yeah. + auto generate( SourceLineInfo const& lineInfo, L const& generatorExpression ) -> decltype(std::declval<decltype(generatorExpression())>().get()) { + using UnderlyingType = typename decltype(generatorExpression())::type; + + IGeneratorTracker& tracker = acquireGeneratorTracker( lineInfo ); + if (!tracker.hasGenerator()) { + tracker.setGenerator(pf::make_unique<Generators<UnderlyingType>>(generatorExpression())); + } + + auto const& generator = static_cast<IGenerator<UnderlyingType> const&>( *tracker.getGenerator() ); + return generator.get(); + } + +} // namespace Generators +} // namespace Catch + +#define GENERATE( ... ) \ + Catch::Generators::generate( CATCH_INTERNAL_LINEINFO, [ ]{ using namespace Catch::Generators; return makeGenerators( __VA_ARGS__ ); } ) //NOLINT(google-build-using-namespace) +#define GENERATE_COPY( ... ) \ + Catch::Generators::generate( CATCH_INTERNAL_LINEINFO, [=]{ using namespace Catch::Generators; return makeGenerators( __VA_ARGS__ ); } ) //NOLINT(google-build-using-namespace) +#define GENERATE_REF( ... ) \ + Catch::Generators::generate( CATCH_INTERNAL_LINEINFO, [&]{ using namespace Catch::Generators; return makeGenerators( __VA_ARGS__ ); } ) //NOLINT(google-build-using-namespace) + +// end catch_generators.hpp +// start catch_generators_generic.hpp + +namespace Catch { +namespace Generators { + + template <typename T> + class TakeGenerator : public IGenerator<T> { + GeneratorWrapper<T> m_generator; + size_t m_returned = 0; + size_t m_target; + public: + TakeGenerator(size_t target, GeneratorWrapper<T>&& generator): + m_generator(std::move(generator)), + m_target(target) + { + assert(target != 0 && "Empty generators are not allowed"); + } + T const& get() const override { + return m_generator.get(); + } + bool next() override { + ++m_returned; + if (m_returned >= m_target) { + return false; + } + + const auto success = m_generator.next(); + // If the underlying generator does not contain enough values + // then we cut short as well + if (!success) { + m_returned = m_target; + } + return success; + } + }; + + template <typename T> + GeneratorWrapper<T> take(size_t target, GeneratorWrapper<T>&& generator) { + return GeneratorWrapper<T>(pf::make_unique<TakeGenerator<T>>(target, std::move(generator))); + } + + template <typename T, typename Predicate> + class FilterGenerator : public IGenerator<T> { + GeneratorWrapper<T> m_generator; + Predicate m_predicate; + public: + template <typename P = Predicate> + FilterGenerator(P&& pred, GeneratorWrapper<T>&& generator): + m_generator(std::move(generator)), + m_predicate(std::forward<P>(pred)) + { + if (!m_predicate(m_generator.get())) { + // It might happen that there are no values that pass the + // filter. In that case we throw an exception. + auto has_initial_value = next(); + if (!has_initial_value) { + Catch::throw_exception(GeneratorException("No valid value found in filtered generator")); + } + } + } + + T const& get() const override { + return m_generator.get(); + } + + bool next() override { + bool success = m_generator.next(); + if (!success) { + return false; + } + while (!m_predicate(m_generator.get()) && (success = m_generator.next()) == true); + return success; + } + }; + + template <typename T, typename Predicate> + GeneratorWrapper<T> filter(Predicate&& pred, GeneratorWrapper<T>&& generator) { + return GeneratorWrapper<T>(std::unique_ptr<IGenerator<T>>(pf::make_unique<FilterGenerator<T, Predicate>>(std::forward<Predicate>(pred), std::move(generator)))); + } + + template <typename T> + class RepeatGenerator : public IGenerator<T> { + static_assert(!std::is_same<T, bool>::value, + "RepeatGenerator currently does not support bools" + "because of std::vector<bool> specialization"); + GeneratorWrapper<T> m_generator; + mutable std::vector<T> m_returned; + size_t m_target_repeats; + size_t m_current_repeat = 0; + size_t m_repeat_index = 0; + public: + RepeatGenerator(size_t repeats, GeneratorWrapper<T>&& generator): + m_generator(std::move(generator)), + m_target_repeats(repeats) + { + assert(m_target_repeats > 0 && "Repeat generator must repeat at least once"); + } + + T const& get() const override { + if (m_current_repeat == 0) { + m_returned.push_back(m_generator.get()); + return m_returned.back(); + } + return m_returned[m_repeat_index]; + } + + bool next() override { + // There are 2 basic cases: + // 1) We are still reading the generator + // 2) We are reading our own cache + + // In the first case, we need to poke the underlying generator. + // If it happily moves, we are left in that state, otherwise it is time to start reading from our cache + if (m_current_repeat == 0) { + const auto success = m_generator.next(); + if (!success) { + ++m_current_repeat; + } + return m_current_repeat < m_target_repeats; + } + + // In the second case, we need to move indices forward and check that we haven't run up against the end + ++m_repeat_index; + if (m_repeat_index == m_returned.size()) { + m_repeat_index = 0; + ++m_current_repeat; + } + return m_current_repeat < m_target_repeats; + } + }; + + template <typename T> + GeneratorWrapper<T> repeat(size_t repeats, GeneratorWrapper<T>&& generator) { + return GeneratorWrapper<T>(pf::make_unique<RepeatGenerator<T>>(repeats, std::move(generator))); + } + + template <typename T, typename U, typename Func> + class MapGenerator : public IGenerator<T> { + // TBD: provide static assert for mapping function, for friendly error message + GeneratorWrapper<U> m_generator; + Func m_function; + // To avoid returning dangling reference, we have to save the values + T m_cache; + public: + template <typename F2 = Func> + MapGenerator(F2&& function, GeneratorWrapper<U>&& generator) : + m_generator(std::move(generator)), + m_function(std::forward<F2>(function)), + m_cache(m_function(m_generator.get())) + {} + + T const& get() const override { + return m_cache; + } + bool next() override { + const auto success = m_generator.next(); + if (success) { + m_cache = m_function(m_generator.get()); + } + return success; + } + }; + + template <typename Func, typename U, typename T = FunctionReturnType<Func, U>> + GeneratorWrapper<T> map(Func&& function, GeneratorWrapper<U>&& generator) { + return GeneratorWrapper<T>( + pf::make_unique<MapGenerator<T, U, Func>>(std::forward<Func>(function), std::move(generator)) + ); + } + + template <typename T, typename U, typename Func> + GeneratorWrapper<T> map(Func&& function, GeneratorWrapper<U>&& generator) { + return GeneratorWrapper<T>( + pf::make_unique<MapGenerator<T, U, Func>>(std::forward<Func>(function), std::move(generator)) + ); + } + + template <typename T> + class ChunkGenerator final : public IGenerator<std::vector<T>> { + std::vector<T> m_chunk; + size_t m_chunk_size; + GeneratorWrapper<T> m_generator; + bool m_used_up = false; + public: + ChunkGenerator(size_t size, GeneratorWrapper<T> generator) : + m_chunk_size(size), m_generator(std::move(generator)) + { + m_chunk.reserve(m_chunk_size); + if (m_chunk_size != 0) { + m_chunk.push_back(m_generator.get()); + for (size_t i = 1; i < m_chunk_size; ++i) { + if (!m_generator.next()) { + Catch::throw_exception(GeneratorException("Not enough values to initialize the first chunk")); + } + m_chunk.push_back(m_generator.get()); + } + } + } + std::vector<T> const& get() const override { + return m_chunk; + } + bool next() override { + m_chunk.clear(); + for (size_t idx = 0; idx < m_chunk_size; ++idx) { + if (!m_generator.next()) { + return false; + } + m_chunk.push_back(m_generator.get()); + } + return true; + } + }; + + template <typename T> + GeneratorWrapper<std::vector<T>> chunk(size_t size, GeneratorWrapper<T>&& generator) { + return GeneratorWrapper<std::vector<T>>( + pf::make_unique<ChunkGenerator<T>>(size, std::move(generator)) + ); + } + +} // namespace Generators +} // namespace Catch + +// end catch_generators_generic.hpp +// start catch_generators_specific.hpp + +// start catch_context.h + +#include <memory> + +namespace Catch { + + struct IResultCapture; + struct IRunner; + struct IConfig; + struct IMutableContext; + + using IConfigPtr = std::shared_ptr<IConfig const>; + + struct IContext + { + virtual ~IContext(); + + virtual IResultCapture* getResultCapture() = 0; + virtual IRunner* getRunner() = 0; + virtual IConfigPtr const& getConfig() const = 0; + }; + + struct IMutableContext : IContext + { + virtual ~IMutableContext(); + virtual void setResultCapture( IResultCapture* resultCapture ) = 0; + virtual void setRunner( IRunner* runner ) = 0; + virtual void setConfig( IConfigPtr const& config ) = 0; + + private: + static IMutableContext *currentContext; + friend IMutableContext& getCurrentMutableContext(); + friend void cleanUpContext(); + static void createContext(); + }; + + inline IMutableContext& getCurrentMutableContext() + { + if( !IMutableContext::currentContext ) + IMutableContext::createContext(); + // NOLINTNEXTLINE(clang-analyzer-core.uninitialized.UndefReturn) + return *IMutableContext::currentContext; + } + + inline IContext& getCurrentContext() + { + return getCurrentMutableContext(); + } + + void cleanUpContext(); + + class SimplePcg32; + SimplePcg32& rng(); +} + +// end catch_context.h +// start catch_interfaces_config.h + +// start catch_option.hpp + +namespace Catch { + + // An optional type + template<typename T> + class Option { + public: + Option() : nullableValue( nullptr ) {} + Option( T const& _value ) + : nullableValue( new( storage ) T( _value ) ) + {} + Option( Option const& _other ) + : nullableValue( _other ? new( storage ) T( *_other ) : nullptr ) + {} + + ~Option() { + reset(); + } + + Option& operator= ( Option const& _other ) { + if( &_other != this ) { + reset(); + if( _other ) + nullableValue = new( storage ) T( *_other ); + } + return *this; + } + Option& operator = ( T const& _value ) { + reset(); + nullableValue = new( storage ) T( _value ); + return *this; + } + + void reset() { + if( nullableValue ) + nullableValue->~T(); + nullableValue = nullptr; + } + + T& operator*() { return *nullableValue; } + T const& operator*() const { return *nullableValue; } + T* operator->() { return nullableValue; } + const T* operator->() const { return nullableValue; } + + T valueOr( T const& defaultValue ) const { + return nullableValue ? *nullableValue : defaultValue; + } + + bool some() const { return nullableValue != nullptr; } + bool none() const { return nullableValue == nullptr; } + + bool operator !() const { return nullableValue == nullptr; } + explicit operator bool() const { + return some(); + } + + private: + T *nullableValue; + alignas(alignof(T)) char storage[sizeof(T)]; + }; + +} // end namespace Catch + +// end catch_option.hpp +#include <chrono> +#include <iosfwd> +#include <string> +#include <vector> +#include <memory> + +namespace Catch { + + enum class Verbosity { + Quiet = 0, + Normal, + High + }; + + struct WarnAbout { enum What { + Nothing = 0x00, + NoAssertions = 0x01, + NoTests = 0x02 + }; }; + + struct ShowDurations { enum OrNot { + DefaultForReporter, + Always, + Never + }; }; + struct RunTests { enum InWhatOrder { + InDeclarationOrder, + InLexicographicalOrder, + InRandomOrder + }; }; + struct UseColour { enum YesOrNo { + Auto, + Yes, + No + }; }; + struct WaitForKeypress { enum When { + Never, + BeforeStart = 1, + BeforeExit = 2, + BeforeStartAndExit = BeforeStart | BeforeExit + }; }; + + class TestSpec; + + struct IConfig : NonCopyable { + + virtual ~IConfig(); + + virtual bool allowThrows() const = 0; + virtual std::ostream& stream() const = 0; + virtual std::string name() const = 0; + virtual bool includeSuccessfulResults() const = 0; + virtual bool shouldDebugBreak() const = 0; + virtual bool warnAboutMissingAssertions() const = 0; + virtual bool warnAboutNoTests() const = 0; + virtual int abortAfter() const = 0; + virtual bool showInvisibles() const = 0; + virtual ShowDurations::OrNot showDurations() const = 0; + virtual TestSpec const& testSpec() const = 0; + virtual bool hasTestFilters() const = 0; + virtual std::vector<std::string> const& getTestsOrTags() const = 0; + virtual RunTests::InWhatOrder runOrder() const = 0; + virtual unsigned int rngSeed() const = 0; + virtual UseColour::YesOrNo useColour() const = 0; + virtual std::vector<std::string> const& getSectionsToRun() const = 0; + virtual Verbosity verbosity() const = 0; + + virtual bool benchmarkNoAnalysis() const = 0; + virtual int benchmarkSamples() const = 0; + virtual double benchmarkConfidenceInterval() const = 0; + virtual unsigned int benchmarkResamples() const = 0; + virtual std::chrono::milliseconds benchmarkWarmupTime() const = 0; + }; + + using IConfigPtr = std::shared_ptr<IConfig const>; +} + +// end catch_interfaces_config.h +// start catch_random_number_generator.h + +#include <cstdint> + +namespace Catch { + + // This is a simple implementation of C++11 Uniform Random Number + // Generator. It does not provide all operators, because Catch2 + // does not use it, but it should behave as expected inside stdlib's + // distributions. + // The implementation is based on the PCG family (http://pcg-random.org) + class SimplePcg32 { + using state_type = std::uint64_t; + public: + using result_type = std::uint32_t; + static constexpr result_type (min)() { + return 0; + } + static constexpr result_type (max)() { + return static_cast<result_type>(-1); + } + + // Provide some default initial state for the default constructor + SimplePcg32():SimplePcg32(0xed743cc4U) {} + + explicit SimplePcg32(result_type seed_); + + void seed(result_type seed_); + void discard(uint64_t skip); + + result_type operator()(); + + private: + friend bool operator==(SimplePcg32 const& lhs, SimplePcg32 const& rhs); + friend bool operator!=(SimplePcg32 const& lhs, SimplePcg32 const& rhs); + + // In theory we also need operator<< and operator>> + // In practice we do not use them, so we will skip them for now + + std::uint64_t m_state; + // This part of the state determines which "stream" of the numbers + // is chosen -- we take it as a constant for Catch2, so we only + // need to deal with seeding the main state. + // Picked by reading 8 bytes from `/dev/random` :-) + static const std::uint64_t s_inc = (0x13ed0cc53f939476ULL << 1ULL) | 1ULL; + }; + +} // end namespace Catch + +// end catch_random_number_generator.h +#include <random> + +namespace Catch { +namespace Generators { + +template <typename Float> +class RandomFloatingGenerator final : public IGenerator<Float> { + Catch::SimplePcg32& m_rng; + std::uniform_real_distribution<Float> m_dist; + Float m_current_number; +public: + + RandomFloatingGenerator(Float a, Float b): + m_rng(rng()), + m_dist(a, b) { + static_cast<void>(next()); + } + + Float const& get() const override { + return m_current_number; + } + bool next() override { + m_current_number = m_dist(m_rng); + return true; + } +}; + +template <typename Integer> +class RandomIntegerGenerator final : public IGenerator<Integer> { + Catch::SimplePcg32& m_rng; + std::uniform_int_distribution<Integer> m_dist; + Integer m_current_number; +public: + + RandomIntegerGenerator(Integer a, Integer b): + m_rng(rng()), + m_dist(a, b) { + static_cast<void>(next()); + } + + Integer const& get() const override { + return m_current_number; + } + bool next() override { + m_current_number = m_dist(m_rng); + return true; + } +}; + +// TODO: Ideally this would be also constrained against the various char types, +// but I don't expect users to run into that in practice. +template <typename T> +typename std::enable_if<std::is_integral<T>::value && !std::is_same<T, bool>::value, +GeneratorWrapper<T>>::type +random(T a, T b) { + return GeneratorWrapper<T>( + pf::make_unique<RandomIntegerGenerator<T>>(a, b) + ); +} + +template <typename T> +typename std::enable_if<std::is_floating_point<T>::value, +GeneratorWrapper<T>>::type +random(T a, T b) { + return GeneratorWrapper<T>( + pf::make_unique<RandomFloatingGenerator<T>>(a, b) + ); +} + +template <typename T> +class RangeGenerator final : public IGenerator<T> { + T m_current; + T m_end; + T m_step; + bool m_positive; + +public: + RangeGenerator(T const& start, T const& end, T const& step): + m_current(start), + m_end(end), + m_step(step), + m_positive(m_step > T(0)) + { + assert(m_current != m_end && "Range start and end cannot be equal"); + assert(m_step != T(0) && "Step size cannot be zero"); + assert(((m_positive && m_current <= m_end) || (!m_positive && m_current >= m_end)) && "Step moves away from end"); + } + + RangeGenerator(T const& start, T const& end): + RangeGenerator(start, end, (start < end) ? T(1) : T(-1)) + {} + + T const& get() const override { + return m_current; + } + + bool next() override { + m_current += m_step; + return (m_positive) ? (m_current < m_end) : (m_current > m_end); + } +}; + +template <typename T> +GeneratorWrapper<T> range(T const& start, T const& end, T const& step) { + static_assert(std::is_arithmetic<T>::value && !std::is_same<T, bool>::value, "Type must be numeric"); + return GeneratorWrapper<T>(pf::make_unique<RangeGenerator<T>>(start, end, step)); +} + +template <typename T> +GeneratorWrapper<T> range(T const& start, T const& end) { + static_assert(std::is_integral<T>::value && !std::is_same<T, bool>::value, "Type must be an integer"); + return GeneratorWrapper<T>(pf::make_unique<RangeGenerator<T>>(start, end)); +} + +template <typename T> +class IteratorGenerator final : public IGenerator<T> { + static_assert(!std::is_same<T, bool>::value, + "IteratorGenerator currently does not support bools" + "because of std::vector<bool> specialization"); + + std::vector<T> m_elems; + size_t m_current = 0; +public: + template <typename InputIterator, typename InputSentinel> + IteratorGenerator(InputIterator first, InputSentinel last):m_elems(first, last) { + if (m_elems.empty()) { + Catch::throw_exception(GeneratorException("IteratorGenerator received no valid values")); + } + } + + T const& get() const override { + return m_elems[m_current]; + } + + bool next() override { + ++m_current; + return m_current != m_elems.size(); + } +}; + +template <typename InputIterator, + typename InputSentinel, + typename ResultType = typename std::iterator_traits<InputIterator>::value_type> +GeneratorWrapper<ResultType> from_range(InputIterator from, InputSentinel to) { + return GeneratorWrapper<ResultType>(pf::make_unique<IteratorGenerator<ResultType>>(from, to)); +} + +template <typename Container, + typename ResultType = typename Container::value_type> +GeneratorWrapper<ResultType> from_range(Container const& cnt) { + return GeneratorWrapper<ResultType>(pf::make_unique<IteratorGenerator<ResultType>>(cnt.begin(), cnt.end())); +} + +} // namespace Generators +} // namespace Catch + +// end catch_generators_specific.hpp + +// These files are included here so the single_include script doesn't put them +// in the conditionally compiled sections +// start catch_test_case_info.h + +#include <string> +#include <vector> +#include <memory> + +#ifdef __clang__ +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wpadded" +#endif + +namespace Catch { + + struct ITestInvoker; + + struct TestCaseInfo { + enum SpecialProperties{ + None = 0, + IsHidden = 1 << 1, + ShouldFail = 1 << 2, + MayFail = 1 << 3, + Throws = 1 << 4, + NonPortable = 1 << 5, + Benchmark = 1 << 6 + }; + + TestCaseInfo( std::string const& _name, + std::string const& _className, + std::string const& _description, + std::vector<std::string> const& _tags, + SourceLineInfo const& _lineInfo ); + + friend void setTags( TestCaseInfo& testCaseInfo, std::vector<std::string> tags ); + + bool isHidden() const; + bool throws() const; + bool okToFail() const; + bool expectedToFail() const; + + std::string tagsAsString() const; + + std::string name; + std::string className; + std::string description; + std::vector<std::string> tags; + std::vector<std::string> lcaseTags; + SourceLineInfo lineInfo; + SpecialProperties properties; + }; + + class TestCase : public TestCaseInfo { + public: + + TestCase( ITestInvoker* testCase, TestCaseInfo&& info ); + + TestCase withName( std::string const& _newName ) const; + + void invoke() const; + + TestCaseInfo const& getTestCaseInfo() const; + + bool operator == ( TestCase const& other ) const; + bool operator < ( TestCase const& other ) const; + + private: + std::shared_ptr<ITestInvoker> test; + }; + + TestCase makeTestCase( ITestInvoker* testCase, + std::string const& className, + NameAndTags const& nameAndTags, + SourceLineInfo const& lineInfo ); +} + +#ifdef __clang__ +#pragma clang diagnostic pop +#endif + +// end catch_test_case_info.h +// start catch_interfaces_runner.h + +namespace Catch { + + struct IRunner { + virtual ~IRunner(); + virtual bool aborting() const = 0; + }; +} + +// end catch_interfaces_runner.h + +#ifdef __OBJC__ +// start catch_objc.hpp + +#import <objc/runtime.h> + +#include <string> + +// NB. Any general catch headers included here must be included +// in catch.hpp first to make sure they are included by the single +// header for non obj-usage + +/////////////////////////////////////////////////////////////////////////////// +// This protocol is really only here for (self) documenting purposes, since +// all its methods are optional. +@protocol OcFixture + +@optional + +-(void) setUp; +-(void) tearDown; + +@end + +namespace Catch { + + class OcMethod : public ITestInvoker { + + public: + OcMethod( Class cls, SEL sel ) : m_cls( cls ), m_sel( sel ) {} + + virtual void invoke() const { + id obj = [[m_cls alloc] init]; + + performOptionalSelector( obj, @selector(setUp) ); + performOptionalSelector( obj, m_sel ); + performOptionalSelector( obj, @selector(tearDown) ); + + arcSafeRelease( obj ); + } + private: + virtual ~OcMethod() {} + + Class m_cls; + SEL m_sel; + }; + + namespace Detail{ + + inline std::string getAnnotation( Class cls, + std::string const& annotationName, + std::string const& testCaseName ) { + NSString* selStr = [[NSString alloc] initWithFormat:@"Catch_%s_%s", annotationName.c_str(), testCaseName.c_str()]; + SEL sel = NSSelectorFromString( selStr ); + arcSafeRelease( selStr ); + id value = performOptionalSelector( cls, sel ); + if( value ) + return [(NSString*)value UTF8String]; + return ""; + } + } + + inline std::size_t registerTestMethods() { + std::size_t noTestMethods = 0; + int noClasses = objc_getClassList( nullptr, 0 ); + + Class* classes = (CATCH_UNSAFE_UNRETAINED Class *)malloc( sizeof(Class) * noClasses); + objc_getClassList( classes, noClasses ); + + for( int c = 0; c < noClasses; c++ ) { + Class cls = classes[c]; + { + u_int count; + Method* methods = class_copyMethodList( cls, &count ); + for( u_int m = 0; m < count ; m++ ) { + SEL selector = method_getName(methods[m]); + std::string methodName = sel_getName(selector); + if( startsWith( methodName, "Catch_TestCase_" ) ) { + std::string testCaseName = methodName.substr( 15 ); + std::string name = Detail::getAnnotation( cls, "Name", testCaseName ); + std::string desc = Detail::getAnnotation( cls, "Description", testCaseName ); + const char* className = class_getName( cls ); + + getMutableRegistryHub().registerTest( makeTestCase( new OcMethod( cls, selector ), className, NameAndTags( name.c_str(), desc.c_str() ), SourceLineInfo("",0) ) ); + noTestMethods++; + } + } + free(methods); + } + } + return noTestMethods; + } + +#if !defined(CATCH_CONFIG_DISABLE_MATCHERS) + + namespace Matchers { + namespace Impl { + namespace NSStringMatchers { + + struct StringHolder : MatcherBase<NSString*>{ + StringHolder( NSString* substr ) : m_substr( [substr copy] ){} + StringHolder( StringHolder const& other ) : m_substr( [other.m_substr copy] ){} + StringHolder() { + arcSafeRelease( m_substr ); + } + + bool match( NSString* str ) const override { + return false; + } + + NSString* CATCH_ARC_STRONG m_substr; + }; + + struct Equals : StringHolder { + Equals( NSString* substr ) : StringHolder( substr ){} + + bool match( NSString* str ) const override { + return (str != nil || m_substr == nil ) && + [str isEqualToString:m_substr]; + } + + std::string describe() const override { + return "equals string: " + Catch::Detail::stringify( m_substr ); + } + }; + + struct Contains : StringHolder { + Contains( NSString* substr ) : StringHolder( substr ){} + + bool match( NSString* str ) const override { + return (str != nil || m_substr == nil ) && + [str rangeOfString:m_substr].location != NSNotFound; + } + + std::string describe() const override { + return "contains string: " + Catch::Detail::stringify( m_substr ); + } + }; + + struct StartsWith : StringHolder { + StartsWith( NSString* substr ) : StringHolder( substr ){} + + bool match( NSString* str ) const override { + return (str != nil || m_substr == nil ) && + [str rangeOfString:m_substr].location == 0; + } + + std::string describe() const override { + return "starts with: " + Catch::Detail::stringify( m_substr ); + } + }; + struct EndsWith : StringHolder { + EndsWith( NSString* substr ) : StringHolder( substr ){} + + bool match( NSString* str ) const override { + return (str != nil || m_substr == nil ) && + [str rangeOfString:m_substr].location == [str length] - [m_substr length]; + } + + std::string describe() const override { + return "ends with: " + Catch::Detail::stringify( m_substr ); + } + }; + + } // namespace NSStringMatchers + } // namespace Impl + + inline Impl::NSStringMatchers::Equals + Equals( NSString* substr ){ return Impl::NSStringMatchers::Equals( substr ); } + + inline Impl::NSStringMatchers::Contains + Contains( NSString* substr ){ return Impl::NSStringMatchers::Contains( substr ); } + + inline Impl::NSStringMatchers::StartsWith + StartsWith( NSString* substr ){ return Impl::NSStringMatchers::StartsWith( substr ); } + + inline Impl::NSStringMatchers::EndsWith + EndsWith( NSString* substr ){ return Impl::NSStringMatchers::EndsWith( substr ); } + + } // namespace Matchers + + using namespace Matchers; + +#endif // CATCH_CONFIG_DISABLE_MATCHERS + +} // namespace Catch + +/////////////////////////////////////////////////////////////////////////////// +#define OC_MAKE_UNIQUE_NAME( root, uniqueSuffix ) root##uniqueSuffix +#define OC_TEST_CASE2( name, desc, uniqueSuffix ) \ ++(NSString*) OC_MAKE_UNIQUE_NAME( Catch_Name_test_, uniqueSuffix ) \ +{ \ +return @ name; \ +} \ ++(NSString*) OC_MAKE_UNIQUE_NAME( Catch_Description_test_, uniqueSuffix ) \ +{ \ +return @ desc; \ +} \ +-(void) OC_MAKE_UNIQUE_NAME( Catch_TestCase_test_, uniqueSuffix ) + +#define OC_TEST_CASE( name, desc ) OC_TEST_CASE2( name, desc, __LINE__ ) + +// end catch_objc.hpp +#endif + +// Benchmarking needs the externally-facing parts of reporters to work +#if defined(CATCH_CONFIG_EXTERNAL_INTERFACES) || defined(CATCH_CONFIG_ENABLE_BENCHMARKING) +// start catch_external_interfaces.h + +// start catch_reporter_bases.hpp + +// start catch_interfaces_reporter.h + +// start catch_config.hpp + +// start catch_test_spec_parser.h + +#ifdef __clang__ +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wpadded" +#endif + +// start catch_test_spec.h + +#ifdef __clang__ +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wpadded" +#endif + +// start catch_wildcard_pattern.h + +namespace Catch +{ + class WildcardPattern { + enum WildcardPosition { + NoWildcard = 0, + WildcardAtStart = 1, + WildcardAtEnd = 2, + WildcardAtBothEnds = WildcardAtStart | WildcardAtEnd + }; + + public: + + WildcardPattern( std::string const& pattern, CaseSensitive::Choice caseSensitivity ); + virtual ~WildcardPattern() = default; + virtual bool matches( std::string const& str ) const; + + private: + std::string normaliseString( std::string const& str ) const; + CaseSensitive::Choice m_caseSensitivity; + WildcardPosition m_wildcard = NoWildcard; + std::string m_pattern; + }; +} + +// end catch_wildcard_pattern.h +#include <string> +#include <vector> +#include <memory> + +namespace Catch { + + struct IConfig; + + class TestSpec { + class Pattern { + public: + explicit Pattern( std::string const& name ); + virtual ~Pattern(); + virtual bool matches( TestCaseInfo const& testCase ) const = 0; + std::string const& name() const; + private: + std::string const m_name; + }; + using PatternPtr = std::shared_ptr<Pattern>; + + class NamePattern : public Pattern { + public: + explicit NamePattern( std::string const& name, std::string const& filterString ); + bool matches( TestCaseInfo const& testCase ) const override; + private: + WildcardPattern m_wildcardPattern; + }; + + class TagPattern : public Pattern { + public: + explicit TagPattern( std::string const& tag, std::string const& filterString ); + bool matches( TestCaseInfo const& testCase ) const override; + private: + std::string m_tag; + }; + + class ExcludedPattern : public Pattern { + public: + explicit ExcludedPattern( PatternPtr const& underlyingPattern ); + bool matches( TestCaseInfo const& testCase ) const override; + private: + PatternPtr m_underlyingPattern; + }; + + struct Filter { + std::vector<PatternPtr> m_patterns; + + bool matches( TestCaseInfo const& testCase ) const; + std::string name() const; + }; + + public: + struct FilterMatch { + std::string name; + std::vector<TestCase const*> tests; + }; + using Matches = std::vector<FilterMatch>; + using vectorStrings = std::vector<std::string>; + + bool hasFilters() const; + bool matches( TestCaseInfo const& testCase ) const; + Matches matchesByFilter( std::vector<TestCase> const& testCases, IConfig const& config ) const; + const vectorStrings & getInvalidArgs() const; + + private: + std::vector<Filter> m_filters; + std::vector<std::string> m_invalidArgs; + friend class TestSpecParser; + }; +} + +#ifdef __clang__ +#pragma clang diagnostic pop +#endif + +// end catch_test_spec.h +// start catch_interfaces_tag_alias_registry.h + +#include <string> + +namespace Catch { + + struct TagAlias; + + struct ITagAliasRegistry { + virtual ~ITagAliasRegistry(); + // Nullptr if not present + virtual TagAlias const* find( std::string const& alias ) const = 0; + virtual std::string expandAliases( std::string const& unexpandedTestSpec ) const = 0; + + static ITagAliasRegistry const& get(); + }; + +} // end namespace Catch + +// end catch_interfaces_tag_alias_registry.h +namespace Catch { + + class TestSpecParser { + enum Mode{ None, Name, QuotedName, Tag, EscapedName }; + Mode m_mode = None; + Mode lastMode = None; + bool m_exclusion = false; + std::size_t m_pos = 0; + std::size_t m_realPatternPos = 0; + std::string m_arg; + std::string m_substring; + std::string m_patternName; + std::vector<std::size_t> m_escapeChars; + TestSpec::Filter m_currentFilter; + TestSpec m_testSpec; + ITagAliasRegistry const* m_tagAliases = nullptr; + + public: + TestSpecParser( ITagAliasRegistry const& tagAliases ); + + TestSpecParser& parse( std::string const& arg ); + TestSpec testSpec(); + + private: + bool visitChar( char c ); + void startNewMode( Mode mode ); + bool processNoneChar( char c ); + void processNameChar( char c ); + bool processOtherChar( char c ); + void endMode(); + void escape(); + bool isControlChar( char c ) const; + void saveLastMode(); + void revertBackToLastMode(); + void addFilter(); + bool separate(); + + // Handles common preprocessing of the pattern for name/tag patterns + std::string preprocessPattern(); + // Adds the current pattern as a test name + void addNamePattern(); + // Adds the current pattern as a tag + void addTagPattern(); + + inline void addCharToPattern(char c) { + m_substring += c; + m_patternName += c; + m_realPatternPos++; + } + + }; + TestSpec parseTestSpec( std::string const& arg ); + +} // namespace Catch + +#ifdef __clang__ +#pragma clang diagnostic pop +#endif + +// end catch_test_spec_parser.h +// Libstdc++ doesn't like incomplete classes for unique_ptr + +#include <memory> +#include <vector> +#include <string> + +#ifndef CATCH_CONFIG_CONSOLE_WIDTH +#define CATCH_CONFIG_CONSOLE_WIDTH 80 +#endif + +namespace Catch { + + struct IStream; + + struct ConfigData { + bool listTests = false; + bool listTags = false; + bool listReporters = false; + bool listTestNamesOnly = false; + + bool showSuccessfulTests = false; + bool shouldDebugBreak = false; + bool noThrow = false; + bool showHelp = false; + bool showInvisibles = false; + bool filenamesAsTags = false; + bool libIdentify = false; + + int abortAfter = -1; + unsigned int rngSeed = 0; + + bool benchmarkNoAnalysis = false; + unsigned int benchmarkSamples = 100; + double benchmarkConfidenceInterval = 0.95; + unsigned int benchmarkResamples = 100000; + std::chrono::milliseconds::rep benchmarkWarmupTime = 100; + + Verbosity verbosity = Verbosity::Normal; + WarnAbout::What warnings = WarnAbout::Nothing; + ShowDurations::OrNot showDurations = ShowDurations::DefaultForReporter; + RunTests::InWhatOrder runOrder = RunTests::InDeclarationOrder; + UseColour::YesOrNo useColour = UseColour::Auto; + WaitForKeypress::When waitForKeypress = WaitForKeypress::Never; + + std::string outputFilename; + std::string name; + std::string processName; +#ifndef CATCH_CONFIG_DEFAULT_REPORTER +#define CATCH_CONFIG_DEFAULT_REPORTER "console" +#endif + std::string reporterName = CATCH_CONFIG_DEFAULT_REPORTER; +#undef CATCH_CONFIG_DEFAULT_REPORTER + + std::vector<std::string> testsOrTags; + std::vector<std::string> sectionsToRun; + }; + + class Config : public IConfig { + public: + + Config() = default; + Config( ConfigData const& data ); + virtual ~Config() = default; + + std::string const& getFilename() const; + + bool listTests() const; + bool listTestNamesOnly() const; + bool listTags() const; + bool listReporters() const; + + std::string getProcessName() const; + std::string const& getReporterName() const; + + std::vector<std::string> const& getTestsOrTags() const override; + std::vector<std::string> const& getSectionsToRun() const override; + + TestSpec const& testSpec() const override; + bool hasTestFilters() const override; + + bool showHelp() const; + + // IConfig interface + bool allowThrows() const override; + std::ostream& stream() const override; + std::string name() const override; + bool includeSuccessfulResults() const override; + bool warnAboutMissingAssertions() const override; + bool warnAboutNoTests() const override; + ShowDurations::OrNot showDurations() const override; + RunTests::InWhatOrder runOrder() const override; + unsigned int rngSeed() const override; + UseColour::YesOrNo useColour() const override; + bool shouldDebugBreak() const override; + int abortAfter() const override; + bool showInvisibles() const override; + Verbosity verbosity() const override; + bool benchmarkNoAnalysis() const override; + int benchmarkSamples() const override; + double benchmarkConfidenceInterval() const override; + unsigned int benchmarkResamples() const override; + std::chrono::milliseconds benchmarkWarmupTime() const override; + + private: + + IStream const* openStream(); + ConfigData m_data; + + std::unique_ptr<IStream const> m_stream; + TestSpec m_testSpec; + bool m_hasTestFilters = false; + }; + +} // end namespace Catch + +// end catch_config.hpp +// start catch_assertionresult.h + +#include <string> + +namespace Catch { + + struct AssertionResultData + { + AssertionResultData() = delete; + + AssertionResultData( ResultWas::OfType _resultType, LazyExpression const& _lazyExpression ); + + std::string message; + mutable std::string reconstructedExpression; + LazyExpression lazyExpression; + ResultWas::OfType resultType; + + std::string reconstructExpression() const; + }; + + class AssertionResult { + public: + AssertionResult() = delete; + AssertionResult( AssertionInfo const& info, AssertionResultData const& data ); + + bool isOk() const; + bool succeeded() const; + ResultWas::OfType getResultType() const; + bool hasExpression() const; + bool hasMessage() const; + std::string getExpression() const; + std::string getExpressionInMacro() const; + bool hasExpandedExpression() const; + std::string getExpandedExpression() const; + std::string getMessage() const; + SourceLineInfo getSourceInfo() const; + StringRef getTestMacroName() const; + + //protected: + AssertionInfo m_info; + AssertionResultData m_resultData; + }; + +} // end namespace Catch + +// end catch_assertionresult.h +#if defined(CATCH_CONFIG_ENABLE_BENCHMARKING) +// start catch_estimate.hpp + + // Statistics estimates + + +namespace Catch { + namespace Benchmark { + template <typename Duration> + struct Estimate { + Duration point; + Duration lower_bound; + Duration upper_bound; + double confidence_interval; + + template <typename Duration2> + operator Estimate<Duration2>() const { + return { point, lower_bound, upper_bound, confidence_interval }; + } + }; + } // namespace Benchmark +} // namespace Catch + +// end catch_estimate.hpp +// start catch_outlier_classification.hpp + +// Outlier information + +namespace Catch { + namespace Benchmark { + struct OutlierClassification { + int samples_seen = 0; + int low_severe = 0; // more than 3 times IQR below Q1 + int low_mild = 0; // 1.5 to 3 times IQR below Q1 + int high_mild = 0; // 1.5 to 3 times IQR above Q3 + int high_severe = 0; // more than 3 times IQR above Q3 + + int total() const { + return low_severe + low_mild + high_mild + high_severe; + } + }; + } // namespace Benchmark +} // namespace Catch + +// end catch_outlier_classification.hpp +#endif // CATCH_CONFIG_ENABLE_BENCHMARKING + +#include <string> +#include <iosfwd> +#include <map> +#include <set> +#include <memory> +#include <algorithm> + +namespace Catch { + + struct ReporterConfig { + explicit ReporterConfig( IConfigPtr const& _fullConfig ); + + ReporterConfig( IConfigPtr const& _fullConfig, std::ostream& _stream ); + + std::ostream& stream() const; + IConfigPtr fullConfig() const; + + private: + std::ostream* m_stream; + IConfigPtr m_fullConfig; + }; + + struct ReporterPreferences { + bool shouldRedirectStdOut = false; + bool shouldReportAllAssertions = false; + }; + + template<typename T> + struct LazyStat : Option<T> { + LazyStat& operator=( T const& _value ) { + Option<T>::operator=( _value ); + used = false; + return *this; + } + void reset() { + Option<T>::reset(); + used = false; + } + bool used = false; + }; + + struct TestRunInfo { + TestRunInfo( std::string const& _name ); + std::string name; + }; + struct GroupInfo { + GroupInfo( std::string const& _name, + std::size_t _groupIndex, + std::size_t _groupsCount ); + + std::string name; + std::size_t groupIndex; + std::size_t groupsCounts; + }; + + struct AssertionStats { + AssertionStats( AssertionResult const& _assertionResult, + std::vector<MessageInfo> const& _infoMessages, + Totals const& _totals ); + + AssertionStats( AssertionStats const& ) = default; + AssertionStats( AssertionStats && ) = default; + AssertionStats& operator = ( AssertionStats const& ) = delete; + AssertionStats& operator = ( AssertionStats && ) = delete; + virtual ~AssertionStats(); + + AssertionResult assertionResult; + std::vector<MessageInfo> infoMessages; + Totals totals; + }; + + struct SectionStats { + SectionStats( SectionInfo const& _sectionInfo, + Counts const& _assertions, + double _durationInSeconds, + bool _missingAssertions ); + SectionStats( SectionStats const& ) = default; + SectionStats( SectionStats && ) = default; + SectionStats& operator = ( SectionStats const& ) = default; + SectionStats& operator = ( SectionStats && ) = default; + virtual ~SectionStats(); + + SectionInfo sectionInfo; + Counts assertions; + double durationInSeconds; + bool missingAssertions; + }; + + struct TestCaseStats { + TestCaseStats( TestCaseInfo const& _testInfo, + Totals const& _totals, + std::string const& _stdOut, + std::string const& _stdErr, + bool _aborting ); + + TestCaseStats( TestCaseStats const& ) = default; + TestCaseStats( TestCaseStats && ) = default; + TestCaseStats& operator = ( TestCaseStats const& ) = default; + TestCaseStats& operator = ( TestCaseStats && ) = default; + virtual ~TestCaseStats(); + + TestCaseInfo testInfo; + Totals totals; + std::string stdOut; + std::string stdErr; + bool aborting; + }; + + struct TestGroupStats { + TestGroupStats( GroupInfo const& _groupInfo, + Totals const& _totals, + bool _aborting ); + TestGroupStats( GroupInfo const& _groupInfo ); + + TestGroupStats( TestGroupStats const& ) = default; + TestGroupStats( TestGroupStats && ) = default; + TestGroupStats& operator = ( TestGroupStats const& ) = default; + TestGroupStats& operator = ( TestGroupStats && ) = default; + virtual ~TestGroupStats(); + + GroupInfo groupInfo; + Totals totals; + bool aborting; + }; + + struct TestRunStats { + TestRunStats( TestRunInfo const& _runInfo, + Totals const& _totals, + bool _aborting ); + + TestRunStats( TestRunStats const& ) = default; + TestRunStats( TestRunStats && ) = default; + TestRunStats& operator = ( TestRunStats const& ) = default; + TestRunStats& operator = ( TestRunStats && ) = default; + virtual ~TestRunStats(); + + TestRunInfo runInfo; + Totals totals; + bool aborting; + }; + +#if defined(CATCH_CONFIG_ENABLE_BENCHMARKING) + struct BenchmarkInfo { + std::string name; + double estimatedDuration; + int iterations; + int samples; + unsigned int resamples; + double clockResolution; + double clockCost; + }; + + template <class Duration> + struct BenchmarkStats { + BenchmarkInfo info; + + std::vector<Duration> samples; + Benchmark::Estimate<Duration> mean; + Benchmark::Estimate<Duration> standardDeviation; + Benchmark::OutlierClassification outliers; + double outlierVariance; + + template <typename Duration2> + operator BenchmarkStats<Duration2>() const { + std::vector<Duration2> samples2; + samples2.reserve(samples.size()); + std::transform(samples.begin(), samples.end(), std::back_inserter(samples2), [](Duration d) { return Duration2(d); }); + return { + info, + std::move(samples2), + mean, + standardDeviation, + outliers, + outlierVariance, + }; + } + }; +#endif // CATCH_CONFIG_ENABLE_BENCHMARKING + + struct IStreamingReporter { + virtual ~IStreamingReporter() = default; + + // Implementing class must also provide the following static methods: + // static std::string getDescription(); + // static std::set<Verbosity> getSupportedVerbosities() + + virtual ReporterPreferences getPreferences() const = 0; + + virtual void noMatchingTestCases( std::string const& spec ) = 0; + + virtual void reportInvalidArguments(std::string const&) {} + + virtual void testRunStarting( TestRunInfo const& testRunInfo ) = 0; + virtual void testGroupStarting( GroupInfo const& groupInfo ) = 0; + + virtual void testCaseStarting( TestCaseInfo const& testInfo ) = 0; + virtual void sectionStarting( SectionInfo const& sectionInfo ) = 0; + +#if defined(CATCH_CONFIG_ENABLE_BENCHMARKING) + virtual void benchmarkPreparing( std::string const& ) {} + virtual void benchmarkStarting( BenchmarkInfo const& ) {} + virtual void benchmarkEnded( BenchmarkStats<> const& ) {} + virtual void benchmarkFailed( std::string const& ) {} +#endif // CATCH_CONFIG_ENABLE_BENCHMARKING + + virtual void assertionStarting( AssertionInfo const& assertionInfo ) = 0; + + // The return value indicates if the messages buffer should be cleared: + virtual bool assertionEnded( AssertionStats const& assertionStats ) = 0; + + virtual void sectionEnded( SectionStats const& sectionStats ) = 0; + virtual void testCaseEnded( TestCaseStats const& testCaseStats ) = 0; + virtual void testGroupEnded( TestGroupStats const& testGroupStats ) = 0; + virtual void testRunEnded( TestRunStats const& testRunStats ) = 0; + + virtual void skipTest( TestCaseInfo const& testInfo ) = 0; + + // Default empty implementation provided + virtual void fatalErrorEncountered( StringRef name ); + + virtual bool isMulti() const; + }; + using IStreamingReporterPtr = std::unique_ptr<IStreamingReporter>; + + struct IReporterFactory { + virtual ~IReporterFactory(); + virtual IStreamingReporterPtr create( ReporterConfig const& config ) const = 0; + virtual std::string getDescription() const = 0; + }; + using IReporterFactoryPtr = std::shared_ptr<IReporterFactory>; + + struct IReporterRegistry { + using FactoryMap = std::map<std::string, IReporterFactoryPtr>; + using Listeners = std::vector<IReporterFactoryPtr>; + + virtual ~IReporterRegistry(); + virtual IStreamingReporterPtr create( std::string const& name, IConfigPtr const& config ) const = 0; + virtual FactoryMap const& getFactories() const = 0; + virtual Listeners const& getListeners() const = 0; + }; + +} // end namespace Catch + +// end catch_interfaces_reporter.h +#include <algorithm> +#include <cstring> +#include <cfloat> +#include <cstdio> +#include <cassert> +#include <memory> +#include <ostream> + +namespace Catch { + void prepareExpandedExpression(AssertionResult& result); + + // Returns double formatted as %.3f (format expected on output) + std::string getFormattedDuration( double duration ); + + std::string serializeFilters( std::vector<std::string> const& container ); + + template<typename DerivedT> + struct StreamingReporterBase : IStreamingReporter { + + StreamingReporterBase( ReporterConfig const& _config ) + : m_config( _config.fullConfig() ), + stream( _config.stream() ) + { + m_reporterPrefs.shouldRedirectStdOut = false; + if( !DerivedT::getSupportedVerbosities().count( m_config->verbosity() ) ) + CATCH_ERROR( "Verbosity level not supported by this reporter" ); + } + + ReporterPreferences getPreferences() const override { + return m_reporterPrefs; + } + + static std::set<Verbosity> getSupportedVerbosities() { + return { Verbosity::Normal }; + } + + ~StreamingReporterBase() override = default; + + void noMatchingTestCases(std::string const&) override {} + + void reportInvalidArguments(std::string const&) override {} + + void testRunStarting(TestRunInfo const& _testRunInfo) override { + currentTestRunInfo = _testRunInfo; + } + + void testGroupStarting(GroupInfo const& _groupInfo) override { + currentGroupInfo = _groupInfo; + } + + void testCaseStarting(TestCaseInfo const& _testInfo) override { + currentTestCaseInfo = _testInfo; + } + void sectionStarting(SectionInfo const& _sectionInfo) override { + m_sectionStack.push_back(_sectionInfo); + } + + void sectionEnded(SectionStats const& /* _sectionStats */) override { + m_sectionStack.pop_back(); + } + void testCaseEnded(TestCaseStats const& /* _testCaseStats */) override { + currentTestCaseInfo.reset(); + } + void testGroupEnded(TestGroupStats const& /* _testGroupStats */) override { + currentGroupInfo.reset(); + } + void testRunEnded(TestRunStats const& /* _testRunStats */) override { + currentTestCaseInfo.reset(); + currentGroupInfo.reset(); + currentTestRunInfo.reset(); + } + + void skipTest(TestCaseInfo const&) override { + // Don't do anything with this by default. + // It can optionally be overridden in the derived class. + } + + IConfigPtr m_config; + std::ostream& stream; + + LazyStat<TestRunInfo> currentTestRunInfo; + LazyStat<GroupInfo> currentGroupInfo; + LazyStat<TestCaseInfo> currentTestCaseInfo; + + std::vector<SectionInfo> m_sectionStack; + ReporterPreferences m_reporterPrefs; + }; + + template<typename DerivedT> + struct CumulativeReporterBase : IStreamingReporter { + template<typename T, typename ChildNodeT> + struct Node { + explicit Node( T const& _value ) : value( _value ) {} + virtual ~Node() {} + + using ChildNodes = std::vector<std::shared_ptr<ChildNodeT>>; + T value; + ChildNodes children; + }; + struct SectionNode { + explicit SectionNode(SectionStats const& _stats) : stats(_stats) {} + virtual ~SectionNode() = default; + + bool operator == (SectionNode const& other) const { + return stats.sectionInfo.lineInfo == other.stats.sectionInfo.lineInfo; + } + bool operator == (std::shared_ptr<SectionNode> const& other) const { + return operator==(*other); + } + + SectionStats stats; + using ChildSections = std::vector<std::shared_ptr<SectionNode>>; + using Assertions = std::vector<AssertionStats>; + ChildSections childSections; + Assertions assertions; + std::string stdOut; + std::string stdErr; + }; + + struct BySectionInfo { + BySectionInfo( SectionInfo const& other ) : m_other( other ) {} + BySectionInfo( BySectionInfo const& other ) : m_other( other.m_other ) {} + bool operator() (std::shared_ptr<SectionNode> const& node) const { + return ((node->stats.sectionInfo.name == m_other.name) && + (node->stats.sectionInfo.lineInfo == m_other.lineInfo)); + } + void operator=(BySectionInfo const&) = delete; + + private: + SectionInfo const& m_other; + }; + + using TestCaseNode = Node<TestCaseStats, SectionNode>; + using TestGroupNode = Node<TestGroupStats, TestCaseNode>; + using TestRunNode = Node<TestRunStats, TestGroupNode>; + + CumulativeReporterBase( ReporterConfig const& _config ) + : m_config( _config.fullConfig() ), + stream( _config.stream() ) + { + m_reporterPrefs.shouldRedirectStdOut = false; + if( !DerivedT::getSupportedVerbosities().count( m_config->verbosity() ) ) + CATCH_ERROR( "Verbosity level not supported by this reporter" ); + } + ~CumulativeReporterBase() override = default; + + ReporterPreferences getPreferences() const override { + return m_reporterPrefs; + } + + static std::set<Verbosity> getSupportedVerbosities() { + return { Verbosity::Normal }; + } + + void testRunStarting( TestRunInfo const& ) override {} + void testGroupStarting( GroupInfo const& ) override {} + + void testCaseStarting( TestCaseInfo const& ) override {} + + void sectionStarting( SectionInfo const& sectionInfo ) override { + SectionStats incompleteStats( sectionInfo, Counts(), 0, false ); + std::shared_ptr<SectionNode> node; + if( m_sectionStack.empty() ) { + if( !m_rootSection ) + m_rootSection = std::make_shared<SectionNode>( incompleteStats ); + node = m_rootSection; + } + else { + SectionNode& parentNode = *m_sectionStack.back(); + auto it = + std::find_if( parentNode.childSections.begin(), + parentNode.childSections.end(), + BySectionInfo( sectionInfo ) ); + if( it == parentNode.childSections.end() ) { + node = std::make_shared<SectionNode>( incompleteStats ); + parentNode.childSections.push_back( node ); + } + else + node = *it; + } + m_sectionStack.push_back( node ); + m_deepestSection = std::move(node); + } + + void assertionStarting(AssertionInfo const&) override {} + + bool assertionEnded(AssertionStats const& assertionStats) override { + assert(!m_sectionStack.empty()); + // AssertionResult holds a pointer to a temporary DecomposedExpression, + // which getExpandedExpression() calls to build the expression string. + // Our section stack copy of the assertionResult will likely outlive the + // temporary, so it must be expanded or discarded now to avoid calling + // a destroyed object later. + prepareExpandedExpression(const_cast<AssertionResult&>( assertionStats.assertionResult ) ); + SectionNode& sectionNode = *m_sectionStack.back(); + sectionNode.assertions.push_back(assertionStats); + return true; + } + void sectionEnded(SectionStats const& sectionStats) override { + assert(!m_sectionStack.empty()); + SectionNode& node = *m_sectionStack.back(); + node.stats = sectionStats; + m_sectionStack.pop_back(); + } + void testCaseEnded(TestCaseStats const& testCaseStats) override { + auto node = std::make_shared<TestCaseNode>(testCaseStats); + assert(m_sectionStack.size() == 0); + node->children.push_back(m_rootSection); + m_testCases.push_back(node); + m_rootSection.reset(); + + assert(m_deepestSection); + m_deepestSection->stdOut = testCaseStats.stdOut; + m_deepestSection->stdErr = testCaseStats.stdErr; + } + void testGroupEnded(TestGroupStats const& testGroupStats) override { + auto node = std::make_shared<TestGroupNode>(testGroupStats); + node->children.swap(m_testCases); + m_testGroups.push_back(node); + } + void testRunEnded(TestRunStats const& testRunStats) override { + auto node = std::make_shared<TestRunNode>(testRunStats); + node->children.swap(m_testGroups); + m_testRuns.push_back(node); + testRunEndedCumulative(); + } + virtual void testRunEndedCumulative() = 0; + + void skipTest(TestCaseInfo const&) override {} + + IConfigPtr m_config; + std::ostream& stream; + std::vector<AssertionStats> m_assertions; + std::vector<std::vector<std::shared_ptr<SectionNode>>> m_sections; + std::vector<std::shared_ptr<TestCaseNode>> m_testCases; + std::vector<std::shared_ptr<TestGroupNode>> m_testGroups; + + std::vector<std::shared_ptr<TestRunNode>> m_testRuns; + + std::shared_ptr<SectionNode> m_rootSection; + std::shared_ptr<SectionNode> m_deepestSection; + std::vector<std::shared_ptr<SectionNode>> m_sectionStack; + ReporterPreferences m_reporterPrefs; + }; + + template<char C> + char const* getLineOfChars() { + static char line[CATCH_CONFIG_CONSOLE_WIDTH] = {0}; + if( !*line ) { + std::memset( line, C, CATCH_CONFIG_CONSOLE_WIDTH-1 ); + line[CATCH_CONFIG_CONSOLE_WIDTH-1] = 0; + } + return line; + } + + struct TestEventListenerBase : StreamingReporterBase<TestEventListenerBase> { + TestEventListenerBase( ReporterConfig const& _config ); + + static std::set<Verbosity> getSupportedVerbosities(); + + void assertionStarting(AssertionInfo const&) override; + bool assertionEnded(AssertionStats const&) override; + }; + +} // end namespace Catch + +// end catch_reporter_bases.hpp +// start catch_console_colour.h + +namespace Catch { + + struct Colour { + enum Code { + None = 0, + + White, + Red, + Green, + Blue, + Cyan, + Yellow, + Grey, + + Bright = 0x10, + + BrightRed = Bright | Red, + BrightGreen = Bright | Green, + LightGrey = Bright | Grey, + BrightWhite = Bright | White, + BrightYellow = Bright | Yellow, + + // By intention + FileName = LightGrey, + Warning = BrightYellow, + ResultError = BrightRed, + ResultSuccess = BrightGreen, + ResultExpectedFailure = Warning, + + Error = BrightRed, + Success = Green, + + OriginalExpression = Cyan, + ReconstructedExpression = BrightYellow, + + SecondaryText = LightGrey, + Headers = White + }; + + // Use constructed object for RAII guard + Colour( Code _colourCode ); + Colour( Colour&& other ) noexcept; + Colour& operator=( Colour&& other ) noexcept; + ~Colour(); + + // Use static method for one-shot changes + static void use( Code _colourCode ); + + private: + bool m_moved = false; + }; + + std::ostream& operator << ( std::ostream& os, Colour const& ); + +} // end namespace Catch + +// end catch_console_colour.h +// start catch_reporter_registrars.hpp + + +namespace Catch { + + template<typename T> + class ReporterRegistrar { + + class ReporterFactory : public IReporterFactory { + + IStreamingReporterPtr create( ReporterConfig const& config ) const override { + return std::unique_ptr<T>( new T( config ) ); + } + + std::string getDescription() const override { + return T::getDescription(); + } + }; + + public: + + explicit ReporterRegistrar( std::string const& name ) { + getMutableRegistryHub().registerReporter( name, std::make_shared<ReporterFactory>() ); + } + }; + + template<typename T> + class ListenerRegistrar { + + class ListenerFactory : public IReporterFactory { + + IStreamingReporterPtr create( ReporterConfig const& config ) const override { + return std::unique_ptr<T>( new T( config ) ); + } + std::string getDescription() const override { + return std::string(); + } + }; + + public: + + ListenerRegistrar() { + getMutableRegistryHub().registerListener( std::make_shared<ListenerFactory>() ); + } + }; +} + +#if !defined(CATCH_CONFIG_DISABLE) + +#define CATCH_REGISTER_REPORTER( name, reporterType ) \ + CATCH_INTERNAL_START_WARNINGS_SUPPRESSION \ + CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS \ + namespace{ Catch::ReporterRegistrar<reporterType> catch_internal_RegistrarFor##reporterType( name ); } \ + CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION + +#define CATCH_REGISTER_LISTENER( listenerType ) \ + CATCH_INTERNAL_START_WARNINGS_SUPPRESSION \ + CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS \ + namespace{ Catch::ListenerRegistrar<listenerType> catch_internal_RegistrarFor##listenerType; } \ + CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION +#else // CATCH_CONFIG_DISABLE + +#define CATCH_REGISTER_REPORTER(name, reporterType) +#define CATCH_REGISTER_LISTENER(listenerType) + +#endif // CATCH_CONFIG_DISABLE + +// end catch_reporter_registrars.hpp +// Allow users to base their work off existing reporters +// start catch_reporter_compact.h + +namespace Catch { + + struct CompactReporter : StreamingReporterBase<CompactReporter> { + + using StreamingReporterBase::StreamingReporterBase; + + ~CompactReporter() override; + + static std::string getDescription(); + + ReporterPreferences getPreferences() const override; + + void noMatchingTestCases(std::string const& spec) override; + + void assertionStarting(AssertionInfo const&) override; + + bool assertionEnded(AssertionStats const& _assertionStats) override; + + void sectionEnded(SectionStats const& _sectionStats) override; + + void testRunEnded(TestRunStats const& _testRunStats) override; + + }; + +} // end namespace Catch + +// end catch_reporter_compact.h +// start catch_reporter_console.h + +#if defined(_MSC_VER) +#pragma warning(push) +#pragma warning(disable:4061) // Not all labels are EXPLICITLY handled in switch + // Note that 4062 (not all labels are handled + // and default is missing) is enabled +#endif + +namespace Catch { + // Fwd decls + struct SummaryColumn; + class TablePrinter; + + struct ConsoleReporter : StreamingReporterBase<ConsoleReporter> { + std::unique_ptr<TablePrinter> m_tablePrinter; + + ConsoleReporter(ReporterConfig const& config); + ~ConsoleReporter() override; + static std::string getDescription(); + + void noMatchingTestCases(std::string const& spec) override; + + void reportInvalidArguments(std::string const&arg) override; + + void assertionStarting(AssertionInfo const&) override; + + bool assertionEnded(AssertionStats const& _assertionStats) override; + + void sectionStarting(SectionInfo const& _sectionInfo) override; + void sectionEnded(SectionStats const& _sectionStats) override; + +#if defined(CATCH_CONFIG_ENABLE_BENCHMARKING) + void benchmarkPreparing(std::string const& name) override; + void benchmarkStarting(BenchmarkInfo const& info) override; + void benchmarkEnded(BenchmarkStats<> const& stats) override; + void benchmarkFailed(std::string const& error) override; +#endif // CATCH_CONFIG_ENABLE_BENCHMARKING + + void testCaseEnded(TestCaseStats const& _testCaseStats) override; + void testGroupEnded(TestGroupStats const& _testGroupStats) override; + void testRunEnded(TestRunStats const& _testRunStats) override; + void testRunStarting(TestRunInfo const& _testRunInfo) override; + private: + + void lazyPrint(); + + void lazyPrintWithoutClosingBenchmarkTable(); + void lazyPrintRunInfo(); + void lazyPrintGroupInfo(); + void printTestCaseAndSectionHeader(); + + void printClosedHeader(std::string const& _name); + void printOpenHeader(std::string const& _name); + + // if string has a : in first line will set indent to follow it on + // subsequent lines + void printHeaderString(std::string const& _string, std::size_t indent = 0); + + void printTotals(Totals const& totals); + void printSummaryRow(std::string const& label, std::vector<SummaryColumn> const& cols, std::size_t row); + + void printTotalsDivider(Totals const& totals); + void printSummaryDivider(); + void printTestFilters(); + + private: + bool m_headerPrinted = false; + }; + +} // end namespace Catch + +#if defined(_MSC_VER) +#pragma warning(pop) +#endif + +// end catch_reporter_console.h +// start catch_reporter_junit.h + +// start catch_xmlwriter.h + +#include <vector> + +namespace Catch { + enum class XmlFormatting { + None = 0x00, + Indent = 0x01, + Newline = 0x02, + }; + + XmlFormatting operator | (XmlFormatting lhs, XmlFormatting rhs); + XmlFormatting operator & (XmlFormatting lhs, XmlFormatting rhs); + + class XmlEncode { + public: + enum ForWhat { ForTextNodes, ForAttributes }; + + XmlEncode( std::string const& str, ForWhat forWhat = ForTextNodes ); + + void encodeTo( std::ostream& os ) const; + + friend std::ostream& operator << ( std::ostream& os, XmlEncode const& xmlEncode ); + + private: + std::string m_str; + ForWhat m_forWhat; + }; + + class XmlWriter { + public: + + class ScopedElement { + public: + ScopedElement( XmlWriter* writer, XmlFormatting fmt ); + + ScopedElement( ScopedElement&& other ) noexcept; + ScopedElement& operator=( ScopedElement&& other ) noexcept; + + ~ScopedElement(); + + ScopedElement& writeText( std::string const& text, XmlFormatting fmt = XmlFormatting::Newline | XmlFormatting::Indent ); + + template<typename T> + ScopedElement& writeAttribute( std::string const& name, T const& attribute ) { + m_writer->writeAttribute( name, attribute ); + return *this; + } + + private: + mutable XmlWriter* m_writer = nullptr; + XmlFormatting m_fmt; + }; + + XmlWriter( std::ostream& os = Catch::cout() ); + ~XmlWriter(); + + XmlWriter( XmlWriter const& ) = delete; + XmlWriter& operator=( XmlWriter const& ) = delete; + + XmlWriter& startElement( std::string const& name, XmlFormatting fmt = XmlFormatting::Newline | XmlFormatting::Indent); + + ScopedElement scopedElement( std::string const& name, XmlFormatting fmt = XmlFormatting::Newline | XmlFormatting::Indent); + + XmlWriter& endElement(XmlFormatting fmt = XmlFormatting::Newline | XmlFormatting::Indent); + + XmlWriter& writeAttribute( std::string const& name, std::string const& attribute ); + + XmlWriter& writeAttribute( std::string const& name, bool attribute ); + + template<typename T> + XmlWriter& writeAttribute( std::string const& name, T const& attribute ) { + ReusableStringStream rss; + rss << attribute; + return writeAttribute( name, rss.str() ); + } + + XmlWriter& writeText( std::string const& text, XmlFormatting fmt = XmlFormatting::Newline | XmlFormatting::Indent); + + XmlWriter& writeComment(std::string const& text, XmlFormatting fmt = XmlFormatting::Newline | XmlFormatting::Indent); + + void writeStylesheetRef( std::string const& url ); + + XmlWriter& writeBlankLine(); + + void ensureTagClosed(); + + private: + + void applyFormatting(XmlFormatting fmt); + + void writeDeclaration(); + + void newlineIfNecessary(); + + bool m_tagIsOpen = false; + bool m_needsNewline = false; + std::vector<std::string> m_tags; + std::string m_indent; + std::ostream& m_os; + }; + +} + +// end catch_xmlwriter.h +namespace Catch { + + class JunitReporter : public CumulativeReporterBase<JunitReporter> { + public: + JunitReporter(ReporterConfig const& _config); + + ~JunitReporter() override; + + static std::string getDescription(); + + void noMatchingTestCases(std::string const& /*spec*/) override; + + void testRunStarting(TestRunInfo const& runInfo) override; + + void testGroupStarting(GroupInfo const& groupInfo) override; + + void testCaseStarting(TestCaseInfo const& testCaseInfo) override; + bool assertionEnded(AssertionStats const& assertionStats) override; + + void testCaseEnded(TestCaseStats const& testCaseStats) override; + + void testGroupEnded(TestGroupStats const& testGroupStats) override; + + void testRunEndedCumulative() override; + + void writeGroup(TestGroupNode const& groupNode, double suiteTime); + + void writeTestCase(TestCaseNode const& testCaseNode); + + void writeSection(std::string const& className, + std::string const& rootName, + SectionNode const& sectionNode); + + void writeAssertions(SectionNode const& sectionNode); + void writeAssertion(AssertionStats const& stats); + + XmlWriter xml; + Timer suiteTimer; + std::string stdOutForSuite; + std::string stdErrForSuite; + unsigned int unexpectedExceptions = 0; + bool m_okToFail = false; + }; + +} // end namespace Catch + +// end catch_reporter_junit.h +// start catch_reporter_xml.h + +namespace Catch { + class XmlReporter : public StreamingReporterBase<XmlReporter> { + public: + XmlReporter(ReporterConfig const& _config); + + ~XmlReporter() override; + + static std::string getDescription(); + + virtual std::string getStylesheetRef() const; + + void writeSourceInfo(SourceLineInfo const& sourceInfo); + + public: // StreamingReporterBase + + void noMatchingTestCases(std::string const& s) override; + + void testRunStarting(TestRunInfo const& testInfo) override; + + void testGroupStarting(GroupInfo const& groupInfo) override; + + void testCaseStarting(TestCaseInfo const& testInfo) override; + + void sectionStarting(SectionInfo const& sectionInfo) override; + + void assertionStarting(AssertionInfo const&) override; + + bool assertionEnded(AssertionStats const& assertionStats) override; + + void sectionEnded(SectionStats const& sectionStats) override; + + void testCaseEnded(TestCaseStats const& testCaseStats) override; + + void testGroupEnded(TestGroupStats const& testGroupStats) override; + + void testRunEnded(TestRunStats const& testRunStats) override; + +#if defined(CATCH_CONFIG_ENABLE_BENCHMARKING) + void benchmarkPreparing(std::string const& name) override; + void benchmarkStarting(BenchmarkInfo const&) override; + void benchmarkEnded(BenchmarkStats<> const&) override; + void benchmarkFailed(std::string const&) override; +#endif // CATCH_CONFIG_ENABLE_BENCHMARKING + + private: + Timer m_testCaseTimer; + XmlWriter m_xml; + int m_sectionDepth = 0; + }; + +} // end namespace Catch + +// end catch_reporter_xml.h + +// end catch_external_interfaces.h +#endif + +#if defined(CATCH_CONFIG_ENABLE_BENCHMARKING) +// start catch_benchmarking_all.hpp + +// A proxy header that includes all of the benchmarking headers to allow +// concise include of the benchmarking features. You should prefer the +// individual includes in standard use. + +// start catch_benchmark.hpp + + // Benchmark + +// start catch_chronometer.hpp + +// User-facing chronometer + + +// start catch_clock.hpp + +// Clocks + + +#include <chrono> +#include <ratio> + +namespace Catch { + namespace Benchmark { + template <typename Clock> + using ClockDuration = typename Clock::duration; + template <typename Clock> + using FloatDuration = std::chrono::duration<double, typename Clock::period>; + + template <typename Clock> + using TimePoint = typename Clock::time_point; + + using default_clock = std::chrono::steady_clock; + + template <typename Clock> + struct now { + TimePoint<Clock> operator()() const { + return Clock::now(); + } + }; + + using fp_seconds = std::chrono::duration<double, std::ratio<1>>; + } // namespace Benchmark +} // namespace Catch + +// end catch_clock.hpp +// start catch_optimizer.hpp + + // Hinting the optimizer + + +#if defined(_MSC_VER) +# include <atomic> // atomic_thread_fence +#endif + +namespace Catch { + namespace Benchmark { +#if defined(__GNUC__) || defined(__clang__) + template <typename T> + inline void keep_memory(T* p) { + asm volatile("" : : "g"(p) : "memory"); + } + inline void keep_memory() { + asm volatile("" : : : "memory"); + } + + namespace Detail { + inline void optimizer_barrier() { keep_memory(); } + } // namespace Detail +#elif defined(_MSC_VER) + +#pragma optimize("", off) + template <typename T> + inline void keep_memory(T* p) { + // thanks @milleniumbug + *reinterpret_cast<char volatile*>(p) = *reinterpret_cast<char const volatile*>(p); + } + // TODO equivalent keep_memory() +#pragma optimize("", on) + + namespace Detail { + inline void optimizer_barrier() { + std::atomic_thread_fence(std::memory_order_seq_cst); + } + } // namespace Detail + +#endif + + template <typename T> + inline void deoptimize_value(T&& x) { + keep_memory(&x); + } + + template <typename Fn, typename... Args> + inline auto invoke_deoptimized(Fn&& fn, Args&&... args) -> typename std::enable_if<!std::is_same<void, decltype(fn(args...))>::value>::type { + deoptimize_value(std::forward<Fn>(fn) (std::forward<Args...>(args...))); + } + + template <typename Fn, typename... Args> + inline auto invoke_deoptimized(Fn&& fn, Args&&... args) -> typename std::enable_if<std::is_same<void, decltype(fn(args...))>::value>::type { + std::forward<Fn>(fn) (std::forward<Args...>(args...)); + } + } // namespace Benchmark +} // namespace Catch + +// end catch_optimizer.hpp +// start catch_complete_invoke.hpp + +// Invoke with a special case for void + + +#include <type_traits> +#include <utility> + +namespace Catch { + namespace Benchmark { + namespace Detail { + template <typename T> + struct CompleteType { using type = T; }; + template <> + struct CompleteType<void> { struct type {}; }; + + template <typename T> + using CompleteType_t = typename CompleteType<T>::type; + + template <typename Result> + struct CompleteInvoker { + template <typename Fun, typename... Args> + static Result invoke(Fun&& fun, Args&&... args) { + return std::forward<Fun>(fun)(std::forward<Args>(args)...); + } + }; + template <> + struct CompleteInvoker<void> { + template <typename Fun, typename... Args> + static CompleteType_t<void> invoke(Fun&& fun, Args&&... args) { + std::forward<Fun>(fun)(std::forward<Args>(args)...); + return {}; + } + }; + template <typename Sig> + using ResultOf_t = typename std::result_of<Sig>::type; + + // invoke and not return void :( + template <typename Fun, typename... Args> + CompleteType_t<ResultOf_t<Fun(Args...)>> complete_invoke(Fun&& fun, Args&&... args) { + return CompleteInvoker<ResultOf_t<Fun(Args...)>>::invoke(std::forward<Fun>(fun), std::forward<Args>(args)...); + } + + const std::string benchmarkErrorMsg = "a benchmark failed to run successfully"; + } // namespace Detail + + template <typename Fun> + Detail::CompleteType_t<Detail::ResultOf_t<Fun()>> user_code(Fun&& fun) { + CATCH_TRY{ + return Detail::complete_invoke(std::forward<Fun>(fun)); + } CATCH_CATCH_ALL{ + getResultCapture().benchmarkFailed(translateActiveException()); + CATCH_RUNTIME_ERROR(Detail::benchmarkErrorMsg); + } + } + } // namespace Benchmark +} // namespace Catch + +// end catch_complete_invoke.hpp +namespace Catch { + namespace Benchmark { + namespace Detail { + struct ChronometerConcept { + virtual void start() = 0; + virtual void finish() = 0; + virtual ~ChronometerConcept() = default; + }; + template <typename Clock> + struct ChronometerModel final : public ChronometerConcept { + void start() override { started = Clock::now(); } + void finish() override { finished = Clock::now(); } + + ClockDuration<Clock> elapsed() const { return finished - started; } + + TimePoint<Clock> started; + TimePoint<Clock> finished; + }; + } // namespace Detail + + struct Chronometer { + public: + template <typename Fun> + void measure(Fun&& fun) { measure(std::forward<Fun>(fun), is_callable<Fun(int)>()); } + + int runs() const { return k; } + + Chronometer(Detail::ChronometerConcept& meter, int k) + : impl(&meter) + , k(k) {} + + private: + template <typename Fun> + void measure(Fun&& fun, std::false_type) { + measure([&fun](int) { return fun(); }, std::true_type()); + } + + template <typename Fun> + void measure(Fun&& fun, std::true_type) { + Detail::optimizer_barrier(); + impl->start(); + for (int i = 0; i < k; ++i) invoke_deoptimized(fun, i); + impl->finish(); + Detail::optimizer_barrier(); + } + + Detail::ChronometerConcept* impl; + int k; + }; + } // namespace Benchmark +} // namespace Catch + +// end catch_chronometer.hpp +// start catch_environment.hpp + +// Environment information + + +namespace Catch { + namespace Benchmark { + template <typename Duration> + struct EnvironmentEstimate { + Duration mean; + OutlierClassification outliers; + + template <typename Duration2> + operator EnvironmentEstimate<Duration2>() const { + return { mean, outliers }; + } + }; + template <typename Clock> + struct Environment { + using clock_type = Clock; + EnvironmentEstimate<FloatDuration<Clock>> clock_resolution; + EnvironmentEstimate<FloatDuration<Clock>> clock_cost; + }; + } // namespace Benchmark +} // namespace Catch + +// end catch_environment.hpp +// start catch_execution_plan.hpp + + // Execution plan + + +// start catch_benchmark_function.hpp + + // Dumb std::function implementation for consistent call overhead + + +#include <cassert> +#include <type_traits> +#include <utility> +#include <memory> + +namespace Catch { + namespace Benchmark { + namespace Detail { + template <typename T> + using Decay = typename std::decay<T>::type; + template <typename T, typename U> + struct is_related + : std::is_same<Decay<T>, Decay<U>> {}; + + /// We need to reinvent std::function because every piece of code that might add overhead + /// in a measurement context needs to have consistent performance characteristics so that we + /// can account for it in the measurement. + /// Implementations of std::function with optimizations that aren't always applicable, like + /// small buffer optimizations, are not uncommon. + /// This is effectively an implementation of std::function without any such optimizations; + /// it may be slow, but it is consistently slow. + struct BenchmarkFunction { + private: + struct callable { + virtual void call(Chronometer meter) const = 0; + virtual callable* clone() const = 0; + virtual ~callable() = default; + }; + template <typename Fun> + struct model : public callable { + model(Fun&& fun) : fun(std::move(fun)) {} + model(Fun const& fun) : fun(fun) {} + + model<Fun>* clone() const override { return new model<Fun>(*this); } + + void call(Chronometer meter) const override { + call(meter, is_callable<Fun(Chronometer)>()); + } + void call(Chronometer meter, std::true_type) const { + fun(meter); + } + void call(Chronometer meter, std::false_type) const { + meter.measure(fun); + } + + Fun fun; + }; + + struct do_nothing { void operator()() const {} }; + + template <typename T> + BenchmarkFunction(model<T>* c) : f(c) {} + + public: + BenchmarkFunction() + : f(new model<do_nothing>{ {} }) {} + + template <typename Fun, + typename std::enable_if<!is_related<Fun, BenchmarkFunction>::value, int>::type = 0> + BenchmarkFunction(Fun&& fun) + : f(new model<typename std::decay<Fun>::type>(std::forward<Fun>(fun))) {} + + BenchmarkFunction(BenchmarkFunction&& that) + : f(std::move(that.f)) {} + + BenchmarkFunction(BenchmarkFunction const& that) + : f(that.f->clone()) {} + + BenchmarkFunction& operator=(BenchmarkFunction&& that) { + f = std::move(that.f); + return *this; + } + + BenchmarkFunction& operator=(BenchmarkFunction const& that) { + f.reset(that.f->clone()); + return *this; + } + + void operator()(Chronometer meter) const { f->call(meter); } + + private: + std::unique_ptr<callable> f; + }; + } // namespace Detail + } // namespace Benchmark +} // namespace Catch + +// end catch_benchmark_function.hpp +// start catch_repeat.hpp + +// repeat algorithm + + +#include <type_traits> +#include <utility> + +namespace Catch { + namespace Benchmark { + namespace Detail { + template <typename Fun> + struct repeater { + void operator()(int k) const { + for (int i = 0; i < k; ++i) { + fun(); + } + } + Fun fun; + }; + template <typename Fun> + repeater<typename std::decay<Fun>::type> repeat(Fun&& fun) { + return { std::forward<Fun>(fun) }; + } + } // namespace Detail + } // namespace Benchmark +} // namespace Catch + +// end catch_repeat.hpp +// start catch_run_for_at_least.hpp + +// Run a function for a minimum amount of time + + +// start catch_measure.hpp + +// Measure + + +// start catch_timing.hpp + +// Timing + + +#include <tuple> +#include <type_traits> + +namespace Catch { + namespace Benchmark { + template <typename Duration, typename Result> + struct Timing { + Duration elapsed; + Result result; + int iterations; + }; + template <typename Clock, typename Sig> + using TimingOf = Timing<ClockDuration<Clock>, Detail::CompleteType_t<Detail::ResultOf_t<Sig>>>; + } // namespace Benchmark +} // namespace Catch + +// end catch_timing.hpp +#include <utility> + +namespace Catch { + namespace Benchmark { + namespace Detail { + template <typename Clock, typename Fun, typename... Args> + TimingOf<Clock, Fun(Args...)> measure(Fun&& fun, Args&&... args) { + auto start = Clock::now(); + auto&& r = Detail::complete_invoke(fun, std::forward<Args>(args)...); + auto end = Clock::now(); + auto delta = end - start; + return { delta, std::forward<decltype(r)>(r), 1 }; + } + } // namespace Detail + } // namespace Benchmark +} // namespace Catch + +// end catch_measure.hpp +#include <utility> +#include <type_traits> + +namespace Catch { + namespace Benchmark { + namespace Detail { + template <typename Clock, typename Fun> + TimingOf<Clock, Fun(int)> measure_one(Fun&& fun, int iters, std::false_type) { + return Detail::measure<Clock>(fun, iters); + } + template <typename Clock, typename Fun> + TimingOf<Clock, Fun(Chronometer)> measure_one(Fun&& fun, int iters, std::true_type) { + Detail::ChronometerModel<Clock> meter; + auto&& result = Detail::complete_invoke(fun, Chronometer(meter, iters)); + + return { meter.elapsed(), std::move(result), iters }; + } + + template <typename Clock, typename Fun> + using run_for_at_least_argument_t = typename std::conditional<is_callable<Fun(Chronometer)>::value, Chronometer, int>::type; + + struct optimized_away_error : std::exception { + const char* what() const noexcept override { + return "could not measure benchmark, maybe it was optimized away"; + } + }; + + template <typename Clock, typename Fun> + TimingOf<Clock, Fun(run_for_at_least_argument_t<Clock, Fun>)> run_for_at_least(ClockDuration<Clock> how_long, int seed, Fun&& fun) { + auto iters = seed; + while (iters < (1 << 30)) { + auto&& Timing = measure_one<Clock>(fun, iters, is_callable<Fun(Chronometer)>()); + + if (Timing.elapsed >= how_long) { + return { Timing.elapsed, std::move(Timing.result), iters }; + } + iters *= 2; + } + throw optimized_away_error{}; + } + } // namespace Detail + } // namespace Benchmark +} // namespace Catch + +// end catch_run_for_at_least.hpp +#include <algorithm> + +namespace Catch { + namespace Benchmark { + template <typename Duration> + struct ExecutionPlan { + int iterations_per_sample; + Duration estimated_duration; + Detail::BenchmarkFunction benchmark; + Duration warmup_time; + int warmup_iterations; + + template <typename Duration2> + operator ExecutionPlan<Duration2>() const { + return { iterations_per_sample, estimated_duration, benchmark, warmup_time, warmup_iterations }; + } + + template <typename Clock> + std::vector<FloatDuration<Clock>> run(const IConfig &cfg, Environment<FloatDuration<Clock>> env) const { + // warmup a bit + Detail::run_for_at_least<Clock>(std::chrono::duration_cast<ClockDuration<Clock>>(warmup_time), warmup_iterations, Detail::repeat(now<Clock>{})); + + std::vector<FloatDuration<Clock>> times; + times.reserve(cfg.benchmarkSamples()); + std::generate_n(std::back_inserter(times), cfg.benchmarkSamples(), [this, env] { + Detail::ChronometerModel<Clock> model; + this->benchmark(Chronometer(model, iterations_per_sample)); + auto sample_time = model.elapsed() - env.clock_cost.mean; + if (sample_time < FloatDuration<Clock>::zero()) sample_time = FloatDuration<Clock>::zero(); + return sample_time / iterations_per_sample; + }); + return times; + } + }; + } // namespace Benchmark +} // namespace Catch + +// end catch_execution_plan.hpp +// start catch_estimate_clock.hpp + + // Environment measurement + + +// start catch_stats.hpp + +// Statistical analysis tools + + +#include <algorithm> +#include <functional> +#include <vector> +#include <iterator> +#include <numeric> +#include <tuple> +#include <cmath> +#include <utility> +#include <cstddef> +#include <random> + +namespace Catch { + namespace Benchmark { + namespace Detail { + using sample = std::vector<double>; + + double weighted_average_quantile(int k, int q, std::vector<double>::iterator first, std::vector<double>::iterator last); + + template <typename Iterator> + OutlierClassification classify_outliers(Iterator first, Iterator last) { + std::vector<double> copy(first, last); + + auto q1 = weighted_average_quantile(1, 4, copy.begin(), copy.end()); + auto q3 = weighted_average_quantile(3, 4, copy.begin(), copy.end()); + auto iqr = q3 - q1; + auto los = q1 - (iqr * 3.); + auto lom = q1 - (iqr * 1.5); + auto him = q3 + (iqr * 1.5); + auto his = q3 + (iqr * 3.); + + OutlierClassification o; + for (; first != last; ++first) { + auto&& t = *first; + if (t < los) ++o.low_severe; + else if (t < lom) ++o.low_mild; + else if (t > his) ++o.high_severe; + else if (t > him) ++o.high_mild; + ++o.samples_seen; + } + return o; + } + + template <typename Iterator> + double mean(Iterator first, Iterator last) { + auto count = last - first; + double sum = std::accumulate(first, last, 0.); + return sum / count; + } + + template <typename URng, typename Iterator, typename Estimator> + sample resample(URng& rng, int resamples, Iterator first, Iterator last, Estimator& estimator) { + auto n = last - first; + std::uniform_int_distribution<decltype(n)> dist(0, n - 1); + + sample out; + out.reserve(resamples); + std::generate_n(std::back_inserter(out), resamples, [n, first, &estimator, &dist, &rng] { + std::vector<double> resampled; + resampled.reserve(n); + std::generate_n(std::back_inserter(resampled), n, [first, &dist, &rng] { return first[dist(rng)]; }); + return estimator(resampled.begin(), resampled.end()); + }); + std::sort(out.begin(), out.end()); + return out; + } + + template <typename Estimator, typename Iterator> + sample jackknife(Estimator&& estimator, Iterator first, Iterator last) { + auto n = last - first; + auto second = std::next(first); + sample results; + results.reserve(n); + + for (auto it = first; it != last; ++it) { + std::iter_swap(it, first); + results.push_back(estimator(second, last)); + } + + return results; + } + + inline double normal_cdf(double x) { + return std::erfc(-x / std::sqrt(2.0)) / 2.0; + } + + double erfc_inv(double x); + + double normal_quantile(double p); + + template <typename Iterator, typename Estimator> + Estimate<double> bootstrap(double confidence_level, Iterator first, Iterator last, sample const& resample, Estimator&& estimator) { + auto n_samples = last - first; + + double point = estimator(first, last); + // Degenerate case with a single sample + if (n_samples == 1) return { point, point, point, confidence_level }; + + sample jack = jackknife(estimator, first, last); + double jack_mean = mean(jack.begin(), jack.end()); + double sum_squares, sum_cubes; + std::tie(sum_squares, sum_cubes) = std::accumulate(jack.begin(), jack.end(), std::make_pair(0., 0.), [jack_mean](std::pair<double, double> sqcb, double x) -> std::pair<double, double> { + auto d = jack_mean - x; + auto d2 = d * d; + auto d3 = d2 * d; + return { sqcb.first + d2, sqcb.second + d3 }; + }); + + double accel = sum_cubes / (6 * std::pow(sum_squares, 1.5)); + int n = static_cast<int>(resample.size()); + double prob_n = std::count_if(resample.begin(), resample.end(), [point](double x) { return x < point; }) / (double)n; + // degenerate case with uniform samples + if (prob_n == 0) return { point, point, point, confidence_level }; + + double bias = normal_quantile(prob_n); + double z1 = normal_quantile((1. - confidence_level) / 2.); + + auto cumn = [n](double x) -> int { + return std::lround(normal_cdf(x) * n); }; + auto a = [bias, accel](double b) { return bias + b / (1. - accel * b); }; + double b1 = bias + z1; + double b2 = bias - z1; + double a1 = a(b1); + double a2 = a(b2); + auto lo = std::max(cumn(a1), 0); + auto hi = std::min(cumn(a2), n - 1); + + return { point, resample[lo], resample[hi], confidence_level }; + } + + double outlier_variance(Estimate<double> mean, Estimate<double> stddev, int n); + + struct bootstrap_analysis { + Estimate<double> mean; + Estimate<double> standard_deviation; + double outlier_variance; + }; + + bootstrap_analysis analyse_samples(double confidence_level, int n_resamples, std::vector<double>::iterator first, std::vector<double>::iterator last); + } // namespace Detail + } // namespace Benchmark +} // namespace Catch + +// end catch_stats.hpp +#include <algorithm> +#include <iterator> +#include <tuple> +#include <vector> +#include <cmath> + +namespace Catch { + namespace Benchmark { + namespace Detail { + template <typename Clock> + std::vector<double> resolution(int k) { + std::vector<TimePoint<Clock>> times; + times.reserve(k + 1); + std::generate_n(std::back_inserter(times), k + 1, now<Clock>{}); + + std::vector<double> deltas; + deltas.reserve(k); + std::transform(std::next(times.begin()), times.end(), times.begin(), + std::back_inserter(deltas), + [](TimePoint<Clock> a, TimePoint<Clock> b) { return static_cast<double>((a - b).count()); }); + + return deltas; + } + + const auto warmup_iterations = 10000; + const auto warmup_time = std::chrono::milliseconds(100); + const auto minimum_ticks = 1000; + const auto warmup_seed = 10000; + const auto clock_resolution_estimation_time = std::chrono::milliseconds(500); + const auto clock_cost_estimation_time_limit = std::chrono::seconds(1); + const auto clock_cost_estimation_tick_limit = 100000; + const auto clock_cost_estimation_time = std::chrono::milliseconds(10); + const auto clock_cost_estimation_iterations = 10000; + + template <typename Clock> + int warmup() { + return run_for_at_least<Clock>(std::chrono::duration_cast<ClockDuration<Clock>>(warmup_time), warmup_seed, &resolution<Clock>) + .iterations; + } + template <typename Clock> + EnvironmentEstimate<FloatDuration<Clock>> estimate_clock_resolution(int iterations) { + auto r = run_for_at_least<Clock>(std::chrono::duration_cast<ClockDuration<Clock>>(clock_resolution_estimation_time), iterations, &resolution<Clock>) + .result; + return { + FloatDuration<Clock>(mean(r.begin(), r.end())), + classify_outliers(r.begin(), r.end()), + }; + } + template <typename Clock> + EnvironmentEstimate<FloatDuration<Clock>> estimate_clock_cost(FloatDuration<Clock> resolution) { + auto time_limit = std::min(resolution * clock_cost_estimation_tick_limit, FloatDuration<Clock>(clock_cost_estimation_time_limit)); + auto time_clock = [](int k) { + return Detail::measure<Clock>([k] { + for (int i = 0; i < k; ++i) { + volatile auto ignored = Clock::now(); + (void)ignored; + } + }).elapsed; + }; + time_clock(1); + int iters = clock_cost_estimation_iterations; + auto&& r = run_for_at_least<Clock>(std::chrono::duration_cast<ClockDuration<Clock>>(clock_cost_estimation_time), iters, time_clock); + std::vector<double> times; + int nsamples = static_cast<int>(std::ceil(time_limit / r.elapsed)); + times.reserve(nsamples); + std::generate_n(std::back_inserter(times), nsamples, [time_clock, &r] { + return static_cast<double>((time_clock(r.iterations) / r.iterations).count()); + }); + return { + FloatDuration<Clock>(mean(times.begin(), times.end())), + classify_outliers(times.begin(), times.end()), + }; + } + + template <typename Clock> + Environment<FloatDuration<Clock>> measure_environment() { + static Environment<FloatDuration<Clock>>* env = nullptr; + if (env) { + return *env; + } + + auto iters = Detail::warmup<Clock>(); + auto resolution = Detail::estimate_clock_resolution<Clock>(iters); + auto cost = Detail::estimate_clock_cost<Clock>(resolution.mean); + + env = new Environment<FloatDuration<Clock>>{ resolution, cost }; + return *env; + } + } // namespace Detail + } // namespace Benchmark +} // namespace Catch + +// end catch_estimate_clock.hpp +// start catch_analyse.hpp + + // Run and analyse one benchmark + + +// start catch_sample_analysis.hpp + +// Benchmark results + + +#include <algorithm> +#include <vector> +#include <string> +#include <iterator> + +namespace Catch { + namespace Benchmark { + template <typename Duration> + struct SampleAnalysis { + std::vector<Duration> samples; + Estimate<Duration> mean; + Estimate<Duration> standard_deviation; + OutlierClassification outliers; + double outlier_variance; + + template <typename Duration2> + operator SampleAnalysis<Duration2>() const { + std::vector<Duration2> samples2; + samples2.reserve(samples.size()); + std::transform(samples.begin(), samples.end(), std::back_inserter(samples2), [](Duration d) { return Duration2(d); }); + return { + std::move(samples2), + mean, + standard_deviation, + outliers, + outlier_variance, + }; + } + }; + } // namespace Benchmark +} // namespace Catch + +// end catch_sample_analysis.hpp +#include <algorithm> +#include <iterator> +#include <vector> + +namespace Catch { + namespace Benchmark { + namespace Detail { + template <typename Duration, typename Iterator> + SampleAnalysis<Duration> analyse(const IConfig &cfg, Environment<Duration>, Iterator first, Iterator last) { + if (!cfg.benchmarkNoAnalysis()) { + std::vector<double> samples; + samples.reserve(last - first); + std::transform(first, last, std::back_inserter(samples), [](Duration d) { return d.count(); }); + + auto analysis = Catch::Benchmark::Detail::analyse_samples(cfg.benchmarkConfidenceInterval(), cfg.benchmarkResamples(), samples.begin(), samples.end()); + auto outliers = Catch::Benchmark::Detail::classify_outliers(samples.begin(), samples.end()); + + auto wrap_estimate = [](Estimate<double> e) { + return Estimate<Duration> { + Duration(e.point), + Duration(e.lower_bound), + Duration(e.upper_bound), + e.confidence_interval, + }; + }; + std::vector<Duration> samples2; + samples2.reserve(samples.size()); + std::transform(samples.begin(), samples.end(), std::back_inserter(samples2), [](double d) { return Duration(d); }); + return { + std::move(samples2), + wrap_estimate(analysis.mean), + wrap_estimate(analysis.standard_deviation), + outliers, + analysis.outlier_variance, + }; + } else { + std::vector<Duration> samples; + samples.reserve(last - first); + + Duration mean = Duration(0); + int i = 0; + for (auto it = first; it < last; ++it, ++i) { + samples.push_back(Duration(*it)); + mean += Duration(*it); + } + mean /= i; + + return { + std::move(samples), + Estimate<Duration>{mean, mean, mean, 0.0}, + Estimate<Duration>{Duration(0), Duration(0), Duration(0), 0.0}, + OutlierClassification{}, + 0.0 + }; + } + } + } // namespace Detail + } // namespace Benchmark +} // namespace Catch + +// end catch_analyse.hpp +#include <algorithm> +#include <functional> +#include <string> +#include <vector> +#include <cmath> + +namespace Catch { + namespace Benchmark { + struct Benchmark { + Benchmark(std::string &&name) + : name(std::move(name)) {} + + template <class FUN> + Benchmark(std::string &&name, FUN &&func) + : fun(std::move(func)), name(std::move(name)) {} + + template <typename Clock> + ExecutionPlan<FloatDuration<Clock>> prepare(const IConfig &cfg, Environment<FloatDuration<Clock>> env) const { + auto min_time = env.clock_resolution.mean * Detail::minimum_ticks; + auto run_time = std::max(min_time, std::chrono::duration_cast<decltype(min_time)>(cfg.benchmarkWarmupTime())); + auto&& test = Detail::run_for_at_least<Clock>(std::chrono::duration_cast<ClockDuration<Clock>>(run_time), 1, fun); + int new_iters = static_cast<int>(std::ceil(min_time * test.iterations / test.elapsed)); + return { new_iters, test.elapsed / test.iterations * new_iters * cfg.benchmarkSamples(), fun, std::chrono::duration_cast<FloatDuration<Clock>>(cfg.benchmarkWarmupTime()), Detail::warmup_iterations }; + } + + template <typename Clock = default_clock> + void run() { + IConfigPtr cfg = getCurrentContext().getConfig(); + + auto env = Detail::measure_environment<Clock>(); + + getResultCapture().benchmarkPreparing(name); + CATCH_TRY{ + auto plan = user_code([&] { + return prepare<Clock>(*cfg, env); + }); + + BenchmarkInfo info { + name, + plan.estimated_duration.count(), + plan.iterations_per_sample, + cfg->benchmarkSamples(), + cfg->benchmarkResamples(), + env.clock_resolution.mean.count(), + env.clock_cost.mean.count() + }; + + getResultCapture().benchmarkStarting(info); + + auto samples = user_code([&] { + return plan.template run<Clock>(*cfg, env); + }); + + auto analysis = Detail::analyse(*cfg, env, samples.begin(), samples.end()); + BenchmarkStats<FloatDuration<Clock>> stats{ info, analysis.samples, analysis.mean, analysis.standard_deviation, analysis.outliers, analysis.outlier_variance }; + getResultCapture().benchmarkEnded(stats); + + } CATCH_CATCH_ALL{ + if (translateActiveException() != Detail::benchmarkErrorMsg) // benchmark errors have been reported, otherwise rethrow. + std::rethrow_exception(std::current_exception()); + } + } + + // sets lambda to be used in fun *and* executes benchmark! + template <typename Fun, + typename std::enable_if<!Detail::is_related<Fun, Benchmark>::value, int>::type = 0> + Benchmark & operator=(Fun func) { + fun = Detail::BenchmarkFunction(func); + run(); + return *this; + } + + explicit operator bool() { + return true; + } + + private: + Detail::BenchmarkFunction fun; + std::string name; + }; + } +} // namespace Catch + +#define INTERNAL_CATCH_GET_1_ARG(arg1, arg2, ...) arg1 +#define INTERNAL_CATCH_GET_2_ARG(arg1, arg2, ...) arg2 + +#define INTERNAL_CATCH_BENCHMARK(BenchmarkName, name, benchmarkIndex)\ + if( Catch::Benchmark::Benchmark BenchmarkName{name} ) \ + BenchmarkName = [&](int benchmarkIndex) + +#define INTERNAL_CATCH_BENCHMARK_ADVANCED(BenchmarkName, name)\ + if( Catch::Benchmark::Benchmark BenchmarkName{name} ) \ + BenchmarkName = [&] + +// end catch_benchmark.hpp +// start catch_constructor.hpp + +// Constructor and destructor helpers + + +#include <type_traits> + +namespace Catch { + namespace Benchmark { + namespace Detail { + template <typename T, bool Destruct> + struct ObjectStorage + { + using TStorage = typename std::aligned_storage<sizeof(T), std::alignment_of<T>::value>::type; + + ObjectStorage() : data() {} + + ObjectStorage(const ObjectStorage& other) + { + new(&data) T(other.stored_object()); + } + + ObjectStorage(ObjectStorage&& other) + { + new(&data) T(std::move(other.stored_object())); + } + + ~ObjectStorage() { destruct_on_exit<T>(); } + + template <typename... Args> + void construct(Args&&... args) + { + new (&data) T(std::forward<Args>(args)...); + } + + template <bool AllowManualDestruction = !Destruct> + typename std::enable_if<AllowManualDestruction>::type destruct() + { + stored_object().~T(); + } + + private: + // If this is a constructor benchmark, destruct the underlying object + template <typename U> + void destruct_on_exit(typename std::enable_if<Destruct, U>::type* = 0) { destruct<true>(); } + // Otherwise, don't + template <typename U> + void destruct_on_exit(typename std::enable_if<!Destruct, U>::type* = 0) { } + + T& stored_object() { + return *static_cast<T*>(static_cast<void*>(&data)); + } + + T const& stored_object() const { + return *static_cast<T*>(static_cast<void*>(&data)); + } + + TStorage data; + }; + } + + template <typename T> + using storage_for = Detail::ObjectStorage<T, true>; + + template <typename T> + using destructable_object = Detail::ObjectStorage<T, false>; + } +} + +// end catch_constructor.hpp +// end catch_benchmarking_all.hpp +#endif + +#endif // ! CATCH_CONFIG_IMPL_ONLY + +#ifdef CATCH_IMPL +// start catch_impl.hpp + +#ifdef __clang__ +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wweak-vtables" +#endif + +// Keep these here for external reporters +// start catch_test_case_tracker.h + +#include <string> +#include <vector> +#include <memory> + +namespace Catch { +namespace TestCaseTracking { + + struct NameAndLocation { + std::string name; + SourceLineInfo location; + + NameAndLocation( std::string const& _name, SourceLineInfo const& _location ); + }; + + struct ITracker; + + using ITrackerPtr = std::shared_ptr<ITracker>; + + struct ITracker { + virtual ~ITracker(); + + // static queries + virtual NameAndLocation const& nameAndLocation() const = 0; + + // dynamic queries + virtual bool isComplete() const = 0; // Successfully completed or failed + virtual bool isSuccessfullyCompleted() const = 0; + virtual bool isOpen() const = 0; // Started but not complete + virtual bool hasChildren() const = 0; + + virtual ITracker& parent() = 0; + + // actions + virtual void close() = 0; // Successfully complete + virtual void fail() = 0; + virtual void markAsNeedingAnotherRun() = 0; + + virtual void addChild( ITrackerPtr const& child ) = 0; + virtual ITrackerPtr findChild( NameAndLocation const& nameAndLocation ) = 0; + virtual void openChild() = 0; + + // Debug/ checking + virtual bool isSectionTracker() const = 0; + virtual bool isGeneratorTracker() const = 0; + }; + + class TrackerContext { + + enum RunState { + NotStarted, + Executing, + CompletedCycle + }; + + ITrackerPtr m_rootTracker; + ITracker* m_currentTracker = nullptr; + RunState m_runState = NotStarted; + + public: + + ITracker& startRun(); + void endRun(); + + void startCycle(); + void completeCycle(); + + bool completedCycle() const; + ITracker& currentTracker(); + void setCurrentTracker( ITracker* tracker ); + }; + + class TrackerBase : public ITracker { + protected: + enum CycleState { + NotStarted, + Executing, + ExecutingChildren, + NeedsAnotherRun, + CompletedSuccessfully, + Failed + }; + + using Children = std::vector<ITrackerPtr>; + NameAndLocation m_nameAndLocation; + TrackerContext& m_ctx; + ITracker* m_parent; + Children m_children; + CycleState m_runState = NotStarted; + + public: + TrackerBase( NameAndLocation const& nameAndLocation, TrackerContext& ctx, ITracker* parent ); + + NameAndLocation const& nameAndLocation() const override; + bool isComplete() const override; + bool isSuccessfullyCompleted() const override; + bool isOpen() const override; + bool hasChildren() const override; + + void addChild( ITrackerPtr const& child ) override; + + ITrackerPtr findChild( NameAndLocation const& nameAndLocation ) override; + ITracker& parent() override; + + void openChild() override; + + bool isSectionTracker() const override; + bool isGeneratorTracker() const override; + + void open(); + + void close() override; + void fail() override; + void markAsNeedingAnotherRun() override; + + private: + void moveToParent(); + void moveToThis(); + }; + + class SectionTracker : public TrackerBase { + std::vector<std::string> m_filters; + std::string m_trimmed_name; + public: + SectionTracker( NameAndLocation const& nameAndLocation, TrackerContext& ctx, ITracker* parent ); + + bool isSectionTracker() const override; + + bool isComplete() const override; + + static SectionTracker& acquire( TrackerContext& ctx, NameAndLocation const& nameAndLocation ); + + void tryOpen(); + + void addInitialFilters( std::vector<std::string> const& filters ); + void addNextFilters( std::vector<std::string> const& filters ); + }; + +} // namespace TestCaseTracking + +using TestCaseTracking::ITracker; +using TestCaseTracking::TrackerContext; +using TestCaseTracking::SectionTracker; + +} // namespace Catch + +// end catch_test_case_tracker.h + +// start catch_leak_detector.h + +namespace Catch { + + struct LeakDetector { + LeakDetector(); + ~LeakDetector(); + }; + +} +// end catch_leak_detector.h +// Cpp files will be included in the single-header file here +// start catch_stats.cpp + +// Statistical analysis tools + +#if defined(CATCH_CONFIG_ENABLE_BENCHMARKING) + +#include <cassert> +#include <random> + +#if defined(CATCH_CONFIG_USE_ASYNC) +#include <future> +#endif + +namespace { + double erf_inv(double x) { + // Code accompanying the article "Approximating the erfinv function" in GPU Computing Gems, Volume 2 + double w, p; + + w = -log((1.0 - x) * (1.0 + x)); + + if (w < 6.250000) { + w = w - 3.125000; + p = -3.6444120640178196996e-21; + p = -1.685059138182016589e-19 + p * w; + p = 1.2858480715256400167e-18 + p * w; + p = 1.115787767802518096e-17 + p * w; + p = -1.333171662854620906e-16 + p * w; + p = 2.0972767875968561637e-17 + p * w; + p = 6.6376381343583238325e-15 + p * w; + p = -4.0545662729752068639e-14 + p * w; + p = -8.1519341976054721522e-14 + p * w; + p = 2.6335093153082322977e-12 + p * w; + p = -1.2975133253453532498e-11 + p * w; + p = -5.4154120542946279317e-11 + p * w; + p = 1.051212273321532285e-09 + p * w; + p = -4.1126339803469836976e-09 + p * w; + p = -2.9070369957882005086e-08 + p * w; + p = 4.2347877827932403518e-07 + p * w; + p = -1.3654692000834678645e-06 + p * w; + p = -1.3882523362786468719e-05 + p * w; + p = 0.0001867342080340571352 + p * w; + p = -0.00074070253416626697512 + p * w; + p = -0.0060336708714301490533 + p * w; + p = 0.24015818242558961693 + p * w; + p = 1.6536545626831027356 + p * w; + } else if (w < 16.000000) { + w = sqrt(w) - 3.250000; + p = 2.2137376921775787049e-09; + p = 9.0756561938885390979e-08 + p * w; + p = -2.7517406297064545428e-07 + p * w; + p = 1.8239629214389227755e-08 + p * w; + p = 1.5027403968909827627e-06 + p * w; + p = -4.013867526981545969e-06 + p * w; + p = 2.9234449089955446044e-06 + p * w; + p = 1.2475304481671778723e-05 + p * w; + p = -4.7318229009055733981e-05 + p * w; + p = 6.8284851459573175448e-05 + p * w; + p = 2.4031110387097893999e-05 + p * w; + p = -0.0003550375203628474796 + p * w; + p = 0.00095328937973738049703 + p * w; + p = -0.0016882755560235047313 + p * w; + p = 0.0024914420961078508066 + p * w; + p = -0.0037512085075692412107 + p * w; + p = 0.005370914553590063617 + p * w; + p = 1.0052589676941592334 + p * w; + p = 3.0838856104922207635 + p * w; + } else { + w = sqrt(w) - 5.000000; + p = -2.7109920616438573243e-11; + p = -2.5556418169965252055e-10 + p * w; + p = 1.5076572693500548083e-09 + p * w; + p = -3.7894654401267369937e-09 + p * w; + p = 7.6157012080783393804e-09 + p * w; + p = -1.4960026627149240478e-08 + p * w; + p = 2.9147953450901080826e-08 + p * w; + p = -6.7711997758452339498e-08 + p * w; + p = 2.2900482228026654717e-07 + p * w; + p = -9.9298272942317002539e-07 + p * w; + p = 4.5260625972231537039e-06 + p * w; + p = -1.9681778105531670567e-05 + p * w; + p = 7.5995277030017761139e-05 + p * w; + p = -0.00021503011930044477347 + p * w; + p = -0.00013871931833623122026 + p * w; + p = 1.0103004648645343977 + p * w; + p = 4.8499064014085844221 + p * w; + } + return p * x; + } + + double standard_deviation(std::vector<double>::iterator first, std::vector<double>::iterator last) { + auto m = Catch::Benchmark::Detail::mean(first, last); + double variance = std::accumulate(first, last, 0., [m](double a, double b) { + double diff = b - m; + return a + diff * diff; + }) / (last - first); + return std::sqrt(variance); + } + +} + +namespace Catch { + namespace Benchmark { + namespace Detail { + + double weighted_average_quantile(int k, int q, std::vector<double>::iterator first, std::vector<double>::iterator last) { + auto count = last - first; + double idx = (count - 1) * k / static_cast<double>(q); + int j = static_cast<int>(idx); + double g = idx - j; + std::nth_element(first, first + j, last); + auto xj = first[j]; + if (g == 0) return xj; + + auto xj1 = *std::min_element(first + (j + 1), last); + return xj + g * (xj1 - xj); + } + + double erfc_inv(double x) { + return erf_inv(1.0 - x); + } + + double normal_quantile(double p) { + static const double ROOT_TWO = std::sqrt(2.0); + + double result = 0.0; + assert(p >= 0 && p <= 1); + if (p < 0 || p > 1) { + return result; + } + + result = -erfc_inv(2.0 * p); + // result *= normal distribution standard deviation (1.0) * sqrt(2) + result *= /*sd * */ ROOT_TWO; + // result += normal disttribution mean (0) + return result; + } + + double outlier_variance(Estimate<double> mean, Estimate<double> stddev, int n) { + double sb = stddev.point; + double mn = mean.point / n; + double mg_min = mn / 2.; + double sg = std::min(mg_min / 4., sb / std::sqrt(n)); + double sg2 = sg * sg; + double sb2 = sb * sb; + + auto c_max = [n, mn, sb2, sg2](double x) -> double { + double k = mn - x; + double d = k * k; + double nd = n * d; + double k0 = -n * nd; + double k1 = sb2 - n * sg2 + nd; + double det = k1 * k1 - 4 * sg2 * k0; + return (int)(-2. * k0 / (k1 + std::sqrt(det))); + }; + + auto var_out = [n, sb2, sg2](double c) { + double nc = n - c; + return (nc / n) * (sb2 - nc * sg2); + }; + + return std::min(var_out(1), var_out(std::min(c_max(0.), c_max(mg_min)))) / sb2; + } + + bootstrap_analysis analyse_samples(double confidence_level, int n_resamples, std::vector<double>::iterator first, std::vector<double>::iterator last) { + CATCH_INTERNAL_START_WARNINGS_SUPPRESSION + CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS + static std::random_device entropy; + CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION + + auto n = static_cast<int>(last - first); // seriously, one can't use integral types without hell in C++ + + auto mean = &Detail::mean<std::vector<double>::iterator>; + auto stddev = &standard_deviation; + +#if defined(CATCH_CONFIG_USE_ASYNC) + auto Estimate = [=](double(*f)(std::vector<double>::iterator, std::vector<double>::iterator)) { + auto seed = entropy(); + return std::async(std::launch::async, [=] { + std::mt19937 rng(seed); + auto resampled = resample(rng, n_resamples, first, last, f); + return bootstrap(confidence_level, first, last, resampled, f); + }); + }; + + auto mean_future = Estimate(mean); + auto stddev_future = Estimate(stddev); + + auto mean_estimate = mean_future.get(); + auto stddev_estimate = stddev_future.get(); +#else + auto Estimate = [=](double(*f)(std::vector<double>::iterator, std::vector<double>::iterator)) { + auto seed = entropy(); + std::mt19937 rng(seed); + auto resampled = resample(rng, n_resamples, first, last, f); + return bootstrap(confidence_level, first, last, resampled, f); + }; + + auto mean_estimate = Estimate(mean); + auto stddev_estimate = Estimate(stddev); +#endif // CATCH_USE_ASYNC + + double outlier_variance = Detail::outlier_variance(mean_estimate, stddev_estimate, n); + + return { mean_estimate, stddev_estimate, outlier_variance }; + } + } // namespace Detail + } // namespace Benchmark +} // namespace Catch + +#endif // CATCH_CONFIG_ENABLE_BENCHMARKING +// end catch_stats.cpp +// start catch_approx.cpp + +#include <cmath> +#include <limits> + +namespace { + +// Performs equivalent check of std::fabs(lhs - rhs) <= margin +// But without the subtraction to allow for INFINITY in comparison +bool marginComparison(double lhs, double rhs, double margin) { + return (lhs + margin >= rhs) && (rhs + margin >= lhs); +} + +} + +namespace Catch { +namespace Detail { + + Approx::Approx ( double value ) + : m_epsilon( std::numeric_limits<float>::epsilon()*100 ), + m_margin( 0.0 ), + m_scale( 0.0 ), + m_value( value ) + {} + + Approx Approx::custom() { + return Approx( 0 ); + } + + Approx Approx::operator-() const { + auto temp(*this); + temp.m_value = -temp.m_value; + return temp; + } + + std::string Approx::toString() const { + ReusableStringStream rss; + rss << "Approx( " << ::Catch::Detail::stringify( m_value ) << " )"; + return rss.str(); + } + + bool Approx::equalityComparisonImpl(const double other) const { + // First try with fixed margin, then compute margin based on epsilon, scale and Approx's value + // Thanks to Richard Harris for his help refining the scaled margin value + return marginComparison(m_value, other, m_margin) + || marginComparison(m_value, other, m_epsilon * (m_scale + std::fabs(std::isinf(m_value)? 0 : m_value))); + } + + void Approx::setMargin(double newMargin) { + CATCH_ENFORCE(newMargin >= 0, + "Invalid Approx::margin: " << newMargin << '.' + << " Approx::Margin has to be non-negative."); + m_margin = newMargin; + } + + void Approx::setEpsilon(double newEpsilon) { + CATCH_ENFORCE(newEpsilon >= 0 && newEpsilon <= 1.0, + "Invalid Approx::epsilon: " << newEpsilon << '.' + << " Approx::epsilon has to be in [0, 1]"); + m_epsilon = newEpsilon; + } + +} // end namespace Detail + +namespace literals { + Detail::Approx operator "" _a(long double val) { + return Detail::Approx(val); + } + Detail::Approx operator "" _a(unsigned long long val) { + return Detail::Approx(val); + } +} // end namespace literals + +std::string StringMaker<Catch::Detail::Approx>::convert(Catch::Detail::Approx const& value) { + return value.toString(); +} + +} // end namespace Catch +// end catch_approx.cpp +// start catch_assertionhandler.cpp + +// start catch_debugger.h + +namespace Catch { + bool isDebuggerActive(); +} + +#ifdef CATCH_PLATFORM_MAC + + #define CATCH_TRAP() __asm__("int $3\n" : : ) /* NOLINT */ + +#elif defined(CATCH_PLATFORM_IPHONE) + + // use inline assembler + #if defined(__i386__) || defined(__x86_64__) + #define CATCH_TRAP() __asm__("int $3") + #elif defined(__aarch64__) + #define CATCH_TRAP() __asm__(".inst 0xd4200000") + #elif defined(__arm__) && !defined(__thumb__) + #define CATCH_TRAP() __asm__(".inst 0xe7f001f0") + #elif defined(__arm__) && defined(__thumb__) + #define CATCH_TRAP() __asm__(".inst 0xde01") + #endif + +#elif defined(CATCH_PLATFORM_LINUX) + // If we can use inline assembler, do it because this allows us to break + // directly at the location of the failing check instead of breaking inside + // raise() called from it, i.e. one stack frame below. + #if defined(__GNUC__) && (defined(__i386) || defined(__x86_64)) + #define CATCH_TRAP() asm volatile ("int $3") /* NOLINT */ + #else // Fall back to the generic way. + #include <signal.h> + + #define CATCH_TRAP() raise(SIGTRAP) + #endif +#elif defined(_MSC_VER) + #define CATCH_TRAP() __debugbreak() +#elif defined(__MINGW32__) + extern "C" __declspec(dllimport) void __stdcall DebugBreak(); + #define CATCH_TRAP() DebugBreak() +#endif + +#ifndef CATCH_BREAK_INTO_DEBUGGER + #ifdef CATCH_TRAP + #define CATCH_BREAK_INTO_DEBUGGER() []{ if( Catch::isDebuggerActive() ) { CATCH_TRAP(); } }() + #else + #define CATCH_BREAK_INTO_DEBUGGER() []{}() + #endif +#endif + +// end catch_debugger.h +// start catch_run_context.h + +// start catch_fatal_condition.h + +// start catch_windows_h_proxy.h + + +#if defined(CATCH_PLATFORM_WINDOWS) + +#if !defined(NOMINMAX) && !defined(CATCH_CONFIG_NO_NOMINMAX) +# define CATCH_DEFINED_NOMINMAX +# define NOMINMAX +#endif +#if !defined(WIN32_LEAN_AND_MEAN) && !defined(CATCH_CONFIG_NO_WIN32_LEAN_AND_MEAN) +# define CATCH_DEFINED_WIN32_LEAN_AND_MEAN +# define WIN32_LEAN_AND_MEAN +#endif + +#ifdef __AFXDLL +#include <AfxWin.h> +#else +#include <windows.h> +#endif + +#ifdef CATCH_DEFINED_NOMINMAX +# undef NOMINMAX +#endif +#ifdef CATCH_DEFINED_WIN32_LEAN_AND_MEAN +# undef WIN32_LEAN_AND_MEAN +#endif + +#endif // defined(CATCH_PLATFORM_WINDOWS) + +// end catch_windows_h_proxy.h +#if defined( CATCH_CONFIG_WINDOWS_SEH ) + +namespace Catch { + + struct FatalConditionHandler { + + static LONG CALLBACK handleVectoredException(PEXCEPTION_POINTERS ExceptionInfo); + FatalConditionHandler(); + static void reset(); + ~FatalConditionHandler(); + + private: + static bool isSet; + static ULONG guaranteeSize; + static PVOID exceptionHandlerHandle; + }; + +} // namespace Catch + +#elif defined ( CATCH_CONFIG_POSIX_SIGNALS ) + +#include <signal.h> + +namespace Catch { + + struct FatalConditionHandler { + + static bool isSet; + static struct sigaction oldSigActions[]; + static stack_t oldSigStack; + static char altStackMem[]; + + static void handleSignal( int sig ); + + FatalConditionHandler(); + ~FatalConditionHandler(); + static void reset(); + }; + +} // namespace Catch + +#else + +namespace Catch { + struct FatalConditionHandler { + void reset(); + }; +} + +#endif + +// end catch_fatal_condition.h +#include <string> + +namespace Catch { + + struct IMutableContext; + + /////////////////////////////////////////////////////////////////////////// + + class RunContext : public IResultCapture, public IRunner { + + public: + RunContext( RunContext const& ) = delete; + RunContext& operator =( RunContext const& ) = delete; + + explicit RunContext( IConfigPtr const& _config, IStreamingReporterPtr&& reporter ); + + ~RunContext() override; + + void testGroupStarting( std::string const& testSpec, std::size_t groupIndex, std::size_t groupsCount ); + void testGroupEnded( std::string const& testSpec, Totals const& totals, std::size_t groupIndex, std::size_t groupsCount ); + + Totals runTest(TestCase const& testCase); + + IConfigPtr config() const; + IStreamingReporter& reporter() const; + + public: // IResultCapture + + // Assertion handlers + void handleExpr + ( AssertionInfo const& info, + ITransientExpression const& expr, + AssertionReaction& reaction ) override; + void handleMessage + ( AssertionInfo const& info, + ResultWas::OfType resultType, + StringRef const& message, + AssertionReaction& reaction ) override; + void handleUnexpectedExceptionNotThrown + ( AssertionInfo const& info, + AssertionReaction& reaction ) override; + void handleUnexpectedInflightException + ( AssertionInfo const& info, + std::string const& message, + AssertionReaction& reaction ) override; + void handleIncomplete + ( AssertionInfo const& info ) override; + void handleNonExpr + ( AssertionInfo const &info, + ResultWas::OfType resultType, + AssertionReaction &reaction ) override; + + bool sectionStarted( SectionInfo const& sectionInfo, Counts& assertions ) override; + + void sectionEnded( SectionEndInfo const& endInfo ) override; + void sectionEndedEarly( SectionEndInfo const& endInfo ) override; + + auto acquireGeneratorTracker( SourceLineInfo const& lineInfo ) -> IGeneratorTracker& override; + +#if defined(CATCH_CONFIG_ENABLE_BENCHMARKING) + void benchmarkPreparing( std::string const& name ) override; + void benchmarkStarting( BenchmarkInfo const& info ) override; + void benchmarkEnded( BenchmarkStats<> const& stats ) override; + void benchmarkFailed( std::string const& error ) override; +#endif // CATCH_CONFIG_ENABLE_BENCHMARKING + + void pushScopedMessage( MessageInfo const& message ) override; + void popScopedMessage( MessageInfo const& message ) override; + + void emplaceUnscopedMessage( MessageBuilder const& builder ) override; + + std::string getCurrentTestName() const override; + + const AssertionResult* getLastResult() const override; + + void exceptionEarlyReported() override; + + void handleFatalErrorCondition( StringRef message ) override; + + bool lastAssertionPassed() override; + + void assertionPassed() override; + + public: + // !TBD We need to do this another way! + bool aborting() const final; + + private: + + void runCurrentTest( std::string& redirectedCout, std::string& redirectedCerr ); + void invokeActiveTestCase(); + + void resetAssertionInfo(); + bool testForMissingAssertions( Counts& assertions ); + + void assertionEnded( AssertionResult const& result ); + void reportExpr + ( AssertionInfo const &info, + ResultWas::OfType resultType, + ITransientExpression const *expr, + bool negated ); + + void populateReaction( AssertionReaction& reaction ); + + private: + + void handleUnfinishedSections(); + + TestRunInfo m_runInfo; + IMutableContext& m_context; + TestCase const* m_activeTestCase = nullptr; + ITracker* m_testCaseTracker = nullptr; + Option<AssertionResult> m_lastResult; + + IConfigPtr m_config; + Totals m_totals; + IStreamingReporterPtr m_reporter; + std::vector<MessageInfo> m_messages; + std::vector<ScopedMessage> m_messageScopes; /* Keeps owners of so-called unscoped messages. */ + AssertionInfo m_lastAssertionInfo; + std::vector<SectionEndInfo> m_unfinishedSections; + std::vector<ITracker*> m_activeSections; + TrackerContext m_trackerContext; + bool m_lastAssertionPassed = false; + bool m_shouldReportUnexpected = true; + bool m_includeSuccessfulResults; + }; + + void seedRng(IConfig const& config); + unsigned int rngSeed(); +} // end namespace Catch + +// end catch_run_context.h +namespace Catch { + + namespace { + auto operator <<( std::ostream& os, ITransientExpression const& expr ) -> std::ostream& { + expr.streamReconstructedExpression( os ); + return os; + } + } + + LazyExpression::LazyExpression( bool isNegated ) + : m_isNegated( isNegated ) + {} + + LazyExpression::LazyExpression( LazyExpression const& other ) : m_isNegated( other.m_isNegated ) {} + + LazyExpression::operator bool() const { + return m_transientExpression != nullptr; + } + + auto operator << ( std::ostream& os, LazyExpression const& lazyExpr ) -> std::ostream& { + if( lazyExpr.m_isNegated ) + os << "!"; + + if( lazyExpr ) { + if( lazyExpr.m_isNegated && lazyExpr.m_transientExpression->isBinaryExpression() ) + os << "(" << *lazyExpr.m_transientExpression << ")"; + else + os << *lazyExpr.m_transientExpression; + } + else { + os << "{** error - unchecked empty expression requested **}"; + } + return os; + } + + AssertionHandler::AssertionHandler + ( StringRef const& macroName, + SourceLineInfo const& lineInfo, + StringRef capturedExpression, + ResultDisposition::Flags resultDisposition ) + : m_assertionInfo{ macroName, lineInfo, capturedExpression, resultDisposition }, + m_resultCapture( getResultCapture() ) + {} + + void AssertionHandler::handleExpr( ITransientExpression const& expr ) { + m_resultCapture.handleExpr( m_assertionInfo, expr, m_reaction ); + } + void AssertionHandler::handleMessage(ResultWas::OfType resultType, StringRef const& message) { + m_resultCapture.handleMessage( m_assertionInfo, resultType, message, m_reaction ); + } + + auto AssertionHandler::allowThrows() const -> bool { + return getCurrentContext().getConfig()->allowThrows(); + } + + void AssertionHandler::complete() { + setCompleted(); + if( m_reaction.shouldDebugBreak ) { + + // If you find your debugger stopping you here then go one level up on the + // call-stack for the code that caused it (typically a failed assertion) + + // (To go back to the test and change execution, jump over the throw, next) + CATCH_BREAK_INTO_DEBUGGER(); + } + if (m_reaction.shouldThrow) { +#if !defined(CATCH_CONFIG_DISABLE_EXCEPTIONS) + throw Catch::TestFailureException(); +#else + CATCH_ERROR( "Test failure requires aborting test!" ); +#endif + } + } + void AssertionHandler::setCompleted() { + m_completed = true; + } + + void AssertionHandler::handleUnexpectedInflightException() { + m_resultCapture.handleUnexpectedInflightException( m_assertionInfo, Catch::translateActiveException(), m_reaction ); + } + + void AssertionHandler::handleExceptionThrownAsExpected() { + m_resultCapture.handleNonExpr(m_assertionInfo, ResultWas::Ok, m_reaction); + } + void AssertionHandler::handleExceptionNotThrownAsExpected() { + m_resultCapture.handleNonExpr(m_assertionInfo, ResultWas::Ok, m_reaction); + } + + void AssertionHandler::handleUnexpectedExceptionNotThrown() { + m_resultCapture.handleUnexpectedExceptionNotThrown( m_assertionInfo, m_reaction ); + } + + void AssertionHandler::handleThrowingCallSkipped() { + m_resultCapture.handleNonExpr(m_assertionInfo, ResultWas::Ok, m_reaction); + } + + // This is the overload that takes a string and infers the Equals matcher from it + // The more general overload, that takes any string matcher, is in catch_capture_matchers.cpp + void handleExceptionMatchExpr( AssertionHandler& handler, std::string const& str, StringRef const& matcherString ) { + handleExceptionMatchExpr( handler, Matchers::Equals( str ), matcherString ); + } + +} // namespace Catch +// end catch_assertionhandler.cpp +// start catch_assertionresult.cpp + +namespace Catch { + AssertionResultData::AssertionResultData(ResultWas::OfType _resultType, LazyExpression const & _lazyExpression): + lazyExpression(_lazyExpression), + resultType(_resultType) {} + + std::string AssertionResultData::reconstructExpression() const { + + if( reconstructedExpression.empty() ) { + if( lazyExpression ) { + ReusableStringStream rss; + rss << lazyExpression; + reconstructedExpression = rss.str(); + } + } + return reconstructedExpression; + } + + AssertionResult::AssertionResult( AssertionInfo const& info, AssertionResultData const& data ) + : m_info( info ), + m_resultData( data ) + {} + + // Result was a success + bool AssertionResult::succeeded() const { + return Catch::isOk( m_resultData.resultType ); + } + + // Result was a success, or failure is suppressed + bool AssertionResult::isOk() const { + return Catch::isOk( m_resultData.resultType ) || shouldSuppressFailure( m_info.resultDisposition ); + } + + ResultWas::OfType AssertionResult::getResultType() const { + return m_resultData.resultType; + } + + bool AssertionResult::hasExpression() const { + return !m_info.capturedExpression.empty(); + } + + bool AssertionResult::hasMessage() const { + return !m_resultData.message.empty(); + } + + std::string AssertionResult::getExpression() const { + // Possibly overallocating by 3 characters should be basically free + std::string expr; expr.reserve(m_info.capturedExpression.size() + 3); + if (isFalseTest(m_info.resultDisposition)) { + expr += "!("; + } + expr += m_info.capturedExpression; + if (isFalseTest(m_info.resultDisposition)) { + expr += ')'; + } + return expr; + } + + std::string AssertionResult::getExpressionInMacro() const { + std::string expr; + if( m_info.macroName.empty() ) + expr = static_cast<std::string>(m_info.capturedExpression); + else { + expr.reserve( m_info.macroName.size() + m_info.capturedExpression.size() + 4 ); + expr += m_info.macroName; + expr += "( "; + expr += m_info.capturedExpression; + expr += " )"; + } + return expr; + } + + bool AssertionResult::hasExpandedExpression() const { + return hasExpression() && getExpandedExpression() != getExpression(); + } + + std::string AssertionResult::getExpandedExpression() const { + std::string expr = m_resultData.reconstructExpression(); + return expr.empty() + ? getExpression() + : expr; + } + + std::string AssertionResult::getMessage() const { + return m_resultData.message; + } + SourceLineInfo AssertionResult::getSourceInfo() const { + return m_info.lineInfo; + } + + StringRef AssertionResult::getTestMacroName() const { + return m_info.macroName; + } + +} // end namespace Catch +// end catch_assertionresult.cpp +// start catch_capture_matchers.cpp + +namespace Catch { + + using StringMatcher = Matchers::Impl::MatcherBase<std::string>; + + // This is the general overload that takes a any string matcher + // There is another overload, in catch_assertionhandler.h/.cpp, that only takes a string and infers + // the Equals matcher (so the header does not mention matchers) + void handleExceptionMatchExpr( AssertionHandler& handler, StringMatcher const& matcher, StringRef const& matcherString ) { + std::string exceptionMessage = Catch::translateActiveException(); + MatchExpr<std::string, StringMatcher const&> expr( exceptionMessage, matcher, matcherString ); + handler.handleExpr( expr ); + } + +} // namespace Catch +// end catch_capture_matchers.cpp +// start catch_commandline.cpp + +// start catch_commandline.h + +// start catch_clara.h + +// Use Catch's value for console width (store Clara's off to the side, if present) +#ifdef CLARA_CONFIG_CONSOLE_WIDTH +#define CATCH_TEMP_CLARA_CONFIG_CONSOLE_WIDTH CATCH_CLARA_TEXTFLOW_CONFIG_CONSOLE_WIDTH +#undef CATCH_CLARA_TEXTFLOW_CONFIG_CONSOLE_WIDTH +#endif +#define CATCH_CLARA_TEXTFLOW_CONFIG_CONSOLE_WIDTH CATCH_CONFIG_CONSOLE_WIDTH-1 + +#ifdef __clang__ +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wweak-vtables" +#pragma clang diagnostic ignored "-Wexit-time-destructors" +#pragma clang diagnostic ignored "-Wshadow" +#endif + +// start clara.hpp +// Copyright 2017 Two Blue Cubes Ltd. All rights reserved. +// +// Distributed under the Boost Software License, Version 1.0. (See accompanying +// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +// +// See https://github.com/philsquared/Clara for more details + +// Clara v1.1.5 + + +#ifndef CATCH_CLARA_CONFIG_CONSOLE_WIDTH +#define CATCH_CLARA_CONFIG_CONSOLE_WIDTH 80 +#endif + +#ifndef CATCH_CLARA_TEXTFLOW_CONFIG_CONSOLE_WIDTH +#define CATCH_CLARA_TEXTFLOW_CONFIG_CONSOLE_WIDTH CATCH_CLARA_CONFIG_CONSOLE_WIDTH +#endif + +#ifndef CLARA_CONFIG_OPTIONAL_TYPE +#ifdef __has_include +#if __has_include(<optional>) && __cplusplus >= 201703L +#include <optional> +#define CLARA_CONFIG_OPTIONAL_TYPE std::optional +#endif +#endif +#endif + +// ----------- #included from clara_textflow.hpp ----------- + +// TextFlowCpp +// +// A single-header library for wrapping and laying out basic text, by Phil Nash +// +// Distributed under the Boost Software License, Version 1.0. (See accompanying +// file LICENSE.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +// +// This project is hosted at https://github.com/philsquared/textflowcpp + + +#include <cassert> +#include <ostream> +#include <sstream> +#include <vector> + +#ifndef CATCH_CLARA_TEXTFLOW_CONFIG_CONSOLE_WIDTH +#define CATCH_CLARA_TEXTFLOW_CONFIG_CONSOLE_WIDTH 80 +#endif + +namespace Catch { +namespace clara { +namespace TextFlow { + +inline auto isWhitespace(char c) -> bool { + static std::string chars = " \t\n\r"; + return chars.find(c) != std::string::npos; +} +inline auto isBreakableBefore(char c) -> bool { + static std::string chars = "[({<|"; + return chars.find(c) != std::string::npos; +} +inline auto isBreakableAfter(char c) -> bool { + static std::string chars = "])}>.,:;*+-=&/\\"; + return chars.find(c) != std::string::npos; +} + +class Columns; + +class Column { + std::vector<std::string> m_strings; + size_t m_width = CATCH_CLARA_TEXTFLOW_CONFIG_CONSOLE_WIDTH; + size_t m_indent = 0; + size_t m_initialIndent = std::string::npos; + +public: + class iterator { + friend Column; + + Column const& m_column; + size_t m_stringIndex = 0; + size_t m_pos = 0; + + size_t m_len = 0; + size_t m_end = 0; + bool m_suffix = false; + + iterator(Column const& column, size_t stringIndex) + : m_column(column), + m_stringIndex(stringIndex) {} + + auto line() const -> std::string const& { return m_column.m_strings[m_stringIndex]; } + + auto isBoundary(size_t at) const -> bool { + assert(at > 0); + assert(at <= line().size()); + + return at == line().size() || + (isWhitespace(line()[at]) && !isWhitespace(line()[at - 1])) || + isBreakableBefore(line()[at]) || + isBreakableAfter(line()[at - 1]); + } + + void calcLength() { + assert(m_stringIndex < m_column.m_strings.size()); + + m_suffix = false; + auto width = m_column.m_width - indent(); + m_end = m_pos; + if (line()[m_pos] == '\n') { + ++m_end; + } + while (m_end < line().size() && line()[m_end] != '\n') + ++m_end; + + if (m_end < m_pos + width) { + m_len = m_end - m_pos; + } else { + size_t len = width; + while (len > 0 && !isBoundary(m_pos + len)) + --len; + while (len > 0 && isWhitespace(line()[m_pos + len - 1])) + --len; + + if (len > 0) { + m_len = len; + } else { + m_suffix = true; + m_len = width - 1; + } + } + } + + auto indent() const -> size_t { + auto initial = m_pos == 0 && m_stringIndex == 0 ? m_column.m_initialIndent : std::string::npos; + return initial == std::string::npos ? m_column.m_indent : initial; + } + + auto addIndentAndSuffix(std::string const &plain) const -> std::string { + return std::string(indent(), ' ') + (m_suffix ? plain + "-" : plain); + } + + public: + using difference_type = std::ptrdiff_t; + using value_type = std::string; + using pointer = value_type * ; + using reference = value_type & ; + using iterator_category = std::forward_iterator_tag; + + explicit iterator(Column const& column) : m_column(column) { + assert(m_column.m_width > m_column.m_indent); + assert(m_column.m_initialIndent == std::string::npos || m_column.m_width > m_column.m_initialIndent); + calcLength(); + if (m_len == 0) + m_stringIndex++; // Empty string + } + + auto operator *() const -> std::string { + assert(m_stringIndex < m_column.m_strings.size()); + assert(m_pos <= m_end); + return addIndentAndSuffix(line().substr(m_pos, m_len)); + } + + auto operator ++() -> iterator& { + m_pos += m_len; + if (m_pos < line().size() && line()[m_pos] == '\n') + m_pos += 1; + else + while (m_pos < line().size() && isWhitespace(line()[m_pos])) + ++m_pos; + + if (m_pos == line().size()) { + m_pos = 0; + ++m_stringIndex; + } + if (m_stringIndex < m_column.m_strings.size()) + calcLength(); + return *this; + } + auto operator ++(int) -> iterator { + iterator prev(*this); + operator++(); + return prev; + } + + auto operator ==(iterator const& other) const -> bool { + return + m_pos == other.m_pos && + m_stringIndex == other.m_stringIndex && + &m_column == &other.m_column; + } + auto operator !=(iterator const& other) const -> bool { + return !operator==(other); + } + }; + using const_iterator = iterator; + + explicit Column(std::string const& text) { m_strings.push_back(text); } + + auto width(size_t newWidth) -> Column& { + assert(newWidth > 0); + m_width = newWidth; + return *this; + } + auto indent(size_t newIndent) -> Column& { + m_indent = newIndent; + return *this; + } + auto initialIndent(size_t newIndent) -> Column& { + m_initialIndent = newIndent; + return *this; + } + + auto width() const -> size_t { return m_width; } + auto begin() const -> iterator { return iterator(*this); } + auto end() const -> iterator { return { *this, m_strings.size() }; } + + inline friend std::ostream& operator << (std::ostream& os, Column const& col) { + bool first = true; + for (auto line : col) { + if (first) + first = false; + else + os << "\n"; + os << line; + } + return os; + } + + auto operator + (Column const& other)->Columns; + + auto toString() const -> std::string { + std::ostringstream oss; + oss << *this; + return oss.str(); + } +}; + +class Spacer : public Column { + +public: + explicit Spacer(size_t spaceWidth) : Column("") { + width(spaceWidth); + } +}; + +class Columns { + std::vector<Column> m_columns; + +public: + + class iterator { + friend Columns; + struct EndTag {}; + + std::vector<Column> const& m_columns; + std::vector<Column::iterator> m_iterators; + size_t m_activeIterators; + + iterator(Columns const& columns, EndTag) + : m_columns(columns.m_columns), + m_activeIterators(0) { + m_iterators.reserve(m_columns.size()); + + for (auto const& col : m_columns) + m_iterators.push_back(col.end()); + } + + public: + using difference_type = std::ptrdiff_t; + using value_type = std::string; + using pointer = value_type * ; + using reference = value_type & ; + using iterator_category = std::forward_iterator_tag; + + explicit iterator(Columns const& columns) + : m_columns(columns.m_columns), + m_activeIterators(m_columns.size()) { + m_iterators.reserve(m_columns.size()); + + for (auto const& col : m_columns) + m_iterators.push_back(col.begin()); + } + + auto operator ==(iterator const& other) const -> bool { + return m_iterators == other.m_iterators; + } + auto operator !=(iterator const& other) const -> bool { + return m_iterators != other.m_iterators; + } + auto operator *() const -> std::string { + std::string row, padding; + + for (size_t i = 0; i < m_columns.size(); ++i) { + auto width = m_columns[i].width(); + if (m_iterators[i] != m_columns[i].end()) { + std::string col = *m_iterators[i]; + row += padding + col; + if (col.size() < width) + padding = std::string(width - col.size(), ' '); + else + padding = ""; + } else { + padding += std::string(width, ' '); + } + } + return row; + } + auto operator ++() -> iterator& { + for (size_t i = 0; i < m_columns.size(); ++i) { + if (m_iterators[i] != m_columns[i].end()) + ++m_iterators[i]; + } + return *this; + } + auto operator ++(int) -> iterator { + iterator prev(*this); + operator++(); + return prev; + } + }; + using const_iterator = iterator; + + auto begin() const -> iterator { return iterator(*this); } + auto end() const -> iterator { return { *this, iterator::EndTag() }; } + + auto operator += (Column const& col) -> Columns& { + m_columns.push_back(col); + return *this; + } + auto operator + (Column const& col) -> Columns { + Columns combined = *this; + combined += col; + return combined; + } + + inline friend std::ostream& operator << (std::ostream& os, Columns const& cols) { + + bool first = true; + for (auto line : cols) { + if (first) + first = false; + else + os << "\n"; + os << line; + } + return os; + } + + auto toString() const -> std::string { + std::ostringstream oss; + oss << *this; + return oss.str(); + } +}; + +inline auto Column::operator + (Column const& other) -> Columns { + Columns cols; + cols += *this; + cols += other; + return cols; +} +} + +} +} + +// ----------- end of #include from clara_textflow.hpp ----------- +// ........... back in clara.hpp + +#include <cctype> +#include <string> +#include <memory> +#include <set> +#include <algorithm> + +#if !defined(CATCH_PLATFORM_WINDOWS) && ( defined(WIN32) || defined(__WIN32__) || defined(_WIN32) || defined(_MSC_VER) ) +#define CATCH_PLATFORM_WINDOWS +#endif + +namespace Catch { namespace clara { +namespace detail { + + // Traits for extracting arg and return type of lambdas (for single argument lambdas) + template<typename L> + struct UnaryLambdaTraits : UnaryLambdaTraits<decltype( &L::operator() )> {}; + + template<typename ClassT, typename ReturnT, typename... Args> + struct UnaryLambdaTraits<ReturnT( ClassT::* )( Args... ) const> { + static const bool isValid = false; + }; + + template<typename ClassT, typename ReturnT, typename ArgT> + struct UnaryLambdaTraits<ReturnT( ClassT::* )( ArgT ) const> { + static const bool isValid = true; + using ArgType = typename std::remove_const<typename std::remove_reference<ArgT>::type>::type; + using ReturnType = ReturnT; + }; + + class TokenStream; + + // Transport for raw args (copied from main args, or supplied via init list for testing) + class Args { + friend TokenStream; + std::string m_exeName; + std::vector<std::string> m_args; + + public: + Args( int argc, char const* const* argv ) + : m_exeName(argv[0]), + m_args(argv + 1, argv + argc) {} + + Args( std::initializer_list<std::string> args ) + : m_exeName( *args.begin() ), + m_args( args.begin()+1, args.end() ) + {} + + auto exeName() const -> std::string { + return m_exeName; + } + }; + + // Wraps a token coming from a token stream. These may not directly correspond to strings as a single string + // may encode an option + its argument if the : or = form is used + enum class TokenType { + Option, Argument + }; + struct Token { + TokenType type; + std::string token; + }; + + inline auto isOptPrefix( char c ) -> bool { + return c == '-' +#ifdef CATCH_PLATFORM_WINDOWS + || c == '/' +#endif + ; + } + + // Abstracts iterators into args as a stream of tokens, with option arguments uniformly handled + class TokenStream { + using Iterator = std::vector<std::string>::const_iterator; + Iterator it; + Iterator itEnd; + std::vector<Token> m_tokenBuffer; + + void loadBuffer() { + m_tokenBuffer.resize( 0 ); + + // Skip any empty strings + while( it != itEnd && it->empty() ) + ++it; + + if( it != itEnd ) { + auto const &next = *it; + if( isOptPrefix( next[0] ) ) { + auto delimiterPos = next.find_first_of( " :=" ); + if( delimiterPos != std::string::npos ) { + m_tokenBuffer.push_back( { TokenType::Option, next.substr( 0, delimiterPos ) } ); + m_tokenBuffer.push_back( { TokenType::Argument, next.substr( delimiterPos + 1 ) } ); + } else { + if( next[1] != '-' && next.size() > 2 ) { + std::string opt = "- "; + for( size_t i = 1; i < next.size(); ++i ) { + opt[1] = next[i]; + m_tokenBuffer.push_back( { TokenType::Option, opt } ); + } + } else { + m_tokenBuffer.push_back( { TokenType::Option, next } ); + } + } + } else { + m_tokenBuffer.push_back( { TokenType::Argument, next } ); + } + } + } + + public: + explicit TokenStream( Args const &args ) : TokenStream( args.m_args.begin(), args.m_args.end() ) {} + + TokenStream( Iterator it, Iterator itEnd ) : it( it ), itEnd( itEnd ) { + loadBuffer(); + } + + explicit operator bool() const { + return !m_tokenBuffer.empty() || it != itEnd; + } + + auto count() const -> size_t { return m_tokenBuffer.size() + (itEnd - it); } + + auto operator*() const -> Token { + assert( !m_tokenBuffer.empty() ); + return m_tokenBuffer.front(); + } + + auto operator->() const -> Token const * { + assert( !m_tokenBuffer.empty() ); + return &m_tokenBuffer.front(); + } + + auto operator++() -> TokenStream & { + if( m_tokenBuffer.size() >= 2 ) { + m_tokenBuffer.erase( m_tokenBuffer.begin() ); + } else { + if( it != itEnd ) + ++it; + loadBuffer(); + } + return *this; + } + }; + + class ResultBase { + public: + enum Type { + Ok, LogicError, RuntimeError + }; + + protected: + ResultBase( Type type ) : m_type( type ) {} + virtual ~ResultBase() = default; + + virtual void enforceOk() const = 0; + + Type m_type; + }; + + template<typename T> + class ResultValueBase : public ResultBase { + public: + auto value() const -> T const & { + enforceOk(); + return m_value; + } + + protected: + ResultValueBase( Type type ) : ResultBase( type ) {} + + ResultValueBase( ResultValueBase const &other ) : ResultBase( other ) { + if( m_type == ResultBase::Ok ) + new( &m_value ) T( other.m_value ); + } + + ResultValueBase( Type, T const &value ) : ResultBase( Ok ) { + new( &m_value ) T( value ); + } + + auto operator=( ResultValueBase const &other ) -> ResultValueBase & { + if( m_type == ResultBase::Ok ) + m_value.~T(); + ResultBase::operator=(other); + if( m_type == ResultBase::Ok ) + new( &m_value ) T( other.m_value ); + return *this; + } + + ~ResultValueBase() override { + if( m_type == Ok ) + m_value.~T(); + } + + union { + T m_value; + }; + }; + + template<> + class ResultValueBase<void> : public ResultBase { + protected: + using ResultBase::ResultBase; + }; + + template<typename T = void> + class BasicResult : public ResultValueBase<T> { + public: + template<typename U> + explicit BasicResult( BasicResult<U> const &other ) + : ResultValueBase<T>( other.type() ), + m_errorMessage( other.errorMessage() ) + { + assert( type() != ResultBase::Ok ); + } + + template<typename U> + static auto ok( U const &value ) -> BasicResult { return { ResultBase::Ok, value }; } + static auto ok() -> BasicResult { return { ResultBase::Ok }; } + static auto logicError( std::string const &message ) -> BasicResult { return { ResultBase::LogicError, message }; } + static auto runtimeError( std::string const &message ) -> BasicResult { return { ResultBase::RuntimeError, message }; } + + explicit operator bool() const { return m_type == ResultBase::Ok; } + auto type() const -> ResultBase::Type { return m_type; } + auto errorMessage() const -> std::string { return m_errorMessage; } + + protected: + void enforceOk() const override { + + // Errors shouldn't reach this point, but if they do + // the actual error message will be in m_errorMessage + assert( m_type != ResultBase::LogicError ); + assert( m_type != ResultBase::RuntimeError ); + if( m_type != ResultBase::Ok ) + std::abort(); + } + + std::string m_errorMessage; // Only populated if resultType is an error + + BasicResult( ResultBase::Type type, std::string const &message ) + : ResultValueBase<T>(type), + m_errorMessage(message) + { + assert( m_type != ResultBase::Ok ); + } + + using ResultValueBase<T>::ResultValueBase; + using ResultBase::m_type; + }; + + enum class ParseResultType { + Matched, NoMatch, ShortCircuitAll, ShortCircuitSame + }; + + class ParseState { + public: + + ParseState( ParseResultType type, TokenStream const &remainingTokens ) + : m_type(type), + m_remainingTokens( remainingTokens ) + {} + + auto type() const -> ParseResultType { return m_type; } + auto remainingTokens() const -> TokenStream { return m_remainingTokens; } + + private: + ParseResultType m_type; + TokenStream m_remainingTokens; + }; + + using Result = BasicResult<void>; + using ParserResult = BasicResult<ParseResultType>; + using InternalParseResult = BasicResult<ParseState>; + + struct HelpColumns { + std::string left; + std::string right; + }; + + template<typename T> + inline auto convertInto( std::string const &source, T& target ) -> ParserResult { + std::stringstream ss; + ss << source; + ss >> target; + if( ss.fail() ) + return ParserResult::runtimeError( "Unable to convert '" + source + "' to destination type" ); + else + return ParserResult::ok( ParseResultType::Matched ); + } + inline auto convertInto( std::string const &source, std::string& target ) -> ParserResult { + target = source; + return ParserResult::ok( ParseResultType::Matched ); + } + inline auto convertInto( std::string const &source, bool &target ) -> ParserResult { + std::string srcLC = source; + std::transform( srcLC.begin(), srcLC.end(), srcLC.begin(), []( char c ) { return static_cast<char>( std::tolower(c) ); } ); + if (srcLC == "y" || srcLC == "1" || srcLC == "true" || srcLC == "yes" || srcLC == "on") + target = true; + else if (srcLC == "n" || srcLC == "0" || srcLC == "false" || srcLC == "no" || srcLC == "off") + target = false; + else + return ParserResult::runtimeError( "Expected a boolean value but did not recognise: '" + source + "'" ); + return ParserResult::ok( ParseResultType::Matched ); + } +#ifdef CLARA_CONFIG_OPTIONAL_TYPE + template<typename T> + inline auto convertInto( std::string const &source, CLARA_CONFIG_OPTIONAL_TYPE<T>& target ) -> ParserResult { + T temp; + auto result = convertInto( source, temp ); + if( result ) + target = std::move(temp); + return result; + } +#endif // CLARA_CONFIG_OPTIONAL_TYPE + + struct NonCopyable { + NonCopyable() = default; + NonCopyable( NonCopyable const & ) = delete; + NonCopyable( NonCopyable && ) = delete; + NonCopyable &operator=( NonCopyable const & ) = delete; + NonCopyable &operator=( NonCopyable && ) = delete; + }; + + struct BoundRef : NonCopyable { + virtual ~BoundRef() = default; + virtual auto isContainer() const -> bool { return false; } + virtual auto isFlag() const -> bool { return false; } + }; + struct BoundValueRefBase : BoundRef { + virtual auto setValue( std::string const &arg ) -> ParserResult = 0; + }; + struct BoundFlagRefBase : BoundRef { + virtual auto setFlag( bool flag ) -> ParserResult = 0; + virtual auto isFlag() const -> bool { return true; } + }; + + template<typename T> + struct BoundValueRef : BoundValueRefBase { + T &m_ref; + + explicit BoundValueRef( T &ref ) : m_ref( ref ) {} + + auto setValue( std::string const &arg ) -> ParserResult override { + return convertInto( arg, m_ref ); + } + }; + + template<typename T> + struct BoundValueRef<std::vector<T>> : BoundValueRefBase { + std::vector<T> &m_ref; + + explicit BoundValueRef( std::vector<T> &ref ) : m_ref( ref ) {} + + auto isContainer() const -> bool override { return true; } + + auto setValue( std::string const &arg ) -> ParserResult override { + T temp; + auto result = convertInto( arg, temp ); + if( result ) + m_ref.push_back( temp ); + return result; + } + }; + + struct BoundFlagRef : BoundFlagRefBase { + bool &m_ref; + + explicit BoundFlagRef( bool &ref ) : m_ref( ref ) {} + + auto setFlag( bool flag ) -> ParserResult override { + m_ref = flag; + return ParserResult::ok( ParseResultType::Matched ); + } + }; + + template<typename ReturnType> + struct LambdaInvoker { + static_assert( std::is_same<ReturnType, ParserResult>::value, "Lambda must return void or clara::ParserResult" ); + + template<typename L, typename ArgType> + static auto invoke( L const &lambda, ArgType const &arg ) -> ParserResult { + return lambda( arg ); + } + }; + + template<> + struct LambdaInvoker<void> { + template<typename L, typename ArgType> + static auto invoke( L const &lambda, ArgType const &arg ) -> ParserResult { + lambda( arg ); + return ParserResult::ok( ParseResultType::Matched ); + } + }; + + template<typename ArgType, typename L> + inline auto invokeLambda( L const &lambda, std::string const &arg ) -> ParserResult { + ArgType temp{}; + auto result = convertInto( arg, temp ); + return !result + ? result + : LambdaInvoker<typename UnaryLambdaTraits<L>::ReturnType>::invoke( lambda, temp ); + } + + template<typename L> + struct BoundLambda : BoundValueRefBase { + L m_lambda; + + static_assert( UnaryLambdaTraits<L>::isValid, "Supplied lambda must take exactly one argument" ); + explicit BoundLambda( L const &lambda ) : m_lambda( lambda ) {} + + auto setValue( std::string const &arg ) -> ParserResult override { + return invokeLambda<typename UnaryLambdaTraits<L>::ArgType>( m_lambda, arg ); + } + }; + + template<typename L> + struct BoundFlagLambda : BoundFlagRefBase { + L m_lambda; + + static_assert( UnaryLambdaTraits<L>::isValid, "Supplied lambda must take exactly one argument" ); + static_assert( std::is_same<typename UnaryLambdaTraits<L>::ArgType, bool>::value, "flags must be boolean" ); + + explicit BoundFlagLambda( L const &lambda ) : m_lambda( lambda ) {} + + auto setFlag( bool flag ) -> ParserResult override { + return LambdaInvoker<typename UnaryLambdaTraits<L>::ReturnType>::invoke( m_lambda, flag ); + } + }; + + enum class Optionality { Optional, Required }; + + struct Parser; + + class ParserBase { + public: + virtual ~ParserBase() = default; + virtual auto validate() const -> Result { return Result::ok(); } + virtual auto parse( std::string const& exeName, TokenStream const &tokens) const -> InternalParseResult = 0; + virtual auto cardinality() const -> size_t { return 1; } + + auto parse( Args const &args ) const -> InternalParseResult { + return parse( args.exeName(), TokenStream( args ) ); + } + }; + + template<typename DerivedT> + class ComposableParserImpl : public ParserBase { + public: + template<typename T> + auto operator|( T const &other ) const -> Parser; + + template<typename T> + auto operator+( T const &other ) const -> Parser; + }; + + // Common code and state for Args and Opts + template<typename DerivedT> + class ParserRefImpl : public ComposableParserImpl<DerivedT> { + protected: + Optionality m_optionality = Optionality::Optional; + std::shared_ptr<BoundRef> m_ref; + std::string m_hint; + std::string m_description; + + explicit ParserRefImpl( std::shared_ptr<BoundRef> const &ref ) : m_ref( ref ) {} + + public: + template<typename T> + ParserRefImpl( T &ref, std::string const &hint ) + : m_ref( std::make_shared<BoundValueRef<T>>( ref ) ), + m_hint( hint ) + {} + + template<typename LambdaT> + ParserRefImpl( LambdaT const &ref, std::string const &hint ) + : m_ref( std::make_shared<BoundLambda<LambdaT>>( ref ) ), + m_hint(hint) + {} + + auto operator()( std::string const &description ) -> DerivedT & { + m_description = description; + return static_cast<DerivedT &>( *this ); + } + + auto optional() -> DerivedT & { + m_optionality = Optionality::Optional; + return static_cast<DerivedT &>( *this ); + }; + + auto required() -> DerivedT & { + m_optionality = Optionality::Required; + return static_cast<DerivedT &>( *this ); + }; + + auto isOptional() const -> bool { + return m_optionality == Optionality::Optional; + } + + auto cardinality() const -> size_t override { + if( m_ref->isContainer() ) + return 0; + else + return 1; + } + + auto hint() const -> std::string { return m_hint; } + }; + + class ExeName : public ComposableParserImpl<ExeName> { + std::shared_ptr<std::string> m_name; + std::shared_ptr<BoundValueRefBase> m_ref; + + template<typename LambdaT> + static auto makeRef(LambdaT const &lambda) -> std::shared_ptr<BoundValueRefBase> { + return std::make_shared<BoundLambda<LambdaT>>( lambda) ; + } + + public: + ExeName() : m_name( std::make_shared<std::string>( "<executable>" ) ) {} + + explicit ExeName( std::string &ref ) : ExeName() { + m_ref = std::make_shared<BoundValueRef<std::string>>( ref ); + } + + template<typename LambdaT> + explicit ExeName( LambdaT const& lambda ) : ExeName() { + m_ref = std::make_shared<BoundLambda<LambdaT>>( lambda ); + } + + // The exe name is not parsed out of the normal tokens, but is handled specially + auto parse( std::string const&, TokenStream const &tokens ) const -> InternalParseResult override { + return InternalParseResult::ok( ParseState( ParseResultType::NoMatch, tokens ) ); + } + + auto name() const -> std::string { return *m_name; } + auto set( std::string const& newName ) -> ParserResult { + + auto lastSlash = newName.find_last_of( "\\/" ); + auto filename = ( lastSlash == std::string::npos ) + ? newName + : newName.substr( lastSlash+1 ); + + *m_name = filename; + if( m_ref ) + return m_ref->setValue( filename ); + else + return ParserResult::ok( ParseResultType::Matched ); + } + }; + + class Arg : public ParserRefImpl<Arg> { + public: + using ParserRefImpl::ParserRefImpl; + + auto parse( std::string const &, TokenStream const &tokens ) const -> InternalParseResult override { + auto validationResult = validate(); + if( !validationResult ) + return InternalParseResult( validationResult ); + + auto remainingTokens = tokens; + auto const &token = *remainingTokens; + if( token.type != TokenType::Argument ) + return InternalParseResult::ok( ParseState( ParseResultType::NoMatch, remainingTokens ) ); + + assert( !m_ref->isFlag() ); + auto valueRef = static_cast<detail::BoundValueRefBase*>( m_ref.get() ); + + auto result = valueRef->setValue( remainingTokens->token ); + if( !result ) + return InternalParseResult( result ); + else + return InternalParseResult::ok( ParseState( ParseResultType::Matched, ++remainingTokens ) ); + } + }; + + inline auto normaliseOpt( std::string const &optName ) -> std::string { +#ifdef CATCH_PLATFORM_WINDOWS + if( optName[0] == '/' ) + return "-" + optName.substr( 1 ); + else +#endif + return optName; + } + + class Opt : public ParserRefImpl<Opt> { + protected: + std::vector<std::string> m_optNames; + + public: + template<typename LambdaT> + explicit Opt( LambdaT const &ref ) : ParserRefImpl( std::make_shared<BoundFlagLambda<LambdaT>>( ref ) ) {} + + explicit Opt( bool &ref ) : ParserRefImpl( std::make_shared<BoundFlagRef>( ref ) ) {} + + template<typename LambdaT> + Opt( LambdaT const &ref, std::string const &hint ) : ParserRefImpl( ref, hint ) {} + + template<typename T> + Opt( T &ref, std::string const &hint ) : ParserRefImpl( ref, hint ) {} + + auto operator[]( std::string const &optName ) -> Opt & { + m_optNames.push_back( optName ); + return *this; + } + + auto getHelpColumns() const -> std::vector<HelpColumns> { + std::ostringstream oss; + bool first = true; + for( auto const &opt : m_optNames ) { + if (first) + first = false; + else + oss << ", "; + oss << opt; + } + if( !m_hint.empty() ) + oss << " <" << m_hint << ">"; + return { { oss.str(), m_description } }; + } + + auto isMatch( std::string const &optToken ) const -> bool { + auto normalisedToken = normaliseOpt( optToken ); + for( auto const &name : m_optNames ) { + if( normaliseOpt( name ) == normalisedToken ) + return true; + } + return false; + } + + using ParserBase::parse; + + auto parse( std::string const&, TokenStream const &tokens ) const -> InternalParseResult override { + auto validationResult = validate(); + if( !validationResult ) + return InternalParseResult( validationResult ); + + auto remainingTokens = tokens; + if( remainingTokens && remainingTokens->type == TokenType::Option ) { + auto const &token = *remainingTokens; + if( isMatch(token.token ) ) { + if( m_ref->isFlag() ) { + auto flagRef = static_cast<detail::BoundFlagRefBase*>( m_ref.get() ); + auto result = flagRef->setFlag( true ); + if( !result ) + return InternalParseResult( result ); + if( result.value() == ParseResultType::ShortCircuitAll ) + return InternalParseResult::ok( ParseState( result.value(), remainingTokens ) ); + } else { + auto valueRef = static_cast<detail::BoundValueRefBase*>( m_ref.get() ); + ++remainingTokens; + if( !remainingTokens ) + return InternalParseResult::runtimeError( "Expected argument following " + token.token ); + auto const &argToken = *remainingTokens; + if( argToken.type != TokenType::Argument ) + return InternalParseResult::runtimeError( "Expected argument following " + token.token ); + auto result = valueRef->setValue( argToken.token ); + if( !result ) + return InternalParseResult( result ); + if( result.value() == ParseResultType::ShortCircuitAll ) + return InternalParseResult::ok( ParseState( result.value(), remainingTokens ) ); + } + return InternalParseResult::ok( ParseState( ParseResultType::Matched, ++remainingTokens ) ); + } + } + return InternalParseResult::ok( ParseState( ParseResultType::NoMatch, remainingTokens ) ); + } + + auto validate() const -> Result override { + if( m_optNames.empty() ) + return Result::logicError( "No options supplied to Opt" ); + for( auto const &name : m_optNames ) { + if( name.empty() ) + return Result::logicError( "Option name cannot be empty" ); +#ifdef CATCH_PLATFORM_WINDOWS + if( name[0] != '-' && name[0] != '/' ) + return Result::logicError( "Option name must begin with '-' or '/'" ); +#else + if( name[0] != '-' ) + return Result::logicError( "Option name must begin with '-'" ); +#endif + } + return ParserRefImpl::validate(); + } + }; + + struct Help : Opt { + Help( bool &showHelpFlag ) + : Opt([&]( bool flag ) { + showHelpFlag = flag; + return ParserResult::ok( ParseResultType::ShortCircuitAll ); + }) + { + static_cast<Opt &>( *this ) + ("display usage information") + ["-?"]["-h"]["--help"] + .optional(); + } + }; + + struct Parser : ParserBase { + + mutable ExeName m_exeName; + std::vector<Opt> m_options; + std::vector<Arg> m_args; + + auto operator|=( ExeName const &exeName ) -> Parser & { + m_exeName = exeName; + return *this; + } + + auto operator|=( Arg const &arg ) -> Parser & { + m_args.push_back(arg); + return *this; + } + + auto operator|=( Opt const &opt ) -> Parser & { + m_options.push_back(opt); + return *this; + } + + auto operator|=( Parser const &other ) -> Parser & { + m_options.insert(m_options.end(), other.m_options.begin(), other.m_options.end()); + m_args.insert(m_args.end(), other.m_args.begin(), other.m_args.end()); + return *this; + } + + template<typename T> + auto operator|( T const &other ) const -> Parser { + return Parser( *this ) |= other; + } + + // Forward deprecated interface with '+' instead of '|' + template<typename T> + auto operator+=( T const &other ) -> Parser & { return operator|=( other ); } + template<typename T> + auto operator+( T const &other ) const -> Parser { return operator|( other ); } + + auto getHelpColumns() const -> std::vector<HelpColumns> { + std::vector<HelpColumns> cols; + for (auto const &o : m_options) { + auto childCols = o.getHelpColumns(); + cols.insert( cols.end(), childCols.begin(), childCols.end() ); + } + return cols; + } + + void writeToStream( std::ostream &os ) const { + if (!m_exeName.name().empty()) { + os << "usage:\n" << " " << m_exeName.name() << " "; + bool required = true, first = true; + for( auto const &arg : m_args ) { + if (first) + first = false; + else + os << " "; + if( arg.isOptional() && required ) { + os << "["; + required = false; + } + os << "<" << arg.hint() << ">"; + if( arg.cardinality() == 0 ) + os << " ... "; + } + if( !required ) + os << "]"; + if( !m_options.empty() ) + os << " options"; + os << "\n\nwhere options are:" << std::endl; + } + + auto rows = getHelpColumns(); + size_t consoleWidth = CATCH_CLARA_CONFIG_CONSOLE_WIDTH; + size_t optWidth = 0; + for( auto const &cols : rows ) + optWidth = (std::max)(optWidth, cols.left.size() + 2); + + optWidth = (std::min)(optWidth, consoleWidth/2); + + for( auto const &cols : rows ) { + auto row = + TextFlow::Column( cols.left ).width( optWidth ).indent( 2 ) + + TextFlow::Spacer(4) + + TextFlow::Column( cols.right ).width( consoleWidth - 7 - optWidth ); + os << row << std::endl; + } + } + + friend auto operator<<( std::ostream &os, Parser const &parser ) -> std::ostream& { + parser.writeToStream( os ); + return os; + } + + auto validate() const -> Result override { + for( auto const &opt : m_options ) { + auto result = opt.validate(); + if( !result ) + return result; + } + for( auto const &arg : m_args ) { + auto result = arg.validate(); + if( !result ) + return result; + } + return Result::ok(); + } + + using ParserBase::parse; + + auto parse( std::string const& exeName, TokenStream const &tokens ) const -> InternalParseResult override { + + struct ParserInfo { + ParserBase const* parser = nullptr; + size_t count = 0; + }; + const size_t totalParsers = m_options.size() + m_args.size(); + assert( totalParsers < 512 ); + // ParserInfo parseInfos[totalParsers]; // <-- this is what we really want to do + ParserInfo parseInfos[512]; + + { + size_t i = 0; + for (auto const &opt : m_options) parseInfos[i++].parser = &opt; + for (auto const &arg : m_args) parseInfos[i++].parser = &arg; + } + + m_exeName.set( exeName ); + + auto result = InternalParseResult::ok( ParseState( ParseResultType::NoMatch, tokens ) ); + while( result.value().remainingTokens() ) { + bool tokenParsed = false; + + for( size_t i = 0; i < totalParsers; ++i ) { + auto& parseInfo = parseInfos[i]; + if( parseInfo.parser->cardinality() == 0 || parseInfo.count < parseInfo.parser->cardinality() ) { + result = parseInfo.parser->parse(exeName, result.value().remainingTokens()); + if (!result) + return result; + if (result.value().type() != ParseResultType::NoMatch) { + tokenParsed = true; + ++parseInfo.count; + break; + } + } + } + + if( result.value().type() == ParseResultType::ShortCircuitAll ) + return result; + if( !tokenParsed ) + return InternalParseResult::runtimeError( "Unrecognised token: " + result.value().remainingTokens()->token ); + } + // !TBD Check missing required options + return result; + } + }; + + template<typename DerivedT> + template<typename T> + auto ComposableParserImpl<DerivedT>::operator|( T const &other ) const -> Parser { + return Parser() | static_cast<DerivedT const &>( *this ) | other; + } +} // namespace detail + +// A Combined parser +using detail::Parser; + +// A parser for options +using detail::Opt; + +// A parser for arguments +using detail::Arg; + +// Wrapper for argc, argv from main() +using detail::Args; + +// Specifies the name of the executable +using detail::ExeName; + +// Convenience wrapper for option parser that specifies the help option +using detail::Help; + +// enum of result types from a parse +using detail::ParseResultType; + +// Result type for parser operation +using detail::ParserResult; + +}} // namespace Catch::clara + +// end clara.hpp +#ifdef __clang__ +#pragma clang diagnostic pop +#endif + +// Restore Clara's value for console width, if present +#ifdef CATCH_TEMP_CLARA_CONFIG_CONSOLE_WIDTH +#define CATCH_CLARA_TEXTFLOW_CONFIG_CONSOLE_WIDTH CATCH_TEMP_CLARA_CONFIG_CONSOLE_WIDTH +#undef CATCH_TEMP_CLARA_CONFIG_CONSOLE_WIDTH +#endif + +// end catch_clara.h +namespace Catch { + + clara::Parser makeCommandLineParser( ConfigData& config ); + +} // end namespace Catch + +// end catch_commandline.h +#include <fstream> +#include <ctime> + +namespace Catch { + + clara::Parser makeCommandLineParser( ConfigData& config ) { + + using namespace clara; + + auto const setWarning = [&]( std::string const& warning ) { + auto warningSet = [&]() { + if( warning == "NoAssertions" ) + return WarnAbout::NoAssertions; + + if ( warning == "NoTests" ) + return WarnAbout::NoTests; + + return WarnAbout::Nothing; + }(); + + if (warningSet == WarnAbout::Nothing) + return ParserResult::runtimeError( "Unrecognised warning: '" + warning + "'" ); + config.warnings = static_cast<WarnAbout::What>( config.warnings | warningSet ); + return ParserResult::ok( ParseResultType::Matched ); + }; + auto const loadTestNamesFromFile = [&]( std::string const& filename ) { + std::ifstream f( filename.c_str() ); + if( !f.is_open() ) + return ParserResult::runtimeError( "Unable to load input file: '" + filename + "'" ); + + std::string line; + while( std::getline( f, line ) ) { + line = trim(line); + if( !line.empty() && !startsWith( line, '#' ) ) { + if( !startsWith( line, '"' ) ) + line = '"' + line + '"'; + config.testsOrTags.push_back( line ); + config.testsOrTags.emplace_back( "," ); + } + } + //Remove comma in the end + if(!config.testsOrTags.empty()) + config.testsOrTags.erase( config.testsOrTags.end()-1 ); + + return ParserResult::ok( ParseResultType::Matched ); + }; + auto const setTestOrder = [&]( std::string const& order ) { + if( startsWith( "declared", order ) ) + config.runOrder = RunTests::InDeclarationOrder; + else if( startsWith( "lexical", order ) ) + config.runOrder = RunTests::InLexicographicalOrder; + else if( startsWith( "random", order ) ) + config.runOrder = RunTests::InRandomOrder; + else + return clara::ParserResult::runtimeError( "Unrecognised ordering: '" + order + "'" ); + return ParserResult::ok( ParseResultType::Matched ); + }; + auto const setRngSeed = [&]( std::string const& seed ) { + if( seed != "time" ) + return clara::detail::convertInto( seed, config.rngSeed ); + config.rngSeed = static_cast<unsigned int>( std::time(nullptr) ); + return ParserResult::ok( ParseResultType::Matched ); + }; + auto const setColourUsage = [&]( std::string const& useColour ) { + auto mode = toLower( useColour ); + + if( mode == "yes" ) + config.useColour = UseColour::Yes; + else if( mode == "no" ) + config.useColour = UseColour::No; + else if( mode == "auto" ) + config.useColour = UseColour::Auto; + else + return ParserResult::runtimeError( "colour mode must be one of: auto, yes or no. '" + useColour + "' not recognised" ); + return ParserResult::ok( ParseResultType::Matched ); + }; + auto const setWaitForKeypress = [&]( std::string const& keypress ) { + auto keypressLc = toLower( keypress ); + if (keypressLc == "never") + config.waitForKeypress = WaitForKeypress::Never; + else if( keypressLc == "start" ) + config.waitForKeypress = WaitForKeypress::BeforeStart; + else if( keypressLc == "exit" ) + config.waitForKeypress = WaitForKeypress::BeforeExit; + else if( keypressLc == "both" ) + config.waitForKeypress = WaitForKeypress::BeforeStartAndExit; + else + return ParserResult::runtimeError( "keypress argument must be one of: never, start, exit or both. '" + keypress + "' not recognised" ); + return ParserResult::ok( ParseResultType::Matched ); + }; + auto const setVerbosity = [&]( std::string const& verbosity ) { + auto lcVerbosity = toLower( verbosity ); + if( lcVerbosity == "quiet" ) + config.verbosity = Verbosity::Quiet; + else if( lcVerbosity == "normal" ) + config.verbosity = Verbosity::Normal; + else if( lcVerbosity == "high" ) + config.verbosity = Verbosity::High; + else + return ParserResult::runtimeError( "Unrecognised verbosity, '" + verbosity + "'" ); + return ParserResult::ok( ParseResultType::Matched ); + }; + auto const setReporter = [&]( std::string const& reporter ) { + IReporterRegistry::FactoryMap const& factories = getRegistryHub().getReporterRegistry().getFactories(); + + auto lcReporter = toLower( reporter ); + auto result = factories.find( lcReporter ); + + if( factories.end() != result ) + config.reporterName = lcReporter; + else + return ParserResult::runtimeError( "Unrecognized reporter, '" + reporter + "'. Check available with --list-reporters" ); + return ParserResult::ok( ParseResultType::Matched ); + }; + + auto cli + = ExeName( config.processName ) + | Help( config.showHelp ) + | Opt( config.listTests ) + ["-l"]["--list-tests"] + ( "list all/matching test cases" ) + | Opt( config.listTags ) + ["-t"]["--list-tags"] + ( "list all/matching tags" ) + | Opt( config.showSuccessfulTests ) + ["-s"]["--success"] + ( "include successful tests in output" ) + | Opt( config.shouldDebugBreak ) + ["-b"]["--break"] + ( "break into debugger on failure" ) + | Opt( config.noThrow ) + ["-e"]["--nothrow"] + ( "skip exception tests" ) + | Opt( config.showInvisibles ) + ["-i"]["--invisibles"] + ( "show invisibles (tabs, newlines)" ) + | Opt( config.outputFilename, "filename" ) + ["-o"]["--out"] + ( "output filename" ) + | Opt( setReporter, "name" ) + ["-r"]["--reporter"] + ( "reporter to use (defaults to console)" ) + | Opt( config.name, "name" ) + ["-n"]["--name"] + ( "suite name" ) + | Opt( [&]( bool ){ config.abortAfter = 1; } ) + ["-a"]["--abort"] + ( "abort at first failure" ) + | Opt( [&]( int x ){ config.abortAfter = x; }, "no. failures" ) + ["-x"]["--abortx"] + ( "abort after x failures" ) + | Opt( setWarning, "warning name" ) + ["-w"]["--warn"] + ( "enable warnings" ) + | Opt( [&]( bool flag ) { config.showDurations = flag ? ShowDurations::Always : ShowDurations::Never; }, "yes|no" ) + ["-d"]["--durations"] + ( "show test durations" ) + | Opt( loadTestNamesFromFile, "filename" ) + ["-f"]["--input-file"] + ( "load test names to run from a file" ) + | Opt( config.filenamesAsTags ) + ["-#"]["--filenames-as-tags"] + ( "adds a tag for the filename" ) + | Opt( config.sectionsToRun, "section name" ) + ["-c"]["--section"] + ( "specify section to run" ) + | Opt( setVerbosity, "quiet|normal|high" ) + ["-v"]["--verbosity"] + ( "set output verbosity" ) + | Opt( config.listTestNamesOnly ) + ["--list-test-names-only"] + ( "list all/matching test cases names only" ) + | Opt( config.listReporters ) + ["--list-reporters"] + ( "list all reporters" ) + | Opt( setTestOrder, "decl|lex|rand" ) + ["--order"] + ( "test case order (defaults to decl)" ) + | Opt( setRngSeed, "'time'|number" ) + ["--rng-seed"] + ( "set a specific seed for random numbers" ) + | Opt( setColourUsage, "yes|no" ) + ["--use-colour"] + ( "should output be colourised" ) + | Opt( config.libIdentify ) + ["--libidentify"] + ( "report name and version according to libidentify standard" ) + | Opt( setWaitForKeypress, "never|start|exit|both" ) + ["--wait-for-keypress"] + ( "waits for a keypress before exiting" ) + | Opt( config.benchmarkSamples, "samples" ) + ["--benchmark-samples"] + ( "number of samples to collect (default: 100)" ) + | Opt( config.benchmarkResamples, "resamples" ) + ["--benchmark-resamples"] + ( "number of resamples for the bootstrap (default: 100000)" ) + | Opt( config.benchmarkConfidenceInterval, "confidence interval" ) + ["--benchmark-confidence-interval"] + ( "confidence interval for the bootstrap (between 0 and 1, default: 0.95)" ) + | Opt( config.benchmarkNoAnalysis ) + ["--benchmark-no-analysis"] + ( "perform only measurements; do not perform any analysis" ) + | Opt( config.benchmarkWarmupTime, "benchmarkWarmupTime" ) + ["--benchmark-warmup-time"] + ( "amount of time in milliseconds spent on warming up each test (default: 100)" ) + | Arg( config.testsOrTags, "test name|pattern|tags" ) + ( "which test or tests to use" ); + + return cli; + } + +} // end namespace Catch +// end catch_commandline.cpp +// start catch_common.cpp + +#include <cstring> +#include <ostream> + +namespace Catch { + + bool SourceLineInfo::operator == ( SourceLineInfo const& other ) const noexcept { + return line == other.line && (file == other.file || std::strcmp(file, other.file) == 0); + } + bool SourceLineInfo::operator < ( SourceLineInfo const& other ) const noexcept { + // We can assume that the same file will usually have the same pointer. + // Thus, if the pointers are the same, there is no point in calling the strcmp + return line < other.line || ( line == other.line && file != other.file && (std::strcmp(file, other.file) < 0)); + } + + std::ostream& operator << ( std::ostream& os, SourceLineInfo const& info ) { +#ifndef __GNUG__ + os << info.file << '(' << info.line << ')'; +#else + os << info.file << ':' << info.line; +#endif + return os; + } + + std::string StreamEndStop::operator+() const { + return std::string(); + } + + NonCopyable::NonCopyable() = default; + NonCopyable::~NonCopyable() = default; + +} +// end catch_common.cpp +// start catch_config.cpp + +namespace Catch { + + Config::Config( ConfigData const& data ) + : m_data( data ), + m_stream( openStream() ) + { + // We need to trim filter specs to avoid trouble with superfluous + // whitespace (esp. important for bdd macros, as those are manually + // aligned with whitespace). + + for (auto& elem : m_data.testsOrTags) { + elem = trim(elem); + } + for (auto& elem : m_data.sectionsToRun) { + elem = trim(elem); + } + + TestSpecParser parser(ITagAliasRegistry::get()); + if (!m_data.testsOrTags.empty()) { + m_hasTestFilters = true; + for (auto const& testOrTags : m_data.testsOrTags) { + parser.parse(testOrTags); + } + } + m_testSpec = parser.testSpec(); + } + + std::string const& Config::getFilename() const { + return m_data.outputFilename ; + } + + bool Config::listTests() const { return m_data.listTests; } + bool Config::listTestNamesOnly() const { return m_data.listTestNamesOnly; } + bool Config::listTags() const { return m_data.listTags; } + bool Config::listReporters() const { return m_data.listReporters; } + + std::string Config::getProcessName() const { return m_data.processName; } + std::string const& Config::getReporterName() const { return m_data.reporterName; } + + std::vector<std::string> const& Config::getTestsOrTags() const { return m_data.testsOrTags; } + std::vector<std::string> const& Config::getSectionsToRun() const { return m_data.sectionsToRun; } + + TestSpec const& Config::testSpec() const { return m_testSpec; } + bool Config::hasTestFilters() const { return m_hasTestFilters; } + + bool Config::showHelp() const { return m_data.showHelp; } + + // IConfig interface + bool Config::allowThrows() const { return !m_data.noThrow; } + std::ostream& Config::stream() const { return m_stream->stream(); } + std::string Config::name() const { return m_data.name.empty() ? m_data.processName : m_data.name; } + bool Config::includeSuccessfulResults() const { return m_data.showSuccessfulTests; } + bool Config::warnAboutMissingAssertions() const { return !!(m_data.warnings & WarnAbout::NoAssertions); } + bool Config::warnAboutNoTests() const { return !!(m_data.warnings & WarnAbout::NoTests); } + ShowDurations::OrNot Config::showDurations() const { return m_data.showDurations; } + RunTests::InWhatOrder Config::runOrder() const { return m_data.runOrder; } + unsigned int Config::rngSeed() const { return m_data.rngSeed; } + UseColour::YesOrNo Config::useColour() const { return m_data.useColour; } + bool Config::shouldDebugBreak() const { return m_data.shouldDebugBreak; } + int Config::abortAfter() const { return m_data.abortAfter; } + bool Config::showInvisibles() const { return m_data.showInvisibles; } + Verbosity Config::verbosity() const { return m_data.verbosity; } + + bool Config::benchmarkNoAnalysis() const { return m_data.benchmarkNoAnalysis; } + int Config::benchmarkSamples() const { return m_data.benchmarkSamples; } + double Config::benchmarkConfidenceInterval() const { return m_data.benchmarkConfidenceInterval; } + unsigned int Config::benchmarkResamples() const { return m_data.benchmarkResamples; } + std::chrono::milliseconds Config::benchmarkWarmupTime() const { return std::chrono::milliseconds(m_data.benchmarkWarmupTime); } + + IStream const* Config::openStream() { + return Catch::makeStream(m_data.outputFilename); + } + +} // end namespace Catch +// end catch_config.cpp +// start catch_console_colour.cpp + +#if defined(__clang__) +# pragma clang diagnostic push +# pragma clang diagnostic ignored "-Wexit-time-destructors" +#endif + +// start catch_errno_guard.h + +namespace Catch { + + class ErrnoGuard { + public: + ErrnoGuard(); + ~ErrnoGuard(); + private: + int m_oldErrno; + }; + +} + +// end catch_errno_guard.h +#include <sstream> + +namespace Catch { + namespace { + + struct IColourImpl { + virtual ~IColourImpl() = default; + virtual void use( Colour::Code _colourCode ) = 0; + }; + + struct NoColourImpl : IColourImpl { + void use( Colour::Code ) override {} + + static IColourImpl* instance() { + static NoColourImpl s_instance; + return &s_instance; + } + }; + + } // anon namespace +} // namespace Catch + +#if !defined( CATCH_CONFIG_COLOUR_NONE ) && !defined( CATCH_CONFIG_COLOUR_WINDOWS ) && !defined( CATCH_CONFIG_COLOUR_ANSI ) +# ifdef CATCH_PLATFORM_WINDOWS +# define CATCH_CONFIG_COLOUR_WINDOWS +# else +# define CATCH_CONFIG_COLOUR_ANSI +# endif +#endif + +#if defined ( CATCH_CONFIG_COLOUR_WINDOWS ) ///////////////////////////////////////// + +namespace Catch { +namespace { + + class Win32ColourImpl : public IColourImpl { + public: + Win32ColourImpl() : stdoutHandle( GetStdHandle(STD_OUTPUT_HANDLE) ) + { + CONSOLE_SCREEN_BUFFER_INFO csbiInfo; + GetConsoleScreenBufferInfo( stdoutHandle, &csbiInfo ); + originalForegroundAttributes = csbiInfo.wAttributes & ~( BACKGROUND_GREEN | BACKGROUND_RED | BACKGROUND_BLUE | BACKGROUND_INTENSITY ); + originalBackgroundAttributes = csbiInfo.wAttributes & ~( FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_BLUE | FOREGROUND_INTENSITY ); + } + + void use( Colour::Code _colourCode ) override { + switch( _colourCode ) { + case Colour::None: return setTextAttribute( originalForegroundAttributes ); + case Colour::White: return setTextAttribute( FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_BLUE ); + case Colour::Red: return setTextAttribute( FOREGROUND_RED ); + case Colour::Green: return setTextAttribute( FOREGROUND_GREEN ); + case Colour::Blue: return setTextAttribute( FOREGROUND_BLUE ); + case Colour::Cyan: return setTextAttribute( FOREGROUND_BLUE | FOREGROUND_GREEN ); + case Colour::Yellow: return setTextAttribute( FOREGROUND_RED | FOREGROUND_GREEN ); + case Colour::Grey: return setTextAttribute( 0 ); + + case Colour::LightGrey: return setTextAttribute( FOREGROUND_INTENSITY ); + case Colour::BrightRed: return setTextAttribute( FOREGROUND_INTENSITY | FOREGROUND_RED ); + case Colour::BrightGreen: return setTextAttribute( FOREGROUND_INTENSITY | FOREGROUND_GREEN ); + case Colour::BrightWhite: return setTextAttribute( FOREGROUND_INTENSITY | FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_BLUE ); + case Colour::BrightYellow: return setTextAttribute( FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN ); + + case Colour::Bright: CATCH_INTERNAL_ERROR( "not a colour" ); + + default: + CATCH_ERROR( "Unknown colour requested" ); + } + } + + private: + void setTextAttribute( WORD _textAttribute ) { + SetConsoleTextAttribute( stdoutHandle, _textAttribute | originalBackgroundAttributes ); + } + HANDLE stdoutHandle; + WORD originalForegroundAttributes; + WORD originalBackgroundAttributes; + }; + + IColourImpl* platformColourInstance() { + static Win32ColourImpl s_instance; + + IConfigPtr config = getCurrentContext().getConfig(); + UseColour::YesOrNo colourMode = config + ? config->useColour() + : UseColour::Auto; + if( colourMode == UseColour::Auto ) + colourMode = UseColour::Yes; + return colourMode == UseColour::Yes + ? &s_instance + : NoColourImpl::instance(); + } + +} // end anon namespace +} // end namespace Catch + +#elif defined( CATCH_CONFIG_COLOUR_ANSI ) ////////////////////////////////////// + +#include <unistd.h> + +namespace Catch { +namespace { + + // use POSIX/ ANSI console terminal codes + // Thanks to Adam Strzelecki for original contribution + // (http://github.com/nanoant) + // https://github.com/philsquared/Catch/pull/131 + class PosixColourImpl : public IColourImpl { + public: + void use( Colour::Code _colourCode ) override { + switch( _colourCode ) { + case Colour::None: + case Colour::White: return setColour( "[0m" ); + case Colour::Red: return setColour( "[0;31m" ); + case Colour::Green: return setColour( "[0;32m" ); + case Colour::Blue: return setColour( "[0;34m" ); + case Colour::Cyan: return setColour( "[0;36m" ); + case Colour::Yellow: return setColour( "[0;33m" ); + case Colour::Grey: return setColour( "[1;30m" ); + + case Colour::LightGrey: return setColour( "[0;37m" ); + case Colour::BrightRed: return setColour( "[1;31m" ); + case Colour::BrightGreen: return setColour( "[1;32m" ); + case Colour::BrightWhite: return setColour( "[1;37m" ); + case Colour::BrightYellow: return setColour( "[1;33m" ); + + case Colour::Bright: CATCH_INTERNAL_ERROR( "not a colour" ); + default: CATCH_INTERNAL_ERROR( "Unknown colour requested" ); + } + } + static IColourImpl* instance() { + static PosixColourImpl s_instance; + return &s_instance; + } + + private: + void setColour( const char* _escapeCode ) { + getCurrentContext().getConfig()->stream() + << '\033' << _escapeCode; + } + }; + + bool useColourOnPlatform() { + return +#if defined(CATCH_PLATFORM_MAC) || defined(CATCH_PLATFORM_IPHONE) + !isDebuggerActive() && +#endif +#if !(defined(__DJGPP__) && defined(__STRICT_ANSI__)) + isatty(STDOUT_FILENO) +#else + false +#endif + ; + } + IColourImpl* platformColourInstance() { + ErrnoGuard guard; + IConfigPtr config = getCurrentContext().getConfig(); + UseColour::YesOrNo colourMode = config + ? config->useColour() + : UseColour::Auto; + if( colourMode == UseColour::Auto ) + colourMode = useColourOnPlatform() + ? UseColour::Yes + : UseColour::No; + return colourMode == UseColour::Yes + ? PosixColourImpl::instance() + : NoColourImpl::instance(); + } + +} // end anon namespace +} // end namespace Catch + +#else // not Windows or ANSI /////////////////////////////////////////////// + +namespace Catch { + + static IColourImpl* platformColourInstance() { return NoColourImpl::instance(); } + +} // end namespace Catch + +#endif // Windows/ ANSI/ None + +namespace Catch { + + Colour::Colour( Code _colourCode ) { use( _colourCode ); } + Colour::Colour( Colour&& other ) noexcept { + m_moved = other.m_moved; + other.m_moved = true; + } + Colour& Colour::operator=( Colour&& other ) noexcept { + m_moved = other.m_moved; + other.m_moved = true; + return *this; + } + + Colour::~Colour(){ if( !m_moved ) use( None ); } + + void Colour::use( Code _colourCode ) { + static IColourImpl* impl = platformColourInstance(); + // Strictly speaking, this cannot possibly happen. + // However, under some conditions it does happen (see #1626), + // and this change is small enough that we can let practicality + // triumph over purity in this case. + if (impl != nullptr) { + impl->use( _colourCode ); + } + } + + std::ostream& operator << ( std::ostream& os, Colour const& ) { + return os; + } + +} // end namespace Catch + +#if defined(__clang__) +# pragma clang diagnostic pop +#endif + +// end catch_console_colour.cpp +// start catch_context.cpp + +namespace Catch { + + class Context : public IMutableContext, NonCopyable { + + public: // IContext + IResultCapture* getResultCapture() override { + return m_resultCapture; + } + IRunner* getRunner() override { + return m_runner; + } + + IConfigPtr const& getConfig() const override { + return m_config; + } + + ~Context() override; + + public: // IMutableContext + void setResultCapture( IResultCapture* resultCapture ) override { + m_resultCapture = resultCapture; + } + void setRunner( IRunner* runner ) override { + m_runner = runner; + } + void setConfig( IConfigPtr const& config ) override { + m_config = config; + } + + friend IMutableContext& getCurrentMutableContext(); + + private: + IConfigPtr m_config; + IRunner* m_runner = nullptr; + IResultCapture* m_resultCapture = nullptr; + }; + + IMutableContext *IMutableContext::currentContext = nullptr; + + void IMutableContext::createContext() + { + currentContext = new Context(); + } + + void cleanUpContext() { + delete IMutableContext::currentContext; + IMutableContext::currentContext = nullptr; + } + IContext::~IContext() = default; + IMutableContext::~IMutableContext() = default; + Context::~Context() = default; + + SimplePcg32& rng() { + static SimplePcg32 s_rng; + return s_rng; + } + +} +// end catch_context.cpp +// start catch_debug_console.cpp + +// start catch_debug_console.h + +#include <string> + +namespace Catch { + void writeToDebugConsole( std::string const& text ); +} + +// end catch_debug_console.h +#if defined(CATCH_CONFIG_ANDROID_LOGWRITE) +#include <android/log.h> + + namespace Catch { + void writeToDebugConsole( std::string const& text ) { + __android_log_write( ANDROID_LOG_DEBUG, "Catch", text.c_str() ); + } + } + +#elif defined(CATCH_PLATFORM_WINDOWS) + + namespace Catch { + void writeToDebugConsole( std::string const& text ) { + ::OutputDebugStringA( text.c_str() ); + } + } + +#else + + namespace Catch { + void writeToDebugConsole( std::string const& text ) { + // !TBD: Need a version for Mac/ XCode and other IDEs + Catch::cout() << text; + } + } + +#endif // Platform +// end catch_debug_console.cpp +// start catch_debugger.cpp + +#if defined(CATCH_PLATFORM_MAC) || defined(CATCH_PLATFORM_IPHONE) + +# include <cassert> +# include <sys/types.h> +# include <unistd.h> +# include <cstddef> +# include <ostream> + +#ifdef __apple_build_version__ + // These headers will only compile with AppleClang (XCode) + // For other compilers (Clang, GCC, ... ) we need to exclude them +# include <sys/sysctl.h> +#endif + + namespace Catch { + #ifdef __apple_build_version__ + // The following function is taken directly from the following technical note: + // https://developer.apple.com/library/archive/qa/qa1361/_index.html + + // Returns true if the current process is being debugged (either + // running under the debugger or has a debugger attached post facto). + bool isDebuggerActive(){ + int mib[4]; + struct kinfo_proc info; + std::size_t size; + + // Initialize the flags so that, if sysctl fails for some bizarre + // reason, we get a predictable result. + + info.kp_proc.p_flag = 0; + + // Initialize mib, which tells sysctl the info we want, in this case + // we're looking for information about a specific process ID. + + mib[0] = CTL_KERN; + mib[1] = KERN_PROC; + mib[2] = KERN_PROC_PID; + mib[3] = getpid(); + + // Call sysctl. + + size = sizeof(info); + if( sysctl(mib, sizeof(mib) / sizeof(*mib), &info, &size, nullptr, 0) != 0 ) { + Catch::cerr() << "\n** Call to sysctl failed - unable to determine if debugger is active **\n" << std::endl; + return false; + } + + // We're being debugged if the P_TRACED flag is set. + + return ( (info.kp_proc.p_flag & P_TRACED) != 0 ); + } + #else + bool isDebuggerActive() { + // We need to find another way to determine this for non-appleclang compilers on macOS + return false; + } + #endif + } // namespace Catch + +#elif defined(CATCH_PLATFORM_LINUX) + #include <fstream> + #include <string> + + namespace Catch{ + // The standard POSIX way of detecting a debugger is to attempt to + // ptrace() the process, but this needs to be done from a child and not + // this process itself to still allow attaching to this process later + // if wanted, so is rather heavy. Under Linux we have the PID of the + // "debugger" (which doesn't need to be gdb, of course, it could also + // be strace, for example) in /proc/$PID/status, so just get it from + // there instead. + bool isDebuggerActive(){ + // Libstdc++ has a bug, where std::ifstream sets errno to 0 + // This way our users can properly assert over errno values + ErrnoGuard guard; + std::ifstream in("/proc/self/status"); + for( std::string line; std::getline(in, line); ) { + static const int PREFIX_LEN = 11; + if( line.compare(0, PREFIX_LEN, "TracerPid:\t") == 0 ) { + // We're traced if the PID is not 0 and no other PID starts + // with 0 digit, so it's enough to check for just a single + // character. + return line.length() > PREFIX_LEN && line[PREFIX_LEN] != '0'; + } + } + + return false; + } + } // namespace Catch +#elif defined(_MSC_VER) + extern "C" __declspec(dllimport) int __stdcall IsDebuggerPresent(); + namespace Catch { + bool isDebuggerActive() { + return IsDebuggerPresent() != 0; + } + } +#elif defined(__MINGW32__) + extern "C" __declspec(dllimport) int __stdcall IsDebuggerPresent(); + namespace Catch { + bool isDebuggerActive() { + return IsDebuggerPresent() != 0; + } + } +#else + namespace Catch { + bool isDebuggerActive() { return false; } + } +#endif // Platform +// end catch_debugger.cpp +// start catch_decomposer.cpp + +namespace Catch { + + ITransientExpression::~ITransientExpression() = default; + + void formatReconstructedExpression( std::ostream &os, std::string const& lhs, StringRef op, std::string const& rhs ) { + if( lhs.size() + rhs.size() < 40 && + lhs.find('\n') == std::string::npos && + rhs.find('\n') == std::string::npos ) + os << lhs << " " << op << " " << rhs; + else + os << lhs << "\n" << op << "\n" << rhs; + } +} +// end catch_decomposer.cpp +// start catch_enforce.cpp + +#include <stdexcept> + +namespace Catch { +#if defined(CATCH_CONFIG_DISABLE_EXCEPTIONS) && !defined(CATCH_CONFIG_DISABLE_EXCEPTIONS_CUSTOM_HANDLER) + [[noreturn]] + void throw_exception(std::exception const& e) { + Catch::cerr() << "Catch will terminate because it needed to throw an exception.\n" + << "The message was: " << e.what() << '\n'; + std::terminate(); + } +#endif + + [[noreturn]] + void throw_logic_error(std::string const& msg) { + throw_exception(std::logic_error(msg)); + } + + [[noreturn]] + void throw_domain_error(std::string const& msg) { + throw_exception(std::domain_error(msg)); + } + + [[noreturn]] + void throw_runtime_error(std::string const& msg) { + throw_exception(std::runtime_error(msg)); + } + +} // namespace Catch; +// end catch_enforce.cpp +// start catch_enum_values_registry.cpp +// start catch_enum_values_registry.h + +#include <vector> +#include <memory> + +namespace Catch { + + namespace Detail { + + std::unique_ptr<EnumInfo> makeEnumInfo( StringRef enumName, StringRef allValueNames, std::vector<int> const& values ); + + class EnumValuesRegistry : public IMutableEnumValuesRegistry { + + std::vector<std::unique_ptr<EnumInfo>> m_enumInfos; + + EnumInfo const& registerEnum( StringRef enumName, StringRef allEnums, std::vector<int> const& values) override; + }; + + std::vector<StringRef> parseEnums( StringRef enums ); + + } // Detail + +} // Catch + +// end catch_enum_values_registry.h + +#include <map> +#include <cassert> + +namespace Catch { + + IMutableEnumValuesRegistry::~IMutableEnumValuesRegistry() {} + + namespace Detail { + + namespace { + // Extracts the actual name part of an enum instance + // In other words, it returns the Blue part of Bikeshed::Colour::Blue + StringRef extractInstanceName(StringRef enumInstance) { + // Find last occurence of ":" + size_t name_start = enumInstance.size(); + while (name_start > 0 && enumInstance[name_start - 1] != ':') { + --name_start; + } + return enumInstance.substr(name_start, enumInstance.size() - name_start); + } + } + + std::vector<StringRef> parseEnums( StringRef enums ) { + auto enumValues = splitStringRef( enums, ',' ); + std::vector<StringRef> parsed; + parsed.reserve( enumValues.size() ); + for( auto const& enumValue : enumValues ) { + parsed.push_back(trim(extractInstanceName(enumValue))); + } + return parsed; + } + + EnumInfo::~EnumInfo() {} + + StringRef EnumInfo::lookup( int value ) const { + for( auto const& valueToName : m_values ) { + if( valueToName.first == value ) + return valueToName.second; + } + return "{** unexpected enum value **}"_sr; + } + + std::unique_ptr<EnumInfo> makeEnumInfo( StringRef enumName, StringRef allValueNames, std::vector<int> const& values ) { + std::unique_ptr<EnumInfo> enumInfo( new EnumInfo ); + enumInfo->m_name = enumName; + enumInfo->m_values.reserve( values.size() ); + + const auto valueNames = Catch::Detail::parseEnums( allValueNames ); + assert( valueNames.size() == values.size() ); + std::size_t i = 0; + for( auto value : values ) + enumInfo->m_values.emplace_back(value, valueNames[i++]); + + return enumInfo; + } + + EnumInfo const& EnumValuesRegistry::registerEnum( StringRef enumName, StringRef allValueNames, std::vector<int> const& values ) { + m_enumInfos.push_back(makeEnumInfo(enumName, allValueNames, values)); + return *m_enumInfos.back(); + } + + } // Detail +} // Catch + +// end catch_enum_values_registry.cpp +// start catch_errno_guard.cpp + +#include <cerrno> + +namespace Catch { + ErrnoGuard::ErrnoGuard():m_oldErrno(errno){} + ErrnoGuard::~ErrnoGuard() { errno = m_oldErrno; } +} +// end catch_errno_guard.cpp +// start catch_exception_translator_registry.cpp + +// start catch_exception_translator_registry.h + +#include <vector> +#include <string> +#include <memory> + +namespace Catch { + + class ExceptionTranslatorRegistry : public IExceptionTranslatorRegistry { + public: + ~ExceptionTranslatorRegistry(); + virtual void registerTranslator( const IExceptionTranslator* translator ); + std::string translateActiveException() const override; + std::string tryTranslators() const; + + private: + std::vector<std::unique_ptr<IExceptionTranslator const>> m_translators; + }; +} + +// end catch_exception_translator_registry.h +#ifdef __OBJC__ +#import "Foundation/Foundation.h" +#endif + +namespace Catch { + + ExceptionTranslatorRegistry::~ExceptionTranslatorRegistry() { + } + + void ExceptionTranslatorRegistry::registerTranslator( const IExceptionTranslator* translator ) { + m_translators.push_back( std::unique_ptr<const IExceptionTranslator>( translator ) ); + } + +#if !defined(CATCH_CONFIG_DISABLE_EXCEPTIONS) + std::string ExceptionTranslatorRegistry::translateActiveException() const { + try { +#ifdef __OBJC__ + // In Objective-C try objective-c exceptions first + @try { + return tryTranslators(); + } + @catch (NSException *exception) { + return Catch::Detail::stringify( [exception description] ); + } +#else + // Compiling a mixed mode project with MSVC means that CLR + // exceptions will be caught in (...) as well. However, these + // do not fill-in std::current_exception and thus lead to crash + // when attempting rethrow. + // /EHa switch also causes structured exceptions to be caught + // here, but they fill-in current_exception properly, so + // at worst the output should be a little weird, instead of + // causing a crash. + if (std::current_exception() == nullptr) { + return "Non C++ exception. Possibly a CLR exception."; + } + return tryTranslators(); +#endif + } + catch( TestFailureException& ) { + std::rethrow_exception(std::current_exception()); + } + catch( std::exception& ex ) { + return ex.what(); + } + catch( std::string& msg ) { + return msg; + } + catch( const char* msg ) { + return msg; + } + catch(...) { + return "Unknown exception"; + } + } + + std::string ExceptionTranslatorRegistry::tryTranslators() const { + if (m_translators.empty()) { + std::rethrow_exception(std::current_exception()); + } else { + return m_translators[0]->translate(m_translators.begin() + 1, m_translators.end()); + } + } + +#else // ^^ Exceptions are enabled // Exceptions are disabled vv + std::string ExceptionTranslatorRegistry::translateActiveException() const { + CATCH_INTERNAL_ERROR("Attempted to translate active exception under CATCH_CONFIG_DISABLE_EXCEPTIONS!"); + } + + std::string ExceptionTranslatorRegistry::tryTranslators() const { + CATCH_INTERNAL_ERROR("Attempted to use exception translators under CATCH_CONFIG_DISABLE_EXCEPTIONS!"); + } +#endif + +} +// end catch_exception_translator_registry.cpp +// start catch_fatal_condition.cpp + +#if defined(__GNUC__) +# pragma GCC diagnostic push +# pragma GCC diagnostic ignored "-Wmissing-field-initializers" +#endif + +#if defined( CATCH_CONFIG_WINDOWS_SEH ) || defined( CATCH_CONFIG_POSIX_SIGNALS ) + +namespace { + // Report the error condition + void reportFatal( char const * const message ) { + Catch::getCurrentContext().getResultCapture()->handleFatalErrorCondition( message ); + } +} + +#endif // signals/SEH handling + +#if defined( CATCH_CONFIG_WINDOWS_SEH ) + +namespace Catch { + struct SignalDefs { DWORD id; const char* name; }; + + // There is no 1-1 mapping between signals and windows exceptions. + // Windows can easily distinguish between SO and SigSegV, + // but SigInt, SigTerm, etc are handled differently. + static SignalDefs signalDefs[] = { + { static_cast<DWORD>(EXCEPTION_ILLEGAL_INSTRUCTION), "SIGILL - Illegal instruction signal" }, + { static_cast<DWORD>(EXCEPTION_STACK_OVERFLOW), "SIGSEGV - Stack overflow" }, + { static_cast<DWORD>(EXCEPTION_ACCESS_VIOLATION), "SIGSEGV - Segmentation violation signal" }, + { static_cast<DWORD>(EXCEPTION_INT_DIVIDE_BY_ZERO), "Divide by zero error" }, + }; + + LONG CALLBACK FatalConditionHandler::handleVectoredException(PEXCEPTION_POINTERS ExceptionInfo) { + for (auto const& def : signalDefs) { + if (ExceptionInfo->ExceptionRecord->ExceptionCode == def.id) { + reportFatal(def.name); + } + } + // If its not an exception we care about, pass it along. + // This stops us from eating debugger breaks etc. + return EXCEPTION_CONTINUE_SEARCH; + } + + FatalConditionHandler::FatalConditionHandler() { + isSet = true; + // 32k seems enough for Catch to handle stack overflow, + // but the value was found experimentally, so there is no strong guarantee + guaranteeSize = 32 * 1024; + exceptionHandlerHandle = nullptr; + // Register as first handler in current chain + exceptionHandlerHandle = AddVectoredExceptionHandler(1, handleVectoredException); + // Pass in guarantee size to be filled + SetThreadStackGuarantee(&guaranteeSize); + } + + void FatalConditionHandler::reset() { + if (isSet) { + RemoveVectoredExceptionHandler(exceptionHandlerHandle); + SetThreadStackGuarantee(&guaranteeSize); + exceptionHandlerHandle = nullptr; + isSet = false; + } + } + + FatalConditionHandler::~FatalConditionHandler() { + reset(); + } + +bool FatalConditionHandler::isSet = false; +ULONG FatalConditionHandler::guaranteeSize = 0; +PVOID FatalConditionHandler::exceptionHandlerHandle = nullptr; + +} // namespace Catch + +#elif defined( CATCH_CONFIG_POSIX_SIGNALS ) + +namespace Catch { + + struct SignalDefs { + int id; + const char* name; + }; + + // 32kb for the alternate stack seems to be sufficient. However, this value + // is experimentally determined, so that's not guaranteed. + static constexpr std::size_t sigStackSize = 32768 >= MINSIGSTKSZ ? 32768 : MINSIGSTKSZ; + + static SignalDefs signalDefs[] = { + { SIGINT, "SIGINT - Terminal interrupt signal" }, + { SIGILL, "SIGILL - Illegal instruction signal" }, + { SIGFPE, "SIGFPE - Floating point error signal" }, + { SIGSEGV, "SIGSEGV - Segmentation violation signal" }, + { SIGTERM, "SIGTERM - Termination request signal" }, + { SIGABRT, "SIGABRT - Abort (abnormal termination) signal" } + }; + + void FatalConditionHandler::handleSignal( int sig ) { + char const * name = "<unknown signal>"; + for (auto const& def : signalDefs) { + if (sig == def.id) { + name = def.name; + break; + } + } + reset(); + reportFatal(name); + raise( sig ); + } + + FatalConditionHandler::FatalConditionHandler() { + isSet = true; + stack_t sigStack; + sigStack.ss_sp = altStackMem; + sigStack.ss_size = sigStackSize; + sigStack.ss_flags = 0; + sigaltstack(&sigStack, &oldSigStack); + struct sigaction sa = { }; + + sa.sa_handler = handleSignal; + sa.sa_flags = SA_ONSTACK; + for (std::size_t i = 0; i < sizeof(signalDefs)/sizeof(SignalDefs); ++i) { + sigaction(signalDefs[i].id, &sa, &oldSigActions[i]); + } + } + + FatalConditionHandler::~FatalConditionHandler() { + reset(); + } + + void FatalConditionHandler::reset() { + if( isSet ) { + // Set signals back to previous values -- hopefully nobody overwrote them in the meantime + for( std::size_t i = 0; i < sizeof(signalDefs)/sizeof(SignalDefs); ++i ) { + sigaction(signalDefs[i].id, &oldSigActions[i], nullptr); + } + // Return the old stack + sigaltstack(&oldSigStack, nullptr); + isSet = false; + } + } + + bool FatalConditionHandler::isSet = false; + struct sigaction FatalConditionHandler::oldSigActions[sizeof(signalDefs)/sizeof(SignalDefs)] = {}; + stack_t FatalConditionHandler::oldSigStack = {}; + char FatalConditionHandler::altStackMem[sigStackSize] = {}; + +} // namespace Catch + +#else + +namespace Catch { + void FatalConditionHandler::reset() {} +} + +#endif // signals/SEH handling + +#if defined(__GNUC__) +# pragma GCC diagnostic pop +#endif +// end catch_fatal_condition.cpp +// start catch_generators.cpp + +#include <limits> +#include <set> + +namespace Catch { + +IGeneratorTracker::~IGeneratorTracker() {} + +const char* GeneratorException::what() const noexcept { + return m_msg; +} + +namespace Generators { + + GeneratorUntypedBase::~GeneratorUntypedBase() {} + + auto acquireGeneratorTracker( SourceLineInfo const& lineInfo ) -> IGeneratorTracker& { + return getResultCapture().acquireGeneratorTracker( lineInfo ); + } + +} // namespace Generators +} // namespace Catch +// end catch_generators.cpp +// start catch_interfaces_capture.cpp + +namespace Catch { + IResultCapture::~IResultCapture() = default; +} +// end catch_interfaces_capture.cpp +// start catch_interfaces_config.cpp + +namespace Catch { + IConfig::~IConfig() = default; +} +// end catch_interfaces_config.cpp +// start catch_interfaces_exception.cpp + +namespace Catch { + IExceptionTranslator::~IExceptionTranslator() = default; + IExceptionTranslatorRegistry::~IExceptionTranslatorRegistry() = default; +} +// end catch_interfaces_exception.cpp +// start catch_interfaces_registry_hub.cpp + +namespace Catch { + IRegistryHub::~IRegistryHub() = default; + IMutableRegistryHub::~IMutableRegistryHub() = default; +} +// end catch_interfaces_registry_hub.cpp +// start catch_interfaces_reporter.cpp + +// start catch_reporter_listening.h + +namespace Catch { + + class ListeningReporter : public IStreamingReporter { + using Reporters = std::vector<IStreamingReporterPtr>; + Reporters m_listeners; + IStreamingReporterPtr m_reporter = nullptr; + ReporterPreferences m_preferences; + + public: + ListeningReporter(); + + void addListener( IStreamingReporterPtr&& listener ); + void addReporter( IStreamingReporterPtr&& reporter ); + + public: // IStreamingReporter + + ReporterPreferences getPreferences() const override; + + void noMatchingTestCases( std::string const& spec ) override; + + void reportInvalidArguments(std::string const&arg) override; + + static std::set<Verbosity> getSupportedVerbosities(); + +#if defined(CATCH_CONFIG_ENABLE_BENCHMARKING) + void benchmarkPreparing(std::string const& name) override; + void benchmarkStarting( BenchmarkInfo const& benchmarkInfo ) override; + void benchmarkEnded( BenchmarkStats<> const& benchmarkStats ) override; + void benchmarkFailed(std::string const&) override; +#endif // CATCH_CONFIG_ENABLE_BENCHMARKING + + void testRunStarting( TestRunInfo const& testRunInfo ) override; + void testGroupStarting( GroupInfo const& groupInfo ) override; + void testCaseStarting( TestCaseInfo const& testInfo ) override; + void sectionStarting( SectionInfo const& sectionInfo ) override; + void assertionStarting( AssertionInfo const& assertionInfo ) override; + + // The return value indicates if the messages buffer should be cleared: + bool assertionEnded( AssertionStats const& assertionStats ) override; + void sectionEnded( SectionStats const& sectionStats ) override; + void testCaseEnded( TestCaseStats const& testCaseStats ) override; + void testGroupEnded( TestGroupStats const& testGroupStats ) override; + void testRunEnded( TestRunStats const& testRunStats ) override; + + void skipTest( TestCaseInfo const& testInfo ) override; + bool isMulti() const override; + + }; + +} // end namespace Catch + +// end catch_reporter_listening.h +namespace Catch { + + ReporterConfig::ReporterConfig( IConfigPtr const& _fullConfig ) + : m_stream( &_fullConfig->stream() ), m_fullConfig( _fullConfig ) {} + + ReporterConfig::ReporterConfig( IConfigPtr const& _fullConfig, std::ostream& _stream ) + : m_stream( &_stream ), m_fullConfig( _fullConfig ) {} + + std::ostream& ReporterConfig::stream() const { return *m_stream; } + IConfigPtr ReporterConfig::fullConfig() const { return m_fullConfig; } + + TestRunInfo::TestRunInfo( std::string const& _name ) : name( _name ) {} + + GroupInfo::GroupInfo( std::string const& _name, + std::size_t _groupIndex, + std::size_t _groupsCount ) + : name( _name ), + groupIndex( _groupIndex ), + groupsCounts( _groupsCount ) + {} + + AssertionStats::AssertionStats( AssertionResult const& _assertionResult, + std::vector<MessageInfo> const& _infoMessages, + Totals const& _totals ) + : assertionResult( _assertionResult ), + infoMessages( _infoMessages ), + totals( _totals ) + { + assertionResult.m_resultData.lazyExpression.m_transientExpression = _assertionResult.m_resultData.lazyExpression.m_transientExpression; + + if( assertionResult.hasMessage() ) { + // Copy message into messages list. + // !TBD This should have been done earlier, somewhere + MessageBuilder builder( assertionResult.getTestMacroName(), assertionResult.getSourceInfo(), assertionResult.getResultType() ); + builder << assertionResult.getMessage(); + builder.m_info.message = builder.m_stream.str(); + + infoMessages.push_back( builder.m_info ); + } + } + + AssertionStats::~AssertionStats() = default; + + SectionStats::SectionStats( SectionInfo const& _sectionInfo, + Counts const& _assertions, + double _durationInSeconds, + bool _missingAssertions ) + : sectionInfo( _sectionInfo ), + assertions( _assertions ), + durationInSeconds( _durationInSeconds ), + missingAssertions( _missingAssertions ) + {} + + SectionStats::~SectionStats() = default; + + TestCaseStats::TestCaseStats( TestCaseInfo const& _testInfo, + Totals const& _totals, + std::string const& _stdOut, + std::string const& _stdErr, + bool _aborting ) + : testInfo( _testInfo ), + totals( _totals ), + stdOut( _stdOut ), + stdErr( _stdErr ), + aborting( _aborting ) + {} + + TestCaseStats::~TestCaseStats() = default; + + TestGroupStats::TestGroupStats( GroupInfo const& _groupInfo, + Totals const& _totals, + bool _aborting ) + : groupInfo( _groupInfo ), + totals( _totals ), + aborting( _aborting ) + {} + + TestGroupStats::TestGroupStats( GroupInfo const& _groupInfo ) + : groupInfo( _groupInfo ), + aborting( false ) + {} + + TestGroupStats::~TestGroupStats() = default; + + TestRunStats::TestRunStats( TestRunInfo const& _runInfo, + Totals const& _totals, + bool _aborting ) + : runInfo( _runInfo ), + totals( _totals ), + aborting( _aborting ) + {} + + TestRunStats::~TestRunStats() = default; + + void IStreamingReporter::fatalErrorEncountered( StringRef ) {} + bool IStreamingReporter::isMulti() const { return false; } + + IReporterFactory::~IReporterFactory() = default; + IReporterRegistry::~IReporterRegistry() = default; + +} // end namespace Catch +// end catch_interfaces_reporter.cpp +// start catch_interfaces_runner.cpp + +namespace Catch { + IRunner::~IRunner() = default; +} +// end catch_interfaces_runner.cpp +// start catch_interfaces_testcase.cpp + +namespace Catch { + ITestInvoker::~ITestInvoker() = default; + ITestCaseRegistry::~ITestCaseRegistry() = default; +} +// end catch_interfaces_testcase.cpp +// start catch_leak_detector.cpp + +#ifdef CATCH_CONFIG_WINDOWS_CRTDBG +#include <crtdbg.h> + +namespace Catch { + + LeakDetector::LeakDetector() { + int flag = _CrtSetDbgFlag(_CRTDBG_REPORT_FLAG); + flag |= _CRTDBG_LEAK_CHECK_DF; + flag |= _CRTDBG_ALLOC_MEM_DF; + _CrtSetDbgFlag(flag); + _CrtSetReportMode(_CRT_WARN, _CRTDBG_MODE_FILE | _CRTDBG_MODE_DEBUG); + _CrtSetReportFile(_CRT_WARN, _CRTDBG_FILE_STDERR); + // Change this to leaking allocation's number to break there + _CrtSetBreakAlloc(-1); + } +} + +#else + + Catch::LeakDetector::LeakDetector() {} + +#endif + +Catch::LeakDetector::~LeakDetector() { + Catch::cleanUp(); +} +// end catch_leak_detector.cpp +// start catch_list.cpp + +// start catch_list.h + +#include <set> + +namespace Catch { + + std::size_t listTests( Config const& config ); + + std::size_t listTestsNamesOnly( Config const& config ); + + struct TagInfo { + void add( std::string const& spelling ); + std::string all() const; + + std::set<std::string> spellings; + std::size_t count = 0; + }; + + std::size_t listTags( Config const& config ); + + std::size_t listReporters(); + + Option<std::size_t> list( std::shared_ptr<Config> const& config ); + +} // end namespace Catch + +// end catch_list.h +// start catch_text.h + +namespace Catch { + using namespace clara::TextFlow; +} + +// end catch_text.h +#include <limits> +#include <algorithm> +#include <iomanip> + +namespace Catch { + + std::size_t listTests( Config const& config ) { + TestSpec const& testSpec = config.testSpec(); + if( config.hasTestFilters() ) + Catch::cout() << "Matching test cases:\n"; + else { + Catch::cout() << "All available test cases:\n"; + } + + auto matchedTestCases = filterTests( getAllTestCasesSorted( config ), testSpec, config ); + for( auto const& testCaseInfo : matchedTestCases ) { + Colour::Code colour = testCaseInfo.isHidden() + ? Colour::SecondaryText + : Colour::None; + Colour colourGuard( colour ); + + Catch::cout() << Column( testCaseInfo.name ).initialIndent( 2 ).indent( 4 ) << "\n"; + if( config.verbosity() >= Verbosity::High ) { + Catch::cout() << Column( Catch::Detail::stringify( testCaseInfo.lineInfo ) ).indent(4) << std::endl; + std::string description = testCaseInfo.description; + if( description.empty() ) + description = "(NO DESCRIPTION)"; + Catch::cout() << Column( description ).indent(4) << std::endl; + } + if( !testCaseInfo.tags.empty() ) + Catch::cout() << Column( testCaseInfo.tagsAsString() ).indent( 6 ) << "\n"; + } + + if( !config.hasTestFilters() ) + Catch::cout() << pluralise( matchedTestCases.size(), "test case" ) << '\n' << std::endl; + else + Catch::cout() << pluralise( matchedTestCases.size(), "matching test case" ) << '\n' << std::endl; + return matchedTestCases.size(); + } + + std::size_t listTestsNamesOnly( Config const& config ) { + TestSpec const& testSpec = config.testSpec(); + std::size_t matchedTests = 0; + std::vector<TestCase> matchedTestCases = filterTests( getAllTestCasesSorted( config ), testSpec, config ); + for( auto const& testCaseInfo : matchedTestCases ) { + matchedTests++; + if( startsWith( testCaseInfo.name, '#' ) ) + Catch::cout() << '"' << testCaseInfo.name << '"'; + else + Catch::cout() << testCaseInfo.name; + if ( config.verbosity() >= Verbosity::High ) + Catch::cout() << "\t@" << testCaseInfo.lineInfo; + Catch::cout() << std::endl; + } + return matchedTests; + } + + void TagInfo::add( std::string const& spelling ) { + ++count; + spellings.insert( spelling ); + } + + std::string TagInfo::all() const { + size_t size = 0; + for (auto const& spelling : spellings) { + // Add 2 for the brackes + size += spelling.size() + 2; + } + + std::string out; out.reserve(size); + for (auto const& spelling : spellings) { + out += '['; + out += spelling; + out += ']'; + } + return out; + } + + std::size_t listTags( Config const& config ) { + TestSpec const& testSpec = config.testSpec(); + if( config.hasTestFilters() ) + Catch::cout() << "Tags for matching test cases:\n"; + else { + Catch::cout() << "All available tags:\n"; + } + + std::map<std::string, TagInfo> tagCounts; + + std::vector<TestCase> matchedTestCases = filterTests( getAllTestCasesSorted( config ), testSpec, config ); + for( auto const& testCase : matchedTestCases ) { + for( auto const& tagName : testCase.getTestCaseInfo().tags ) { + std::string lcaseTagName = toLower( tagName ); + auto countIt = tagCounts.find( lcaseTagName ); + if( countIt == tagCounts.end() ) + countIt = tagCounts.insert( std::make_pair( lcaseTagName, TagInfo() ) ).first; + countIt->second.add( tagName ); + } + } + + for( auto const& tagCount : tagCounts ) { + ReusableStringStream rss; + rss << " " << std::setw(2) << tagCount.second.count << " "; + auto str = rss.str(); + auto wrapper = Column( tagCount.second.all() ) + .initialIndent( 0 ) + .indent( str.size() ) + .width( CATCH_CONFIG_CONSOLE_WIDTH-10 ); + Catch::cout() << str << wrapper << '\n'; + } + Catch::cout() << pluralise( tagCounts.size(), "tag" ) << '\n' << std::endl; + return tagCounts.size(); + } + + std::size_t listReporters() { + Catch::cout() << "Available reporters:\n"; + IReporterRegistry::FactoryMap const& factories = getRegistryHub().getReporterRegistry().getFactories(); + std::size_t maxNameLen = 0; + for( auto const& factoryKvp : factories ) + maxNameLen = (std::max)( maxNameLen, factoryKvp.first.size() ); + + for( auto const& factoryKvp : factories ) { + Catch::cout() + << Column( factoryKvp.first + ":" ) + .indent(2) + .width( 5+maxNameLen ) + + Column( factoryKvp.second->getDescription() ) + .initialIndent(0) + .indent(2) + .width( CATCH_CONFIG_CONSOLE_WIDTH - maxNameLen-8 ) + << "\n"; + } + Catch::cout() << std::endl; + return factories.size(); + } + + Option<std::size_t> list( std::shared_ptr<Config> const& config ) { + Option<std::size_t> listedCount; + getCurrentMutableContext().setConfig( config ); + if( config->listTests() ) + listedCount = listedCount.valueOr(0) + listTests( *config ); + if( config->listTestNamesOnly() ) + listedCount = listedCount.valueOr(0) + listTestsNamesOnly( *config ); + if( config->listTags() ) + listedCount = listedCount.valueOr(0) + listTags( *config ); + if( config->listReporters() ) + listedCount = listedCount.valueOr(0) + listReporters(); + return listedCount; + } + +} // end namespace Catch +// end catch_list.cpp +// start catch_matchers.cpp + +namespace Catch { +namespace Matchers { + namespace Impl { + + std::string MatcherUntypedBase::toString() const { + if( m_cachedToString.empty() ) + m_cachedToString = describe(); + return m_cachedToString; + } + + MatcherUntypedBase::~MatcherUntypedBase() = default; + + } // namespace Impl +} // namespace Matchers + +using namespace Matchers; +using Matchers::Impl::MatcherBase; + +} // namespace Catch +// end catch_matchers.cpp +// start catch_matchers_exception.cpp + +namespace Catch { +namespace Matchers { +namespace Exception { + +bool ExceptionMessageMatcher::match(std::exception const& ex) const { + return ex.what() == m_message; +} + +std::string ExceptionMessageMatcher::describe() const { + return "exception message matches \"" + m_message + "\""; +} + +} +Exception::ExceptionMessageMatcher Message(std::string const& message) { + return Exception::ExceptionMessageMatcher(message); +} + +// namespace Exception +} // namespace Matchers +} // namespace Catch +// end catch_matchers_exception.cpp +// start catch_matchers_floating.cpp + +// start catch_polyfills.hpp + +namespace Catch { + bool isnan(float f); + bool isnan(double d); +} + +// end catch_polyfills.hpp +// start catch_to_string.hpp + +#include <string> + +namespace Catch { + template <typename T> + std::string to_string(T const& t) { +#if defined(CATCH_CONFIG_CPP11_TO_STRING) + return std::to_string(t); +#else + ReusableStringStream rss; + rss << t; + return rss.str(); +#endif + } +} // end namespace Catch + +// end catch_to_string.hpp +#include <algorithm> +#include <cmath> +#include <cstdlib> +#include <cstdint> +#include <cstring> +#include <sstream> +#include <type_traits> +#include <iomanip> +#include <limits> + +namespace Catch { +namespace { + + int32_t convert(float f) { + static_assert(sizeof(float) == sizeof(int32_t), "Important ULP matcher assumption violated"); + int32_t i; + std::memcpy(&i, &f, sizeof(f)); + return i; + } + + int64_t convert(double d) { + static_assert(sizeof(double) == sizeof(int64_t), "Important ULP matcher assumption violated"); + int64_t i; + std::memcpy(&i, &d, sizeof(d)); + return i; + } + + template <typename FP> + bool almostEqualUlps(FP lhs, FP rhs, uint64_t maxUlpDiff) { + // Comparison with NaN should always be false. + // This way we can rule it out before getting into the ugly details + if (Catch::isnan(lhs) || Catch::isnan(rhs)) { + return false; + } + + auto lc = convert(lhs); + auto rc = convert(rhs); + + if ((lc < 0) != (rc < 0)) { + // Potentially we can have +0 and -0 + return lhs == rhs; + } + + auto ulpDiff = std::abs(lc - rc); + return static_cast<uint64_t>(ulpDiff) <= maxUlpDiff; + } + +#if defined(CATCH_CONFIG_GLOBAL_NEXTAFTER) + + float nextafter(float x, float y) { + return ::nextafterf(x, y); + } + + double nextafter(double x, double y) { + return ::nextafter(x, y); + } + +#endif // ^^^ CATCH_CONFIG_GLOBAL_NEXTAFTER ^^^ + +template <typename FP> +FP step(FP start, FP direction, uint64_t steps) { + for (uint64_t i = 0; i < steps; ++i) { +#if defined(CATCH_CONFIG_GLOBAL_NEXTAFTER) + start = Catch::nextafter(start, direction); +#else + start = std::nextafter(start, direction); +#endif + } + return start; +} + +// Performs equivalent check of std::fabs(lhs - rhs) <= margin +// But without the subtraction to allow for INFINITY in comparison +bool marginComparison(double lhs, double rhs, double margin) { + return (lhs + margin >= rhs) && (rhs + margin >= lhs); +} + +template <typename FloatingPoint> +void write(std::ostream& out, FloatingPoint num) { + out << std::scientific + << std::setprecision(std::numeric_limits<FloatingPoint>::max_digits10 - 1) + << num; +} + +} // end anonymous namespace + +namespace Matchers { +namespace Floating { + + enum class FloatingPointKind : uint8_t { + Float, + Double + }; + + WithinAbsMatcher::WithinAbsMatcher(double target, double margin) + :m_target{ target }, m_margin{ margin } { + CATCH_ENFORCE(margin >= 0, "Invalid margin: " << margin << '.' + << " Margin has to be non-negative."); + } + + // Performs equivalent check of std::fabs(lhs - rhs) <= margin + // But without the subtraction to allow for INFINITY in comparison + bool WithinAbsMatcher::match(double const& matchee) const { + return (matchee + m_margin >= m_target) && (m_target + m_margin >= matchee); + } + + std::string WithinAbsMatcher::describe() const { + return "is within " + ::Catch::Detail::stringify(m_margin) + " of " + ::Catch::Detail::stringify(m_target); + } + + WithinUlpsMatcher::WithinUlpsMatcher(double target, uint64_t ulps, FloatingPointKind baseType) + :m_target{ target }, m_ulps{ ulps }, m_type{ baseType } { + CATCH_ENFORCE(m_type == FloatingPointKind::Double + || m_ulps < (std::numeric_limits<uint32_t>::max)(), + "Provided ULP is impossibly large for a float comparison."); + } + +#if defined(__clang__) +#pragma clang diagnostic push +// Clang <3.5 reports on the default branch in the switch below +#pragma clang diagnostic ignored "-Wunreachable-code" +#endif + + bool WithinUlpsMatcher::match(double const& matchee) const { + switch (m_type) { + case FloatingPointKind::Float: + return almostEqualUlps<float>(static_cast<float>(matchee), static_cast<float>(m_target), m_ulps); + case FloatingPointKind::Double: + return almostEqualUlps<double>(matchee, m_target, m_ulps); + default: + CATCH_INTERNAL_ERROR( "Unknown FloatingPointKind value" ); + } + } + +#if defined(__clang__) +#pragma clang diagnostic pop +#endif + + std::string WithinUlpsMatcher::describe() const { + std::stringstream ret; + + ret << "is within " << m_ulps << " ULPs of "; + + if (m_type == FloatingPointKind::Float) { + write(ret, static_cast<float>(m_target)); + ret << 'f'; + } else { + write(ret, m_target); + } + + ret << " (["; + if (m_type == FloatingPointKind::Double) { + write(ret, step(m_target, static_cast<double>(-INFINITY), m_ulps)); + ret << ", "; + write(ret, step(m_target, static_cast<double>( INFINITY), m_ulps)); + } else { + // We have to cast INFINITY to float because of MinGW, see #1782 + write(ret, step(static_cast<float>(m_target), static_cast<float>(-INFINITY), m_ulps)); + ret << ", "; + write(ret, step(static_cast<float>(m_target), static_cast<float>( INFINITY), m_ulps)); + } + ret << "])"; + + return ret.str(); + } + + WithinRelMatcher::WithinRelMatcher(double target, double epsilon): + m_target(target), + m_epsilon(epsilon){ + CATCH_ENFORCE(m_epsilon >= 0., "Relative comparison with epsilon < 0 does not make sense."); + CATCH_ENFORCE(m_epsilon < 1., "Relative comparison with epsilon >= 1 does not make sense."); + } + + bool WithinRelMatcher::match(double const& matchee) const { + const auto relMargin = m_epsilon * (std::max)(std::fabs(matchee), std::fabs(m_target)); + return marginComparison(matchee, m_target, + std::isinf(relMargin)? 0 : relMargin); + } + + std::string WithinRelMatcher::describe() const { + Catch::ReusableStringStream sstr; + sstr << "and " << m_target << " are within " << m_epsilon * 100. << "% of each other"; + return sstr.str(); + } + +}// namespace Floating + +Floating::WithinUlpsMatcher WithinULP(double target, uint64_t maxUlpDiff) { + return Floating::WithinUlpsMatcher(target, maxUlpDiff, Floating::FloatingPointKind::Double); +} + +Floating::WithinUlpsMatcher WithinULP(float target, uint64_t maxUlpDiff) { + return Floating::WithinUlpsMatcher(target, maxUlpDiff, Floating::FloatingPointKind::Float); +} + +Floating::WithinAbsMatcher WithinAbs(double target, double margin) { + return Floating::WithinAbsMatcher(target, margin); +} + +Floating::WithinRelMatcher WithinRel(double target, double eps) { + return Floating::WithinRelMatcher(target, eps); +} + +Floating::WithinRelMatcher WithinRel(double target) { + return Floating::WithinRelMatcher(target, std::numeric_limits<double>::epsilon() * 100); +} + +Floating::WithinRelMatcher WithinRel(float target, float eps) { + return Floating::WithinRelMatcher(target, eps); +} + +Floating::WithinRelMatcher WithinRel(float target) { + return Floating::WithinRelMatcher(target, std::numeric_limits<float>::epsilon() * 100); +} + +} // namespace Matchers +} // namespace Catch + +// end catch_matchers_floating.cpp +// start catch_matchers_generic.cpp + +std::string Catch::Matchers::Generic::Detail::finalizeDescription(const std::string& desc) { + if (desc.empty()) { + return "matches undescribed predicate"; + } else { + return "matches predicate: \"" + desc + '"'; + } +} +// end catch_matchers_generic.cpp +// start catch_matchers_string.cpp + +#include <regex> + +namespace Catch { +namespace Matchers { + + namespace StdString { + + CasedString::CasedString( std::string const& str, CaseSensitive::Choice caseSensitivity ) + : m_caseSensitivity( caseSensitivity ), + m_str( adjustString( str ) ) + {} + std::string CasedString::adjustString( std::string const& str ) const { + return m_caseSensitivity == CaseSensitive::No + ? toLower( str ) + : str; + } + std::string CasedString::caseSensitivitySuffix() const { + return m_caseSensitivity == CaseSensitive::No + ? " (case insensitive)" + : std::string(); + } + + StringMatcherBase::StringMatcherBase( std::string const& operation, CasedString const& comparator ) + : m_comparator( comparator ), + m_operation( operation ) { + } + + std::string StringMatcherBase::describe() const { + std::string description; + description.reserve(5 + m_operation.size() + m_comparator.m_str.size() + + m_comparator.caseSensitivitySuffix().size()); + description += m_operation; + description += ": \""; + description += m_comparator.m_str; + description += "\""; + description += m_comparator.caseSensitivitySuffix(); + return description; + } + + EqualsMatcher::EqualsMatcher( CasedString const& comparator ) : StringMatcherBase( "equals", comparator ) {} + + bool EqualsMatcher::match( std::string const& source ) const { + return m_comparator.adjustString( source ) == m_comparator.m_str; + } + + ContainsMatcher::ContainsMatcher( CasedString const& comparator ) : StringMatcherBase( "contains", comparator ) {} + + bool ContainsMatcher::match( std::string const& source ) const { + return contains( m_comparator.adjustString( source ), m_comparator.m_str ); + } + + StartsWithMatcher::StartsWithMatcher( CasedString const& comparator ) : StringMatcherBase( "starts with", comparator ) {} + + bool StartsWithMatcher::match( std::string const& source ) const { + return startsWith( m_comparator.adjustString( source ), m_comparator.m_str ); + } + + EndsWithMatcher::EndsWithMatcher( CasedString const& comparator ) : StringMatcherBase( "ends with", comparator ) {} + + bool EndsWithMatcher::match( std::string const& source ) const { + return endsWith( m_comparator.adjustString( source ), m_comparator.m_str ); + } + + RegexMatcher::RegexMatcher(std::string regex, CaseSensitive::Choice caseSensitivity): m_regex(std::move(regex)), m_caseSensitivity(caseSensitivity) {} + + bool RegexMatcher::match(std::string const& matchee) const { + auto flags = std::regex::ECMAScript; // ECMAScript is the default syntax option anyway + if (m_caseSensitivity == CaseSensitive::Choice::No) { + flags |= std::regex::icase; + } + auto reg = std::regex(m_regex, flags); + return std::regex_match(matchee, reg); + } + + std::string RegexMatcher::describe() const { + return "matches " + ::Catch::Detail::stringify(m_regex) + ((m_caseSensitivity == CaseSensitive::Choice::Yes)? " case sensitively" : " case insensitively"); + } + + } // namespace StdString + + StdString::EqualsMatcher Equals( std::string const& str, CaseSensitive::Choice caseSensitivity ) { + return StdString::EqualsMatcher( StdString::CasedString( str, caseSensitivity) ); + } + StdString::ContainsMatcher Contains( std::string const& str, CaseSensitive::Choice caseSensitivity ) { + return StdString::ContainsMatcher( StdString::CasedString( str, caseSensitivity) ); + } + StdString::EndsWithMatcher EndsWith( std::string const& str, CaseSensitive::Choice caseSensitivity ) { + return StdString::EndsWithMatcher( StdString::CasedString( str, caseSensitivity) ); + } + StdString::StartsWithMatcher StartsWith( std::string const& str, CaseSensitive::Choice caseSensitivity ) { + return StdString::StartsWithMatcher( StdString::CasedString( str, caseSensitivity) ); + } + + StdString::RegexMatcher Matches(std::string const& regex, CaseSensitive::Choice caseSensitivity) { + return StdString::RegexMatcher(regex, caseSensitivity); + } + +} // namespace Matchers +} // namespace Catch +// end catch_matchers_string.cpp +// start catch_message.cpp + +// start catch_uncaught_exceptions.h + +namespace Catch { + bool uncaught_exceptions(); +} // end namespace Catch + +// end catch_uncaught_exceptions.h +#include <cassert> +#include <stack> + +namespace Catch { + + MessageInfo::MessageInfo( StringRef const& _macroName, + SourceLineInfo const& _lineInfo, + ResultWas::OfType _type ) + : macroName( _macroName ), + lineInfo( _lineInfo ), + type( _type ), + sequence( ++globalCount ) + {} + + bool MessageInfo::operator==( MessageInfo const& other ) const { + return sequence == other.sequence; + } + + bool MessageInfo::operator<( MessageInfo const& other ) const { + return sequence < other.sequence; + } + + // This may need protecting if threading support is added + unsigned int MessageInfo::globalCount = 0; + + //////////////////////////////////////////////////////////////////////////// + + Catch::MessageBuilder::MessageBuilder( StringRef const& macroName, + SourceLineInfo const& lineInfo, + ResultWas::OfType type ) + :m_info(macroName, lineInfo, type) {} + + //////////////////////////////////////////////////////////////////////////// + + ScopedMessage::ScopedMessage( MessageBuilder const& builder ) + : m_info( builder.m_info ), m_moved() + { + m_info.message = builder.m_stream.str(); + getResultCapture().pushScopedMessage( m_info ); + } + + ScopedMessage::ScopedMessage( ScopedMessage&& old ) + : m_info( old.m_info ), m_moved() + { + old.m_moved = true; + } + + ScopedMessage::~ScopedMessage() { + if ( !uncaught_exceptions() && !m_moved ){ + getResultCapture().popScopedMessage(m_info); + } + } + + Capturer::Capturer( StringRef macroName, SourceLineInfo const& lineInfo, ResultWas::OfType resultType, StringRef names ) { + auto trimmed = [&] (size_t start, size_t end) { + while (names[start] == ',' || isspace(names[start])) { + ++start; + } + while (names[end] == ',' || isspace(names[end])) { + --end; + } + return names.substr(start, end - start + 1); + }; + auto skipq = [&] (size_t start, char quote) { + for (auto i = start + 1; i < names.size() ; ++i) { + if (names[i] == quote) + return i; + if (names[i] == '\\') + ++i; + } + CATCH_INTERNAL_ERROR("CAPTURE parsing encountered unmatched quote"); + }; + + size_t start = 0; + std::stack<char> openings; + for (size_t pos = 0; pos < names.size(); ++pos) { + char c = names[pos]; + switch (c) { + case '[': + case '{': + case '(': + // It is basically impossible to disambiguate between + // comparison and start of template args in this context +// case '<': + openings.push(c); + break; + case ']': + case '}': + case ')': +// case '>': + openings.pop(); + break; + case '"': + case '\'': + pos = skipq(pos, c); + break; + case ',': + if (start != pos && openings.empty()) { + m_messages.emplace_back(macroName, lineInfo, resultType); + m_messages.back().message = static_cast<std::string>(trimmed(start, pos)); + m_messages.back().message += " := "; + start = pos; + } + } + } + assert(openings.empty() && "Mismatched openings"); + m_messages.emplace_back(macroName, lineInfo, resultType); + m_messages.back().message = static_cast<std::string>(trimmed(start, names.size() - 1)); + m_messages.back().message += " := "; + } + Capturer::~Capturer() { + if ( !uncaught_exceptions() ){ + assert( m_captured == m_messages.size() ); + for( size_t i = 0; i < m_captured; ++i ) + m_resultCapture.popScopedMessage( m_messages[i] ); + } + } + + void Capturer::captureValue( size_t index, std::string const& value ) { + assert( index < m_messages.size() ); + m_messages[index].message += value; + m_resultCapture.pushScopedMessage( m_messages[index] ); + m_captured++; + } + +} // end namespace Catch +// end catch_message.cpp +// start catch_output_redirect.cpp + +// start catch_output_redirect.h +#ifndef TWOBLUECUBES_CATCH_OUTPUT_REDIRECT_H +#define TWOBLUECUBES_CATCH_OUTPUT_REDIRECT_H + +#include <cstdio> +#include <iosfwd> +#include <string> + +namespace Catch { + + class RedirectedStream { + std::ostream& m_originalStream; + std::ostream& m_redirectionStream; + std::streambuf* m_prevBuf; + + public: + RedirectedStream( std::ostream& originalStream, std::ostream& redirectionStream ); + ~RedirectedStream(); + }; + + class RedirectedStdOut { + ReusableStringStream m_rss; + RedirectedStream m_cout; + public: + RedirectedStdOut(); + auto str() const -> std::string; + }; + + // StdErr has two constituent streams in C++, std::cerr and std::clog + // This means that we need to redirect 2 streams into 1 to keep proper + // order of writes + class RedirectedStdErr { + ReusableStringStream m_rss; + RedirectedStream m_cerr; + RedirectedStream m_clog; + public: + RedirectedStdErr(); + auto str() const -> std::string; + }; + + class RedirectedStreams { + public: + RedirectedStreams(RedirectedStreams const&) = delete; + RedirectedStreams& operator=(RedirectedStreams const&) = delete; + RedirectedStreams(RedirectedStreams&&) = delete; + RedirectedStreams& operator=(RedirectedStreams&&) = delete; + + RedirectedStreams(std::string& redirectedCout, std::string& redirectedCerr); + ~RedirectedStreams(); + private: + std::string& m_redirectedCout; + std::string& m_redirectedCerr; + RedirectedStdOut m_redirectedStdOut; + RedirectedStdErr m_redirectedStdErr; + }; + +#if defined(CATCH_CONFIG_NEW_CAPTURE) + + // Windows's implementation of std::tmpfile is terrible (it tries + // to create a file inside system folder, thus requiring elevated + // privileges for the binary), so we have to use tmpnam(_s) and + // create the file ourselves there. + class TempFile { + public: + TempFile(TempFile const&) = delete; + TempFile& operator=(TempFile const&) = delete; + TempFile(TempFile&&) = delete; + TempFile& operator=(TempFile&&) = delete; + + TempFile(); + ~TempFile(); + + std::FILE* getFile(); + std::string getContents(); + + private: + std::FILE* m_file = nullptr; + #if defined(_MSC_VER) + char m_buffer[L_tmpnam] = { 0 }; + #endif + }; + + class OutputRedirect { + public: + OutputRedirect(OutputRedirect const&) = delete; + OutputRedirect& operator=(OutputRedirect const&) = delete; + OutputRedirect(OutputRedirect&&) = delete; + OutputRedirect& operator=(OutputRedirect&&) = delete; + + OutputRedirect(std::string& stdout_dest, std::string& stderr_dest); + ~OutputRedirect(); + + private: + int m_originalStdout = -1; + int m_originalStderr = -1; + TempFile m_stdoutFile; + TempFile m_stderrFile; + std::string& m_stdoutDest; + std::string& m_stderrDest; + }; + +#endif + +} // end namespace Catch + +#endif // TWOBLUECUBES_CATCH_OUTPUT_REDIRECT_H +// end catch_output_redirect.h +#include <cstdio> +#include <cstring> +#include <fstream> +#include <sstream> +#include <stdexcept> + +#if defined(CATCH_CONFIG_NEW_CAPTURE) + #if defined(_MSC_VER) + #include <io.h> //_dup and _dup2 + #define dup _dup + #define dup2 _dup2 + #define fileno _fileno + #else + #include <unistd.h> // dup and dup2 + #endif +#endif + +namespace Catch { + + RedirectedStream::RedirectedStream( std::ostream& originalStream, std::ostream& redirectionStream ) + : m_originalStream( originalStream ), + m_redirectionStream( redirectionStream ), + m_prevBuf( m_originalStream.rdbuf() ) + { + m_originalStream.rdbuf( m_redirectionStream.rdbuf() ); + } + + RedirectedStream::~RedirectedStream() { + m_originalStream.rdbuf( m_prevBuf ); + } + + RedirectedStdOut::RedirectedStdOut() : m_cout( Catch::cout(), m_rss.get() ) {} + auto RedirectedStdOut::str() const -> std::string { return m_rss.str(); } + + RedirectedStdErr::RedirectedStdErr() + : m_cerr( Catch::cerr(), m_rss.get() ), + m_clog( Catch::clog(), m_rss.get() ) + {} + auto RedirectedStdErr::str() const -> std::string { return m_rss.str(); } + + RedirectedStreams::RedirectedStreams(std::string& redirectedCout, std::string& redirectedCerr) + : m_redirectedCout(redirectedCout), + m_redirectedCerr(redirectedCerr) + {} + + RedirectedStreams::~RedirectedStreams() { + m_redirectedCout += m_redirectedStdOut.str(); + m_redirectedCerr += m_redirectedStdErr.str(); + } + +#if defined(CATCH_CONFIG_NEW_CAPTURE) + +#if defined(_MSC_VER) + TempFile::TempFile() { + if (tmpnam_s(m_buffer)) { + CATCH_RUNTIME_ERROR("Could not get a temp filename"); + } + if (fopen_s(&m_file, m_buffer, "w")) { + char buffer[100]; + if (strerror_s(buffer, errno)) { + CATCH_RUNTIME_ERROR("Could not translate errno to a string"); + } + CATCH_RUNTIME_ERROR("Could not open the temp file: '" << m_buffer << "' because: " << buffer); + } + } +#else + TempFile::TempFile() { + m_file = std::tmpfile(); + if (!m_file) { + CATCH_RUNTIME_ERROR("Could not create a temp file."); + } + } + +#endif + + TempFile::~TempFile() { + // TBD: What to do about errors here? + std::fclose(m_file); + // We manually create the file on Windows only, on Linux + // it will be autodeleted +#if defined(_MSC_VER) + std::remove(m_buffer); +#endif + } + + FILE* TempFile::getFile() { + return m_file; + } + + std::string TempFile::getContents() { + std::stringstream sstr; + char buffer[100] = {}; + std::rewind(m_file); + while (std::fgets(buffer, sizeof(buffer), m_file)) { + sstr << buffer; + } + return sstr.str(); + } + + OutputRedirect::OutputRedirect(std::string& stdout_dest, std::string& stderr_dest) : + m_originalStdout(dup(1)), + m_originalStderr(dup(2)), + m_stdoutDest(stdout_dest), + m_stderrDest(stderr_dest) { + dup2(fileno(m_stdoutFile.getFile()), 1); + dup2(fileno(m_stderrFile.getFile()), 2); + } + + OutputRedirect::~OutputRedirect() { + Catch::cout() << std::flush; + fflush(stdout); + // Since we support overriding these streams, we flush cerr + // even though std::cerr is unbuffered + Catch::cerr() << std::flush; + Catch::clog() << std::flush; + fflush(stderr); + + dup2(m_originalStdout, 1); + dup2(m_originalStderr, 2); + + m_stdoutDest += m_stdoutFile.getContents(); + m_stderrDest += m_stderrFile.getContents(); + } + +#endif // CATCH_CONFIG_NEW_CAPTURE + +} // namespace Catch + +#if defined(CATCH_CONFIG_NEW_CAPTURE) + #if defined(_MSC_VER) + #undef dup + #undef dup2 + #undef fileno + #endif +#endif +// end catch_output_redirect.cpp +// start catch_polyfills.cpp + +#include <cmath> + +namespace Catch { + +#if !defined(CATCH_CONFIG_POLYFILL_ISNAN) + bool isnan(float f) { + return std::isnan(f); + } + bool isnan(double d) { + return std::isnan(d); + } +#else + // For now we only use this for embarcadero + bool isnan(float f) { + return std::_isnan(f); + } + bool isnan(double d) { + return std::_isnan(d); + } +#endif + +} // end namespace Catch +// end catch_polyfills.cpp +// start catch_random_number_generator.cpp + +namespace Catch { + +namespace { + +#if defined(_MSC_VER) +#pragma warning(push) +#pragma warning(disable:4146) // we negate uint32 during the rotate +#endif + // Safe rotr implementation thanks to John Regehr + uint32_t rotate_right(uint32_t val, uint32_t count) { + const uint32_t mask = 31; + count &= mask; + return (val >> count) | (val << (-count & mask)); + } + +#if defined(_MSC_VER) +#pragma warning(pop) +#endif + +} + + SimplePcg32::SimplePcg32(result_type seed_) { + seed(seed_); + } + + void SimplePcg32::seed(result_type seed_) { + m_state = 0; + (*this)(); + m_state += seed_; + (*this)(); + } + + void SimplePcg32::discard(uint64_t skip) { + // We could implement this to run in O(log n) steps, but this + // should suffice for our use case. + for (uint64_t s = 0; s < skip; ++s) { + static_cast<void>((*this)()); + } + } + + SimplePcg32::result_type SimplePcg32::operator()() { + // prepare the output value + const uint32_t xorshifted = static_cast<uint32_t>(((m_state >> 18u) ^ m_state) >> 27u); + const auto output = rotate_right(xorshifted, m_state >> 59u); + + // advance state + m_state = m_state * 6364136223846793005ULL + s_inc; + + return output; + } + + bool operator==(SimplePcg32 const& lhs, SimplePcg32 const& rhs) { + return lhs.m_state == rhs.m_state; + } + + bool operator!=(SimplePcg32 const& lhs, SimplePcg32 const& rhs) { + return lhs.m_state != rhs.m_state; + } +} +// end catch_random_number_generator.cpp +// start catch_registry_hub.cpp + +// start catch_test_case_registry_impl.h + +#include <vector> +#include <set> +#include <algorithm> +#include <ios> + +namespace Catch { + + class TestCase; + struct IConfig; + + std::vector<TestCase> sortTests( IConfig const& config, std::vector<TestCase> const& unsortedTestCases ); + + bool isThrowSafe( TestCase const& testCase, IConfig const& config ); + bool matchTest( TestCase const& testCase, TestSpec const& testSpec, IConfig const& config ); + + void enforceNoDuplicateTestCases( std::vector<TestCase> const& functions ); + + std::vector<TestCase> filterTests( std::vector<TestCase> const& testCases, TestSpec const& testSpec, IConfig const& config ); + std::vector<TestCase> const& getAllTestCasesSorted( IConfig const& config ); + + class TestRegistry : public ITestCaseRegistry { + public: + virtual ~TestRegistry() = default; + + virtual void registerTest( TestCase const& testCase ); + + std::vector<TestCase> const& getAllTests() const override; + std::vector<TestCase> const& getAllTestsSorted( IConfig const& config ) const override; + + private: + std::vector<TestCase> m_functions; + mutable RunTests::InWhatOrder m_currentSortOrder = RunTests::InDeclarationOrder; + mutable std::vector<TestCase> m_sortedFunctions; + std::size_t m_unnamedCount = 0; + std::ios_base::Init m_ostreamInit; // Forces cout/ cerr to be initialised + }; + + /////////////////////////////////////////////////////////////////////////// + + class TestInvokerAsFunction : public ITestInvoker { + void(*m_testAsFunction)(); + public: + TestInvokerAsFunction( void(*testAsFunction)() ) noexcept; + + void invoke() const override; + }; + + std::string extractClassName( StringRef const& classOrQualifiedMethodName ); + + /////////////////////////////////////////////////////////////////////////// + +} // end namespace Catch + +// end catch_test_case_registry_impl.h +// start catch_reporter_registry.h + +#include <map> + +namespace Catch { + + class ReporterRegistry : public IReporterRegistry { + + public: + + ~ReporterRegistry() override; + + IStreamingReporterPtr create( std::string const& name, IConfigPtr const& config ) const override; + + void registerReporter( std::string const& name, IReporterFactoryPtr const& factory ); + void registerListener( IReporterFactoryPtr const& factory ); + + FactoryMap const& getFactories() const override; + Listeners const& getListeners() const override; + + private: + FactoryMap m_factories; + Listeners m_listeners; + }; +} + +// end catch_reporter_registry.h +// start catch_tag_alias_registry.h + +// start catch_tag_alias.h + +#include <string> + +namespace Catch { + + struct TagAlias { + TagAlias(std::string const& _tag, SourceLineInfo _lineInfo); + + std::string tag; + SourceLineInfo lineInfo; + }; + +} // end namespace Catch + +// end catch_tag_alias.h +#include <map> + +namespace Catch { + + class TagAliasRegistry : public ITagAliasRegistry { + public: + ~TagAliasRegistry() override; + TagAlias const* find( std::string const& alias ) const override; + std::string expandAliases( std::string const& unexpandedTestSpec ) const override; + void add( std::string const& alias, std::string const& tag, SourceLineInfo const& lineInfo ); + + private: + std::map<std::string, TagAlias> m_registry; + }; + +} // end namespace Catch + +// end catch_tag_alias_registry.h +// start catch_startup_exception_registry.h + +#include <vector> +#include <exception> + +namespace Catch { + + class StartupExceptionRegistry { + public: + void add(std::exception_ptr const& exception) noexcept; + std::vector<std::exception_ptr> const& getExceptions() const noexcept; + private: + std::vector<std::exception_ptr> m_exceptions; + }; + +} // end namespace Catch + +// end catch_startup_exception_registry.h +// start catch_singletons.hpp + +namespace Catch { + + struct ISingleton { + virtual ~ISingleton(); + }; + + void addSingleton( ISingleton* singleton ); + void cleanupSingletons(); + + template<typename SingletonImplT, typename InterfaceT = SingletonImplT, typename MutableInterfaceT = InterfaceT> + class Singleton : SingletonImplT, public ISingleton { + + static auto getInternal() -> Singleton* { + static Singleton* s_instance = nullptr; + if( !s_instance ) { + s_instance = new Singleton; + addSingleton( s_instance ); + } + return s_instance; + } + + public: + static auto get() -> InterfaceT const& { + return *getInternal(); + } + static auto getMutable() -> MutableInterfaceT& { + return *getInternal(); + } + }; + +} // namespace Catch + +// end catch_singletons.hpp +namespace Catch { + + namespace { + + class RegistryHub : public IRegistryHub, public IMutableRegistryHub, + private NonCopyable { + + public: // IRegistryHub + RegistryHub() = default; + IReporterRegistry const& getReporterRegistry() const override { + return m_reporterRegistry; + } + ITestCaseRegistry const& getTestCaseRegistry() const override { + return m_testCaseRegistry; + } + IExceptionTranslatorRegistry const& getExceptionTranslatorRegistry() const override { + return m_exceptionTranslatorRegistry; + } + ITagAliasRegistry const& getTagAliasRegistry() const override { + return m_tagAliasRegistry; + } + StartupExceptionRegistry const& getStartupExceptionRegistry() const override { + return m_exceptionRegistry; + } + + public: // IMutableRegistryHub + void registerReporter( std::string const& name, IReporterFactoryPtr const& factory ) override { + m_reporterRegistry.registerReporter( name, factory ); + } + void registerListener( IReporterFactoryPtr const& factory ) override { + m_reporterRegistry.registerListener( factory ); + } + void registerTest( TestCase const& testInfo ) override { + m_testCaseRegistry.registerTest( testInfo ); + } + void registerTranslator( const IExceptionTranslator* translator ) override { + m_exceptionTranslatorRegistry.registerTranslator( translator ); + } + void registerTagAlias( std::string const& alias, std::string const& tag, SourceLineInfo const& lineInfo ) override { + m_tagAliasRegistry.add( alias, tag, lineInfo ); + } + void registerStartupException() noexcept override { + m_exceptionRegistry.add(std::current_exception()); + } + IMutableEnumValuesRegistry& getMutableEnumValuesRegistry() override { + return m_enumValuesRegistry; + } + + private: + TestRegistry m_testCaseRegistry; + ReporterRegistry m_reporterRegistry; + ExceptionTranslatorRegistry m_exceptionTranslatorRegistry; + TagAliasRegistry m_tagAliasRegistry; + StartupExceptionRegistry m_exceptionRegistry; + Detail::EnumValuesRegistry m_enumValuesRegistry; + }; + } + + using RegistryHubSingleton = Singleton<RegistryHub, IRegistryHub, IMutableRegistryHub>; + + IRegistryHub const& getRegistryHub() { + return RegistryHubSingleton::get(); + } + IMutableRegistryHub& getMutableRegistryHub() { + return RegistryHubSingleton::getMutable(); + } + void cleanUp() { + cleanupSingletons(); + cleanUpContext(); + } + std::string translateActiveException() { + return getRegistryHub().getExceptionTranslatorRegistry().translateActiveException(); + } + +} // end namespace Catch +// end catch_registry_hub.cpp +// start catch_reporter_registry.cpp + +namespace Catch { + + ReporterRegistry::~ReporterRegistry() = default; + + IStreamingReporterPtr ReporterRegistry::create( std::string const& name, IConfigPtr const& config ) const { + auto it = m_factories.find( name ); + if( it == m_factories.end() ) + return nullptr; + return it->second->create( ReporterConfig( config ) ); + } + + void ReporterRegistry::registerReporter( std::string const& name, IReporterFactoryPtr const& factory ) { + m_factories.emplace(name, factory); + } + void ReporterRegistry::registerListener( IReporterFactoryPtr const& factory ) { + m_listeners.push_back( factory ); + } + + IReporterRegistry::FactoryMap const& ReporterRegistry::getFactories() const { + return m_factories; + } + IReporterRegistry::Listeners const& ReporterRegistry::getListeners() const { + return m_listeners; + } + +} +// end catch_reporter_registry.cpp +// start catch_result_type.cpp + +namespace Catch { + + bool isOk( ResultWas::OfType resultType ) { + return ( resultType & ResultWas::FailureBit ) == 0; + } + bool isJustInfo( int flags ) { + return flags == ResultWas::Info; + } + + ResultDisposition::Flags operator | ( ResultDisposition::Flags lhs, ResultDisposition::Flags rhs ) { + return static_cast<ResultDisposition::Flags>( static_cast<int>( lhs ) | static_cast<int>( rhs ) ); + } + + bool shouldContinueOnFailure( int flags ) { return ( flags & ResultDisposition::ContinueOnFailure ) != 0; } + bool shouldSuppressFailure( int flags ) { return ( flags & ResultDisposition::SuppressFail ) != 0; } + +} // end namespace Catch +// end catch_result_type.cpp +// start catch_run_context.cpp + +#include <cassert> +#include <algorithm> +#include <sstream> + +namespace Catch { + + namespace Generators { + struct GeneratorTracker : TestCaseTracking::TrackerBase, IGeneratorTracker { + GeneratorBasePtr m_generator; + + GeneratorTracker( TestCaseTracking::NameAndLocation const& nameAndLocation, TrackerContext& ctx, ITracker* parent ) + : TrackerBase( nameAndLocation, ctx, parent ) + {} + ~GeneratorTracker(); + + static GeneratorTracker& acquire( TrackerContext& ctx, TestCaseTracking::NameAndLocation const& nameAndLocation ) { + std::shared_ptr<GeneratorTracker> tracker; + + ITracker& currentTracker = ctx.currentTracker(); + if( TestCaseTracking::ITrackerPtr childTracker = currentTracker.findChild( nameAndLocation ) ) { + assert( childTracker ); + assert( childTracker->isGeneratorTracker() ); + tracker = std::static_pointer_cast<GeneratorTracker>( childTracker ); + } + else { + tracker = std::make_shared<GeneratorTracker>( nameAndLocation, ctx, ¤tTracker ); + currentTracker.addChild( tracker ); + } + + if( !ctx.completedCycle() && !tracker->isComplete() ) { + tracker->open(); + } + + return *tracker; + } + + // TrackerBase interface + bool isGeneratorTracker() const override { return true; } + auto hasGenerator() const -> bool override { + return !!m_generator; + } + void close() override { + TrackerBase::close(); + // Generator interface only finds out if it has another item on atual move + if (m_runState == CompletedSuccessfully && m_generator->next()) { + m_children.clear(); + m_runState = Executing; + } + } + + // IGeneratorTracker interface + auto getGenerator() const -> GeneratorBasePtr const& override { + return m_generator; + } + void setGenerator( GeneratorBasePtr&& generator ) override { + m_generator = std::move( generator ); + } + }; + GeneratorTracker::~GeneratorTracker() {} + } + + RunContext::RunContext(IConfigPtr const& _config, IStreamingReporterPtr&& reporter) + : m_runInfo(_config->name()), + m_context(getCurrentMutableContext()), + m_config(_config), + m_reporter(std::move(reporter)), + m_lastAssertionInfo{ StringRef(), SourceLineInfo("",0), StringRef(), ResultDisposition::Normal }, + m_includeSuccessfulResults( m_config->includeSuccessfulResults() || m_reporter->getPreferences().shouldReportAllAssertions ) + { + m_context.setRunner(this); + m_context.setConfig(m_config); + m_context.setResultCapture(this); + m_reporter->testRunStarting(m_runInfo); + } + + RunContext::~RunContext() { + m_reporter->testRunEnded(TestRunStats(m_runInfo, m_totals, aborting())); + } + + void RunContext::testGroupStarting(std::string const& testSpec, std::size_t groupIndex, std::size_t groupsCount) { + m_reporter->testGroupStarting(GroupInfo(testSpec, groupIndex, groupsCount)); + } + + void RunContext::testGroupEnded(std::string const& testSpec, Totals const& totals, std::size_t groupIndex, std::size_t groupsCount) { + m_reporter->testGroupEnded(TestGroupStats(GroupInfo(testSpec, groupIndex, groupsCount), totals, aborting())); + } + + Totals RunContext::runTest(TestCase const& testCase) { + Totals prevTotals = m_totals; + + std::string redirectedCout; + std::string redirectedCerr; + + auto const& testInfo = testCase.getTestCaseInfo(); + + m_reporter->testCaseStarting(testInfo); + + m_activeTestCase = &testCase; + + ITracker& rootTracker = m_trackerContext.startRun(); + assert(rootTracker.isSectionTracker()); + static_cast<SectionTracker&>(rootTracker).addInitialFilters(m_config->getSectionsToRun()); + do { + m_trackerContext.startCycle(); + m_testCaseTracker = &SectionTracker::acquire(m_trackerContext, TestCaseTracking::NameAndLocation(testInfo.name, testInfo.lineInfo)); + runCurrentTest(redirectedCout, redirectedCerr); + } while (!m_testCaseTracker->isSuccessfullyCompleted() && !aborting()); + + Totals deltaTotals = m_totals.delta(prevTotals); + if (testInfo.expectedToFail() && deltaTotals.testCases.passed > 0) { + deltaTotals.assertions.failed++; + deltaTotals.testCases.passed--; + deltaTotals.testCases.failed++; + } + m_totals.testCases += deltaTotals.testCases; + m_reporter->testCaseEnded(TestCaseStats(testInfo, + deltaTotals, + redirectedCout, + redirectedCerr, + aborting())); + + m_activeTestCase = nullptr; + m_testCaseTracker = nullptr; + + return deltaTotals; + } + + IConfigPtr RunContext::config() const { + return m_config; + } + + IStreamingReporter& RunContext::reporter() const { + return *m_reporter; + } + + void RunContext::assertionEnded(AssertionResult const & result) { + if (result.getResultType() == ResultWas::Ok) { + m_totals.assertions.passed++; + m_lastAssertionPassed = true; + } else if (!result.isOk()) { + m_lastAssertionPassed = false; + if( m_activeTestCase->getTestCaseInfo().okToFail() ) + m_totals.assertions.failedButOk++; + else + m_totals.assertions.failed++; + } + else { + m_lastAssertionPassed = true; + } + + // We have no use for the return value (whether messages should be cleared), because messages were made scoped + // and should be let to clear themselves out. + static_cast<void>(m_reporter->assertionEnded(AssertionStats(result, m_messages, m_totals))); + + if (result.getResultType() != ResultWas::Warning) + m_messageScopes.clear(); + + // Reset working state + resetAssertionInfo(); + m_lastResult = result; + } + void RunContext::resetAssertionInfo() { + m_lastAssertionInfo.macroName = StringRef(); + m_lastAssertionInfo.capturedExpression = "{Unknown expression after the reported line}"_sr; + } + + bool RunContext::sectionStarted(SectionInfo const & sectionInfo, Counts & assertions) { + ITracker& sectionTracker = SectionTracker::acquire(m_trackerContext, TestCaseTracking::NameAndLocation(sectionInfo.name, sectionInfo.lineInfo)); + if (!sectionTracker.isOpen()) + return false; + m_activeSections.push_back(§ionTracker); + + m_lastAssertionInfo.lineInfo = sectionInfo.lineInfo; + + m_reporter->sectionStarting(sectionInfo); + + assertions = m_totals.assertions; + + return true; + } + auto RunContext::acquireGeneratorTracker( SourceLineInfo const& lineInfo ) -> IGeneratorTracker& { + using namespace Generators; + GeneratorTracker& tracker = GeneratorTracker::acquire( m_trackerContext, TestCaseTracking::NameAndLocation( "generator", lineInfo ) ); + assert( tracker.isOpen() ); + m_lastAssertionInfo.lineInfo = lineInfo; + return tracker; + } + + bool RunContext::testForMissingAssertions(Counts& assertions) { + if (assertions.total() != 0) + return false; + if (!m_config->warnAboutMissingAssertions()) + return false; + if (m_trackerContext.currentTracker().hasChildren()) + return false; + m_totals.assertions.failed++; + assertions.failed++; + return true; + } + + void RunContext::sectionEnded(SectionEndInfo const & endInfo) { + Counts assertions = m_totals.assertions - endInfo.prevAssertions; + bool missingAssertions = testForMissingAssertions(assertions); + + if (!m_activeSections.empty()) { + m_activeSections.back()->close(); + m_activeSections.pop_back(); + } + + m_reporter->sectionEnded(SectionStats(endInfo.sectionInfo, assertions, endInfo.durationInSeconds, missingAssertions)); + m_messages.clear(); + m_messageScopes.clear(); + } + + void RunContext::sectionEndedEarly(SectionEndInfo const & endInfo) { + if (m_unfinishedSections.empty()) + m_activeSections.back()->fail(); + else + m_activeSections.back()->close(); + m_activeSections.pop_back(); + + m_unfinishedSections.push_back(endInfo); + } + +#if defined(CATCH_CONFIG_ENABLE_BENCHMARKING) + void RunContext::benchmarkPreparing(std::string const& name) { + m_reporter->benchmarkPreparing(name); + } + void RunContext::benchmarkStarting( BenchmarkInfo const& info ) { + m_reporter->benchmarkStarting( info ); + } + void RunContext::benchmarkEnded( BenchmarkStats<> const& stats ) { + m_reporter->benchmarkEnded( stats ); + } + void RunContext::benchmarkFailed(std::string const & error) { + m_reporter->benchmarkFailed(error); + } +#endif // CATCH_CONFIG_ENABLE_BENCHMARKING + + void RunContext::pushScopedMessage(MessageInfo const & message) { + m_messages.push_back(message); + } + + void RunContext::popScopedMessage(MessageInfo const & message) { + m_messages.erase(std::remove(m_messages.begin(), m_messages.end(), message), m_messages.end()); + } + + void RunContext::emplaceUnscopedMessage( MessageBuilder const& builder ) { + m_messageScopes.emplace_back( builder ); + } + + std::string RunContext::getCurrentTestName() const { + return m_activeTestCase + ? m_activeTestCase->getTestCaseInfo().name + : std::string(); + } + + const AssertionResult * RunContext::getLastResult() const { + return &(*m_lastResult); + } + + void RunContext::exceptionEarlyReported() { + m_shouldReportUnexpected = false; + } + + void RunContext::handleFatalErrorCondition( StringRef message ) { + // First notify reporter that bad things happened + m_reporter->fatalErrorEncountered(message); + + // Don't rebuild the result -- the stringification itself can cause more fatal errors + // Instead, fake a result data. + AssertionResultData tempResult( ResultWas::FatalErrorCondition, { false } ); + tempResult.message = static_cast<std::string>(message); + AssertionResult result(m_lastAssertionInfo, tempResult); + + assertionEnded(result); + + handleUnfinishedSections(); + + // Recreate section for test case (as we will lose the one that was in scope) + auto const& testCaseInfo = m_activeTestCase->getTestCaseInfo(); + SectionInfo testCaseSection(testCaseInfo.lineInfo, testCaseInfo.name); + + Counts assertions; + assertions.failed = 1; + SectionStats testCaseSectionStats(testCaseSection, assertions, 0, false); + m_reporter->sectionEnded(testCaseSectionStats); + + auto const& testInfo = m_activeTestCase->getTestCaseInfo(); + + Totals deltaTotals; + deltaTotals.testCases.failed = 1; + deltaTotals.assertions.failed = 1; + m_reporter->testCaseEnded(TestCaseStats(testInfo, + deltaTotals, + std::string(), + std::string(), + false)); + m_totals.testCases.failed++; + testGroupEnded(std::string(), m_totals, 1, 1); + m_reporter->testRunEnded(TestRunStats(m_runInfo, m_totals, false)); + } + + bool RunContext::lastAssertionPassed() { + return m_lastAssertionPassed; + } + + void RunContext::assertionPassed() { + m_lastAssertionPassed = true; + ++m_totals.assertions.passed; + resetAssertionInfo(); + m_messageScopes.clear(); + } + + bool RunContext::aborting() const { + return m_totals.assertions.failed >= static_cast<std::size_t>(m_config->abortAfter()); + } + + void RunContext::runCurrentTest(std::string & redirectedCout, std::string & redirectedCerr) { + auto const& testCaseInfo = m_activeTestCase->getTestCaseInfo(); + SectionInfo testCaseSection(testCaseInfo.lineInfo, testCaseInfo.name); + m_reporter->sectionStarting(testCaseSection); + Counts prevAssertions = m_totals.assertions; + double duration = 0; + m_shouldReportUnexpected = true; + m_lastAssertionInfo = { "TEST_CASE"_sr, testCaseInfo.lineInfo, StringRef(), ResultDisposition::Normal }; + + seedRng(*m_config); + + Timer timer; + CATCH_TRY { + if (m_reporter->getPreferences().shouldRedirectStdOut) { +#if !defined(CATCH_CONFIG_EXPERIMENTAL_REDIRECT) + RedirectedStreams redirectedStreams(redirectedCout, redirectedCerr); + + timer.start(); + invokeActiveTestCase(); +#else + OutputRedirect r(redirectedCout, redirectedCerr); + timer.start(); + invokeActiveTestCase(); +#endif + } else { + timer.start(); + invokeActiveTestCase(); + } + duration = timer.getElapsedSeconds(); + } CATCH_CATCH_ANON (TestFailureException&) { + // This just means the test was aborted due to failure + } CATCH_CATCH_ALL { + // Under CATCH_CONFIG_FAST_COMPILE, unexpected exceptions under REQUIRE assertions + // are reported without translation at the point of origin. + if( m_shouldReportUnexpected ) { + AssertionReaction dummyReaction; + handleUnexpectedInflightException( m_lastAssertionInfo, translateActiveException(), dummyReaction ); + } + } + Counts assertions = m_totals.assertions - prevAssertions; + bool missingAssertions = testForMissingAssertions(assertions); + + m_testCaseTracker->close(); + handleUnfinishedSections(); + m_messages.clear(); + m_messageScopes.clear(); + + SectionStats testCaseSectionStats(testCaseSection, assertions, duration, missingAssertions); + m_reporter->sectionEnded(testCaseSectionStats); + } + + void RunContext::invokeActiveTestCase() { + FatalConditionHandler fatalConditionHandler; // Handle signals + m_activeTestCase->invoke(); + fatalConditionHandler.reset(); + } + + void RunContext::handleUnfinishedSections() { + // If sections ended prematurely due to an exception we stored their + // infos here so we can tear them down outside the unwind process. + for (auto it = m_unfinishedSections.rbegin(), + itEnd = m_unfinishedSections.rend(); + it != itEnd; + ++it) + sectionEnded(*it); + m_unfinishedSections.clear(); + } + + void RunContext::handleExpr( + AssertionInfo const& info, + ITransientExpression const& expr, + AssertionReaction& reaction + ) { + m_reporter->assertionStarting( info ); + + bool negated = isFalseTest( info.resultDisposition ); + bool result = expr.getResult() != negated; + + if( result ) { + if (!m_includeSuccessfulResults) { + assertionPassed(); + } + else { + reportExpr(info, ResultWas::Ok, &expr, negated); + } + } + else { + reportExpr(info, ResultWas::ExpressionFailed, &expr, negated ); + populateReaction( reaction ); + } + } + void RunContext::reportExpr( + AssertionInfo const &info, + ResultWas::OfType resultType, + ITransientExpression const *expr, + bool negated ) { + + m_lastAssertionInfo = info; + AssertionResultData data( resultType, LazyExpression( negated ) ); + + AssertionResult assertionResult{ info, data }; + assertionResult.m_resultData.lazyExpression.m_transientExpression = expr; + + assertionEnded( assertionResult ); + } + + void RunContext::handleMessage( + AssertionInfo const& info, + ResultWas::OfType resultType, + StringRef const& message, + AssertionReaction& reaction + ) { + m_reporter->assertionStarting( info ); + + m_lastAssertionInfo = info; + + AssertionResultData data( resultType, LazyExpression( false ) ); + data.message = static_cast<std::string>(message); + AssertionResult assertionResult{ m_lastAssertionInfo, data }; + assertionEnded( assertionResult ); + if( !assertionResult.isOk() ) + populateReaction( reaction ); + } + void RunContext::handleUnexpectedExceptionNotThrown( + AssertionInfo const& info, + AssertionReaction& reaction + ) { + handleNonExpr(info, Catch::ResultWas::DidntThrowException, reaction); + } + + void RunContext::handleUnexpectedInflightException( + AssertionInfo const& info, + std::string const& message, + AssertionReaction& reaction + ) { + m_lastAssertionInfo = info; + + AssertionResultData data( ResultWas::ThrewException, LazyExpression( false ) ); + data.message = message; + AssertionResult assertionResult{ info, data }; + assertionEnded( assertionResult ); + populateReaction( reaction ); + } + + void RunContext::populateReaction( AssertionReaction& reaction ) { + reaction.shouldDebugBreak = m_config->shouldDebugBreak(); + reaction.shouldThrow = aborting() || (m_lastAssertionInfo.resultDisposition & ResultDisposition::Normal); + } + + void RunContext::handleIncomplete( + AssertionInfo const& info + ) { + m_lastAssertionInfo = info; + + AssertionResultData data( ResultWas::ThrewException, LazyExpression( false ) ); + data.message = "Exception translation was disabled by CATCH_CONFIG_FAST_COMPILE"; + AssertionResult assertionResult{ info, data }; + assertionEnded( assertionResult ); + } + void RunContext::handleNonExpr( + AssertionInfo const &info, + ResultWas::OfType resultType, + AssertionReaction &reaction + ) { + m_lastAssertionInfo = info; + + AssertionResultData data( resultType, LazyExpression( false ) ); + AssertionResult assertionResult{ info, data }; + assertionEnded( assertionResult ); + + if( !assertionResult.isOk() ) + populateReaction( reaction ); + } + + IResultCapture& getResultCapture() { + if (auto* capture = getCurrentContext().getResultCapture()) + return *capture; + else + CATCH_INTERNAL_ERROR("No result capture instance"); + } + + void seedRng(IConfig const& config) { + if (config.rngSeed() != 0) { + std::srand(config.rngSeed()); + rng().seed(config.rngSeed()); + } + } + + unsigned int rngSeed() { + return getCurrentContext().getConfig()->rngSeed(); + } + +} +// end catch_run_context.cpp +// start catch_section.cpp + +namespace Catch { + + Section::Section( SectionInfo const& info ) + : m_info( info ), + m_sectionIncluded( getResultCapture().sectionStarted( m_info, m_assertions ) ) + { + m_timer.start(); + } + + Section::~Section() { + if( m_sectionIncluded ) { + SectionEndInfo endInfo{ m_info, m_assertions, m_timer.getElapsedSeconds() }; + if( uncaught_exceptions() ) + getResultCapture().sectionEndedEarly( endInfo ); + else + getResultCapture().sectionEnded( endInfo ); + } + } + + // This indicates whether the section should be executed or not + Section::operator bool() const { + return m_sectionIncluded; + } + +} // end namespace Catch +// end catch_section.cpp +// start catch_section_info.cpp + +namespace Catch { + + SectionInfo::SectionInfo + ( SourceLineInfo const& _lineInfo, + std::string const& _name ) + : name( _name ), + lineInfo( _lineInfo ) + {} + +} // end namespace Catch +// end catch_section_info.cpp +// start catch_session.cpp + +// start catch_session.h + +#include <memory> + +namespace Catch { + + class Session : NonCopyable { + public: + + Session(); + ~Session() override; + + void showHelp() const; + void libIdentify(); + + int applyCommandLine( int argc, char const * const * argv ); + #if defined(CATCH_CONFIG_WCHAR) && defined(_WIN32) && defined(UNICODE) + int applyCommandLine( int argc, wchar_t const * const * argv ); + #endif + + void useConfigData( ConfigData const& configData ); + + template<typename CharT> + int run(int argc, CharT const * const argv[]) { + if (m_startupExceptions) + return 1; + int returnCode = applyCommandLine(argc, argv); + if (returnCode == 0) + returnCode = run(); + return returnCode; + } + + int run(); + + clara::Parser const& cli() const; + void cli( clara::Parser const& newParser ); + ConfigData& configData(); + Config& config(); + private: + int runInternal(); + + clara::Parser m_cli; + ConfigData m_configData; + std::shared_ptr<Config> m_config; + bool m_startupExceptions = false; + }; + +} // end namespace Catch + +// end catch_session.h +// start catch_version.h + +#include <iosfwd> + +namespace Catch { + + // Versioning information + struct Version { + Version( Version const& ) = delete; + Version& operator=( Version const& ) = delete; + Version( unsigned int _majorVersion, + unsigned int _minorVersion, + unsigned int _patchNumber, + char const * const _branchName, + unsigned int _buildNumber ); + + unsigned int const majorVersion; + unsigned int const minorVersion; + unsigned int const patchNumber; + + // buildNumber is only used if branchName is not null + char const * const branchName; + unsigned int const buildNumber; + + friend std::ostream& operator << ( std::ostream& os, Version const& version ); + }; + + Version const& libraryVersion(); +} + +// end catch_version.h +#include <cstdlib> +#include <iomanip> +#include <set> +#include <iterator> + +namespace Catch { + + namespace { + const int MaxExitCode = 255; + + IStreamingReporterPtr createReporter(std::string const& reporterName, IConfigPtr const& config) { + auto reporter = Catch::getRegistryHub().getReporterRegistry().create(reporterName, config); + CATCH_ENFORCE(reporter, "No reporter registered with name: '" << reporterName << "'"); + + return reporter; + } + + IStreamingReporterPtr makeReporter(std::shared_ptr<Config> const& config) { + if (Catch::getRegistryHub().getReporterRegistry().getListeners().empty()) { + return createReporter(config->getReporterName(), config); + } + + // On older platforms, returning std::unique_ptr<ListeningReporter> + // when the return type is std::unique_ptr<IStreamingReporter> + // doesn't compile without a std::move call. However, this causes + // a warning on newer platforms. Thus, we have to work around + // it a bit and downcast the pointer manually. + auto ret = std::unique_ptr<IStreamingReporter>(new ListeningReporter); + auto& multi = static_cast<ListeningReporter&>(*ret); + auto const& listeners = Catch::getRegistryHub().getReporterRegistry().getListeners(); + for (auto const& listener : listeners) { + multi.addListener(listener->create(Catch::ReporterConfig(config))); + } + multi.addReporter(createReporter(config->getReporterName(), config)); + return ret; + } + + class TestGroup { + public: + explicit TestGroup(std::shared_ptr<Config> const& config) + : m_config{config} + , m_context{config, makeReporter(config)} + { + auto const& allTestCases = getAllTestCasesSorted(*m_config); + m_matches = m_config->testSpec().matchesByFilter(allTestCases, *m_config); + auto const& invalidArgs = m_config->testSpec().getInvalidArgs(); + + if (m_matches.empty() && invalidArgs.empty()) { + for (auto const& test : allTestCases) + if (!test.isHidden()) + m_tests.emplace(&test); + } else { + for (auto const& match : m_matches) + m_tests.insert(match.tests.begin(), match.tests.end()); + } + } + + Totals execute() { + auto const& invalidArgs = m_config->testSpec().getInvalidArgs(); + Totals totals; + m_context.testGroupStarting(m_config->name(), 1, 1); + for (auto const& testCase : m_tests) { + if (!m_context.aborting()) + totals += m_context.runTest(*testCase); + else + m_context.reporter().skipTest(*testCase); + } + + for (auto const& match : m_matches) { + if (match.tests.empty()) { + m_context.reporter().noMatchingTestCases(match.name); + totals.error = -1; + } + } + + if (!invalidArgs.empty()) { + for (auto const& invalidArg: invalidArgs) + m_context.reporter().reportInvalidArguments(invalidArg); + } + + m_context.testGroupEnded(m_config->name(), totals, 1, 1); + return totals; + } + + private: + using Tests = std::set<TestCase const*>; + + std::shared_ptr<Config> m_config; + RunContext m_context; + Tests m_tests; + TestSpec::Matches m_matches; + }; + + void applyFilenamesAsTags(Catch::IConfig const& config) { + auto& tests = const_cast<std::vector<TestCase>&>(getAllTestCasesSorted(config)); + for (auto& testCase : tests) { + auto tags = testCase.tags; + + std::string filename = testCase.lineInfo.file; + auto lastSlash = filename.find_last_of("\\/"); + if (lastSlash != std::string::npos) { + filename.erase(0, lastSlash); + filename[0] = '#'; + } + + auto lastDot = filename.find_last_of('.'); + if (lastDot != std::string::npos) { + filename.erase(lastDot); + } + + tags.push_back(std::move(filename)); + setTags(testCase, tags); + } + } + + } // anon namespace + + Session::Session() { + static bool alreadyInstantiated = false; + if( alreadyInstantiated ) { + CATCH_TRY { CATCH_INTERNAL_ERROR( "Only one instance of Catch::Session can ever be used" ); } + CATCH_CATCH_ALL { getMutableRegistryHub().registerStartupException(); } + } + + // There cannot be exceptions at startup in no-exception mode. +#if !defined(CATCH_CONFIG_DISABLE_EXCEPTIONS) + const auto& exceptions = getRegistryHub().getStartupExceptionRegistry().getExceptions(); + if ( !exceptions.empty() ) { + config(); + getCurrentMutableContext().setConfig(m_config); + + m_startupExceptions = true; + Colour colourGuard( Colour::Red ); + Catch::cerr() << "Errors occurred during startup!" << '\n'; + // iterate over all exceptions and notify user + for ( const auto& ex_ptr : exceptions ) { + try { + std::rethrow_exception(ex_ptr); + } catch ( std::exception const& ex ) { + Catch::cerr() << Column( ex.what() ).indent(2) << '\n'; + } + } + } +#endif + + alreadyInstantiated = true; + m_cli = makeCommandLineParser( m_configData ); + } + Session::~Session() { + Catch::cleanUp(); + } + + void Session::showHelp() const { + Catch::cout() + << "\nCatch v" << libraryVersion() << "\n" + << m_cli << std::endl + << "For more detailed usage please see the project docs\n" << std::endl; + } + void Session::libIdentify() { + Catch::cout() + << std::left << std::setw(16) << "description: " << "A Catch2 test executable\n" + << std::left << std::setw(16) << "category: " << "testframework\n" + << std::left << std::setw(16) << "framework: " << "Catch Test\n" + << std::left << std::setw(16) << "version: " << libraryVersion() << std::endl; + } + + int Session::applyCommandLine( int argc, char const * const * argv ) { + if( m_startupExceptions ) + return 1; + + auto result = m_cli.parse( clara::Args( argc, argv ) ); + if( !result ) { + config(); + getCurrentMutableContext().setConfig(m_config); + Catch::cerr() + << Colour( Colour::Red ) + << "\nError(s) in input:\n" + << Column( result.errorMessage() ).indent( 2 ) + << "\n\n"; + Catch::cerr() << "Run with -? for usage\n" << std::endl; + return MaxExitCode; + } + + if( m_configData.showHelp ) + showHelp(); + if( m_configData.libIdentify ) + libIdentify(); + m_config.reset(); + return 0; + } + +#if defined(CATCH_CONFIG_WCHAR) && defined(_WIN32) && defined(UNICODE) + int Session::applyCommandLine( int argc, wchar_t const * const * argv ) { + + char **utf8Argv = new char *[ argc ]; + + for ( int i = 0; i < argc; ++i ) { + int bufSize = WideCharToMultiByte( CP_UTF8, 0, argv[i], -1, nullptr, 0, nullptr, nullptr ); + + utf8Argv[ i ] = new char[ bufSize ]; + + WideCharToMultiByte( CP_UTF8, 0, argv[i], -1, utf8Argv[i], bufSize, nullptr, nullptr ); + } + + int returnCode = applyCommandLine( argc, utf8Argv ); + + for ( int i = 0; i < argc; ++i ) + delete [] utf8Argv[ i ]; + + delete [] utf8Argv; + + return returnCode; + } +#endif + + void Session::useConfigData( ConfigData const& configData ) { + m_configData = configData; + m_config.reset(); + } + + int Session::run() { + if( ( m_configData.waitForKeypress & WaitForKeypress::BeforeStart ) != 0 ) { + Catch::cout() << "...waiting for enter/ return before starting" << std::endl; + static_cast<void>(std::getchar()); + } + int exitCode = runInternal(); + if( ( m_configData.waitForKeypress & WaitForKeypress::BeforeExit ) != 0 ) { + Catch::cout() << "...waiting for enter/ return before exiting, with code: " << exitCode << std::endl; + static_cast<void>(std::getchar()); + } + return exitCode; + } + + clara::Parser const& Session::cli() const { + return m_cli; + } + void Session::cli( clara::Parser const& newParser ) { + m_cli = newParser; + } + ConfigData& Session::configData() { + return m_configData; + } + Config& Session::config() { + if( !m_config ) + m_config = std::make_shared<Config>( m_configData ); + return *m_config; + } + + int Session::runInternal() { + if( m_startupExceptions ) + return 1; + + if (m_configData.showHelp || m_configData.libIdentify) { + return 0; + } + + CATCH_TRY { + config(); // Force config to be constructed + + seedRng( *m_config ); + + if( m_configData.filenamesAsTags ) + applyFilenamesAsTags( *m_config ); + + // Handle list request + if( Option<std::size_t> listed = list( m_config ) ) + return static_cast<int>( *listed ); + + TestGroup tests { m_config }; + auto const totals = tests.execute(); + + if( m_config->warnAboutNoTests() && totals.error == -1 ) + return 2; + + // Note that on unices only the lower 8 bits are usually used, clamping + // the return value to 255 prevents false negative when some multiple + // of 256 tests has failed + return (std::min) (MaxExitCode, (std::max) (totals.error, static_cast<int>(totals.assertions.failed))); + } +#if !defined(CATCH_CONFIG_DISABLE_EXCEPTIONS) + catch( std::exception& ex ) { + Catch::cerr() << ex.what() << std::endl; + return MaxExitCode; + } +#endif + } + +} // end namespace Catch +// end catch_session.cpp +// start catch_singletons.cpp + +#include <vector> + +namespace Catch { + + namespace { + static auto getSingletons() -> std::vector<ISingleton*>*& { + static std::vector<ISingleton*>* g_singletons = nullptr; + if( !g_singletons ) + g_singletons = new std::vector<ISingleton*>(); + return g_singletons; + } + } + + ISingleton::~ISingleton() {} + + void addSingleton(ISingleton* singleton ) { + getSingletons()->push_back( singleton ); + } + void cleanupSingletons() { + auto& singletons = getSingletons(); + for( auto singleton : *singletons ) + delete singleton; + delete singletons; + singletons = nullptr; + } + +} // namespace Catch +// end catch_singletons.cpp +// start catch_startup_exception_registry.cpp + +namespace Catch { +void StartupExceptionRegistry::add( std::exception_ptr const& exception ) noexcept { + CATCH_TRY { + m_exceptions.push_back(exception); + } CATCH_CATCH_ALL { + // If we run out of memory during start-up there's really not a lot more we can do about it + std::terminate(); + } + } + + std::vector<std::exception_ptr> const& StartupExceptionRegistry::getExceptions() const noexcept { + return m_exceptions; + } + +} // end namespace Catch +// end catch_startup_exception_registry.cpp +// start catch_stream.cpp + +#include <cstdio> +#include <iostream> +#include <fstream> +#include <sstream> +#include <vector> +#include <memory> + +namespace Catch { + + Catch::IStream::~IStream() = default; + + namespace Detail { namespace { + template<typename WriterF, std::size_t bufferSize=256> + class StreamBufImpl : public std::streambuf { + char data[bufferSize]; + WriterF m_writer; + + public: + StreamBufImpl() { + setp( data, data + sizeof(data) ); + } + + ~StreamBufImpl() noexcept { + StreamBufImpl::sync(); + } + + private: + int overflow( int c ) override { + sync(); + + if( c != EOF ) { + if( pbase() == epptr() ) + m_writer( std::string( 1, static_cast<char>( c ) ) ); + else + sputc( static_cast<char>( c ) ); + } + return 0; + } + + int sync() override { + if( pbase() != pptr() ) { + m_writer( std::string( pbase(), static_cast<std::string::size_type>( pptr() - pbase() ) ) ); + setp( pbase(), epptr() ); + } + return 0; + } + }; + + /////////////////////////////////////////////////////////////////////////// + + struct OutputDebugWriter { + + void operator()( std::string const&str ) { + writeToDebugConsole( str ); + } + }; + + /////////////////////////////////////////////////////////////////////////// + + class FileStream : public IStream { + mutable std::ofstream m_ofs; + public: + FileStream( StringRef filename ) { + m_ofs.open( filename.c_str() ); + CATCH_ENFORCE( !m_ofs.fail(), "Unable to open file: '" << filename << "'" ); + } + ~FileStream() override = default; + public: // IStream + std::ostream& stream() const override { + return m_ofs; + } + }; + + /////////////////////////////////////////////////////////////////////////// + + class CoutStream : public IStream { + mutable std::ostream m_os; + public: + // Store the streambuf from cout up-front because + // cout may get redirected when running tests + CoutStream() : m_os( Catch::cout().rdbuf() ) {} + ~CoutStream() override = default; + + public: // IStream + std::ostream& stream() const override { return m_os; } + }; + + /////////////////////////////////////////////////////////////////////////// + + class DebugOutStream : public IStream { + std::unique_ptr<StreamBufImpl<OutputDebugWriter>> m_streamBuf; + mutable std::ostream m_os; + public: + DebugOutStream() + : m_streamBuf( new StreamBufImpl<OutputDebugWriter>() ), + m_os( m_streamBuf.get() ) + {} + + ~DebugOutStream() override = default; + + public: // IStream + std::ostream& stream() const override { return m_os; } + }; + + }} // namespace anon::detail + + /////////////////////////////////////////////////////////////////////////// + + auto makeStream( StringRef const &filename ) -> IStream const* { + if( filename.empty() ) + return new Detail::CoutStream(); + else if( filename[0] == '%' ) { + if( filename == "%debug" ) + return new Detail::DebugOutStream(); + else + CATCH_ERROR( "Unrecognised stream: '" << filename << "'" ); + } + else + return new Detail::FileStream( filename ); + } + + // This class encapsulates the idea of a pool of ostringstreams that can be reused. + struct StringStreams { + std::vector<std::unique_ptr<std::ostringstream>> m_streams; + std::vector<std::size_t> m_unused; + std::ostringstream m_referenceStream; // Used for copy state/ flags from + + auto add() -> std::size_t { + if( m_unused.empty() ) { + m_streams.push_back( std::unique_ptr<std::ostringstream>( new std::ostringstream ) ); + return m_streams.size()-1; + } + else { + auto index = m_unused.back(); + m_unused.pop_back(); + return index; + } + } + + void release( std::size_t index ) { + m_streams[index]->copyfmt( m_referenceStream ); // Restore initial flags and other state + m_unused.push_back(index); + } + }; + + ReusableStringStream::ReusableStringStream() + : m_index( Singleton<StringStreams>::getMutable().add() ), + m_oss( Singleton<StringStreams>::getMutable().m_streams[m_index].get() ) + {} + + ReusableStringStream::~ReusableStringStream() { + static_cast<std::ostringstream*>( m_oss )->str(""); + m_oss->clear(); + Singleton<StringStreams>::getMutable().release( m_index ); + } + + auto ReusableStringStream::str() const -> std::string { + return static_cast<std::ostringstream*>( m_oss )->str(); + } + + /////////////////////////////////////////////////////////////////////////// + +#ifndef CATCH_CONFIG_NOSTDOUT // If you #define this you must implement these functions + std::ostream& cout() { return std::cout; } + std::ostream& cerr() { return std::cerr; } + std::ostream& clog() { return std::clog; } +#endif +} +// end catch_stream.cpp +// start catch_string_manip.cpp + +#include <algorithm> +#include <ostream> +#include <cstring> +#include <cctype> +#include <vector> + +namespace Catch { + + namespace { + char toLowerCh(char c) { + return static_cast<char>( std::tolower( c ) ); + } + } + + bool startsWith( std::string const& s, std::string const& prefix ) { + return s.size() >= prefix.size() && std::equal(prefix.begin(), prefix.end(), s.begin()); + } + bool startsWith( std::string const& s, char prefix ) { + return !s.empty() && s[0] == prefix; + } + bool endsWith( std::string const& s, std::string const& suffix ) { + return s.size() >= suffix.size() && std::equal(suffix.rbegin(), suffix.rend(), s.rbegin()); + } + bool endsWith( std::string const& s, char suffix ) { + return !s.empty() && s[s.size()-1] == suffix; + } + bool contains( std::string const& s, std::string const& infix ) { + return s.find( infix ) != std::string::npos; + } + void toLowerInPlace( std::string& s ) { + std::transform( s.begin(), s.end(), s.begin(), toLowerCh ); + } + std::string toLower( std::string const& s ) { + std::string lc = s; + toLowerInPlace( lc ); + return lc; + } + std::string trim( std::string const& str ) { + static char const* whitespaceChars = "\n\r\t "; + std::string::size_type start = str.find_first_not_of( whitespaceChars ); + std::string::size_type end = str.find_last_not_of( whitespaceChars ); + + return start != std::string::npos ? str.substr( start, 1+end-start ) : std::string(); + } + + StringRef trim(StringRef ref) { + const auto is_ws = [](char c) { + return c == ' ' || c == '\t' || c == '\n' || c == '\r'; + }; + size_t real_begin = 0; + while (real_begin < ref.size() && is_ws(ref[real_begin])) { ++real_begin; } + size_t real_end = ref.size(); + while (real_end > real_begin && is_ws(ref[real_end - 1])) { --real_end; } + + return ref.substr(real_begin, real_end - real_begin); + } + + bool replaceInPlace( std::string& str, std::string const& replaceThis, std::string const& withThis ) { + bool replaced = false; + std::size_t i = str.find( replaceThis ); + while( i != std::string::npos ) { + replaced = true; + str = str.substr( 0, i ) + withThis + str.substr( i+replaceThis.size() ); + if( i < str.size()-withThis.size() ) + i = str.find( replaceThis, i+withThis.size() ); + else + i = std::string::npos; + } + return replaced; + } + + std::vector<StringRef> splitStringRef( StringRef str, char delimiter ) { + std::vector<StringRef> subStrings; + std::size_t start = 0; + for(std::size_t pos = 0; pos < str.size(); ++pos ) { + if( str[pos] == delimiter ) { + if( pos - start > 1 ) + subStrings.push_back( str.substr( start, pos-start ) ); + start = pos+1; + } + } + if( start < str.size() ) + subStrings.push_back( str.substr( start, str.size()-start ) ); + return subStrings; + } + + pluralise::pluralise( std::size_t count, std::string const& label ) + : m_count( count ), + m_label( label ) + {} + + std::ostream& operator << ( std::ostream& os, pluralise const& pluraliser ) { + os << pluraliser.m_count << ' ' << pluraliser.m_label; + if( pluraliser.m_count != 1 ) + os << 's'; + return os; + } + +} +// end catch_string_manip.cpp +// start catch_stringref.cpp + +#include <algorithm> +#include <ostream> +#include <cstring> +#include <cstdint> + +namespace Catch { + StringRef::StringRef( char const* rawChars ) noexcept + : StringRef( rawChars, static_cast<StringRef::size_type>(std::strlen(rawChars) ) ) + {} + + auto StringRef::c_str() const -> char const* { + CATCH_ENFORCE(isNullTerminated(), "Called StringRef::c_str() on a non-null-terminated instance"); + return m_start; + } + auto StringRef::data() const noexcept -> char const* { + return m_start; + } + + auto StringRef::substr( size_type start, size_type size ) const noexcept -> StringRef { + if (start < m_size) { + return StringRef(m_start + start, (std::min)(m_size - start, size)); + } else { + return StringRef(); + } + } + auto StringRef::operator == ( StringRef const& other ) const noexcept -> bool { + return m_size == other.m_size + && (std::memcmp( m_start, other.m_start, m_size ) == 0); + } + + auto operator << ( std::ostream& os, StringRef const& str ) -> std::ostream& { + return os.write(str.data(), str.size()); + } + + auto operator+=( std::string& lhs, StringRef const& rhs ) -> std::string& { + lhs.append(rhs.data(), rhs.size()); + return lhs; + } + +} // namespace Catch +// end catch_stringref.cpp +// start catch_tag_alias.cpp + +namespace Catch { + TagAlias::TagAlias(std::string const & _tag, SourceLineInfo _lineInfo): tag(_tag), lineInfo(_lineInfo) {} +} +// end catch_tag_alias.cpp +// start catch_tag_alias_autoregistrar.cpp + +namespace Catch { + + RegistrarForTagAliases::RegistrarForTagAliases(char const* alias, char const* tag, SourceLineInfo const& lineInfo) { + CATCH_TRY { + getMutableRegistryHub().registerTagAlias(alias, tag, lineInfo); + } CATCH_CATCH_ALL { + // Do not throw when constructing global objects, instead register the exception to be processed later + getMutableRegistryHub().registerStartupException(); + } + } + +} +// end catch_tag_alias_autoregistrar.cpp +// start catch_tag_alias_registry.cpp + +#include <sstream> + +namespace Catch { + + TagAliasRegistry::~TagAliasRegistry() {} + + TagAlias const* TagAliasRegistry::find( std::string const& alias ) const { + auto it = m_registry.find( alias ); + if( it != m_registry.end() ) + return &(it->second); + else + return nullptr; + } + + std::string TagAliasRegistry::expandAliases( std::string const& unexpandedTestSpec ) const { + std::string expandedTestSpec = unexpandedTestSpec; + for( auto const& registryKvp : m_registry ) { + std::size_t pos = expandedTestSpec.find( registryKvp.first ); + if( pos != std::string::npos ) { + expandedTestSpec = expandedTestSpec.substr( 0, pos ) + + registryKvp.second.tag + + expandedTestSpec.substr( pos + registryKvp.first.size() ); + } + } + return expandedTestSpec; + } + + void TagAliasRegistry::add( std::string const& alias, std::string const& tag, SourceLineInfo const& lineInfo ) { + CATCH_ENFORCE( startsWith(alias, "[@") && endsWith(alias, ']'), + "error: tag alias, '" << alias << "' is not of the form [@alias name].\n" << lineInfo ); + + CATCH_ENFORCE( m_registry.insert(std::make_pair(alias, TagAlias(tag, lineInfo))).second, + "error: tag alias, '" << alias << "' already registered.\n" + << "\tFirst seen at: " << find(alias)->lineInfo << "\n" + << "\tRedefined at: " << lineInfo ); + } + + ITagAliasRegistry::~ITagAliasRegistry() {} + + ITagAliasRegistry const& ITagAliasRegistry::get() { + return getRegistryHub().getTagAliasRegistry(); + } + +} // end namespace Catch +// end catch_tag_alias_registry.cpp +// start catch_test_case_info.cpp + +#include <cctype> +#include <exception> +#include <algorithm> +#include <sstream> + +namespace Catch { + + namespace { + TestCaseInfo::SpecialProperties parseSpecialTag( std::string const& tag ) { + if( startsWith( tag, '.' ) || + tag == "!hide" ) + return TestCaseInfo::IsHidden; + else if( tag == "!throws" ) + return TestCaseInfo::Throws; + else if( tag == "!shouldfail" ) + return TestCaseInfo::ShouldFail; + else if( tag == "!mayfail" ) + return TestCaseInfo::MayFail; + else if( tag == "!nonportable" ) + return TestCaseInfo::NonPortable; + else if( tag == "!benchmark" ) + return static_cast<TestCaseInfo::SpecialProperties>( TestCaseInfo::Benchmark | TestCaseInfo::IsHidden ); + else + return TestCaseInfo::None; + } + bool isReservedTag( std::string const& tag ) { + return parseSpecialTag( tag ) == TestCaseInfo::None && tag.size() > 0 && !std::isalnum( static_cast<unsigned char>(tag[0]) ); + } + void enforceNotReservedTag( std::string const& tag, SourceLineInfo const& _lineInfo ) { + CATCH_ENFORCE( !isReservedTag(tag), + "Tag name: [" << tag << "] is not allowed.\n" + << "Tag names starting with non alphanumeric characters are reserved\n" + << _lineInfo ); + } + } + + TestCase makeTestCase( ITestInvoker* _testCase, + std::string const& _className, + NameAndTags const& nameAndTags, + SourceLineInfo const& _lineInfo ) + { + bool isHidden = false; + + // Parse out tags + std::vector<std::string> tags; + std::string desc, tag; + bool inTag = false; + for (char c : nameAndTags.tags) { + if( !inTag ) { + if( c == '[' ) + inTag = true; + else + desc += c; + } + else { + if( c == ']' ) { + TestCaseInfo::SpecialProperties prop = parseSpecialTag( tag ); + if( ( prop & TestCaseInfo::IsHidden ) != 0 ) + isHidden = true; + else if( prop == TestCaseInfo::None ) + enforceNotReservedTag( tag, _lineInfo ); + + // Merged hide tags like `[.approvals]` should be added as + // `[.][approvals]`. The `[.]` is added at later point, so + // we only strip the prefix + if (startsWith(tag, '.') && tag.size() > 1) { + tag.erase(0, 1); + } + tags.push_back( tag ); + tag.clear(); + inTag = false; + } + else + tag += c; + } + } + if( isHidden ) { + // Add all "hidden" tags to make them behave identically + tags.insert( tags.end(), { ".", "!hide" } ); + } + + TestCaseInfo info( static_cast<std::string>(nameAndTags.name), _className, desc, tags, _lineInfo ); + return TestCase( _testCase, std::move(info) ); + } + + void setTags( TestCaseInfo& testCaseInfo, std::vector<std::string> tags ) { + std::sort(begin(tags), end(tags)); + tags.erase(std::unique(begin(tags), end(tags)), end(tags)); + testCaseInfo.lcaseTags.clear(); + + for( auto const& tag : tags ) { + std::string lcaseTag = toLower( tag ); + testCaseInfo.properties = static_cast<TestCaseInfo::SpecialProperties>( testCaseInfo.properties | parseSpecialTag( lcaseTag ) ); + testCaseInfo.lcaseTags.push_back( lcaseTag ); + } + testCaseInfo.tags = std::move(tags); + } + + TestCaseInfo::TestCaseInfo( std::string const& _name, + std::string const& _className, + std::string const& _description, + std::vector<std::string> const& _tags, + SourceLineInfo const& _lineInfo ) + : name( _name ), + className( _className ), + description( _description ), + lineInfo( _lineInfo ), + properties( None ) + { + setTags( *this, _tags ); + } + + bool TestCaseInfo::isHidden() const { + return ( properties & IsHidden ) != 0; + } + bool TestCaseInfo::throws() const { + return ( properties & Throws ) != 0; + } + bool TestCaseInfo::okToFail() const { + return ( properties & (ShouldFail | MayFail ) ) != 0; + } + bool TestCaseInfo::expectedToFail() const { + return ( properties & (ShouldFail ) ) != 0; + } + + std::string TestCaseInfo::tagsAsString() const { + std::string ret; + // '[' and ']' per tag + std::size_t full_size = 2 * tags.size(); + for (const auto& tag : tags) { + full_size += tag.size(); + } + ret.reserve(full_size); + for (const auto& tag : tags) { + ret.push_back('['); + ret.append(tag); + ret.push_back(']'); + } + + return ret; + } + + TestCase::TestCase( ITestInvoker* testCase, TestCaseInfo&& info ) : TestCaseInfo( std::move(info) ), test( testCase ) {} + + TestCase TestCase::withName( std::string const& _newName ) const { + TestCase other( *this ); + other.name = _newName; + return other; + } + + void TestCase::invoke() const { + test->invoke(); + } + + bool TestCase::operator == ( TestCase const& other ) const { + return test.get() == other.test.get() && + name == other.name && + className == other.className; + } + + bool TestCase::operator < ( TestCase const& other ) const { + return name < other.name; + } + + TestCaseInfo const& TestCase::getTestCaseInfo() const + { + return *this; + } + +} // end namespace Catch +// end catch_test_case_info.cpp +// start catch_test_case_registry_impl.cpp + +#include <algorithm> +#include <sstream> + +namespace Catch { + + namespace { + struct TestHasher { + explicit TestHasher(Catch::SimplePcg32& rng) { + basis = rng(); + basis <<= 32; + basis |= rng(); + } + + uint64_t basis; + + uint64_t operator()(TestCase const& t) const { + // Modified FNV-1a hash + static constexpr uint64_t prime = 1099511628211; + uint64_t hash = basis; + for (const char c : t.name) { + hash ^= c; + hash *= prime; + } + return hash; + } + }; + } // end unnamed namespace + + std::vector<TestCase> sortTests( IConfig const& config, std::vector<TestCase> const& unsortedTestCases ) { + switch( config.runOrder() ) { + case RunTests::InDeclarationOrder: + // already in declaration order + break; + + case RunTests::InLexicographicalOrder: { + std::vector<TestCase> sorted = unsortedTestCases; + std::sort( sorted.begin(), sorted.end() ); + return sorted; + } + + case RunTests::InRandomOrder: { + seedRng( config ); + TestHasher h( rng() ); + + using hashedTest = std::pair<uint64_t, TestCase const*>; + std::vector<hashedTest> indexed_tests; + indexed_tests.reserve( unsortedTestCases.size() ); + + for (auto const& testCase : unsortedTestCases) { + indexed_tests.emplace_back(h(testCase), &testCase); + } + + std::sort(indexed_tests.begin(), indexed_tests.end(), + [](hashedTest const& lhs, hashedTest const& rhs) { + if (lhs.first == rhs.first) { + return lhs.second->name < rhs.second->name; + } + return lhs.first < rhs.first; + }); + + std::vector<TestCase> sorted; + sorted.reserve( indexed_tests.size() ); + + for (auto const& hashed : indexed_tests) { + sorted.emplace_back(*hashed.second); + } + + return sorted; + } + } + return unsortedTestCases; + } + + bool isThrowSafe( TestCase const& testCase, IConfig const& config ) { + return !testCase.throws() || config.allowThrows(); + } + + bool matchTest( TestCase const& testCase, TestSpec const& testSpec, IConfig const& config ) { + return testSpec.matches( testCase ) && isThrowSafe( testCase, config ); + } + + void enforceNoDuplicateTestCases( std::vector<TestCase> const& functions ) { + std::set<TestCase> seenFunctions; + for( auto const& function : functions ) { + auto prev = seenFunctions.insert( function ); + CATCH_ENFORCE( prev.second, + "error: TEST_CASE( \"" << function.name << "\" ) already defined.\n" + << "\tFirst seen at " << prev.first->getTestCaseInfo().lineInfo << "\n" + << "\tRedefined at " << function.getTestCaseInfo().lineInfo ); + } + } + + std::vector<TestCase> filterTests( std::vector<TestCase> const& testCases, TestSpec const& testSpec, IConfig const& config ) { + std::vector<TestCase> filtered; + filtered.reserve( testCases.size() ); + for (auto const& testCase : testCases) { + if ((!testSpec.hasFilters() && !testCase.isHidden()) || + (testSpec.hasFilters() && matchTest(testCase, testSpec, config))) { + filtered.push_back(testCase); + } + } + return filtered; + } + std::vector<TestCase> const& getAllTestCasesSorted( IConfig const& config ) { + return getRegistryHub().getTestCaseRegistry().getAllTestsSorted( config ); + } + + void TestRegistry::registerTest( TestCase const& testCase ) { + std::string name = testCase.getTestCaseInfo().name; + if( name.empty() ) { + ReusableStringStream rss; + rss << "Anonymous test case " << ++m_unnamedCount; + return registerTest( testCase.withName( rss.str() ) ); + } + m_functions.push_back( testCase ); + } + + std::vector<TestCase> const& TestRegistry::getAllTests() const { + return m_functions; + } + std::vector<TestCase> const& TestRegistry::getAllTestsSorted( IConfig const& config ) const { + if( m_sortedFunctions.empty() ) + enforceNoDuplicateTestCases( m_functions ); + + if( m_currentSortOrder != config.runOrder() || m_sortedFunctions.empty() ) { + m_sortedFunctions = sortTests( config, m_functions ); + m_currentSortOrder = config.runOrder(); + } + return m_sortedFunctions; + } + + /////////////////////////////////////////////////////////////////////////// + TestInvokerAsFunction::TestInvokerAsFunction( void(*testAsFunction)() ) noexcept : m_testAsFunction( testAsFunction ) {} + + void TestInvokerAsFunction::invoke() const { + m_testAsFunction(); + } + + std::string extractClassName( StringRef const& classOrQualifiedMethodName ) { + std::string className(classOrQualifiedMethodName); + if( startsWith( className, '&' ) ) + { + std::size_t lastColons = className.rfind( "::" ); + std::size_t penultimateColons = className.rfind( "::", lastColons-1 ); + if( penultimateColons == std::string::npos ) + penultimateColons = 1; + className = className.substr( penultimateColons, lastColons-penultimateColons ); + } + return className; + } + +} // end namespace Catch +// end catch_test_case_registry_impl.cpp +// start catch_test_case_tracker.cpp + +#include <algorithm> +#include <cassert> +#include <stdexcept> +#include <memory> +#include <sstream> + +#if defined(__clang__) +# pragma clang diagnostic push +# pragma clang diagnostic ignored "-Wexit-time-destructors" +#endif + +namespace Catch { +namespace TestCaseTracking { + + NameAndLocation::NameAndLocation( std::string const& _name, SourceLineInfo const& _location ) + : name( _name ), + location( _location ) + {} + + ITracker::~ITracker() = default; + + ITracker& TrackerContext::startRun() { + m_rootTracker = std::make_shared<SectionTracker>( NameAndLocation( "{root}", CATCH_INTERNAL_LINEINFO ), *this, nullptr ); + m_currentTracker = nullptr; + m_runState = Executing; + return *m_rootTracker; + } + + void TrackerContext::endRun() { + m_rootTracker.reset(); + m_currentTracker = nullptr; + m_runState = NotStarted; + } + + void TrackerContext::startCycle() { + m_currentTracker = m_rootTracker.get(); + m_runState = Executing; + } + void TrackerContext::completeCycle() { + m_runState = CompletedCycle; + } + + bool TrackerContext::completedCycle() const { + return m_runState == CompletedCycle; + } + ITracker& TrackerContext::currentTracker() { + return *m_currentTracker; + } + void TrackerContext::setCurrentTracker( ITracker* tracker ) { + m_currentTracker = tracker; + } + + TrackerBase::TrackerBase( NameAndLocation const& nameAndLocation, TrackerContext& ctx, ITracker* parent ) + : m_nameAndLocation( nameAndLocation ), + m_ctx( ctx ), + m_parent( parent ) + {} + + NameAndLocation const& TrackerBase::nameAndLocation() const { + return m_nameAndLocation; + } + bool TrackerBase::isComplete() const { + return m_runState == CompletedSuccessfully || m_runState == Failed; + } + bool TrackerBase::isSuccessfullyCompleted() const { + return m_runState == CompletedSuccessfully; + } + bool TrackerBase::isOpen() const { + return m_runState != NotStarted && !isComplete(); + } + bool TrackerBase::hasChildren() const { + return !m_children.empty(); + } + + void TrackerBase::addChild( ITrackerPtr const& child ) { + m_children.push_back( child ); + } + + ITrackerPtr TrackerBase::findChild( NameAndLocation const& nameAndLocation ) { + auto it = std::find_if( m_children.begin(), m_children.end(), + [&nameAndLocation]( ITrackerPtr const& tracker ){ + return + tracker->nameAndLocation().location == nameAndLocation.location && + tracker->nameAndLocation().name == nameAndLocation.name; + } ); + return( it != m_children.end() ) + ? *it + : nullptr; + } + ITracker& TrackerBase::parent() { + assert( m_parent ); // Should always be non-null except for root + return *m_parent; + } + + void TrackerBase::openChild() { + if( m_runState != ExecutingChildren ) { + m_runState = ExecutingChildren; + if( m_parent ) + m_parent->openChild(); + } + } + + bool TrackerBase::isSectionTracker() const { return false; } + bool TrackerBase::isGeneratorTracker() const { return false; } + + void TrackerBase::open() { + m_runState = Executing; + moveToThis(); + if( m_parent ) + m_parent->openChild(); + } + + void TrackerBase::close() { + + // Close any still open children (e.g. generators) + while( &m_ctx.currentTracker() != this ) + m_ctx.currentTracker().close(); + + switch( m_runState ) { + case NeedsAnotherRun: + break; + + case Executing: + m_runState = CompletedSuccessfully; + break; + case ExecutingChildren: + if( std::all_of(m_children.begin(), m_children.end(), [](ITrackerPtr const& t){ return t->isComplete(); }) ) + m_runState = CompletedSuccessfully; + break; + + case NotStarted: + case CompletedSuccessfully: + case Failed: + CATCH_INTERNAL_ERROR( "Illogical state: " << m_runState ); + + default: + CATCH_INTERNAL_ERROR( "Unknown state: " << m_runState ); + } + moveToParent(); + m_ctx.completeCycle(); + } + void TrackerBase::fail() { + m_runState = Failed; + if( m_parent ) + m_parent->markAsNeedingAnotherRun(); + moveToParent(); + m_ctx.completeCycle(); + } + void TrackerBase::markAsNeedingAnotherRun() { + m_runState = NeedsAnotherRun; + } + + void TrackerBase::moveToParent() { + assert( m_parent ); + m_ctx.setCurrentTracker( m_parent ); + } + void TrackerBase::moveToThis() { + m_ctx.setCurrentTracker( this ); + } + + SectionTracker::SectionTracker( NameAndLocation const& nameAndLocation, TrackerContext& ctx, ITracker* parent ) + : TrackerBase( nameAndLocation, ctx, parent ), + m_trimmed_name(trim(nameAndLocation.name)) + { + if( parent ) { + while( !parent->isSectionTracker() ) + parent = &parent->parent(); + + SectionTracker& parentSection = static_cast<SectionTracker&>( *parent ); + addNextFilters( parentSection.m_filters ); + } + } + + bool SectionTracker::isComplete() const { + bool complete = true; + + if ((m_filters.empty() || m_filters[0] == "") + || std::find(m_filters.begin(), m_filters.end(), m_trimmed_name) != m_filters.end()) { + complete = TrackerBase::isComplete(); + } + return complete; + } + + bool SectionTracker::isSectionTracker() const { return true; } + + SectionTracker& SectionTracker::acquire( TrackerContext& ctx, NameAndLocation const& nameAndLocation ) { + std::shared_ptr<SectionTracker> section; + + ITracker& currentTracker = ctx.currentTracker(); + if( ITrackerPtr childTracker = currentTracker.findChild( nameAndLocation ) ) { + assert( childTracker ); + assert( childTracker->isSectionTracker() ); + section = std::static_pointer_cast<SectionTracker>( childTracker ); + } + else { + section = std::make_shared<SectionTracker>( nameAndLocation, ctx, ¤tTracker ); + currentTracker.addChild( section ); + } + if( !ctx.completedCycle() ) + section->tryOpen(); + return *section; + } + + void SectionTracker::tryOpen() { + if( !isComplete() ) + open(); + } + + void SectionTracker::addInitialFilters( std::vector<std::string> const& filters ) { + if( !filters.empty() ) { + m_filters.reserve( m_filters.size() + filters.size() + 2 ); + m_filters.emplace_back(""); // Root - should never be consulted + m_filters.emplace_back(""); // Test Case - not a section filter + m_filters.insert( m_filters.end(), filters.begin(), filters.end() ); + } + } + void SectionTracker::addNextFilters( std::vector<std::string> const& filters ) { + if( filters.size() > 1 ) + m_filters.insert( m_filters.end(), filters.begin()+1, filters.end() ); + } + +} // namespace TestCaseTracking + +using TestCaseTracking::ITracker; +using TestCaseTracking::TrackerContext; +using TestCaseTracking::SectionTracker; + +} // namespace Catch + +#if defined(__clang__) +# pragma clang diagnostic pop +#endif +// end catch_test_case_tracker.cpp +// start catch_test_registry.cpp + +namespace Catch { + + auto makeTestInvoker( void(*testAsFunction)() ) noexcept -> ITestInvoker* { + return new(std::nothrow) TestInvokerAsFunction( testAsFunction ); + } + + NameAndTags::NameAndTags( StringRef const& name_ , StringRef const& tags_ ) noexcept : name( name_ ), tags( tags_ ) {} + + AutoReg::AutoReg( ITestInvoker* invoker, SourceLineInfo const& lineInfo, StringRef const& classOrMethod, NameAndTags const& nameAndTags ) noexcept { + CATCH_TRY { + getMutableRegistryHub() + .registerTest( + makeTestCase( + invoker, + extractClassName( classOrMethod ), + nameAndTags, + lineInfo)); + } CATCH_CATCH_ALL { + // Do not throw when constructing global objects, instead register the exception to be processed later + getMutableRegistryHub().registerStartupException(); + } + } + + AutoReg::~AutoReg() = default; +} +// end catch_test_registry.cpp +// start catch_test_spec.cpp + +#include <algorithm> +#include <string> +#include <vector> +#include <memory> + +namespace Catch { + + TestSpec::Pattern::Pattern( std::string const& name ) + : m_name( name ) + {} + + TestSpec::Pattern::~Pattern() = default; + + std::string const& TestSpec::Pattern::name() const { + return m_name; + } + + TestSpec::NamePattern::NamePattern( std::string const& name, std::string const& filterString ) + : Pattern( filterString ) + , m_wildcardPattern( toLower( name ), CaseSensitive::No ) + {} + + bool TestSpec::NamePattern::matches( TestCaseInfo const& testCase ) const { + return m_wildcardPattern.matches( testCase.name ); + } + + TestSpec::TagPattern::TagPattern( std::string const& tag, std::string const& filterString ) + : Pattern( filterString ) + , m_tag( toLower( tag ) ) + {} + + bool TestSpec::TagPattern::matches( TestCaseInfo const& testCase ) const { + return std::find(begin(testCase.lcaseTags), + end(testCase.lcaseTags), + m_tag) != end(testCase.lcaseTags); + } + + TestSpec::ExcludedPattern::ExcludedPattern( PatternPtr const& underlyingPattern ) + : Pattern( underlyingPattern->name() ) + , m_underlyingPattern( underlyingPattern ) + {} + + bool TestSpec::ExcludedPattern::matches( TestCaseInfo const& testCase ) const { + return !m_underlyingPattern->matches( testCase ); + } + + bool TestSpec::Filter::matches( TestCaseInfo const& testCase ) const { + return std::all_of( m_patterns.begin(), m_patterns.end(), [&]( PatternPtr const& p ){ return p->matches( testCase ); } ); + } + + std::string TestSpec::Filter::name() const { + std::string name; + for( auto const& p : m_patterns ) + name += p->name(); + return name; + } + + bool TestSpec::hasFilters() const { + return !m_filters.empty(); + } + + bool TestSpec::matches( TestCaseInfo const& testCase ) const { + return std::any_of( m_filters.begin(), m_filters.end(), [&]( Filter const& f ){ return f.matches( testCase ); } ); + } + + TestSpec::Matches TestSpec::matchesByFilter( std::vector<TestCase> const& testCases, IConfig const& config ) const + { + Matches matches( m_filters.size() ); + std::transform( m_filters.begin(), m_filters.end(), matches.begin(), [&]( Filter const& filter ){ + std::vector<TestCase const*> currentMatches; + for( auto const& test : testCases ) + if( isThrowSafe( test, config ) && filter.matches( test ) ) + currentMatches.emplace_back( &test ); + return FilterMatch{ filter.name(), currentMatches }; + } ); + return matches; + } + + const TestSpec::vectorStrings& TestSpec::getInvalidArgs() const{ + return (m_invalidArgs); + } + +} +// end catch_test_spec.cpp +// start catch_test_spec_parser.cpp + +namespace Catch { + + TestSpecParser::TestSpecParser( ITagAliasRegistry const& tagAliases ) : m_tagAliases( &tagAliases ) {} + + TestSpecParser& TestSpecParser::parse( std::string const& arg ) { + m_mode = None; + m_exclusion = false; + m_arg = m_tagAliases->expandAliases( arg ); + m_escapeChars.clear(); + m_substring.reserve(m_arg.size()); + m_patternName.reserve(m_arg.size()); + m_realPatternPos = 0; + + for( m_pos = 0; m_pos < m_arg.size(); ++m_pos ) + //if visitChar fails + if( !visitChar( m_arg[m_pos] ) ){ + m_testSpec.m_invalidArgs.push_back(arg); + break; + } + endMode(); + return *this; + } + TestSpec TestSpecParser::testSpec() { + addFilter(); + return m_testSpec; + } + bool TestSpecParser::visitChar( char c ) { + if( (m_mode != EscapedName) && (c == '\\') ) { + escape(); + addCharToPattern(c); + return true; + }else if((m_mode != EscapedName) && (c == ',') ) { + return separate(); + } + + switch( m_mode ) { + case None: + if( processNoneChar( c ) ) + return true; + break; + case Name: + processNameChar( c ); + break; + case EscapedName: + endMode(); + addCharToPattern(c); + return true; + default: + case Tag: + case QuotedName: + if( processOtherChar( c ) ) + return true; + break; + } + + m_substring += c; + if( !isControlChar( c ) ) { + m_patternName += c; + m_realPatternPos++; + } + return true; + } + // Two of the processing methods return true to signal the caller to return + // without adding the given character to the current pattern strings + bool TestSpecParser::processNoneChar( char c ) { + switch( c ) { + case ' ': + return true; + case '~': + m_exclusion = true; + return false; + case '[': + startNewMode( Tag ); + return false; + case '"': + startNewMode( QuotedName ); + return false; + default: + startNewMode( Name ); + return false; + } + } + void TestSpecParser::processNameChar( char c ) { + if( c == '[' ) { + if( m_substring == "exclude:" ) + m_exclusion = true; + else + endMode(); + startNewMode( Tag ); + } + } + bool TestSpecParser::processOtherChar( char c ) { + if( !isControlChar( c ) ) + return false; + m_substring += c; + endMode(); + return true; + } + void TestSpecParser::startNewMode( Mode mode ) { + m_mode = mode; + } + void TestSpecParser::endMode() { + switch( m_mode ) { + case Name: + case QuotedName: + return addNamePattern(); + case Tag: + return addTagPattern(); + case EscapedName: + revertBackToLastMode(); + return; + case None: + default: + return startNewMode( None ); + } + } + void TestSpecParser::escape() { + saveLastMode(); + m_mode = EscapedName; + m_escapeChars.push_back(m_realPatternPos); + } + bool TestSpecParser::isControlChar( char c ) const { + switch( m_mode ) { + default: + return false; + case None: + return c == '~'; + case Name: + return c == '['; + case EscapedName: + return true; + case QuotedName: + return c == '"'; + case Tag: + return c == '[' || c == ']'; + } + } + + void TestSpecParser::addFilter() { + if( !m_currentFilter.m_patterns.empty() ) { + m_testSpec.m_filters.push_back( m_currentFilter ); + m_currentFilter = TestSpec::Filter(); + } + } + + void TestSpecParser::saveLastMode() { + lastMode = m_mode; + } + + void TestSpecParser::revertBackToLastMode() { + m_mode = lastMode; + } + + bool TestSpecParser::separate() { + if( (m_mode==QuotedName) || (m_mode==Tag) ){ + //invalid argument, signal failure to previous scope. + m_mode = None; + m_pos = m_arg.size(); + m_substring.clear(); + m_patternName.clear(); + m_realPatternPos = 0; + return false; + } + endMode(); + addFilter(); + return true; //success + } + + std::string TestSpecParser::preprocessPattern() { + std::string token = m_patternName; + for (std::size_t i = 0; i < m_escapeChars.size(); ++i) + token = token.substr(0, m_escapeChars[i] - i) + token.substr(m_escapeChars[i] - i + 1); + m_escapeChars.clear(); + if (startsWith(token, "exclude:")) { + m_exclusion = true; + token = token.substr(8); + } + + m_patternName.clear(); + m_realPatternPos = 0; + + return token; + } + + void TestSpecParser::addNamePattern() { + auto token = preprocessPattern(); + + if (!token.empty()) { + TestSpec::PatternPtr pattern = std::make_shared<TestSpec::NamePattern>(token, m_substring); + if (m_exclusion) + pattern = std::make_shared<TestSpec::ExcludedPattern>(pattern); + m_currentFilter.m_patterns.push_back(pattern); + } + m_substring.clear(); + m_exclusion = false; + m_mode = None; + } + + void TestSpecParser::addTagPattern() { + auto token = preprocessPattern(); + + if (!token.empty()) { + // If the tag pattern is the "hide and tag" shorthand (e.g. [.foo]) + // we have to create a separate hide tag and shorten the real one + if (token.size() > 1 && token[0] == '.') { + token.erase(token.begin()); + TestSpec::PatternPtr pattern = std::make_shared<TestSpec::TagPattern>(".", m_substring); + if (m_exclusion) { + pattern = std::make_shared<TestSpec::ExcludedPattern>(pattern); + } + m_currentFilter.m_patterns.push_back(pattern); + } + + TestSpec::PatternPtr pattern = std::make_shared<TestSpec::TagPattern>(token, m_substring); + + if (m_exclusion) { + pattern = std::make_shared<TestSpec::ExcludedPattern>(pattern); + } + m_currentFilter.m_patterns.push_back(pattern); + } + m_substring.clear(); + m_exclusion = false; + m_mode = None; + } + + TestSpec parseTestSpec( std::string const& arg ) { + return TestSpecParser( ITagAliasRegistry::get() ).parse( arg ).testSpec(); + } + +} // namespace Catch +// end catch_test_spec_parser.cpp +// start catch_timer.cpp + +#include <chrono> + +static const uint64_t nanosecondsInSecond = 1000000000; + +namespace Catch { + + auto getCurrentNanosecondsSinceEpoch() -> uint64_t { + return std::chrono::duration_cast<std::chrono::nanoseconds>( std::chrono::high_resolution_clock::now().time_since_epoch() ).count(); + } + + namespace { + auto estimateClockResolution() -> uint64_t { + uint64_t sum = 0; + static const uint64_t iterations = 1000000; + + auto startTime = getCurrentNanosecondsSinceEpoch(); + + for( std::size_t i = 0; i < iterations; ++i ) { + + uint64_t ticks; + uint64_t baseTicks = getCurrentNanosecondsSinceEpoch(); + do { + ticks = getCurrentNanosecondsSinceEpoch(); + } while( ticks == baseTicks ); + + auto delta = ticks - baseTicks; + sum += delta; + + // If we have been calibrating for over 3 seconds -- the clock + // is terrible and we should move on. + // TBD: How to signal that the measured resolution is probably wrong? + if (ticks > startTime + 3 * nanosecondsInSecond) { + return sum / ( i + 1u ); + } + } + + // We're just taking the mean, here. To do better we could take the std. dev and exclude outliers + // - and potentially do more iterations if there's a high variance. + return sum/iterations; + } + } + auto getEstimatedClockResolution() -> uint64_t { + static auto s_resolution = estimateClockResolution(); + return s_resolution; + } + + void Timer::start() { + m_nanoseconds = getCurrentNanosecondsSinceEpoch(); + } + auto Timer::getElapsedNanoseconds() const -> uint64_t { + return getCurrentNanosecondsSinceEpoch() - m_nanoseconds; + } + auto Timer::getElapsedMicroseconds() const -> uint64_t { + return getElapsedNanoseconds()/1000; + } + auto Timer::getElapsedMilliseconds() const -> unsigned int { + return static_cast<unsigned int>(getElapsedMicroseconds()/1000); + } + auto Timer::getElapsedSeconds() const -> double { + return getElapsedMicroseconds()/1000000.0; + } + +} // namespace Catch +// end catch_timer.cpp +// start catch_tostring.cpp + +#if defined(__clang__) +# pragma clang diagnostic push +# pragma clang diagnostic ignored "-Wexit-time-destructors" +# pragma clang diagnostic ignored "-Wglobal-constructors" +#endif + +// Enable specific decls locally +#if !defined(CATCH_CONFIG_ENABLE_CHRONO_STRINGMAKER) +#define CATCH_CONFIG_ENABLE_CHRONO_STRINGMAKER +#endif + +#include <cmath> +#include <iomanip> + +namespace Catch { + +namespace Detail { + + const std::string unprintableString = "{?}"; + + namespace { + const int hexThreshold = 255; + + struct Endianness { + enum Arch { Big, Little }; + + static Arch which() { + int one = 1; + // If the lowest byte we read is non-zero, we can assume + // that little endian format is used. + auto value = *reinterpret_cast<char*>(&one); + return value ? Little : Big; + } + }; + } + + std::string rawMemoryToString( const void *object, std::size_t size ) { + // Reverse order for little endian architectures + int i = 0, end = static_cast<int>( size ), inc = 1; + if( Endianness::which() == Endianness::Little ) { + i = end-1; + end = inc = -1; + } + + unsigned char const *bytes = static_cast<unsigned char const *>(object); + ReusableStringStream rss; + rss << "0x" << std::setfill('0') << std::hex; + for( ; i != end; i += inc ) + rss << std::setw(2) << static_cast<unsigned>(bytes[i]); + return rss.str(); + } +} + +template<typename T> +std::string fpToString( T value, int precision ) { + if (Catch::isnan(value)) { + return "nan"; + } + + ReusableStringStream rss; + rss << std::setprecision( precision ) + << std::fixed + << value; + std::string d = rss.str(); + std::size_t i = d.find_last_not_of( '0' ); + if( i != std::string::npos && i != d.size()-1 ) { + if( d[i] == '.' ) + i++; + d = d.substr( 0, i+1 ); + } + return d; +} + +//// ======================================================= //// +// +// Out-of-line defs for full specialization of StringMaker +// +//// ======================================================= //// + +std::string StringMaker<std::string>::convert(const std::string& str) { + if (!getCurrentContext().getConfig()->showInvisibles()) { + return '"' + str + '"'; + } + + std::string s("\""); + for (char c : str) { + switch (c) { + case '\n': + s.append("\\n"); + break; + case '\t': + s.append("\\t"); + break; + default: + s.push_back(c); + break; + } + } + s.append("\""); + return s; +} + +#ifdef CATCH_CONFIG_CPP17_STRING_VIEW +std::string StringMaker<std::string_view>::convert(std::string_view str) { + return ::Catch::Detail::stringify(std::string{ str }); +} +#endif + +std::string StringMaker<char const*>::convert(char const* str) { + if (str) { + return ::Catch::Detail::stringify(std::string{ str }); + } else { + return{ "{null string}" }; + } +} +std::string StringMaker<char*>::convert(char* str) { + if (str) { + return ::Catch::Detail::stringify(std::string{ str }); + } else { + return{ "{null string}" }; + } +} + +#ifdef CATCH_CONFIG_WCHAR +std::string StringMaker<std::wstring>::convert(const std::wstring& wstr) { + std::string s; + s.reserve(wstr.size()); + for (auto c : wstr) { + s += (c <= 0xff) ? static_cast<char>(c) : '?'; + } + return ::Catch::Detail::stringify(s); +} + +# ifdef CATCH_CONFIG_CPP17_STRING_VIEW +std::string StringMaker<std::wstring_view>::convert(std::wstring_view str) { + return StringMaker<std::wstring>::convert(std::wstring(str)); +} +# endif + +std::string StringMaker<wchar_t const*>::convert(wchar_t const * str) { + if (str) { + return ::Catch::Detail::stringify(std::wstring{ str }); + } else { + return{ "{null string}" }; + } +} +std::string StringMaker<wchar_t *>::convert(wchar_t * str) { + if (str) { + return ::Catch::Detail::stringify(std::wstring{ str }); + } else { + return{ "{null string}" }; + } +} +#endif + +#if defined(CATCH_CONFIG_CPP17_BYTE) +#include <cstddef> +std::string StringMaker<std::byte>::convert(std::byte value) { + return ::Catch::Detail::stringify(std::to_integer<unsigned long long>(value)); +} +#endif // defined(CATCH_CONFIG_CPP17_BYTE) + +std::string StringMaker<int>::convert(int value) { + return ::Catch::Detail::stringify(static_cast<long long>(value)); +} +std::string StringMaker<long>::convert(long value) { + return ::Catch::Detail::stringify(static_cast<long long>(value)); +} +std::string StringMaker<long long>::convert(long long value) { + ReusableStringStream rss; + rss << value; + if (value > Detail::hexThreshold) { + rss << " (0x" << std::hex << value << ')'; + } + return rss.str(); +} + +std::string StringMaker<unsigned int>::convert(unsigned int value) { + return ::Catch::Detail::stringify(static_cast<unsigned long long>(value)); +} +std::string StringMaker<unsigned long>::convert(unsigned long value) { + return ::Catch::Detail::stringify(static_cast<unsigned long long>(value)); +} +std::string StringMaker<unsigned long long>::convert(unsigned long long value) { + ReusableStringStream rss; + rss << value; + if (value > Detail::hexThreshold) { + rss << " (0x" << std::hex << value << ')'; + } + return rss.str(); +} + +std::string StringMaker<bool>::convert(bool b) { + return b ? "true" : "false"; +} + +std::string StringMaker<signed char>::convert(signed char value) { + if (value == '\r') { + return "'\\r'"; + } else if (value == '\f') { + return "'\\f'"; + } else if (value == '\n') { + return "'\\n'"; + } else if (value == '\t') { + return "'\\t'"; + } else if ('\0' <= value && value < ' ') { + return ::Catch::Detail::stringify(static_cast<unsigned int>(value)); + } else { + char chstr[] = "' '"; + chstr[1] = value; + return chstr; + } +} +std::string StringMaker<char>::convert(char c) { + return ::Catch::Detail::stringify(static_cast<signed char>(c)); +} +std::string StringMaker<unsigned char>::convert(unsigned char c) { + return ::Catch::Detail::stringify(static_cast<char>(c)); +} + +std::string StringMaker<std::nullptr_t>::convert(std::nullptr_t) { + return "nullptr"; +} + +int StringMaker<float>::precision = 5; + +std::string StringMaker<float>::convert(float value) { + return fpToString(value, precision) + 'f'; +} + +int StringMaker<double>::precision = 10; + +std::string StringMaker<double>::convert(double value) { + return fpToString(value, precision); +} + +std::string ratio_string<std::atto>::symbol() { return "a"; } +std::string ratio_string<std::femto>::symbol() { return "f"; } +std::string ratio_string<std::pico>::symbol() { return "p"; } +std::string ratio_string<std::nano>::symbol() { return "n"; } +std::string ratio_string<std::micro>::symbol() { return "u"; } +std::string ratio_string<std::milli>::symbol() { return "m"; } + +} // end namespace Catch + +#if defined(__clang__) +# pragma clang diagnostic pop +#endif + +// end catch_tostring.cpp +// start catch_totals.cpp + +namespace Catch { + + Counts Counts::operator - ( Counts const& other ) const { + Counts diff; + diff.passed = passed - other.passed; + diff.failed = failed - other.failed; + diff.failedButOk = failedButOk - other.failedButOk; + return diff; + } + + Counts& Counts::operator += ( Counts const& other ) { + passed += other.passed; + failed += other.failed; + failedButOk += other.failedButOk; + return *this; + } + + std::size_t Counts::total() const { + return passed + failed + failedButOk; + } + bool Counts::allPassed() const { + return failed == 0 && failedButOk == 0; + } + bool Counts::allOk() const { + return failed == 0; + } + + Totals Totals::operator - ( Totals const& other ) const { + Totals diff; + diff.assertions = assertions - other.assertions; + diff.testCases = testCases - other.testCases; + return diff; + } + + Totals& Totals::operator += ( Totals const& other ) { + assertions += other.assertions; + testCases += other.testCases; + return *this; + } + + Totals Totals::delta( Totals const& prevTotals ) const { + Totals diff = *this - prevTotals; + if( diff.assertions.failed > 0 ) + ++diff.testCases.failed; + else if( diff.assertions.failedButOk > 0 ) + ++diff.testCases.failedButOk; + else + ++diff.testCases.passed; + return diff; + } + +} +// end catch_totals.cpp +// start catch_uncaught_exceptions.cpp + +#include <exception> + +namespace Catch { + bool uncaught_exceptions() { +#if defined(CATCH_CONFIG_CPP17_UNCAUGHT_EXCEPTIONS) + return std::uncaught_exceptions() > 0; +#else + return std::uncaught_exception(); +#endif + } +} // end namespace Catch +// end catch_uncaught_exceptions.cpp +// start catch_version.cpp + +#include <ostream> + +namespace Catch { + + Version::Version + ( unsigned int _majorVersion, + unsigned int _minorVersion, + unsigned int _patchNumber, + char const * const _branchName, + unsigned int _buildNumber ) + : majorVersion( _majorVersion ), + minorVersion( _minorVersion ), + patchNumber( _patchNumber ), + branchName( _branchName ), + buildNumber( _buildNumber ) + {} + + std::ostream& operator << ( std::ostream& os, Version const& version ) { + os << version.majorVersion << '.' + << version.minorVersion << '.' + << version.patchNumber; + // branchName is never null -> 0th char is \0 if it is empty + if (version.branchName[0]) { + os << '-' << version.branchName + << '.' << version.buildNumber; + } + return os; + } + + Version const& libraryVersion() { + static Version version( 2, 12, 1, "", 0 ); + return version; + } + +} +// end catch_version.cpp +// start catch_wildcard_pattern.cpp + +namespace Catch { + + WildcardPattern::WildcardPattern( std::string const& pattern, + CaseSensitive::Choice caseSensitivity ) + : m_caseSensitivity( caseSensitivity ), + m_pattern( normaliseString( pattern ) ) + { + if( startsWith( m_pattern, '*' ) ) { + m_pattern = m_pattern.substr( 1 ); + m_wildcard = WildcardAtStart; + } + if( endsWith( m_pattern, '*' ) ) { + m_pattern = m_pattern.substr( 0, m_pattern.size()-1 ); + m_wildcard = static_cast<WildcardPosition>( m_wildcard | WildcardAtEnd ); + } + } + + bool WildcardPattern::matches( std::string const& str ) const { + switch( m_wildcard ) { + case NoWildcard: + return m_pattern == normaliseString( str ); + case WildcardAtStart: + return endsWith( normaliseString( str ), m_pattern ); + case WildcardAtEnd: + return startsWith( normaliseString( str ), m_pattern ); + case WildcardAtBothEnds: + return contains( normaliseString( str ), m_pattern ); + default: + CATCH_INTERNAL_ERROR( "Unknown enum" ); + } + } + + std::string WildcardPattern::normaliseString( std::string const& str ) const { + return trim( m_caseSensitivity == CaseSensitive::No ? toLower( str ) : str ); + } +} +// end catch_wildcard_pattern.cpp +// start catch_xmlwriter.cpp + +#include <iomanip> +#include <type_traits> + +namespace Catch { + +namespace { + + size_t trailingBytes(unsigned char c) { + if ((c & 0xE0) == 0xC0) { + return 2; + } + if ((c & 0xF0) == 0xE0) { + return 3; + } + if ((c & 0xF8) == 0xF0) { + return 4; + } + CATCH_INTERNAL_ERROR("Invalid multibyte utf-8 start byte encountered"); + } + + uint32_t headerValue(unsigned char c) { + if ((c & 0xE0) == 0xC0) { + return c & 0x1F; + } + if ((c & 0xF0) == 0xE0) { + return c & 0x0F; + } + if ((c & 0xF8) == 0xF0) { + return c & 0x07; + } + CATCH_INTERNAL_ERROR("Invalid multibyte utf-8 start byte encountered"); + } + + void hexEscapeChar(std::ostream& os, unsigned char c) { + std::ios_base::fmtflags f(os.flags()); + os << "\\x" + << std::uppercase << std::hex << std::setfill('0') << std::setw(2) + << static_cast<int>(c); + os.flags(f); + } + + bool shouldNewline(XmlFormatting fmt) { + return !!(static_cast<std::underlying_type<XmlFormatting>::type>(fmt & XmlFormatting::Newline)); + } + + bool shouldIndent(XmlFormatting fmt) { + return !!(static_cast<std::underlying_type<XmlFormatting>::type>(fmt & XmlFormatting::Indent)); + } + +} // anonymous namespace + + XmlFormatting operator | (XmlFormatting lhs, XmlFormatting rhs) { + return static_cast<XmlFormatting>( + static_cast<std::underlying_type<XmlFormatting>::type>(lhs) | + static_cast<std::underlying_type<XmlFormatting>::type>(rhs) + ); + } + + XmlFormatting operator & (XmlFormatting lhs, XmlFormatting rhs) { + return static_cast<XmlFormatting>( + static_cast<std::underlying_type<XmlFormatting>::type>(lhs) & + static_cast<std::underlying_type<XmlFormatting>::type>(rhs) + ); + } + + XmlEncode::XmlEncode( std::string const& str, ForWhat forWhat ) + : m_str( str ), + m_forWhat( forWhat ) + {} + + void XmlEncode::encodeTo( std::ostream& os ) const { + // Apostrophe escaping not necessary if we always use " to write attributes + // (see: http://www.w3.org/TR/xml/#syntax) + + for( std::size_t idx = 0; idx < m_str.size(); ++ idx ) { + unsigned char c = m_str[idx]; + switch (c) { + case '<': os << "<"; break; + case '&': os << "&"; break; + + case '>': + // See: http://www.w3.org/TR/xml/#syntax + if (idx > 2 && m_str[idx - 1] == ']' && m_str[idx - 2] == ']') + os << ">"; + else + os << c; + break; + + case '\"': + if (m_forWhat == ForAttributes) + os << """; + else + os << c; + break; + + default: + // Check for control characters and invalid utf-8 + + // Escape control characters in standard ascii + // see http://stackoverflow.com/questions/404107/why-are-control-characters-illegal-in-xml-1-0 + if (c < 0x09 || (c > 0x0D && c < 0x20) || c == 0x7F) { + hexEscapeChar(os, c); + break; + } + + // Plain ASCII: Write it to stream + if (c < 0x7F) { + os << c; + break; + } + + // UTF-8 territory + // Check if the encoding is valid and if it is not, hex escape bytes. + // Important: We do not check the exact decoded values for validity, only the encoding format + // First check that this bytes is a valid lead byte: + // This means that it is not encoded as 1111 1XXX + // Or as 10XX XXXX + if (c < 0xC0 || + c >= 0xF8) { + hexEscapeChar(os, c); + break; + } + + auto encBytes = trailingBytes(c); + // Are there enough bytes left to avoid accessing out-of-bounds memory? + if (idx + encBytes - 1 >= m_str.size()) { + hexEscapeChar(os, c); + break; + } + // The header is valid, check data + // The next encBytes bytes must together be a valid utf-8 + // This means: bitpattern 10XX XXXX and the extracted value is sane (ish) + bool valid = true; + uint32_t value = headerValue(c); + for (std::size_t n = 1; n < encBytes; ++n) { + unsigned char nc = m_str[idx + n]; + valid &= ((nc & 0xC0) == 0x80); + value = (value << 6) | (nc & 0x3F); + } + + if ( + // Wrong bit pattern of following bytes + (!valid) || + // Overlong encodings + (value < 0x80) || + (0x80 <= value && value < 0x800 && encBytes > 2) || + (0x800 < value && value < 0x10000 && encBytes > 3) || + // Encoded value out of range + (value >= 0x110000) + ) { + hexEscapeChar(os, c); + break; + } + + // If we got here, this is in fact a valid(ish) utf-8 sequence + for (std::size_t n = 0; n < encBytes; ++n) { + os << m_str[idx + n]; + } + idx += encBytes - 1; + break; + } + } + } + + std::ostream& operator << ( std::ostream& os, XmlEncode const& xmlEncode ) { + xmlEncode.encodeTo( os ); + return os; + } + + XmlWriter::ScopedElement::ScopedElement( XmlWriter* writer, XmlFormatting fmt ) + : m_writer( writer ), + m_fmt(fmt) + {} + + XmlWriter::ScopedElement::ScopedElement( ScopedElement&& other ) noexcept + : m_writer( other.m_writer ), + m_fmt(other.m_fmt) + { + other.m_writer = nullptr; + other.m_fmt = XmlFormatting::None; + } + XmlWriter::ScopedElement& XmlWriter::ScopedElement::operator=( ScopedElement&& other ) noexcept { + if ( m_writer ) { + m_writer->endElement(); + } + m_writer = other.m_writer; + other.m_writer = nullptr; + m_fmt = other.m_fmt; + other.m_fmt = XmlFormatting::None; + return *this; + } + + XmlWriter::ScopedElement::~ScopedElement() { + if (m_writer) { + m_writer->endElement(m_fmt); + } + } + + XmlWriter::ScopedElement& XmlWriter::ScopedElement::writeText( std::string const& text, XmlFormatting fmt ) { + m_writer->writeText( text, fmt ); + return *this; + } + + XmlWriter::XmlWriter( std::ostream& os ) : m_os( os ) + { + writeDeclaration(); + } + + XmlWriter::~XmlWriter() { + while (!m_tags.empty()) { + endElement(); + } + newlineIfNecessary(); + } + + XmlWriter& XmlWriter::startElement( std::string const& name, XmlFormatting fmt ) { + ensureTagClosed(); + newlineIfNecessary(); + if (shouldIndent(fmt)) { + m_os << m_indent; + m_indent += " "; + } + m_os << '<' << name; + m_tags.push_back( name ); + m_tagIsOpen = true; + applyFormatting(fmt); + return *this; + } + + XmlWriter::ScopedElement XmlWriter::scopedElement( std::string const& name, XmlFormatting fmt ) { + ScopedElement scoped( this, fmt ); + startElement( name, fmt ); + return scoped; + } + + XmlWriter& XmlWriter::endElement(XmlFormatting fmt) { + m_indent = m_indent.substr(0, m_indent.size() - 2); + + if( m_tagIsOpen ) { + m_os << "/>"; + m_tagIsOpen = false; + } else { + newlineIfNecessary(); + if (shouldIndent(fmt)) { + m_os << m_indent; + } + m_os << "</" << m_tags.back() << ">"; + } + m_os << std::flush; + applyFormatting(fmt); + m_tags.pop_back(); + return *this; + } + + XmlWriter& XmlWriter::writeAttribute( std::string const& name, std::string const& attribute ) { + if( !name.empty() && !attribute.empty() ) + m_os << ' ' << name << "=\"" << XmlEncode( attribute, XmlEncode::ForAttributes ) << '"'; + return *this; + } + + XmlWriter& XmlWriter::writeAttribute( std::string const& name, bool attribute ) { + m_os << ' ' << name << "=\"" << ( attribute ? "true" : "false" ) << '"'; + return *this; + } + + XmlWriter& XmlWriter::writeText( std::string const& text, XmlFormatting fmt) { + if( !text.empty() ){ + bool tagWasOpen = m_tagIsOpen; + ensureTagClosed(); + if (tagWasOpen && shouldIndent(fmt)) { + m_os << m_indent; + } + m_os << XmlEncode( text ); + applyFormatting(fmt); + } + return *this; + } + + XmlWriter& XmlWriter::writeComment( std::string const& text, XmlFormatting fmt) { + ensureTagClosed(); + if (shouldIndent(fmt)) { + m_os << m_indent; + } + m_os << "<!--" << text << "-->"; + applyFormatting(fmt); + return *this; + } + + void XmlWriter::writeStylesheetRef( std::string const& url ) { + m_os << "<?xml-stylesheet type=\"text/xsl\" href=\"" << url << "\"?>\n"; + } + + XmlWriter& XmlWriter::writeBlankLine() { + ensureTagClosed(); + m_os << '\n'; + return *this; + } + + void XmlWriter::ensureTagClosed() { + if( m_tagIsOpen ) { + m_os << '>' << std::flush; + newlineIfNecessary(); + m_tagIsOpen = false; + } + } + + void XmlWriter::applyFormatting(XmlFormatting fmt) { + m_needsNewline = shouldNewline(fmt); + } + + void XmlWriter::writeDeclaration() { + m_os << "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"; + } + + void XmlWriter::newlineIfNecessary() { + if( m_needsNewline ) { + m_os << std::endl; + m_needsNewline = false; + } + } +} +// end catch_xmlwriter.cpp +// start catch_reporter_bases.cpp + +#include <cstring> +#include <cfloat> +#include <cstdio> +#include <cassert> +#include <memory> + +namespace Catch { + void prepareExpandedExpression(AssertionResult& result) { + result.getExpandedExpression(); + } + + // Because formatting using c++ streams is stateful, drop down to C is required + // Alternatively we could use stringstream, but its performance is... not good. + std::string getFormattedDuration( double duration ) { + // Max exponent + 1 is required to represent the whole part + // + 1 for decimal point + // + 3 for the 3 decimal places + // + 1 for null terminator + const std::size_t maxDoubleSize = DBL_MAX_10_EXP + 1 + 1 + 3 + 1; + char buffer[maxDoubleSize]; + + // Save previous errno, to prevent sprintf from overwriting it + ErrnoGuard guard; +#ifdef _MSC_VER + sprintf_s(buffer, "%.3f", duration); +#else + std::sprintf(buffer, "%.3f", duration); +#endif + return std::string(buffer); + } + + std::string serializeFilters( std::vector<std::string> const& container ) { + ReusableStringStream oss; + bool first = true; + for (auto&& filter : container) + { + if (!first) + oss << ' '; + else + first = false; + + oss << filter; + } + return oss.str(); + } + + TestEventListenerBase::TestEventListenerBase(ReporterConfig const & _config) + :StreamingReporterBase(_config) {} + + std::set<Verbosity> TestEventListenerBase::getSupportedVerbosities() { + return { Verbosity::Quiet, Verbosity::Normal, Verbosity::High }; + } + + void TestEventListenerBase::assertionStarting(AssertionInfo const &) {} + + bool TestEventListenerBase::assertionEnded(AssertionStats const &) { + return false; + } + +} // end namespace Catch +// end catch_reporter_bases.cpp +// start catch_reporter_compact.cpp + +namespace { + +#ifdef CATCH_PLATFORM_MAC + const char* failedString() { return "FAILED"; } + const char* passedString() { return "PASSED"; } +#else + const char* failedString() { return "failed"; } + const char* passedString() { return "passed"; } +#endif + + // Colour::LightGrey + Catch::Colour::Code dimColour() { return Catch::Colour::FileName; } + + std::string bothOrAll( std::size_t count ) { + return count == 1 ? std::string() : + count == 2 ? "both " : "all " ; + } + +} // anon namespace + +namespace Catch { +namespace { +// Colour, message variants: +// - white: No tests ran. +// - red: Failed [both/all] N test cases, failed [both/all] M assertions. +// - white: Passed [both/all] N test cases (no assertions). +// - red: Failed N tests cases, failed M assertions. +// - green: Passed [both/all] N tests cases with M assertions. +void printTotals(std::ostream& out, const Totals& totals) { + if (totals.testCases.total() == 0) { + out << "No tests ran."; + } else if (totals.testCases.failed == totals.testCases.total()) { + Colour colour(Colour::ResultError); + const std::string qualify_assertions_failed = + totals.assertions.failed == totals.assertions.total() ? + bothOrAll(totals.assertions.failed) : std::string(); + out << + "Failed " << bothOrAll(totals.testCases.failed) + << pluralise(totals.testCases.failed, "test case") << ", " + "failed " << qualify_assertions_failed << + pluralise(totals.assertions.failed, "assertion") << '.'; + } else if (totals.assertions.total() == 0) { + out << + "Passed " << bothOrAll(totals.testCases.total()) + << pluralise(totals.testCases.total(), "test case") + << " (no assertions)."; + } else if (totals.assertions.failed) { + Colour colour(Colour::ResultError); + out << + "Failed " << pluralise(totals.testCases.failed, "test case") << ", " + "failed " << pluralise(totals.assertions.failed, "assertion") << '.'; + } else { + Colour colour(Colour::ResultSuccess); + out << + "Passed " << bothOrAll(totals.testCases.passed) + << pluralise(totals.testCases.passed, "test case") << + " with " << pluralise(totals.assertions.passed, "assertion") << '.'; + } +} + +// Implementation of CompactReporter formatting +class AssertionPrinter { +public: + AssertionPrinter& operator= (AssertionPrinter const&) = delete; + AssertionPrinter(AssertionPrinter const&) = delete; + AssertionPrinter(std::ostream& _stream, AssertionStats const& _stats, bool _printInfoMessages) + : stream(_stream) + , result(_stats.assertionResult) + , messages(_stats.infoMessages) + , itMessage(_stats.infoMessages.begin()) + , printInfoMessages(_printInfoMessages) {} + + void print() { + printSourceInfo(); + + itMessage = messages.begin(); + + switch (result.getResultType()) { + case ResultWas::Ok: + printResultType(Colour::ResultSuccess, passedString()); + printOriginalExpression(); + printReconstructedExpression(); + if (!result.hasExpression()) + printRemainingMessages(Colour::None); + else + printRemainingMessages(); + break; + case ResultWas::ExpressionFailed: + if (result.isOk()) + printResultType(Colour::ResultSuccess, failedString() + std::string(" - but was ok")); + else + printResultType(Colour::Error, failedString()); + printOriginalExpression(); + printReconstructedExpression(); + printRemainingMessages(); + break; + case ResultWas::ThrewException: + printResultType(Colour::Error, failedString()); + printIssue("unexpected exception with message:"); + printMessage(); + printExpressionWas(); + printRemainingMessages(); + break; + case ResultWas::FatalErrorCondition: + printResultType(Colour::Error, failedString()); + printIssue("fatal error condition with message:"); + printMessage(); + printExpressionWas(); + printRemainingMessages(); + break; + case ResultWas::DidntThrowException: + printResultType(Colour::Error, failedString()); + printIssue("expected exception, got none"); + printExpressionWas(); + printRemainingMessages(); + break; + case ResultWas::Info: + printResultType(Colour::None, "info"); + printMessage(); + printRemainingMessages(); + break; + case ResultWas::Warning: + printResultType(Colour::None, "warning"); + printMessage(); + printRemainingMessages(); + break; + case ResultWas::ExplicitFailure: + printResultType(Colour::Error, failedString()); + printIssue("explicitly"); + printRemainingMessages(Colour::None); + break; + // These cases are here to prevent compiler warnings + case ResultWas::Unknown: + case ResultWas::FailureBit: + case ResultWas::Exception: + printResultType(Colour::Error, "** internal error **"); + break; + } + } + +private: + void printSourceInfo() const { + Colour colourGuard(Colour::FileName); + stream << result.getSourceInfo() << ':'; + } + + void printResultType(Colour::Code colour, std::string const& passOrFail) const { + if (!passOrFail.empty()) { + { + Colour colourGuard(colour); + stream << ' ' << passOrFail; + } + stream << ':'; + } + } + + void printIssue(std::string const& issue) const { + stream << ' ' << issue; + } + + void printExpressionWas() { + if (result.hasExpression()) { + stream << ';'; + { + Colour colour(dimColour()); + stream << " expression was:"; + } + printOriginalExpression(); + } + } + + void printOriginalExpression() const { + if (result.hasExpression()) { + stream << ' ' << result.getExpression(); + } + } + + void printReconstructedExpression() const { + if (result.hasExpandedExpression()) { + { + Colour colour(dimColour()); + stream << " for: "; + } + stream << result.getExpandedExpression(); + } + } + + void printMessage() { + if (itMessage != messages.end()) { + stream << " '" << itMessage->message << '\''; + ++itMessage; + } + } + + void printRemainingMessages(Colour::Code colour = dimColour()) { + if (itMessage == messages.end()) + return; + + const auto itEnd = messages.cend(); + const auto N = static_cast<std::size_t>(std::distance(itMessage, itEnd)); + + { + Colour colourGuard(colour); + stream << " with " << pluralise(N, "message") << ':'; + } + + while (itMessage != itEnd) { + // If this assertion is a warning ignore any INFO messages + if (printInfoMessages || itMessage->type != ResultWas::Info) { + printMessage(); + if (itMessage != itEnd) { + Colour colourGuard(dimColour()); + stream << " and"; + } + continue; + } + ++itMessage; + } + } + +private: + std::ostream& stream; + AssertionResult const& result; + std::vector<MessageInfo> messages; + std::vector<MessageInfo>::const_iterator itMessage; + bool printInfoMessages; +}; + +} // anon namespace + + std::string CompactReporter::getDescription() { + return "Reports test results on a single line, suitable for IDEs"; + } + + ReporterPreferences CompactReporter::getPreferences() const { + return m_reporterPrefs; + } + + void CompactReporter::noMatchingTestCases( std::string const& spec ) { + stream << "No test cases matched '" << spec << '\'' << std::endl; + } + + void CompactReporter::assertionStarting( AssertionInfo const& ) {} + + bool CompactReporter::assertionEnded( AssertionStats const& _assertionStats ) { + AssertionResult const& result = _assertionStats.assertionResult; + + bool printInfoMessages = true; + + // Drop out if result was successful and we're not printing those + if( !m_config->includeSuccessfulResults() && result.isOk() ) { + if( result.getResultType() != ResultWas::Warning ) + return false; + printInfoMessages = false; + } + + AssertionPrinter printer( stream, _assertionStats, printInfoMessages ); + printer.print(); + + stream << std::endl; + return true; + } + + void CompactReporter::sectionEnded(SectionStats const& _sectionStats) { + if (m_config->showDurations() == ShowDurations::Always) { + stream << getFormattedDuration(_sectionStats.durationInSeconds) << " s: " << _sectionStats.sectionInfo.name << std::endl; + } + } + + void CompactReporter::testRunEnded( TestRunStats const& _testRunStats ) { + printTotals( stream, _testRunStats.totals ); + stream << '\n' << std::endl; + StreamingReporterBase::testRunEnded( _testRunStats ); + } + + CompactReporter::~CompactReporter() {} + + CATCH_REGISTER_REPORTER( "compact", CompactReporter ) + +} // end namespace Catch +// end catch_reporter_compact.cpp +// start catch_reporter_console.cpp + +#include <cfloat> +#include <cstdio> + +#if defined(_MSC_VER) +#pragma warning(push) +#pragma warning(disable:4061) // Not all labels are EXPLICITLY handled in switch + // Note that 4062 (not all labels are handled and default is missing) is enabled +#endif + +#if defined(__clang__) +# pragma clang diagnostic push +// For simplicity, benchmarking-only helpers are always enabled +# pragma clang diagnostic ignored "-Wunused-function" +#endif + +namespace Catch { + +namespace { + +// Formatter impl for ConsoleReporter +class ConsoleAssertionPrinter { +public: + ConsoleAssertionPrinter& operator= (ConsoleAssertionPrinter const&) = delete; + ConsoleAssertionPrinter(ConsoleAssertionPrinter const&) = delete; + ConsoleAssertionPrinter(std::ostream& _stream, AssertionStats const& _stats, bool _printInfoMessages) + : stream(_stream), + stats(_stats), + result(_stats.assertionResult), + colour(Colour::None), + message(result.getMessage()), + messages(_stats.infoMessages), + printInfoMessages(_printInfoMessages) { + switch (result.getResultType()) { + case ResultWas::Ok: + colour = Colour::Success; + passOrFail = "PASSED"; + //if( result.hasMessage() ) + if (_stats.infoMessages.size() == 1) + messageLabel = "with message"; + if (_stats.infoMessages.size() > 1) + messageLabel = "with messages"; + break; + case ResultWas::ExpressionFailed: + if (result.isOk()) { + colour = Colour::Success; + passOrFail = "FAILED - but was ok"; + } else { + colour = Colour::Error; + passOrFail = "FAILED"; + } + if (_stats.infoMessages.size() == 1) + messageLabel = "with message"; + if (_stats.infoMessages.size() > 1) + messageLabel = "with messages"; + break; + case ResultWas::ThrewException: + colour = Colour::Error; + passOrFail = "FAILED"; + messageLabel = "due to unexpected exception with "; + if (_stats.infoMessages.size() == 1) + messageLabel += "message"; + if (_stats.infoMessages.size() > 1) + messageLabel += "messages"; + break; + case ResultWas::FatalErrorCondition: + colour = Colour::Error; + passOrFail = "FAILED"; + messageLabel = "due to a fatal error condition"; + break; + case ResultWas::DidntThrowException: + colour = Colour::Error; + passOrFail = "FAILED"; + messageLabel = "because no exception was thrown where one was expected"; + break; + case ResultWas::Info: + messageLabel = "info"; + break; + case ResultWas::Warning: + messageLabel = "warning"; + break; + case ResultWas::ExplicitFailure: + passOrFail = "FAILED"; + colour = Colour::Error; + if (_stats.infoMessages.size() == 1) + messageLabel = "explicitly with message"; + if (_stats.infoMessages.size() > 1) + messageLabel = "explicitly with messages"; + break; + // These cases are here to prevent compiler warnings + case ResultWas::Unknown: + case ResultWas::FailureBit: + case ResultWas::Exception: + passOrFail = "** internal error **"; + colour = Colour::Error; + break; + } + } + + void print() const { + printSourceInfo(); + if (stats.totals.assertions.total() > 0) { + printResultType(); + printOriginalExpression(); + printReconstructedExpression(); + } else { + stream << '\n'; + } + printMessage(); + } + +private: + void printResultType() const { + if (!passOrFail.empty()) { + Colour colourGuard(colour); + stream << passOrFail << ":\n"; + } + } + void printOriginalExpression() const { + if (result.hasExpression()) { + Colour colourGuard(Colour::OriginalExpression); + stream << " "; + stream << result.getExpressionInMacro(); + stream << '\n'; + } + } + void printReconstructedExpression() const { + if (result.hasExpandedExpression()) { + stream << "with expansion:\n"; + Colour colourGuard(Colour::ReconstructedExpression); + stream << Column(result.getExpandedExpression()).indent(2) << '\n'; + } + } + void printMessage() const { + if (!messageLabel.empty()) + stream << messageLabel << ':' << '\n'; + for (auto const& msg : messages) { + // If this assertion is a warning ignore any INFO messages + if (printInfoMessages || msg.type != ResultWas::Info) + stream << Column(msg.message).indent(2) << '\n'; + } + } + void printSourceInfo() const { + Colour colourGuard(Colour::FileName); + stream << result.getSourceInfo() << ": "; + } + + std::ostream& stream; + AssertionStats const& stats; + AssertionResult const& result; + Colour::Code colour; + std::string passOrFail; + std::string messageLabel; + std::string message; + std::vector<MessageInfo> messages; + bool printInfoMessages; +}; + +std::size_t makeRatio(std::size_t number, std::size_t total) { + std::size_t ratio = total > 0 ? CATCH_CONFIG_CONSOLE_WIDTH * number / total : 0; + return (ratio == 0 && number > 0) ? 1 : ratio; +} + +std::size_t& findMax(std::size_t& i, std::size_t& j, std::size_t& k) { + if (i > j && i > k) + return i; + else if (j > k) + return j; + else + return k; +} + +struct ColumnInfo { + enum Justification { Left, Right }; + std::string name; + int width; + Justification justification; +}; +struct ColumnBreak {}; +struct RowBreak {}; + +class Duration { + enum class Unit { + Auto, + Nanoseconds, + Microseconds, + Milliseconds, + Seconds, + Minutes + }; + static const uint64_t s_nanosecondsInAMicrosecond = 1000; + static const uint64_t s_nanosecondsInAMillisecond = 1000 * s_nanosecondsInAMicrosecond; + static const uint64_t s_nanosecondsInASecond = 1000 * s_nanosecondsInAMillisecond; + static const uint64_t s_nanosecondsInAMinute = 60 * s_nanosecondsInASecond; + + double m_inNanoseconds; + Unit m_units; + +public: + explicit Duration(double inNanoseconds, Unit units = Unit::Auto) + : m_inNanoseconds(inNanoseconds), + m_units(units) { + if (m_units == Unit::Auto) { + if (m_inNanoseconds < s_nanosecondsInAMicrosecond) + m_units = Unit::Nanoseconds; + else if (m_inNanoseconds < s_nanosecondsInAMillisecond) + m_units = Unit::Microseconds; + else if (m_inNanoseconds < s_nanosecondsInASecond) + m_units = Unit::Milliseconds; + else if (m_inNanoseconds < s_nanosecondsInAMinute) + m_units = Unit::Seconds; + else + m_units = Unit::Minutes; + } + + } + + auto value() const -> double { + switch (m_units) { + case Unit::Microseconds: + return m_inNanoseconds / static_cast<double>(s_nanosecondsInAMicrosecond); + case Unit::Milliseconds: + return m_inNanoseconds / static_cast<double>(s_nanosecondsInAMillisecond); + case Unit::Seconds: + return m_inNanoseconds / static_cast<double>(s_nanosecondsInASecond); + case Unit::Minutes: + return m_inNanoseconds / static_cast<double>(s_nanosecondsInAMinute); + default: + return m_inNanoseconds; + } + } + auto unitsAsString() const -> std::string { + switch (m_units) { + case Unit::Nanoseconds: + return "ns"; + case Unit::Microseconds: + return "us"; + case Unit::Milliseconds: + return "ms"; + case Unit::Seconds: + return "s"; + case Unit::Minutes: + return "m"; + default: + return "** internal error **"; + } + + } + friend auto operator << (std::ostream& os, Duration const& duration) -> std::ostream& { + return os << duration.value() << ' ' << duration.unitsAsString(); + } +}; +} // end anon namespace + +class TablePrinter { + std::ostream& m_os; + std::vector<ColumnInfo> m_columnInfos; + std::ostringstream m_oss; + int m_currentColumn = -1; + bool m_isOpen = false; + +public: + TablePrinter( std::ostream& os, std::vector<ColumnInfo> columnInfos ) + : m_os( os ), + m_columnInfos( std::move( columnInfos ) ) {} + + auto columnInfos() const -> std::vector<ColumnInfo> const& { + return m_columnInfos; + } + + void open() { + if (!m_isOpen) { + m_isOpen = true; + *this << RowBreak(); + + Columns headerCols; + Spacer spacer(2); + for (auto const& info : m_columnInfos) { + headerCols += Column(info.name).width(static_cast<std::size_t>(info.width - 2)); + headerCols += spacer; + } + m_os << headerCols << '\n'; + + m_os << Catch::getLineOfChars<'-'>() << '\n'; + } + } + void close() { + if (m_isOpen) { + *this << RowBreak(); + m_os << std::endl; + m_isOpen = false; + } + } + + template<typename T> + friend TablePrinter& operator << (TablePrinter& tp, T const& value) { + tp.m_oss << value; + return tp; + } + + friend TablePrinter& operator << (TablePrinter& tp, ColumnBreak) { + auto colStr = tp.m_oss.str(); + const auto strSize = colStr.size(); + tp.m_oss.str(""); + tp.open(); + if (tp.m_currentColumn == static_cast<int>(tp.m_columnInfos.size() - 1)) { + tp.m_currentColumn = -1; + tp.m_os << '\n'; + } + tp.m_currentColumn++; + + auto colInfo = tp.m_columnInfos[tp.m_currentColumn]; + auto padding = (strSize + 1 < static_cast<std::size_t>(colInfo.width)) + ? std::string(colInfo.width - (strSize + 1), ' ') + : std::string(); + if (colInfo.justification == ColumnInfo::Left) + tp.m_os << colStr << padding << ' '; + else + tp.m_os << padding << colStr << ' '; + return tp; + } + + friend TablePrinter& operator << (TablePrinter& tp, RowBreak) { + if (tp.m_currentColumn > 0) { + tp.m_os << '\n'; + tp.m_currentColumn = -1; + } + return tp; + } +}; + +ConsoleReporter::ConsoleReporter(ReporterConfig const& config) + : StreamingReporterBase(config), + m_tablePrinter(new TablePrinter(config.stream(), + [&config]() -> std::vector<ColumnInfo> { + if (config.fullConfig()->benchmarkNoAnalysis()) + { + return{ + { "benchmark name", CATCH_CONFIG_CONSOLE_WIDTH - 43, ColumnInfo::Left }, + { " samples", 14, ColumnInfo::Right }, + { " iterations", 14, ColumnInfo::Right }, + { " mean", 14, ColumnInfo::Right } + }; + } + else + { + return{ + { "benchmark name", CATCH_CONFIG_CONSOLE_WIDTH - 43, ColumnInfo::Left }, + { "samples mean std dev", 14, ColumnInfo::Right }, + { "iterations low mean low std dev", 14, ColumnInfo::Right }, + { "estimated high mean high std dev", 14, ColumnInfo::Right } + }; + } + }())) {} +ConsoleReporter::~ConsoleReporter() = default; + +std::string ConsoleReporter::getDescription() { + return "Reports test results as plain lines of text"; +} + +void ConsoleReporter::noMatchingTestCases(std::string const& spec) { + stream << "No test cases matched '" << spec << '\'' << std::endl; +} + +void ConsoleReporter::reportInvalidArguments(std::string const&arg){ + stream << "Invalid Filter: " << arg << std::endl; +} + +void ConsoleReporter::assertionStarting(AssertionInfo const&) {} + +bool ConsoleReporter::assertionEnded(AssertionStats const& _assertionStats) { + AssertionResult const& result = _assertionStats.assertionResult; + + bool includeResults = m_config->includeSuccessfulResults() || !result.isOk(); + + // Drop out if result was successful but we're not printing them. + if (!includeResults && result.getResultType() != ResultWas::Warning) + return false; + + lazyPrint(); + + ConsoleAssertionPrinter printer(stream, _assertionStats, includeResults); + printer.print(); + stream << std::endl; + return true; +} + +void ConsoleReporter::sectionStarting(SectionInfo const& _sectionInfo) { + m_tablePrinter->close(); + m_headerPrinted = false; + StreamingReporterBase::sectionStarting(_sectionInfo); +} +void ConsoleReporter::sectionEnded(SectionStats const& _sectionStats) { + m_tablePrinter->close(); + if (_sectionStats.missingAssertions) { + lazyPrint(); + Colour colour(Colour::ResultError); + if (m_sectionStack.size() > 1) + stream << "\nNo assertions in section"; + else + stream << "\nNo assertions in test case"; + stream << " '" << _sectionStats.sectionInfo.name << "'\n" << std::endl; + } + if (m_config->showDurations() == ShowDurations::Always) { + stream << getFormattedDuration(_sectionStats.durationInSeconds) << " s: " << _sectionStats.sectionInfo.name << std::endl; + } + if (m_headerPrinted) { + m_headerPrinted = false; + } + StreamingReporterBase::sectionEnded(_sectionStats); +} + +#if defined(CATCH_CONFIG_ENABLE_BENCHMARKING) +void ConsoleReporter::benchmarkPreparing(std::string const& name) { + lazyPrintWithoutClosingBenchmarkTable(); + + auto nameCol = Column(name).width(static_cast<std::size_t>(m_tablePrinter->columnInfos()[0].width - 2)); + + bool firstLine = true; + for (auto line : nameCol) { + if (!firstLine) + (*m_tablePrinter) << ColumnBreak() << ColumnBreak() << ColumnBreak(); + else + firstLine = false; + + (*m_tablePrinter) << line << ColumnBreak(); + } +} + +void ConsoleReporter::benchmarkStarting(BenchmarkInfo const& info) { + (*m_tablePrinter) << info.samples << ColumnBreak() + << info.iterations << ColumnBreak(); + if (!m_config->benchmarkNoAnalysis()) + (*m_tablePrinter) << Duration(info.estimatedDuration) << ColumnBreak(); +} +void ConsoleReporter::benchmarkEnded(BenchmarkStats<> const& stats) { + if (m_config->benchmarkNoAnalysis()) + { + (*m_tablePrinter) << Duration(stats.mean.point.count()) << ColumnBreak(); + } + else + { + (*m_tablePrinter) << ColumnBreak() + << Duration(stats.mean.point.count()) << ColumnBreak() + << Duration(stats.mean.lower_bound.count()) << ColumnBreak() + << Duration(stats.mean.upper_bound.count()) << ColumnBreak() << ColumnBreak() + << Duration(stats.standardDeviation.point.count()) << ColumnBreak() + << Duration(stats.standardDeviation.lower_bound.count()) << ColumnBreak() + << Duration(stats.standardDeviation.upper_bound.count()) << ColumnBreak() << ColumnBreak() << ColumnBreak() << ColumnBreak() << ColumnBreak(); + } +} + +void ConsoleReporter::benchmarkFailed(std::string const& error) { + Colour colour(Colour::Red); + (*m_tablePrinter) + << "Benchmark failed (" << error << ')' + << ColumnBreak() << RowBreak(); +} +#endif // CATCH_CONFIG_ENABLE_BENCHMARKING + +void ConsoleReporter::testCaseEnded(TestCaseStats const& _testCaseStats) { + m_tablePrinter->close(); + StreamingReporterBase::testCaseEnded(_testCaseStats); + m_headerPrinted = false; +} +void ConsoleReporter::testGroupEnded(TestGroupStats const& _testGroupStats) { + if (currentGroupInfo.used) { + printSummaryDivider(); + stream << "Summary for group '" << _testGroupStats.groupInfo.name << "':\n"; + printTotals(_testGroupStats.totals); + stream << '\n' << std::endl; + } + StreamingReporterBase::testGroupEnded(_testGroupStats); +} +void ConsoleReporter::testRunEnded(TestRunStats const& _testRunStats) { + printTotalsDivider(_testRunStats.totals); + printTotals(_testRunStats.totals); + stream << std::endl; + StreamingReporterBase::testRunEnded(_testRunStats); +} +void ConsoleReporter::testRunStarting(TestRunInfo const& _testInfo) { + StreamingReporterBase::testRunStarting(_testInfo); + printTestFilters(); +} + +void ConsoleReporter::lazyPrint() { + + m_tablePrinter->close(); + lazyPrintWithoutClosingBenchmarkTable(); +} + +void ConsoleReporter::lazyPrintWithoutClosingBenchmarkTable() { + + if (!currentTestRunInfo.used) + lazyPrintRunInfo(); + if (!currentGroupInfo.used) + lazyPrintGroupInfo(); + + if (!m_headerPrinted) { + printTestCaseAndSectionHeader(); + m_headerPrinted = true; + } +} +void ConsoleReporter::lazyPrintRunInfo() { + stream << '\n' << getLineOfChars<'~'>() << '\n'; + Colour colour(Colour::SecondaryText); + stream << currentTestRunInfo->name + << " is a Catch v" << libraryVersion() << " host application.\n" + << "Run with -? for options\n\n"; + + if (m_config->rngSeed() != 0) + stream << "Randomness seeded to: " << m_config->rngSeed() << "\n\n"; + + currentTestRunInfo.used = true; +} +void ConsoleReporter::lazyPrintGroupInfo() { + if (!currentGroupInfo->name.empty() && currentGroupInfo->groupsCounts > 1) { + printClosedHeader("Group: " + currentGroupInfo->name); + currentGroupInfo.used = true; + } +} +void ConsoleReporter::printTestCaseAndSectionHeader() { + assert(!m_sectionStack.empty()); + printOpenHeader(currentTestCaseInfo->name); + + if (m_sectionStack.size() > 1) { + Colour colourGuard(Colour::Headers); + + auto + it = m_sectionStack.begin() + 1, // Skip first section (test case) + itEnd = m_sectionStack.end(); + for (; it != itEnd; ++it) + printHeaderString(it->name, 2); + } + + SourceLineInfo lineInfo = m_sectionStack.back().lineInfo; + + stream << getLineOfChars<'-'>() << '\n'; + Colour colourGuard(Colour::FileName); + stream << lineInfo << '\n'; + stream << getLineOfChars<'.'>() << '\n' << std::endl; +} + +void ConsoleReporter::printClosedHeader(std::string const& _name) { + printOpenHeader(_name); + stream << getLineOfChars<'.'>() << '\n'; +} +void ConsoleReporter::printOpenHeader(std::string const& _name) { + stream << getLineOfChars<'-'>() << '\n'; + { + Colour colourGuard(Colour::Headers); + printHeaderString(_name); + } +} + +// if string has a : in first line will set indent to follow it on +// subsequent lines +void ConsoleReporter::printHeaderString(std::string const& _string, std::size_t indent) { + std::size_t i = _string.find(": "); + if (i != std::string::npos) + i += 2; + else + i = 0; + stream << Column(_string).indent(indent + i).initialIndent(indent) << '\n'; +} + +struct SummaryColumn { + + SummaryColumn( std::string _label, Colour::Code _colour ) + : label( std::move( _label ) ), + colour( _colour ) {} + SummaryColumn addRow( std::size_t count ) { + ReusableStringStream rss; + rss << count; + std::string row = rss.str(); + for (auto& oldRow : rows) { + while (oldRow.size() < row.size()) + oldRow = ' ' + oldRow; + while (oldRow.size() > row.size()) + row = ' ' + row; + } + rows.push_back(row); + return *this; + } + + std::string label; + Colour::Code colour; + std::vector<std::string> rows; + +}; + +void ConsoleReporter::printTotals( Totals const& totals ) { + if (totals.testCases.total() == 0) { + stream << Colour(Colour::Warning) << "No tests ran\n"; + } else if (totals.assertions.total() > 0 && totals.testCases.allPassed()) { + stream << Colour(Colour::ResultSuccess) << "All tests passed"; + stream << " (" + << pluralise(totals.assertions.passed, "assertion") << " in " + << pluralise(totals.testCases.passed, "test case") << ')' + << '\n'; + } else { + + std::vector<SummaryColumn> columns; + columns.push_back(SummaryColumn("", Colour::None) + .addRow(totals.testCases.total()) + .addRow(totals.assertions.total())); + columns.push_back(SummaryColumn("passed", Colour::Success) + .addRow(totals.testCases.passed) + .addRow(totals.assertions.passed)); + columns.push_back(SummaryColumn("failed", Colour::ResultError) + .addRow(totals.testCases.failed) + .addRow(totals.assertions.failed)); + columns.push_back(SummaryColumn("failed as expected", Colour::ResultExpectedFailure) + .addRow(totals.testCases.failedButOk) + .addRow(totals.assertions.failedButOk)); + + printSummaryRow("test cases", columns, 0); + printSummaryRow("assertions", columns, 1); + } +} +void ConsoleReporter::printSummaryRow(std::string const& label, std::vector<SummaryColumn> const& cols, std::size_t row) { + for (auto col : cols) { + std::string value = col.rows[row]; + if (col.label.empty()) { + stream << label << ": "; + if (value != "0") + stream << value; + else + stream << Colour(Colour::Warning) << "- none -"; + } else if (value != "0") { + stream << Colour(Colour::LightGrey) << " | "; + stream << Colour(col.colour) + << value << ' ' << col.label; + } + } + stream << '\n'; +} + +void ConsoleReporter::printTotalsDivider(Totals const& totals) { + if (totals.testCases.total() > 0) { + std::size_t failedRatio = makeRatio(totals.testCases.failed, totals.testCases.total()); + std::size_t failedButOkRatio = makeRatio(totals.testCases.failedButOk, totals.testCases.total()); + std::size_t passedRatio = makeRatio(totals.testCases.passed, totals.testCases.total()); + while (failedRatio + failedButOkRatio + passedRatio < CATCH_CONFIG_CONSOLE_WIDTH - 1) + findMax(failedRatio, failedButOkRatio, passedRatio)++; + while (failedRatio + failedButOkRatio + passedRatio > CATCH_CONFIG_CONSOLE_WIDTH - 1) + findMax(failedRatio, failedButOkRatio, passedRatio)--; + + stream << Colour(Colour::Error) << std::string(failedRatio, '='); + stream << Colour(Colour::ResultExpectedFailure) << std::string(failedButOkRatio, '='); + if (totals.testCases.allPassed()) + stream << Colour(Colour::ResultSuccess) << std::string(passedRatio, '='); + else + stream << Colour(Colour::Success) << std::string(passedRatio, '='); + } else { + stream << Colour(Colour::Warning) << std::string(CATCH_CONFIG_CONSOLE_WIDTH - 1, '='); + } + stream << '\n'; +} +void ConsoleReporter::printSummaryDivider() { + stream << getLineOfChars<'-'>() << '\n'; +} + +void ConsoleReporter::printTestFilters() { + if (m_config->testSpec().hasFilters()) { + Colour guard(Colour::BrightYellow); + stream << "Filters: " << serializeFilters(m_config->getTestsOrTags()) << '\n'; + } +} + +CATCH_REGISTER_REPORTER("console", ConsoleReporter) + +} // end namespace Catch + +#if defined(_MSC_VER) +#pragma warning(pop) +#endif + +#if defined(__clang__) +# pragma clang diagnostic pop +#endif +// end catch_reporter_console.cpp +// start catch_reporter_junit.cpp + +#include <cassert> +#include <sstream> +#include <ctime> +#include <algorithm> + +namespace Catch { + + namespace { + std::string getCurrentTimestamp() { + // Beware, this is not reentrant because of backward compatibility issues + // Also, UTC only, again because of backward compatibility (%z is C++11) + time_t rawtime; + std::time(&rawtime); + auto const timeStampSize = sizeof("2017-01-16T17:06:45Z"); + +#ifdef _MSC_VER + std::tm timeInfo = {}; + gmtime_s(&timeInfo, &rawtime); +#else + std::tm* timeInfo; + timeInfo = std::gmtime(&rawtime); +#endif + + char timeStamp[timeStampSize]; + const char * const fmt = "%Y-%m-%dT%H:%M:%SZ"; + +#ifdef _MSC_VER + std::strftime(timeStamp, timeStampSize, fmt, &timeInfo); +#else + std::strftime(timeStamp, timeStampSize, fmt, timeInfo); +#endif + return std::string(timeStamp); + } + + std::string fileNameTag(const std::vector<std::string> &tags) { + auto it = std::find_if(begin(tags), + end(tags), + [] (std::string const& tag) {return tag.front() == '#'; }); + if (it != tags.end()) + return it->substr(1); + return std::string(); + } + } // anonymous namespace + + JunitReporter::JunitReporter( ReporterConfig const& _config ) + : CumulativeReporterBase( _config ), + xml( _config.stream() ) + { + m_reporterPrefs.shouldRedirectStdOut = true; + m_reporterPrefs.shouldReportAllAssertions = true; + } + + JunitReporter::~JunitReporter() {} + + std::string JunitReporter::getDescription() { + return "Reports test results in an XML format that looks like Ant's junitreport target"; + } + + void JunitReporter::noMatchingTestCases( std::string const& /*spec*/ ) {} + + void JunitReporter::testRunStarting( TestRunInfo const& runInfo ) { + CumulativeReporterBase::testRunStarting( runInfo ); + xml.startElement( "testsuites" ); + } + + void JunitReporter::testGroupStarting( GroupInfo const& groupInfo ) { + suiteTimer.start(); + stdOutForSuite.clear(); + stdErrForSuite.clear(); + unexpectedExceptions = 0; + CumulativeReporterBase::testGroupStarting( groupInfo ); + } + + void JunitReporter::testCaseStarting( TestCaseInfo const& testCaseInfo ) { + m_okToFail = testCaseInfo.okToFail(); + } + + bool JunitReporter::assertionEnded( AssertionStats const& assertionStats ) { + if( assertionStats.assertionResult.getResultType() == ResultWas::ThrewException && !m_okToFail ) + unexpectedExceptions++; + return CumulativeReporterBase::assertionEnded( assertionStats ); + } + + void JunitReporter::testCaseEnded( TestCaseStats const& testCaseStats ) { + stdOutForSuite += testCaseStats.stdOut; + stdErrForSuite += testCaseStats.stdErr; + CumulativeReporterBase::testCaseEnded( testCaseStats ); + } + + void JunitReporter::testGroupEnded( TestGroupStats const& testGroupStats ) { + double suiteTime = suiteTimer.getElapsedSeconds(); + CumulativeReporterBase::testGroupEnded( testGroupStats ); + writeGroup( *m_testGroups.back(), suiteTime ); + } + + void JunitReporter::testRunEndedCumulative() { + xml.endElement(); + } + + void JunitReporter::writeGroup( TestGroupNode const& groupNode, double suiteTime ) { + XmlWriter::ScopedElement e = xml.scopedElement( "testsuite" ); + + TestGroupStats const& stats = groupNode.value; + xml.writeAttribute( "name", stats.groupInfo.name ); + xml.writeAttribute( "errors", unexpectedExceptions ); + xml.writeAttribute( "failures", stats.totals.assertions.failed-unexpectedExceptions ); + xml.writeAttribute( "tests", stats.totals.assertions.total() ); + xml.writeAttribute( "hostname", "tbd" ); // !TBD + if( m_config->showDurations() == ShowDurations::Never ) + xml.writeAttribute( "time", "" ); + else + xml.writeAttribute( "time", suiteTime ); + xml.writeAttribute( "timestamp", getCurrentTimestamp() ); + + // Write properties if there are any + if (m_config->hasTestFilters() || m_config->rngSeed() != 0) { + auto properties = xml.scopedElement("properties"); + if (m_config->hasTestFilters()) { + xml.scopedElement("property") + .writeAttribute("name", "filters") + .writeAttribute("value", serializeFilters(m_config->getTestsOrTags())); + } + if (m_config->rngSeed() != 0) { + xml.scopedElement("property") + .writeAttribute("name", "random-seed") + .writeAttribute("value", m_config->rngSeed()); + } + } + + // Write test cases + for( auto const& child : groupNode.children ) + writeTestCase( *child ); + + xml.scopedElement( "system-out" ).writeText( trim( stdOutForSuite ), XmlFormatting::Newline ); + xml.scopedElement( "system-err" ).writeText( trim( stdErrForSuite ), XmlFormatting::Newline ); + } + + void JunitReporter::writeTestCase( TestCaseNode const& testCaseNode ) { + TestCaseStats const& stats = testCaseNode.value; + + // All test cases have exactly one section - which represents the + // test case itself. That section may have 0-n nested sections + assert( testCaseNode.children.size() == 1 ); + SectionNode const& rootSection = *testCaseNode.children.front(); + + std::string className = stats.testInfo.className; + + if( className.empty() ) { + className = fileNameTag(stats.testInfo.tags); + if ( className.empty() ) + className = "global"; + } + + if ( !m_config->name().empty() ) + className = m_config->name() + "." + className; + + writeSection( className, "", rootSection ); + } + + void JunitReporter::writeSection( std::string const& className, + std::string const& rootName, + SectionNode const& sectionNode ) { + std::string name = trim( sectionNode.stats.sectionInfo.name ); + if( !rootName.empty() ) + name = rootName + '/' + name; + + if( !sectionNode.assertions.empty() || + !sectionNode.stdOut.empty() || + !sectionNode.stdErr.empty() ) { + XmlWriter::ScopedElement e = xml.scopedElement( "testcase" ); + if( className.empty() ) { + xml.writeAttribute( "classname", name ); + xml.writeAttribute( "name", "root" ); + } + else { + xml.writeAttribute( "classname", className ); + xml.writeAttribute( "name", name ); + } + xml.writeAttribute( "time", ::Catch::Detail::stringify( sectionNode.stats.durationInSeconds ) ); + + writeAssertions( sectionNode ); + + if( !sectionNode.stdOut.empty() ) + xml.scopedElement( "system-out" ).writeText( trim( sectionNode.stdOut ), XmlFormatting::Newline ); + if( !sectionNode.stdErr.empty() ) + xml.scopedElement( "system-err" ).writeText( trim( sectionNode.stdErr ), XmlFormatting::Newline ); + } + for( auto const& childNode : sectionNode.childSections ) + if( className.empty() ) + writeSection( name, "", *childNode ); + else + writeSection( className, name, *childNode ); + } + + void JunitReporter::writeAssertions( SectionNode const& sectionNode ) { + for( auto const& assertion : sectionNode.assertions ) + writeAssertion( assertion ); + } + + void JunitReporter::writeAssertion( AssertionStats const& stats ) { + AssertionResult const& result = stats.assertionResult; + if( !result.isOk() ) { + std::string elementName; + switch( result.getResultType() ) { + case ResultWas::ThrewException: + case ResultWas::FatalErrorCondition: + elementName = "error"; + break; + case ResultWas::ExplicitFailure: + case ResultWas::ExpressionFailed: + case ResultWas::DidntThrowException: + elementName = "failure"; + break; + + // We should never see these here: + case ResultWas::Info: + case ResultWas::Warning: + case ResultWas::Ok: + case ResultWas::Unknown: + case ResultWas::FailureBit: + case ResultWas::Exception: + elementName = "internalError"; + break; + } + + XmlWriter::ScopedElement e = xml.scopedElement( elementName ); + + xml.writeAttribute( "message", result.getExpression() ); + xml.writeAttribute( "type", result.getTestMacroName() ); + + ReusableStringStream rss; + if (stats.totals.assertions.total() > 0) { + rss << "FAILED" << ":\n"; + if (result.hasExpression()) { + rss << " "; + rss << result.getExpressionInMacro(); + rss << '\n'; + } + if (result.hasExpandedExpression()) { + rss << "with expansion:\n"; + rss << Column(result.getExpandedExpression()).indent(2) << '\n'; + } + } else { + rss << '\n'; + } + + if( !result.getMessage().empty() ) + rss << result.getMessage() << '\n'; + for( auto const& msg : stats.infoMessages ) + if( msg.type == ResultWas::Info ) + rss << msg.message << '\n'; + + rss << "at " << result.getSourceInfo(); + xml.writeText( rss.str(), XmlFormatting::Newline ); + } + } + + CATCH_REGISTER_REPORTER( "junit", JunitReporter ) + +} // end namespace Catch +// end catch_reporter_junit.cpp +// start catch_reporter_listening.cpp + +#include <cassert> + +namespace Catch { + + ListeningReporter::ListeningReporter() { + // We will assume that listeners will always want all assertions + m_preferences.shouldReportAllAssertions = true; + } + + void ListeningReporter::addListener( IStreamingReporterPtr&& listener ) { + m_listeners.push_back( std::move( listener ) ); + } + + void ListeningReporter::addReporter(IStreamingReporterPtr&& reporter) { + assert(!m_reporter && "Listening reporter can wrap only 1 real reporter"); + m_reporter = std::move( reporter ); + m_preferences.shouldRedirectStdOut = m_reporter->getPreferences().shouldRedirectStdOut; + } + + ReporterPreferences ListeningReporter::getPreferences() const { + return m_preferences; + } + + std::set<Verbosity> ListeningReporter::getSupportedVerbosities() { + return std::set<Verbosity>{ }; + } + + void ListeningReporter::noMatchingTestCases( std::string const& spec ) { + for ( auto const& listener : m_listeners ) { + listener->noMatchingTestCases( spec ); + } + m_reporter->noMatchingTestCases( spec ); + } + + void ListeningReporter::reportInvalidArguments(std::string const&arg){ + for ( auto const& listener : m_listeners ) { + listener->reportInvalidArguments( arg ); + } + m_reporter->reportInvalidArguments( arg ); + } + +#if defined(CATCH_CONFIG_ENABLE_BENCHMARKING) + void ListeningReporter::benchmarkPreparing( std::string const& name ) { + for (auto const& listener : m_listeners) { + listener->benchmarkPreparing(name); + } + m_reporter->benchmarkPreparing(name); + } + void ListeningReporter::benchmarkStarting( BenchmarkInfo const& benchmarkInfo ) { + for ( auto const& listener : m_listeners ) { + listener->benchmarkStarting( benchmarkInfo ); + } + m_reporter->benchmarkStarting( benchmarkInfo ); + } + void ListeningReporter::benchmarkEnded( BenchmarkStats<> const& benchmarkStats ) { + for ( auto const& listener : m_listeners ) { + listener->benchmarkEnded( benchmarkStats ); + } + m_reporter->benchmarkEnded( benchmarkStats ); + } + + void ListeningReporter::benchmarkFailed( std::string const& error ) { + for (auto const& listener : m_listeners) { + listener->benchmarkFailed(error); + } + m_reporter->benchmarkFailed(error); + } +#endif // CATCH_CONFIG_ENABLE_BENCHMARKING + + void ListeningReporter::testRunStarting( TestRunInfo const& testRunInfo ) { + for ( auto const& listener : m_listeners ) { + listener->testRunStarting( testRunInfo ); + } + m_reporter->testRunStarting( testRunInfo ); + } + + void ListeningReporter::testGroupStarting( GroupInfo const& groupInfo ) { + for ( auto const& listener : m_listeners ) { + listener->testGroupStarting( groupInfo ); + } + m_reporter->testGroupStarting( groupInfo ); + } + + void ListeningReporter::testCaseStarting( TestCaseInfo const& testInfo ) { + for ( auto const& listener : m_listeners ) { + listener->testCaseStarting( testInfo ); + } + m_reporter->testCaseStarting( testInfo ); + } + + void ListeningReporter::sectionStarting( SectionInfo const& sectionInfo ) { + for ( auto const& listener : m_listeners ) { + listener->sectionStarting( sectionInfo ); + } + m_reporter->sectionStarting( sectionInfo ); + } + + void ListeningReporter::assertionStarting( AssertionInfo const& assertionInfo ) { + for ( auto const& listener : m_listeners ) { + listener->assertionStarting( assertionInfo ); + } + m_reporter->assertionStarting( assertionInfo ); + } + + // The return value indicates if the messages buffer should be cleared: + bool ListeningReporter::assertionEnded( AssertionStats const& assertionStats ) { + for( auto const& listener : m_listeners ) { + static_cast<void>( listener->assertionEnded( assertionStats ) ); + } + return m_reporter->assertionEnded( assertionStats ); + } + + void ListeningReporter::sectionEnded( SectionStats const& sectionStats ) { + for ( auto const& listener : m_listeners ) { + listener->sectionEnded( sectionStats ); + } + m_reporter->sectionEnded( sectionStats ); + } + + void ListeningReporter::testCaseEnded( TestCaseStats const& testCaseStats ) { + for ( auto const& listener : m_listeners ) { + listener->testCaseEnded( testCaseStats ); + } + m_reporter->testCaseEnded( testCaseStats ); + } + + void ListeningReporter::testGroupEnded( TestGroupStats const& testGroupStats ) { + for ( auto const& listener : m_listeners ) { + listener->testGroupEnded( testGroupStats ); + } + m_reporter->testGroupEnded( testGroupStats ); + } + + void ListeningReporter::testRunEnded( TestRunStats const& testRunStats ) { + for ( auto const& listener : m_listeners ) { + listener->testRunEnded( testRunStats ); + } + m_reporter->testRunEnded( testRunStats ); + } + + void ListeningReporter::skipTest( TestCaseInfo const& testInfo ) { + for ( auto const& listener : m_listeners ) { + listener->skipTest( testInfo ); + } + m_reporter->skipTest( testInfo ); + } + + bool ListeningReporter::isMulti() const { + return true; + } + +} // end namespace Catch +// end catch_reporter_listening.cpp +// start catch_reporter_xml.cpp + +#if defined(_MSC_VER) +#pragma warning(push) +#pragma warning(disable:4061) // Not all labels are EXPLICITLY handled in switch + // Note that 4062 (not all labels are handled + // and default is missing) is enabled +#endif + +namespace Catch { + XmlReporter::XmlReporter( ReporterConfig const& _config ) + : StreamingReporterBase( _config ), + m_xml(_config.stream()) + { + m_reporterPrefs.shouldRedirectStdOut = true; + m_reporterPrefs.shouldReportAllAssertions = true; + } + + XmlReporter::~XmlReporter() = default; + + std::string XmlReporter::getDescription() { + return "Reports test results as an XML document"; + } + + std::string XmlReporter::getStylesheetRef() const { + return std::string(); + } + + void XmlReporter::writeSourceInfo( SourceLineInfo const& sourceInfo ) { + m_xml + .writeAttribute( "filename", sourceInfo.file ) + .writeAttribute( "line", sourceInfo.line ); + } + + void XmlReporter::noMatchingTestCases( std::string const& s ) { + StreamingReporterBase::noMatchingTestCases( s ); + } + + void XmlReporter::testRunStarting( TestRunInfo const& testInfo ) { + StreamingReporterBase::testRunStarting( testInfo ); + std::string stylesheetRef = getStylesheetRef(); + if( !stylesheetRef.empty() ) + m_xml.writeStylesheetRef( stylesheetRef ); + m_xml.startElement( "Catch" ); + if( !m_config->name().empty() ) + m_xml.writeAttribute( "name", m_config->name() ); + if (m_config->testSpec().hasFilters()) + m_xml.writeAttribute( "filters", serializeFilters( m_config->getTestsOrTags() ) ); + if( m_config->rngSeed() != 0 ) + m_xml.scopedElement( "Randomness" ) + .writeAttribute( "seed", m_config->rngSeed() ); + } + + void XmlReporter::testGroupStarting( GroupInfo const& groupInfo ) { + StreamingReporterBase::testGroupStarting( groupInfo ); + m_xml.startElement( "Group" ) + .writeAttribute( "name", groupInfo.name ); + } + + void XmlReporter::testCaseStarting( TestCaseInfo const& testInfo ) { + StreamingReporterBase::testCaseStarting(testInfo); + m_xml.startElement( "TestCase" ) + .writeAttribute( "name", trim( testInfo.name ) ) + .writeAttribute( "description", testInfo.description ) + .writeAttribute( "tags", testInfo.tagsAsString() ); + + writeSourceInfo( testInfo.lineInfo ); + + if ( m_config->showDurations() == ShowDurations::Always ) + m_testCaseTimer.start(); + m_xml.ensureTagClosed(); + } + + void XmlReporter::sectionStarting( SectionInfo const& sectionInfo ) { + StreamingReporterBase::sectionStarting( sectionInfo ); + if( m_sectionDepth++ > 0 ) { + m_xml.startElement( "Section" ) + .writeAttribute( "name", trim( sectionInfo.name ) ); + writeSourceInfo( sectionInfo.lineInfo ); + m_xml.ensureTagClosed(); + } + } + + void XmlReporter::assertionStarting( AssertionInfo const& ) { } + + bool XmlReporter::assertionEnded( AssertionStats const& assertionStats ) { + + AssertionResult const& result = assertionStats.assertionResult; + + bool includeResults = m_config->includeSuccessfulResults() || !result.isOk(); + + if( includeResults || result.getResultType() == ResultWas::Warning ) { + // Print any info messages in <Info> tags. + for( auto const& msg : assertionStats.infoMessages ) { + if( msg.type == ResultWas::Info && includeResults ) { + m_xml.scopedElement( "Info" ) + .writeText( msg.message ); + } else if ( msg.type == ResultWas::Warning ) { + m_xml.scopedElement( "Warning" ) + .writeText( msg.message ); + } + } + } + + // Drop out if result was successful but we're not printing them. + if( !includeResults && result.getResultType() != ResultWas::Warning ) + return true; + + // Print the expression if there is one. + if( result.hasExpression() ) { + m_xml.startElement( "Expression" ) + .writeAttribute( "success", result.succeeded() ) + .writeAttribute( "type", result.getTestMacroName() ); + + writeSourceInfo( result.getSourceInfo() ); + + m_xml.scopedElement( "Original" ) + .writeText( result.getExpression() ); + m_xml.scopedElement( "Expanded" ) + .writeText( result.getExpandedExpression() ); + } + + // And... Print a result applicable to each result type. + switch( result.getResultType() ) { + case ResultWas::ThrewException: + m_xml.startElement( "Exception" ); + writeSourceInfo( result.getSourceInfo() ); + m_xml.writeText( result.getMessage() ); + m_xml.endElement(); + break; + case ResultWas::FatalErrorCondition: + m_xml.startElement( "FatalErrorCondition" ); + writeSourceInfo( result.getSourceInfo() ); + m_xml.writeText( result.getMessage() ); + m_xml.endElement(); + break; + case ResultWas::Info: + m_xml.scopedElement( "Info" ) + .writeText( result.getMessage() ); + break; + case ResultWas::Warning: + // Warning will already have been written + break; + case ResultWas::ExplicitFailure: + m_xml.startElement( "Failure" ); + writeSourceInfo( result.getSourceInfo() ); + m_xml.writeText( result.getMessage() ); + m_xml.endElement(); + break; + default: + break; + } + + if( result.hasExpression() ) + m_xml.endElement(); + + return true; + } + + void XmlReporter::sectionEnded( SectionStats const& sectionStats ) { + StreamingReporterBase::sectionEnded( sectionStats ); + if( --m_sectionDepth > 0 ) { + XmlWriter::ScopedElement e = m_xml.scopedElement( "OverallResults" ); + e.writeAttribute( "successes", sectionStats.assertions.passed ); + e.writeAttribute( "failures", sectionStats.assertions.failed ); + e.writeAttribute( "expectedFailures", sectionStats.assertions.failedButOk ); + + if ( m_config->showDurations() == ShowDurations::Always ) + e.writeAttribute( "durationInSeconds", sectionStats.durationInSeconds ); + + m_xml.endElement(); + } + } + + void XmlReporter::testCaseEnded( TestCaseStats const& testCaseStats ) { + StreamingReporterBase::testCaseEnded( testCaseStats ); + XmlWriter::ScopedElement e = m_xml.scopedElement( "OverallResult" ); + e.writeAttribute( "success", testCaseStats.totals.assertions.allOk() ); + + if ( m_config->showDurations() == ShowDurations::Always ) + e.writeAttribute( "durationInSeconds", m_testCaseTimer.getElapsedSeconds() ); + + if( !testCaseStats.stdOut.empty() ) + m_xml.scopedElement( "StdOut" ).writeText( trim( testCaseStats.stdOut ), XmlFormatting::Newline ); + if( !testCaseStats.stdErr.empty() ) + m_xml.scopedElement( "StdErr" ).writeText( trim( testCaseStats.stdErr ), XmlFormatting::Newline ); + + m_xml.endElement(); + } + + void XmlReporter::testGroupEnded( TestGroupStats const& testGroupStats ) { + StreamingReporterBase::testGroupEnded( testGroupStats ); + // TODO: Check testGroupStats.aborting and act accordingly. + m_xml.scopedElement( "OverallResults" ) + .writeAttribute( "successes", testGroupStats.totals.assertions.passed ) + .writeAttribute( "failures", testGroupStats.totals.assertions.failed ) + .writeAttribute( "expectedFailures", testGroupStats.totals.assertions.failedButOk ); + m_xml.endElement(); + } + + void XmlReporter::testRunEnded( TestRunStats const& testRunStats ) { + StreamingReporterBase::testRunEnded( testRunStats ); + m_xml.scopedElement( "OverallResults" ) + .writeAttribute( "successes", testRunStats.totals.assertions.passed ) + .writeAttribute( "failures", testRunStats.totals.assertions.failed ) + .writeAttribute( "expectedFailures", testRunStats.totals.assertions.failedButOk ); + m_xml.endElement(); + } + +#if defined(CATCH_CONFIG_ENABLE_BENCHMARKING) + void XmlReporter::benchmarkPreparing(std::string const& name) { + m_xml.startElement("BenchmarkResults") + .writeAttribute("name", name); + } + + void XmlReporter::benchmarkStarting(BenchmarkInfo const &info) { + m_xml.writeAttribute("samples", info.samples) + .writeAttribute("resamples", info.resamples) + .writeAttribute("iterations", info.iterations) + .writeAttribute("clockResolution", info.clockResolution) + .writeAttribute("estimatedDuration", info.estimatedDuration) + .writeComment("All values in nano seconds"); + } + + void XmlReporter::benchmarkEnded(BenchmarkStats<> const& benchmarkStats) { + m_xml.startElement("mean") + .writeAttribute("value", benchmarkStats.mean.point.count()) + .writeAttribute("lowerBound", benchmarkStats.mean.lower_bound.count()) + .writeAttribute("upperBound", benchmarkStats.mean.upper_bound.count()) + .writeAttribute("ci", benchmarkStats.mean.confidence_interval); + m_xml.endElement(); + m_xml.startElement("standardDeviation") + .writeAttribute("value", benchmarkStats.standardDeviation.point.count()) + .writeAttribute("lowerBound", benchmarkStats.standardDeviation.lower_bound.count()) + .writeAttribute("upperBound", benchmarkStats.standardDeviation.upper_bound.count()) + .writeAttribute("ci", benchmarkStats.standardDeviation.confidence_interval); + m_xml.endElement(); + m_xml.startElement("outliers") + .writeAttribute("variance", benchmarkStats.outlierVariance) + .writeAttribute("lowMild", benchmarkStats.outliers.low_mild) + .writeAttribute("lowSevere", benchmarkStats.outliers.low_severe) + .writeAttribute("highMild", benchmarkStats.outliers.high_mild) + .writeAttribute("highSevere", benchmarkStats.outliers.high_severe); + m_xml.endElement(); + m_xml.endElement(); + } + + void XmlReporter::benchmarkFailed(std::string const &error) { + m_xml.scopedElement("failed"). + writeAttribute("message", error); + m_xml.endElement(); + } +#endif // CATCH_CONFIG_ENABLE_BENCHMARKING + + CATCH_REGISTER_REPORTER( "xml", XmlReporter ) + +} // end namespace Catch + +#if defined(_MSC_VER) +#pragma warning(pop) +#endif +// end catch_reporter_xml.cpp + +namespace Catch { + LeakDetector leakDetector; +} + +#ifdef __clang__ +#pragma clang diagnostic pop +#endif + +// end catch_impl.hpp +#endif + +#ifdef CATCH_CONFIG_MAIN +// start catch_default_main.hpp + +#ifndef __OBJC__ + +#if defined(CATCH_CONFIG_WCHAR) && defined(CATCH_PLATFORM_WINDOWS) && defined(_UNICODE) && !defined(DO_NOT_USE_WMAIN) +// Standard C/C++ Win32 Unicode wmain entry point +extern "C" int wmain (int argc, wchar_t * argv[], wchar_t * []) { +#else +// Standard C/C++ main entry point +int main (int argc, char * argv[]) { +#endif + + return Catch::Session().run( argc, argv ); +} + +#else // __OBJC__ + +// Objective-C entry point +int main (int argc, char * const argv[]) { +#if !CATCH_ARC_ENABLED + NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; +#endif + + Catch::registerTestMethods(); + int result = Catch::Session().run( argc, (char**)argv ); + +#if !CATCH_ARC_ENABLED + [pool drain]; +#endif + + return result; +} + +#endif // __OBJC__ + +// end catch_default_main.hpp +#endif + +#if !defined(CATCH_CONFIG_IMPL_ONLY) + +#ifdef CLARA_CONFIG_MAIN_NOT_DEFINED +# undef CLARA_CONFIG_MAIN +#endif + +#if !defined(CATCH_CONFIG_DISABLE) +////// +// If this config identifier is defined then all CATCH macros are prefixed with CATCH_ +#ifdef CATCH_CONFIG_PREFIX_ALL + +#define CATCH_REQUIRE( ... ) INTERNAL_CATCH_TEST( "CATCH_REQUIRE", Catch::ResultDisposition::Normal, __VA_ARGS__ ) +#define CATCH_REQUIRE_FALSE( ... ) INTERNAL_CATCH_TEST( "CATCH_REQUIRE_FALSE", Catch::ResultDisposition::Normal | Catch::ResultDisposition::FalseTest, __VA_ARGS__ ) + +#define CATCH_REQUIRE_THROWS( ... ) INTERNAL_CATCH_THROWS( "CATCH_REQUIRE_THROWS", Catch::ResultDisposition::Normal, __VA_ARGS__ ) +#define CATCH_REQUIRE_THROWS_AS( expr, exceptionType ) INTERNAL_CATCH_THROWS_AS( "CATCH_REQUIRE_THROWS_AS", exceptionType, Catch::ResultDisposition::Normal, expr ) +#define CATCH_REQUIRE_THROWS_WITH( expr, matcher ) INTERNAL_CATCH_THROWS_STR_MATCHES( "CATCH_REQUIRE_THROWS_WITH", Catch::ResultDisposition::Normal, matcher, expr ) +#if !defined(CATCH_CONFIG_DISABLE_MATCHERS) +#define CATCH_REQUIRE_THROWS_MATCHES( expr, exceptionType, matcher ) INTERNAL_CATCH_THROWS_MATCHES( "CATCH_REQUIRE_THROWS_MATCHES", exceptionType, Catch::ResultDisposition::Normal, matcher, expr ) +#endif// CATCH_CONFIG_DISABLE_MATCHERS +#define CATCH_REQUIRE_NOTHROW( ... ) INTERNAL_CATCH_NO_THROW( "CATCH_REQUIRE_NOTHROW", Catch::ResultDisposition::Normal, __VA_ARGS__ ) + +#define CATCH_CHECK( ... ) INTERNAL_CATCH_TEST( "CATCH_CHECK", Catch::ResultDisposition::ContinueOnFailure, __VA_ARGS__ ) +#define CATCH_CHECK_FALSE( ... ) INTERNAL_CATCH_TEST( "CATCH_CHECK_FALSE", Catch::ResultDisposition::ContinueOnFailure | Catch::ResultDisposition::FalseTest, __VA_ARGS__ ) +#define CATCH_CHECKED_IF( ... ) INTERNAL_CATCH_IF( "CATCH_CHECKED_IF", Catch::ResultDisposition::ContinueOnFailure, __VA_ARGS__ ) +#define CATCH_CHECKED_ELSE( ... ) INTERNAL_CATCH_ELSE( "CATCH_CHECKED_ELSE", Catch::ResultDisposition::ContinueOnFailure, __VA_ARGS__ ) +#define CATCH_CHECK_NOFAIL( ... ) INTERNAL_CATCH_TEST( "CATCH_CHECK_NOFAIL", Catch::ResultDisposition::ContinueOnFailure | Catch::ResultDisposition::SuppressFail, __VA_ARGS__ ) + +#define CATCH_CHECK_THROWS( ... ) INTERNAL_CATCH_THROWS( "CATCH_CHECK_THROWS", Catch::ResultDisposition::ContinueOnFailure, __VA_ARGS__ ) +#define CATCH_CHECK_THROWS_AS( expr, exceptionType ) INTERNAL_CATCH_THROWS_AS( "CATCH_CHECK_THROWS_AS", exceptionType, Catch::ResultDisposition::ContinueOnFailure, expr ) +#define CATCH_CHECK_THROWS_WITH( expr, matcher ) INTERNAL_CATCH_THROWS_STR_MATCHES( "CATCH_CHECK_THROWS_WITH", Catch::ResultDisposition::ContinueOnFailure, matcher, expr ) +#if !defined(CATCH_CONFIG_DISABLE_MATCHERS) +#define CATCH_CHECK_THROWS_MATCHES( expr, exceptionType, matcher ) INTERNAL_CATCH_THROWS_MATCHES( "CATCH_CHECK_THROWS_MATCHES", exceptionType, Catch::ResultDisposition::ContinueOnFailure, matcher, expr ) +#endif // CATCH_CONFIG_DISABLE_MATCHERS +#define CATCH_CHECK_NOTHROW( ... ) INTERNAL_CATCH_NO_THROW( "CATCH_CHECK_NOTHROW", Catch::ResultDisposition::ContinueOnFailure, __VA_ARGS__ ) + +#if !defined(CATCH_CONFIG_DISABLE_MATCHERS) +#define CATCH_CHECK_THAT( arg, matcher ) INTERNAL_CHECK_THAT( "CATCH_CHECK_THAT", matcher, Catch::ResultDisposition::ContinueOnFailure, arg ) + +#define CATCH_REQUIRE_THAT( arg, matcher ) INTERNAL_CHECK_THAT( "CATCH_REQUIRE_THAT", matcher, Catch::ResultDisposition::Normal, arg ) +#endif // CATCH_CONFIG_DISABLE_MATCHERS + +#define CATCH_INFO( msg ) INTERNAL_CATCH_INFO( "CATCH_INFO", msg ) +#define CATCH_UNSCOPED_INFO( msg ) INTERNAL_CATCH_UNSCOPED_INFO( "CATCH_UNSCOPED_INFO", msg ) +#define CATCH_WARN( msg ) INTERNAL_CATCH_MSG( "CATCH_WARN", Catch::ResultWas::Warning, Catch::ResultDisposition::ContinueOnFailure, msg ) +#define CATCH_CAPTURE( ... ) INTERNAL_CATCH_CAPTURE( INTERNAL_CATCH_UNIQUE_NAME(capturer), "CATCH_CAPTURE",__VA_ARGS__ ) + +#define CATCH_TEST_CASE( ... ) INTERNAL_CATCH_TESTCASE( __VA_ARGS__ ) +#define CATCH_TEST_CASE_METHOD( className, ... ) INTERNAL_CATCH_TEST_CASE_METHOD( className, __VA_ARGS__ ) +#define CATCH_METHOD_AS_TEST_CASE( method, ... ) INTERNAL_CATCH_METHOD_AS_TEST_CASE( method, __VA_ARGS__ ) +#define CATCH_REGISTER_TEST_CASE( Function, ... ) INTERNAL_CATCH_REGISTER_TESTCASE( Function, __VA_ARGS__ ) +#define CATCH_SECTION( ... ) INTERNAL_CATCH_SECTION( __VA_ARGS__ ) +#define CATCH_DYNAMIC_SECTION( ... ) INTERNAL_CATCH_DYNAMIC_SECTION( __VA_ARGS__ ) +#define CATCH_FAIL( ... ) INTERNAL_CATCH_MSG( "CATCH_FAIL", Catch::ResultWas::ExplicitFailure, Catch::ResultDisposition::Normal, __VA_ARGS__ ) +#define CATCH_FAIL_CHECK( ... ) INTERNAL_CATCH_MSG( "CATCH_FAIL_CHECK", Catch::ResultWas::ExplicitFailure, Catch::ResultDisposition::ContinueOnFailure, __VA_ARGS__ ) +#define CATCH_SUCCEED( ... ) INTERNAL_CATCH_MSG( "CATCH_SUCCEED", Catch::ResultWas::Ok, Catch::ResultDisposition::ContinueOnFailure, __VA_ARGS__ ) + +#define CATCH_ANON_TEST_CASE() INTERNAL_CATCH_TESTCASE() + +#ifndef CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR +#define CATCH_TEMPLATE_TEST_CASE( ... ) INTERNAL_CATCH_TEMPLATE_TEST_CASE( __VA_ARGS__ ) +#define CATCH_TEMPLATE_TEST_CASE_SIG( ... ) INTERNAL_CATCH_TEMPLATE_TEST_CASE_SIG( __VA_ARGS__ ) +#define CATCH_TEMPLATE_TEST_CASE_METHOD( className, ... ) INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD( className, __VA_ARGS__ ) +#define CATCH_TEMPLATE_TEST_CASE_METHOD_SIG( className, ... ) INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_SIG( className, __VA_ARGS__ ) +#define CATCH_TEMPLATE_PRODUCT_TEST_CASE( ... ) INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE( __VA_ARGS__ ) +#define CATCH_TEMPLATE_PRODUCT_TEST_CASE_SIG( ... ) INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_SIG( __VA_ARGS__ ) +#define CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD( className, ... ) INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD( className, __VA_ARGS__ ) +#define CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD_SIG( className, ... ) INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD_SIG( className, __VA_ARGS__ ) +#else +#define CATCH_TEMPLATE_TEST_CASE( ... ) INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_TEST_CASE( __VA_ARGS__ ) ) +#define CATCH_TEMPLATE_TEST_CASE_SIG( ... ) INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_TEST_CASE_SIG( __VA_ARGS__ ) ) +#define CATCH_TEMPLATE_TEST_CASE_METHOD( className, ... ) INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD( className, __VA_ARGS__ ) ) +#define CATCH_TEMPLATE_TEST_CASE_METHOD_SIG( className, ... ) INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_SIG( className, __VA_ARGS__ ) ) +#define CATCH_TEMPLATE_PRODUCT_TEST_CASE( ... ) INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE( __VA_ARGS__ ) ) +#define CATCH_TEMPLATE_PRODUCT_TEST_CASE_SIG( ... ) INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_SIG( __VA_ARGS__ ) ) +#define CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD( className, ... ) INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD( className, __VA_ARGS__ ) ) +#define CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD_SIG( className, ... ) INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD_SIG( className, __VA_ARGS__ ) ) +#endif + +#if !defined(CATCH_CONFIG_RUNTIME_STATIC_REQUIRE) +#define CATCH_STATIC_REQUIRE( ... ) static_assert( __VA_ARGS__ , #__VA_ARGS__ ); CATCH_SUCCEED( #__VA_ARGS__ ) +#define CATCH_STATIC_REQUIRE_FALSE( ... ) static_assert( !(__VA_ARGS__), "!(" #__VA_ARGS__ ")" ); CATCH_SUCCEED( #__VA_ARGS__ ) +#else +#define CATCH_STATIC_REQUIRE( ... ) CATCH_REQUIRE( __VA_ARGS__ ) +#define CATCH_STATIC_REQUIRE_FALSE( ... ) CATCH_REQUIRE_FALSE( __VA_ARGS__ ) +#endif + +// "BDD-style" convenience wrappers +#define CATCH_SCENARIO( ... ) CATCH_TEST_CASE( "Scenario: " __VA_ARGS__ ) +#define CATCH_SCENARIO_METHOD( className, ... ) INTERNAL_CATCH_TEST_CASE_METHOD( className, "Scenario: " __VA_ARGS__ ) +#define CATCH_GIVEN( desc ) INTERNAL_CATCH_DYNAMIC_SECTION( " Given: " << desc ) +#define CATCH_AND_GIVEN( desc ) INTERNAL_CATCH_DYNAMIC_SECTION( "And given: " << desc ) +#define CATCH_WHEN( desc ) INTERNAL_CATCH_DYNAMIC_SECTION( " When: " << desc ) +#define CATCH_AND_WHEN( desc ) INTERNAL_CATCH_DYNAMIC_SECTION( " And when: " << desc ) +#define CATCH_THEN( desc ) INTERNAL_CATCH_DYNAMIC_SECTION( " Then: " << desc ) +#define CATCH_AND_THEN( desc ) INTERNAL_CATCH_DYNAMIC_SECTION( " And: " << desc ) + +#if defined(CATCH_CONFIG_ENABLE_BENCHMARKING) +#define CATCH_BENCHMARK(...) \ + INTERNAL_CATCH_BENCHMARK(INTERNAL_CATCH_UNIQUE_NAME(____C_A_T_C_H____B_E_N_C_H____), INTERNAL_CATCH_GET_1_ARG(__VA_ARGS__,,), INTERNAL_CATCH_GET_2_ARG(__VA_ARGS__,,)) +#define CATCH_BENCHMARK_ADVANCED(name) \ + INTERNAL_CATCH_BENCHMARK_ADVANCED(INTERNAL_CATCH_UNIQUE_NAME(____C_A_T_C_H____B_E_N_C_H____), name) +#endif // CATCH_CONFIG_ENABLE_BENCHMARKING + +// If CATCH_CONFIG_PREFIX_ALL is not defined then the CATCH_ prefix is not required +#else + +#define REQUIRE( ... ) INTERNAL_CATCH_TEST( "REQUIRE", Catch::ResultDisposition::Normal, __VA_ARGS__ ) +#define REQUIRE_FALSE( ... ) INTERNAL_CATCH_TEST( "REQUIRE_FALSE", Catch::ResultDisposition::Normal | Catch::ResultDisposition::FalseTest, __VA_ARGS__ ) + +#define REQUIRE_THROWS( ... ) INTERNAL_CATCH_THROWS( "REQUIRE_THROWS", Catch::ResultDisposition::Normal, __VA_ARGS__ ) +#define REQUIRE_THROWS_AS( expr, exceptionType ) INTERNAL_CATCH_THROWS_AS( "REQUIRE_THROWS_AS", exceptionType, Catch::ResultDisposition::Normal, expr ) +#define REQUIRE_THROWS_WITH( expr, matcher ) INTERNAL_CATCH_THROWS_STR_MATCHES( "REQUIRE_THROWS_WITH", Catch::ResultDisposition::Normal, matcher, expr ) +#if !defined(CATCH_CONFIG_DISABLE_MATCHERS) +#define REQUIRE_THROWS_MATCHES( expr, exceptionType, matcher ) INTERNAL_CATCH_THROWS_MATCHES( "REQUIRE_THROWS_MATCHES", exceptionType, Catch::ResultDisposition::Normal, matcher, expr ) +#endif // CATCH_CONFIG_DISABLE_MATCHERS +#define REQUIRE_NOTHROW( ... ) INTERNAL_CATCH_NO_THROW( "REQUIRE_NOTHROW", Catch::ResultDisposition::Normal, __VA_ARGS__ ) + +#define CHECK( ... ) INTERNAL_CATCH_TEST( "CHECK", Catch::ResultDisposition::ContinueOnFailure, __VA_ARGS__ ) +#define CHECK_FALSE( ... ) INTERNAL_CATCH_TEST( "CHECK_FALSE", Catch::ResultDisposition::ContinueOnFailure | Catch::ResultDisposition::FalseTest, __VA_ARGS__ ) +#define CHECKED_IF( ... ) INTERNAL_CATCH_IF( "CHECKED_IF", Catch::ResultDisposition::ContinueOnFailure, __VA_ARGS__ ) +#define CHECKED_ELSE( ... ) INTERNAL_CATCH_ELSE( "CHECKED_ELSE", Catch::ResultDisposition::ContinueOnFailure, __VA_ARGS__ ) +#define CHECK_NOFAIL( ... ) INTERNAL_CATCH_TEST( "CHECK_NOFAIL", Catch::ResultDisposition::ContinueOnFailure | Catch::ResultDisposition::SuppressFail, __VA_ARGS__ ) + +#define CHECK_THROWS( ... ) INTERNAL_CATCH_THROWS( "CHECK_THROWS", Catch::ResultDisposition::ContinueOnFailure, __VA_ARGS__ ) +#define CHECK_THROWS_AS( expr, exceptionType ) INTERNAL_CATCH_THROWS_AS( "CHECK_THROWS_AS", exceptionType, Catch::ResultDisposition::ContinueOnFailure, expr ) +#define CHECK_THROWS_WITH( expr, matcher ) INTERNAL_CATCH_THROWS_STR_MATCHES( "CHECK_THROWS_WITH", Catch::ResultDisposition::ContinueOnFailure, matcher, expr ) +#if !defined(CATCH_CONFIG_DISABLE_MATCHERS) +#define CHECK_THROWS_MATCHES( expr, exceptionType, matcher ) INTERNAL_CATCH_THROWS_MATCHES( "CHECK_THROWS_MATCHES", exceptionType, Catch::ResultDisposition::ContinueOnFailure, matcher, expr ) +#endif // CATCH_CONFIG_DISABLE_MATCHERS +#define CHECK_NOTHROW( ... ) INTERNAL_CATCH_NO_THROW( "CHECK_NOTHROW", Catch::ResultDisposition::ContinueOnFailure, __VA_ARGS__ ) + +#if !defined(CATCH_CONFIG_DISABLE_MATCHERS) +#define CHECK_THAT( arg, matcher ) INTERNAL_CHECK_THAT( "CHECK_THAT", matcher, Catch::ResultDisposition::ContinueOnFailure, arg ) + +#define REQUIRE_THAT( arg, matcher ) INTERNAL_CHECK_THAT( "REQUIRE_THAT", matcher, Catch::ResultDisposition::Normal, arg ) +#endif // CATCH_CONFIG_DISABLE_MATCHERS + +#define INFO( msg ) INTERNAL_CATCH_INFO( "INFO", msg ) +#define UNSCOPED_INFO( msg ) INTERNAL_CATCH_UNSCOPED_INFO( "UNSCOPED_INFO", msg ) +#define WARN( msg ) INTERNAL_CATCH_MSG( "WARN", Catch::ResultWas::Warning, Catch::ResultDisposition::ContinueOnFailure, msg ) +#define CAPTURE( ... ) INTERNAL_CATCH_CAPTURE( INTERNAL_CATCH_UNIQUE_NAME(capturer), "CAPTURE",__VA_ARGS__ ) + +#define TEST_CASE( ... ) INTERNAL_CATCH_TESTCASE( __VA_ARGS__ ) +#define TEST_CASE_METHOD( className, ... ) INTERNAL_CATCH_TEST_CASE_METHOD( className, __VA_ARGS__ ) +#define METHOD_AS_TEST_CASE( method, ... ) INTERNAL_CATCH_METHOD_AS_TEST_CASE( method, __VA_ARGS__ ) +#define REGISTER_TEST_CASE( Function, ... ) INTERNAL_CATCH_REGISTER_TESTCASE( Function, __VA_ARGS__ ) +#define SECTION( ... ) INTERNAL_CATCH_SECTION( __VA_ARGS__ ) +#define DYNAMIC_SECTION( ... ) INTERNAL_CATCH_DYNAMIC_SECTION( __VA_ARGS__ ) +#define FAIL( ... ) INTERNAL_CATCH_MSG( "FAIL", Catch::ResultWas::ExplicitFailure, Catch::ResultDisposition::Normal, __VA_ARGS__ ) +#define FAIL_CHECK( ... ) INTERNAL_CATCH_MSG( "FAIL_CHECK", Catch::ResultWas::ExplicitFailure, Catch::ResultDisposition::ContinueOnFailure, __VA_ARGS__ ) +#define SUCCEED( ... ) INTERNAL_CATCH_MSG( "SUCCEED", Catch::ResultWas::Ok, Catch::ResultDisposition::ContinueOnFailure, __VA_ARGS__ ) +#define ANON_TEST_CASE() INTERNAL_CATCH_TESTCASE() + +#ifndef CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR +#define TEMPLATE_TEST_CASE( ... ) INTERNAL_CATCH_TEMPLATE_TEST_CASE( __VA_ARGS__ ) +#define TEMPLATE_TEST_CASE_SIG( ... ) INTERNAL_CATCH_TEMPLATE_TEST_CASE_SIG( __VA_ARGS__ ) +#define TEMPLATE_TEST_CASE_METHOD( className, ... ) INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD( className, __VA_ARGS__ ) +#define TEMPLATE_TEST_CASE_METHOD_SIG( className, ... ) INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_SIG( className, __VA_ARGS__ ) +#define TEMPLATE_PRODUCT_TEST_CASE( ... ) INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE( __VA_ARGS__ ) +#define TEMPLATE_PRODUCT_TEST_CASE_SIG( ... ) INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_SIG( __VA_ARGS__ ) +#define TEMPLATE_PRODUCT_TEST_CASE_METHOD( className, ... ) INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD( className, __VA_ARGS__ ) +#define TEMPLATE_PRODUCT_TEST_CASE_METHOD_SIG( className, ... ) INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD_SIG( className, __VA_ARGS__ ) +#define TEMPLATE_LIST_TEST_CASE( ... ) INTERNAL_CATCH_TEMPLATE_LIST_TEST_CASE(__VA_ARGS__) +#define TEMPLATE_LIST_TEST_CASE_METHOD( className, ... ) INTERNAL_CATCH_TEMPLATE_LIST_TEST_CASE_METHOD( className, __VA_ARGS__ ) +#else +#define TEMPLATE_TEST_CASE( ... ) INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_TEST_CASE( __VA_ARGS__ ) ) +#define TEMPLATE_TEST_CASE_SIG( ... ) INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_TEST_CASE_SIG( __VA_ARGS__ ) ) +#define TEMPLATE_TEST_CASE_METHOD( className, ... ) INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD( className, __VA_ARGS__ ) ) +#define TEMPLATE_TEST_CASE_METHOD_SIG( className, ... ) INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_SIG( className, __VA_ARGS__ ) ) +#define TEMPLATE_PRODUCT_TEST_CASE( ... ) INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE( __VA_ARGS__ ) ) +#define TEMPLATE_PRODUCT_TEST_CASE_SIG( ... ) INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_SIG( __VA_ARGS__ ) ) +#define TEMPLATE_PRODUCT_TEST_CASE_METHOD( className, ... ) INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD( className, __VA_ARGS__ ) ) +#define TEMPLATE_PRODUCT_TEST_CASE_METHOD_SIG( className, ... ) INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD_SIG( className, __VA_ARGS__ ) ) +#define TEMPLATE_LIST_TEST_CASE( ... ) INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_LIST_TEST_CASE( __VA_ARGS__ ) ) +#define TEMPLATE_LIST_TEST_CASE_METHOD( className, ... ) INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_LIST_TEST_CASE_METHOD( className, __VA_ARGS__ ) ) +#endif + +#if !defined(CATCH_CONFIG_RUNTIME_STATIC_REQUIRE) +#define STATIC_REQUIRE( ... ) static_assert( __VA_ARGS__, #__VA_ARGS__ ); SUCCEED( #__VA_ARGS__ ) +#define STATIC_REQUIRE_FALSE( ... ) static_assert( !(__VA_ARGS__), "!(" #__VA_ARGS__ ")" ); SUCCEED( "!(" #__VA_ARGS__ ")" ) +#else +#define STATIC_REQUIRE( ... ) REQUIRE( __VA_ARGS__ ) +#define STATIC_REQUIRE_FALSE( ... ) REQUIRE_FALSE( __VA_ARGS__ ) +#endif + +#endif + +#define CATCH_TRANSLATE_EXCEPTION( signature ) INTERNAL_CATCH_TRANSLATE_EXCEPTION( signature ) + +// "BDD-style" convenience wrappers +#define SCENARIO( ... ) TEST_CASE( "Scenario: " __VA_ARGS__ ) +#define SCENARIO_METHOD( className, ... ) INTERNAL_CATCH_TEST_CASE_METHOD( className, "Scenario: " __VA_ARGS__ ) + +#define GIVEN( desc ) INTERNAL_CATCH_DYNAMIC_SECTION( " Given: " << desc ) +#define AND_GIVEN( desc ) INTERNAL_CATCH_DYNAMIC_SECTION( "And given: " << desc ) +#define WHEN( desc ) INTERNAL_CATCH_DYNAMIC_SECTION( " When: " << desc ) +#define AND_WHEN( desc ) INTERNAL_CATCH_DYNAMIC_SECTION( " And when: " << desc ) +#define THEN( desc ) INTERNAL_CATCH_DYNAMIC_SECTION( " Then: " << desc ) +#define AND_THEN( desc ) INTERNAL_CATCH_DYNAMIC_SECTION( " And: " << desc ) + +#if defined(CATCH_CONFIG_ENABLE_BENCHMARKING) +#define BENCHMARK(...) \ + INTERNAL_CATCH_BENCHMARK(INTERNAL_CATCH_UNIQUE_NAME(____C_A_T_C_H____B_E_N_C_H____), INTERNAL_CATCH_GET_1_ARG(__VA_ARGS__,,), INTERNAL_CATCH_GET_2_ARG(__VA_ARGS__,,)) +#define BENCHMARK_ADVANCED(name) \ + INTERNAL_CATCH_BENCHMARK_ADVANCED(INTERNAL_CATCH_UNIQUE_NAME(____C_A_T_C_H____B_E_N_C_H____), name) +#endif // CATCH_CONFIG_ENABLE_BENCHMARKING + +using Catch::Detail::Approx; + +#else // CATCH_CONFIG_DISABLE + +////// +// If this config identifier is defined then all CATCH macros are prefixed with CATCH_ +#ifdef CATCH_CONFIG_PREFIX_ALL + +#define CATCH_REQUIRE( ... ) (void)(0) +#define CATCH_REQUIRE_FALSE( ... ) (void)(0) + +#define CATCH_REQUIRE_THROWS( ... ) (void)(0) +#define CATCH_REQUIRE_THROWS_AS( expr, exceptionType ) (void)(0) +#define CATCH_REQUIRE_THROWS_WITH( expr, matcher ) (void)(0) +#if !defined(CATCH_CONFIG_DISABLE_MATCHERS) +#define CATCH_REQUIRE_THROWS_MATCHES( expr, exceptionType, matcher ) (void)(0) +#endif// CATCH_CONFIG_DISABLE_MATCHERS +#define CATCH_REQUIRE_NOTHROW( ... ) (void)(0) + +#define CATCH_CHECK( ... ) (void)(0) +#define CATCH_CHECK_FALSE( ... ) (void)(0) +#define CATCH_CHECKED_IF( ... ) if (__VA_ARGS__) +#define CATCH_CHECKED_ELSE( ... ) if (!(__VA_ARGS__)) +#define CATCH_CHECK_NOFAIL( ... ) (void)(0) + +#define CATCH_CHECK_THROWS( ... ) (void)(0) +#define CATCH_CHECK_THROWS_AS( expr, exceptionType ) (void)(0) +#define CATCH_CHECK_THROWS_WITH( expr, matcher ) (void)(0) +#if !defined(CATCH_CONFIG_DISABLE_MATCHERS) +#define CATCH_CHECK_THROWS_MATCHES( expr, exceptionType, matcher ) (void)(0) +#endif // CATCH_CONFIG_DISABLE_MATCHERS +#define CATCH_CHECK_NOTHROW( ... ) (void)(0) + +#if !defined(CATCH_CONFIG_DISABLE_MATCHERS) +#define CATCH_CHECK_THAT( arg, matcher ) (void)(0) + +#define CATCH_REQUIRE_THAT( arg, matcher ) (void)(0) +#endif // CATCH_CONFIG_DISABLE_MATCHERS + +#define CATCH_INFO( msg ) (void)(0) +#define CATCH_UNSCOPED_INFO( msg ) (void)(0) +#define CATCH_WARN( msg ) (void)(0) +#define CATCH_CAPTURE( msg ) (void)(0) + +#define CATCH_TEST_CASE( ... ) INTERNAL_CATCH_TESTCASE_NO_REGISTRATION(INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ )) +#define CATCH_TEST_CASE_METHOD( className, ... ) INTERNAL_CATCH_TESTCASE_NO_REGISTRATION(INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ )) +#define CATCH_METHOD_AS_TEST_CASE( method, ... ) +#define CATCH_REGISTER_TEST_CASE( Function, ... ) (void)(0) +#define CATCH_SECTION( ... ) +#define CATCH_DYNAMIC_SECTION( ... ) +#define CATCH_FAIL( ... ) (void)(0) +#define CATCH_FAIL_CHECK( ... ) (void)(0) +#define CATCH_SUCCEED( ... ) (void)(0) + +#define CATCH_ANON_TEST_CASE() INTERNAL_CATCH_TESTCASE_NO_REGISTRATION(INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ )) + +#ifndef CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR +#define CATCH_TEMPLATE_TEST_CASE( ... ) INTERNAL_CATCH_TEMPLATE_TEST_CASE_NO_REGISTRATION(__VA_ARGS__) +#define CATCH_TEMPLATE_TEST_CASE_SIG( ... ) INTERNAL_CATCH_TEMPLATE_TEST_CASE_SIG_NO_REGISTRATION(__VA_ARGS__) +#define CATCH_TEMPLATE_TEST_CASE_METHOD( className, ... ) INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_NO_REGISTRATION(className, __VA_ARGS__) +#define CATCH_TEMPLATE_TEST_CASE_METHOD_SIG( className, ... ) INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_SIG_NO_REGISTRATION(className, __VA_ARGS__ ) +#define CATCH_TEMPLATE_PRODUCT_TEST_CASE( ... ) CATCH_TEMPLATE_TEST_CASE( __VA_ARGS__ ) +#define CATCH_TEMPLATE_PRODUCT_TEST_CASE_SIG( ... ) CATCH_TEMPLATE_TEST_CASE( __VA_ARGS__ ) +#define CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD( className, ... ) CATCH_TEMPLATE_TEST_CASE_METHOD( className, __VA_ARGS__ ) +#define CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD_SIG( className, ... ) CATCH_TEMPLATE_TEST_CASE_METHOD( className, __VA_ARGS__ ) +#else +#define CATCH_TEMPLATE_TEST_CASE( ... ) INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_TEST_CASE_NO_REGISTRATION(__VA_ARGS__) ) +#define CATCH_TEMPLATE_TEST_CASE_SIG( ... ) INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_TEST_CASE_SIG_NO_REGISTRATION(__VA_ARGS__) ) +#define CATCH_TEMPLATE_TEST_CASE_METHOD( className, ... ) INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_NO_REGISTRATION(className, __VA_ARGS__ ) ) +#define CATCH_TEMPLATE_TEST_CASE_METHOD_SIG( className, ... ) INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_SIG_NO_REGISTRATION(className, __VA_ARGS__ ) ) +#define CATCH_TEMPLATE_PRODUCT_TEST_CASE( ... ) CATCH_TEMPLATE_TEST_CASE( __VA_ARGS__ ) +#define CATCH_TEMPLATE_PRODUCT_TEST_CASE_SIG( ... ) CATCH_TEMPLATE_TEST_CASE( __VA_ARGS__ ) +#define CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD( className, ... ) CATCH_TEMPLATE_TEST_CASE_METHOD( className, __VA_ARGS__ ) +#define CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD_SIG( className, ... ) CATCH_TEMPLATE_TEST_CASE_METHOD( className, __VA_ARGS__ ) +#endif + +// "BDD-style" convenience wrappers +#define CATCH_SCENARIO( ... ) INTERNAL_CATCH_TESTCASE_NO_REGISTRATION(INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ )) +#define CATCH_SCENARIO_METHOD( className, ... ) INTERNAL_CATCH_TESTCASE_METHOD_NO_REGISTRATION(INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ ), className ) +#define CATCH_GIVEN( desc ) +#define CATCH_AND_GIVEN( desc ) +#define CATCH_WHEN( desc ) +#define CATCH_AND_WHEN( desc ) +#define CATCH_THEN( desc ) +#define CATCH_AND_THEN( desc ) + +#define CATCH_STATIC_REQUIRE( ... ) (void)(0) +#define CATCH_STATIC_REQUIRE_FALSE( ... ) (void)(0) + +// If CATCH_CONFIG_PREFIX_ALL is not defined then the CATCH_ prefix is not required +#else + +#define REQUIRE( ... ) (void)(0) +#define REQUIRE_FALSE( ... ) (void)(0) + +#define REQUIRE_THROWS( ... ) (void)(0) +#define REQUIRE_THROWS_AS( expr, exceptionType ) (void)(0) +#define REQUIRE_THROWS_WITH( expr, matcher ) (void)(0) +#if !defined(CATCH_CONFIG_DISABLE_MATCHERS) +#define REQUIRE_THROWS_MATCHES( expr, exceptionType, matcher ) (void)(0) +#endif // CATCH_CONFIG_DISABLE_MATCHERS +#define REQUIRE_NOTHROW( ... ) (void)(0) + +#define CHECK( ... ) (void)(0) +#define CHECK_FALSE( ... ) (void)(0) +#define CHECKED_IF( ... ) if (__VA_ARGS__) +#define CHECKED_ELSE( ... ) if (!(__VA_ARGS__)) +#define CHECK_NOFAIL( ... ) (void)(0) + +#define CHECK_THROWS( ... ) (void)(0) +#define CHECK_THROWS_AS( expr, exceptionType ) (void)(0) +#define CHECK_THROWS_WITH( expr, matcher ) (void)(0) +#if !defined(CATCH_CONFIG_DISABLE_MATCHERS) +#define CHECK_THROWS_MATCHES( expr, exceptionType, matcher ) (void)(0) +#endif // CATCH_CONFIG_DISABLE_MATCHERS +#define CHECK_NOTHROW( ... ) (void)(0) + +#if !defined(CATCH_CONFIG_DISABLE_MATCHERS) +#define CHECK_THAT( arg, matcher ) (void)(0) + +#define REQUIRE_THAT( arg, matcher ) (void)(0) +#endif // CATCH_CONFIG_DISABLE_MATCHERS + +#define INFO( msg ) (void)(0) +#define UNSCOPED_INFO( msg ) (void)(0) +#define WARN( msg ) (void)(0) +#define CAPTURE( msg ) (void)(0) + +#define TEST_CASE( ... ) INTERNAL_CATCH_TESTCASE_NO_REGISTRATION(INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ )) +#define TEST_CASE_METHOD( className, ... ) INTERNAL_CATCH_TESTCASE_NO_REGISTRATION(INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ )) +#define METHOD_AS_TEST_CASE( method, ... ) +#define REGISTER_TEST_CASE( Function, ... ) (void)(0) +#define SECTION( ... ) +#define DYNAMIC_SECTION( ... ) +#define FAIL( ... ) (void)(0) +#define FAIL_CHECK( ... ) (void)(0) +#define SUCCEED( ... ) (void)(0) +#define ANON_TEST_CASE() INTERNAL_CATCH_TESTCASE_NO_REGISTRATION(INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ )) + +#ifndef CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR +#define TEMPLATE_TEST_CASE( ... ) INTERNAL_CATCH_TEMPLATE_TEST_CASE_NO_REGISTRATION(__VA_ARGS__) +#define TEMPLATE_TEST_CASE_SIG( ... ) INTERNAL_CATCH_TEMPLATE_TEST_CASE_SIG_NO_REGISTRATION(__VA_ARGS__) +#define TEMPLATE_TEST_CASE_METHOD( className, ... ) INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_NO_REGISTRATION(className, __VA_ARGS__) +#define TEMPLATE_TEST_CASE_METHOD_SIG( className, ... ) INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_SIG_NO_REGISTRATION(className, __VA_ARGS__ ) +#define TEMPLATE_PRODUCT_TEST_CASE( ... ) TEMPLATE_TEST_CASE( __VA_ARGS__ ) +#define TEMPLATE_PRODUCT_TEST_CASE_SIG( ... ) TEMPLATE_TEST_CASE( __VA_ARGS__ ) +#define TEMPLATE_PRODUCT_TEST_CASE_METHOD( className, ... ) TEMPLATE_TEST_CASE_METHOD( className, __VA_ARGS__ ) +#define TEMPLATE_PRODUCT_TEST_CASE_METHOD_SIG( className, ... ) TEMPLATE_TEST_CASE_METHOD( className, __VA_ARGS__ ) +#else +#define TEMPLATE_TEST_CASE( ... ) INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_TEST_CASE_NO_REGISTRATION(__VA_ARGS__) ) +#define TEMPLATE_TEST_CASE_SIG( ... ) INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_TEST_CASE_SIG_NO_REGISTRATION(__VA_ARGS__) ) +#define TEMPLATE_TEST_CASE_METHOD( className, ... ) INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_NO_REGISTRATION(className, __VA_ARGS__ ) ) +#define TEMPLATE_TEST_CASE_METHOD_SIG( className, ... ) INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_SIG_NO_REGISTRATION(className, __VA_ARGS__ ) ) +#define TEMPLATE_PRODUCT_TEST_CASE( ... ) TEMPLATE_TEST_CASE( __VA_ARGS__ ) +#define TEMPLATE_PRODUCT_TEST_CASE_SIG( ... ) TEMPLATE_TEST_CASE( __VA_ARGS__ ) +#define TEMPLATE_PRODUCT_TEST_CASE_METHOD( className, ... ) TEMPLATE_TEST_CASE_METHOD( className, __VA_ARGS__ ) +#define TEMPLATE_PRODUCT_TEST_CASE_METHOD_SIG( className, ... ) TEMPLATE_TEST_CASE_METHOD( className, __VA_ARGS__ ) +#endif + +#define STATIC_REQUIRE( ... ) (void)(0) +#define STATIC_REQUIRE_FALSE( ... ) (void)(0) + +#endif + +#define CATCH_TRANSLATE_EXCEPTION( signature ) INTERNAL_CATCH_TRANSLATE_EXCEPTION_NO_REG( INTERNAL_CATCH_UNIQUE_NAME( catch_internal_ExceptionTranslator ), signature ) + +// "BDD-style" convenience wrappers +#define SCENARIO( ... ) INTERNAL_CATCH_TESTCASE_NO_REGISTRATION(INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ ) ) +#define SCENARIO_METHOD( className, ... ) INTERNAL_CATCH_TESTCASE_METHOD_NO_REGISTRATION(INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ ), className ) + +#define GIVEN( desc ) +#define AND_GIVEN( desc ) +#define WHEN( desc ) +#define AND_WHEN( desc ) +#define THEN( desc ) +#define AND_THEN( desc ) + +using Catch::Detail::Approx; + +#endif + +#endif // ! CATCH_CONFIG_IMPL_ONLY + +// start catch_reenable_warnings.h + + +#ifdef __clang__ +# ifdef __ICC // icpc defines the __clang__ macro +# pragma warning(pop) +# else +# pragma clang diagnostic pop +# endif +#elif defined __GNUC__ +# pragma GCC diagnostic pop +#endif + +// end catch_reenable_warnings.h +// end catch.hpp +#endif // TWOBLUECUBES_SINGLE_INCLUDE_CATCH_HPP_INCLUDED + diff --git a/cpp/tests/experiment/array.cc b/cpp/tests/experiment/array.cc new file mode 100644 index 0000000000000000000000000000000000000000..6ad165720cbcf98e4cacc19683e48f13e10ac3d5 --- /dev/null +++ b/cpp/tests/experiment/array.cc @@ -0,0 +1,11 @@ +#include "array.hh" + +namespace experiment { + +void swap(Array& lhs, Array& rhs) noexcept { + using std::swap; + swap(lhs.arr_, rhs.arr_); + swap(lhs.size_, rhs.size_); +} + +} diff --git a/cpp/tests/experiment/array.hh b/cpp/tests/experiment/array.hh new file mode 100644 index 0000000000000000000000000000000000000000..e37bb2a724cdb80f1dcf13133c08a42df1752a30 --- /dev/null +++ b/cpp/tests/experiment/array.hh @@ -0,0 +1,96 @@ +#ifndef EXPERIMENT_ARRAY_HH_ +#define EXPERIMENT_ARRAY_HH_ + +#include <vector> +#include <string> +#include <iostream> + +namespace experiment { + +/** + * Array with c++11 move semantics for research purposes. + * + * @note Do not use this in real code. + */ +class Array { + public: + Array() : arr_{nullptr}, size_{0} { + std::cout << "default construct " << to_s() << "\n"; + } + + Array(std::initializer_list<int> l) + : arr_(new int[l.size()]{}) + , size_(l.size()) { + + std::copy(l.begin(), l.end(), arr_); + std::cout << "create list " << to_s() << "\n"; + } + + Array(const std::vector<int>& src) { + arr_ = new int[src.size()]{}; + size_ = src.size(); + std::copy(src.begin(), src.end(), arr_); + std::cout << "create " << to_s() << "\n"; + } + + Array(const Array& other) : arr_(new int[other.size_]{}), size_{other.size_} { + std::copy(other.arr_, other.arr_ + other.size_, arr_); + std::cout << "copy construct " << to_s() << "\n"; + } + + Array& operator=(const Array& other) { + Array tmp{other}; + swap(*this, tmp); + std::cout << "copy assign " << to_s() << "\n"; + return *this; + } + + Array(Array&& other) noexcept : arr_{other.arr_}, size_(other.size_) { + other.arr_ = nullptr; + other.size_ = 0; + std::cout << "move construct " << to_s() << "\n"; + } + + Array& operator=(Array&& other) noexcept { + swap(*this, other); + std::cout << "move assign " << to_s() << "\n"; + return *this; + } + + ~Array() { + std::cout << "destroy " << to_s() << "\n"; + if (arr_) { + delete [] arr_; + } + } + + std::string to_s() const { + std::string ret = std::to_string(intptr_t(this)) + " "; + if (!arr_) { + return ret; + } + + for (int i = 0; i < size_; i++) { + ret += std::to_string(arr_[i]) + " "; + } + + return ret; + } + + friend void swap(Array& lhs, Array& rhs) noexcept; + + private: + int* arr_; + int size_; +}; + +void swap(Array& lhs, Array& rhs) noexcept; + +//std::ostream& operator<<(std::ostream& o, const Array& arr) { +// o << arr.to_s(); +// return o; +//} + +} // namespace csandbox + +#endif diff --git a/cpp/tests/init_tests.cc b/cpp/tests/init_tests.cc new file mode 100644 index 0000000000000000000000000000000000000000..80cc48cc58ac2be5443a27d80108703374d4e05c --- /dev/null +++ b/cpp/tests/init_tests.cc @@ -0,0 +1,2 @@ +#define CATCH_CONFIG_MAIN +#include "catch.hpp" \ No newline at end of file diff --git a/cpp/tests/protobuf/CMakeLists.txt b/cpp/tests/protobuf/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..27d205c3a5f8d59c94410513b711a58c2cdb37a6 --- /dev/null +++ b/cpp/tests/protobuf/CMakeLists.txt @@ -0,0 +1,44 @@ + +# Proto file +get_filename_component(_proto "proto/messages.proto" ABSOLUTE) +get_filename_component(_proto_path "${_proto}" PATH) + +# Generated sources +set(_grpc_gen_dir "${CMAKE_SOURCE_DIR}/tests/protobuf/testpb") +set(_proto_src "${_grpc_gen_dir}/messages.pb.cc") +set(_proto_hdr "${_grpc_gen_dir}/messages.pb.h") +add_custom_command( + OUTPUT "${_proto_src}" "${_proto_hdr}" + COMMAND ${PROTOBUF_PROTOC} + ARGS + --cpp_out "${_grpc_gen_dir}" + -I "${_proto_path}" + "${_proto}" + DEPENDS "${_proto}") + +include_directories( + "./" +) + +list(APPEND protobuf_src + ../init_tests.cc + ${_proto_src} + json_test.cc +) +add_executable(protobuf_tests ${protobuf_src}) +target_link_libraries(protobuf_tests ${LIBS} + PRIVATE protobuf::libprotobuf +) + +#add_custom_command( +# TARGET protobuf_tests +# COMMENT "Run protobuf tests" +# POST_BUILD +# WORKING_DIRECTORY ${CMAKE_BINARY_DIR} +# COMMAND ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/protobuf_tests +#) + +add_test( + NAME protobuf_tests + COMMAND protobuf_tests +) diff --git a/cpp/tests/protobuf/json_test.cc b/cpp/tests/protobuf/json_test.cc new file mode 100644 index 0000000000000000000000000000000000000000..9ec89317d3ff13ff734bbedac09a4b6aa06ac31d --- /dev/null +++ b/cpp/tests/protobuf/json_test.cc @@ -0,0 +1,257 @@ +#include "catch.hpp" +#include <google/protobuf/util/json_util.h> +#include <testpb/messages.pb.h> + +TEST_CASE("simple struct", "[protobuf]") { + auto json = R"( +{ + "int_value": 42, + "string_value": "foo bar", + "int_arr": [4, 2], + "string_arr": ["foo", "bar", "baz"], + "int_map": { + "foo": 4, + "bar": 2, + }, + "string_map": { + "foo": "foo_value", + "bar": "bar_value" + } +} +)"; + + testproto::SimpleStruct msg; + + google::protobuf::util::JsonParseOptions options; + auto status = google::protobuf::util::JsonStringToMessage(json, &msg, options); + + CHECK(status.error_message() == ""); + REQUIRE(status.ok()); + CHECK(msg.string_value() == "foo bar"); + CHECK(msg.int_value() == 42); + CHECK(msg.int_arr().size() == 2); + CHECK(msg.int_arr().Get(0) == 4); + CHECK(msg.int_arr().Get(1) == 2); + + CHECK(msg.string_arr().size() == 3); + std::vector<std::string> expected{"foo", "bar", "baz"}; + CHECK( + std::equal( + msg.string_arr().begin(), msg.string_arr().end(), + expected.begin(), expected.end() + ) + ); + + CHECK(msg.int_map_size() == 2); + CHECK(msg.int_map().at("foo") == 4); + CHECK(msg.int_map().at("bar") == 2); + + CHECK(msg.string_map_size() == 2); + CHECK(msg.string_map().at("foo") == "foo_value"); + CHECK(msg.string_map().at("bar") == "bar_value"); +} + +TEST_CASE("invalid json", "[protobuf]") { + auto json = R"( +{ + "string_value": invalid, +} +)"; + + testproto::SimpleStruct msg; + + google::protobuf::util::JsonParseOptions options; + auto status = JsonStringToMessage(json, &msg, options); + + REQUIRE_FALSE(status.ok()); +} + +TEST_CASE("null/missing integer value", "[protobuf]") { + auto json = R"( +{ + "int_value": null, + "string_value": "foo bar", +} +)"; + + google::protobuf::util::JsonParseOptions options; + + testproto::SimpleStruct msg; + auto status = google::protobuf::util::JsonStringToMessage(json, &msg, options); + + REQUIRE(status.ok()); + REQUIRE(msg.string_value() == "foo bar"); + REQUIRE(msg.int_value() == 0); + + json = R"( +{ + "string_value": "foo bar", +} +)"; + + msg = testproto::SimpleStruct{}; + status = google::protobuf::util::JsonStringToMessage(json, &msg, options); + + REQUIRE(status.ok()); + REQUIRE(msg.string_value() == "foo bar"); + REQUIRE(msg.int_value() == 0); +} + +TEST_CASE("json marshal naming", "[protobuf]") { + testproto::JsonNaming msg; + msg.set_foo_value(1); + msg.set_barvalue(2); + msg.set_bazvalue(3); + msg.set_qux_value(4); + + std::string json; + google::protobuf::util::JsonOptions options; + options.add_whitespace = true; + options.preserve_proto_field_names = true; + options.always_print_primitive_fields = true; + options.always_print_enums_as_ints = true; + auto status = google::protobuf::util::MessageToJsonString(msg, &json, options); + auto expected = R"({ + "foo_value": 1, + "barValue": 2, + "BazValue": 3, + "quX_Value": 4 +} +)"; + + REQUIRE(json == expected); +} + +TEST_CASE("json unmarshal naming", "[protobuf]") { + SECTION("accept snake case") { + auto json = R"( +{ + "quX_Value": 42, +} +)"; + + testproto::JsonNaming msg; + google::protobuf::util::JsonParseOptions options; + auto status = google::protobuf::util::JsonStringToMessage(json, &msg, options); + CHECK(status.error_message() == ""); + REQUIRE(status.ok()); + CHECK(msg.qux_value() == 42); + } + + SECTION("accept camelCase case") { + auto json = R"( +{ + "barValue": 42, +} +)"; + + testproto::JsonNaming msg; + google::protobuf::util::JsonParseOptions options; + auto status = google::protobuf::util::JsonStringToMessage(json, &msg, options); + CHECK(status.error_message() == ""); + REQUIRE(status.ok()); + CHECK(msg.barvalue() == 42); + } + + SECTION("accept CamelCase case") { + auto json = R"( +{ + "BazValue": 42, +} +)"; + + testproto::JsonNaming msg; + google::protobuf::util::JsonParseOptions options; + auto status = google::protobuf::util::JsonStringToMessage(json, &msg, options); + CHECK(status.error_message() == ""); + REQUIRE(status.ok()); + CHECK(msg.bazvalue() == 42); + } +} + +TEST_CASE("oneof unmarshal", "[protobuf]") { + SECTION("accept string value") { + auto json = R"( +{ + "string_value": "foo bar", +} + )"; + + testproto::OneofValue msg; + google::protobuf::util::JsonParseOptions options; + auto status = google::protobuf::util::JsonStringToMessage(json, &msg, options); + + CHECK(status.error_message() == ""); + REQUIRE(status.ok()); + CHECK(msg.data_case() == testproto::OneofValue::kStringValue); + CHECK_FALSE(msg.has_struct_value()); + CHECK(msg.string_value() == "foo bar"); + } + + SECTION("accept struct value") { + auto json = R"( +{ + "struct_value": { + "int_value": 42 + } +} + )"; + + testproto::OneofValue msg; + google::protobuf::util::JsonParseOptions options; + auto status = google::protobuf::util::JsonStringToMessage(json, &msg, options); + + CHECK(status.error_message() == ""); + REQUIRE(status.ok()); + CHECK(msg.data_case() == testproto::OneofValue::kStructValue); + CHECK(msg.has_struct_value()); + CHECK(msg.struct_value().int_value() == 42); + } +} + +TEST_CASE("oneof marshal", "[protobuf]") { + SECTION("marshal string value") { + testproto::OneofValue msg; + msg.set_string_value("foo bar"); + google::protobuf::util::JsonPrintOptions options; + options.preserve_proto_field_names = true; + std::string json; + auto status = google::protobuf::util::MessageToJsonString(msg, &json, options); + + auto expected = R"({"string_value":"foo bar"})"; + + CHECK(status.error_message() == ""); + REQUIRE(status.ok()); + CHECK(json == expected); + } + + SECTION("marshal struct value") { + testproto::OneofValue msg; + msg.mutable_struct_value()->set_int_value(42); + google::protobuf::util::JsonPrintOptions options; + options.preserve_proto_field_names = true; + std::string json; + auto status = google::protobuf::util::MessageToJsonString(msg, &json, options); + + auto expected = R"({"struct_value":{"int_value":"42"}})"; + + CHECK(status.error_message() == ""); + REQUIRE(status.ok()); + CHECK(json == expected); + } + + SECTION("marshal test") { + testproto::OneofValue msg; + msg.mutable_struct_value()->set_int_value(42); + google::protobuf::util::JsonPrintOptions options; + options.preserve_proto_field_names = true; + std::string json; + auto status = google::protobuf::util::MessageToJsonString(msg, &json, options); + + auto expected = R"({"struct_value":{"int_value":"42"}})"; + + CHECK(status.error_message() == ""); + REQUIRE(status.ok()); + CHECK(json == expected); + } +} diff --git a/cpp/tests/protobuf/proto/messages.proto b/cpp/tests/protobuf/proto/messages.proto new file mode 100644 index 0000000000000000000000000000000000000000..70f4b46a0e566a6a7d8d1c1d263d595836fed604 --- /dev/null +++ b/cpp/tests/protobuf/proto/messages.proto @@ -0,0 +1,27 @@ +syntax = "proto3"; + +package testproto; + +message SimpleStruct { + int64 int_value = 1; + string string_value = 2; + repeated int64 int_arr = 3; + repeated string string_arr = 4; + map<string, int32> int_map = 5; + map<string, string> string_map = 6; +} + +message JsonNaming { + float foo_value = 1; + float barValue = 2; + float BazValue = 3; + float quX_Value = 4; +} + +message OneofValue { + oneof data { + string string_value = 1; + SimpleStruct struct_value = 2; + } +} + diff --git a/cpp/tests/protobuf/testpb/messages.pb.cc b/cpp/tests/protobuf/testpb/messages.pb.cc new file mode 100644 index 0000000000000000000000000000000000000000..28f1084d3a0416d5c1115e00614a0437eea56010 --- /dev/null +++ b/cpp/tests/protobuf/testpb/messages.pb.cc @@ -0,0 +1,1257 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: messages.proto + +#include "messages.pb.h" + +#include <algorithm> + +#include <google/protobuf/io/coded_stream.h> +#include <google/protobuf/extension_set.h> +#include <google/protobuf/wire_format_lite.h> +#include <google/protobuf/descriptor.h> +#include <google/protobuf/generated_message_reflection.h> +#include <google/protobuf/reflection_ops.h> +#include <google/protobuf/wire_format.h> +// @@protoc_insertion_point(includes) +#include <google/protobuf/port_def.inc> +extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_SimpleStruct_messages_2eproto; +extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_SimpleStruct_IntMapEntry_DoNotUse_messages_2eproto; +extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_SimpleStruct_StringMapEntry_DoNotUse_messages_2eproto; +namespace testproto { +class SimpleStruct_IntMapEntry_DoNotUseDefaultTypeInternal { + public: + ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<SimpleStruct_IntMapEntry_DoNotUse> _instance; +} _SimpleStruct_IntMapEntry_DoNotUse_default_instance_; +class SimpleStruct_StringMapEntry_DoNotUseDefaultTypeInternal { + public: + ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<SimpleStruct_StringMapEntry_DoNotUse> _instance; +} _SimpleStruct_StringMapEntry_DoNotUse_default_instance_; +class SimpleStructDefaultTypeInternal { + public: + ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<SimpleStruct> _instance; +} _SimpleStruct_default_instance_; +class JsonNamingDefaultTypeInternal { + public: + ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<JsonNaming> _instance; +} _JsonNaming_default_instance_; +class OneofValueDefaultTypeInternal { + public: + ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<OneofValue> _instance; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr string_value_; + const ::testproto::SimpleStruct* struct_value_; +} _OneofValue_default_instance_; +} // namespace testproto +static void InitDefaultsscc_info_JsonNaming_messages_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::testproto::_JsonNaming_default_instance_; + new (ptr) ::testproto::JsonNaming(); + ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr); + } + ::testproto::JsonNaming::InitAsDefaultInstance(); +} + +::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_JsonNaming_messages_2eproto = + {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_JsonNaming_messages_2eproto}, {}}; + +static void InitDefaultsscc_info_OneofValue_messages_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::testproto::_OneofValue_default_instance_; + new (ptr) ::testproto::OneofValue(); + ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr); + } + ::testproto::OneofValue::InitAsDefaultInstance(); +} + +::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_OneofValue_messages_2eproto = + {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_OneofValue_messages_2eproto}, { + &scc_info_SimpleStruct_messages_2eproto.base,}}; + +static void InitDefaultsscc_info_SimpleStruct_messages_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::testproto::_SimpleStruct_default_instance_; + new (ptr) ::testproto::SimpleStruct(); + ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr); + } + ::testproto::SimpleStruct::InitAsDefaultInstance(); +} + +::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_SimpleStruct_messages_2eproto = + {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 2, 0, InitDefaultsscc_info_SimpleStruct_messages_2eproto}, { + &scc_info_SimpleStruct_IntMapEntry_DoNotUse_messages_2eproto.base, + &scc_info_SimpleStruct_StringMapEntry_DoNotUse_messages_2eproto.base,}}; + +static void InitDefaultsscc_info_SimpleStruct_IntMapEntry_DoNotUse_messages_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::testproto::_SimpleStruct_IntMapEntry_DoNotUse_default_instance_; + new (ptr) ::testproto::SimpleStruct_IntMapEntry_DoNotUse(); + } + ::testproto::SimpleStruct_IntMapEntry_DoNotUse::InitAsDefaultInstance(); +} + +::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_SimpleStruct_IntMapEntry_DoNotUse_messages_2eproto = + {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_SimpleStruct_IntMapEntry_DoNotUse_messages_2eproto}, {}}; + +static void InitDefaultsscc_info_SimpleStruct_StringMapEntry_DoNotUse_messages_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::testproto::_SimpleStruct_StringMapEntry_DoNotUse_default_instance_; + new (ptr) ::testproto::SimpleStruct_StringMapEntry_DoNotUse(); + } + ::testproto::SimpleStruct_StringMapEntry_DoNotUse::InitAsDefaultInstance(); +} + +::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_SimpleStruct_StringMapEntry_DoNotUse_messages_2eproto = + {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_SimpleStruct_StringMapEntry_DoNotUse_messages_2eproto}, {}}; + +static ::PROTOBUF_NAMESPACE_ID::Metadata file_level_metadata_messages_2eproto[5]; +static constexpr ::PROTOBUF_NAMESPACE_ID::EnumDescriptor const** file_level_enum_descriptors_messages_2eproto = nullptr; +static constexpr ::PROTOBUF_NAMESPACE_ID::ServiceDescriptor const** file_level_service_descriptors_messages_2eproto = nullptr; + +const ::PROTOBUF_NAMESPACE_ID::uint32 TableStruct_messages_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { + PROTOBUF_FIELD_OFFSET(::testproto::SimpleStruct_IntMapEntry_DoNotUse, _has_bits_), + PROTOBUF_FIELD_OFFSET(::testproto::SimpleStruct_IntMapEntry_DoNotUse, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + PROTOBUF_FIELD_OFFSET(::testproto::SimpleStruct_IntMapEntry_DoNotUse, key_), + PROTOBUF_FIELD_OFFSET(::testproto::SimpleStruct_IntMapEntry_DoNotUse, value_), + 0, + 1, + PROTOBUF_FIELD_OFFSET(::testproto::SimpleStruct_StringMapEntry_DoNotUse, _has_bits_), + PROTOBUF_FIELD_OFFSET(::testproto::SimpleStruct_StringMapEntry_DoNotUse, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + PROTOBUF_FIELD_OFFSET(::testproto::SimpleStruct_StringMapEntry_DoNotUse, key_), + PROTOBUF_FIELD_OFFSET(::testproto::SimpleStruct_StringMapEntry_DoNotUse, value_), + 0, + 1, + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::testproto::SimpleStruct, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + PROTOBUF_FIELD_OFFSET(::testproto::SimpleStruct, int_value_), + PROTOBUF_FIELD_OFFSET(::testproto::SimpleStruct, string_value_), + PROTOBUF_FIELD_OFFSET(::testproto::SimpleStruct, int_arr_), + PROTOBUF_FIELD_OFFSET(::testproto::SimpleStruct, string_arr_), + PROTOBUF_FIELD_OFFSET(::testproto::SimpleStruct, int_map_), + PROTOBUF_FIELD_OFFSET(::testproto::SimpleStruct, string_map_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::testproto::JsonNaming, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + PROTOBUF_FIELD_OFFSET(::testproto::JsonNaming, foo_value_), + PROTOBUF_FIELD_OFFSET(::testproto::JsonNaming, barvalue_), + PROTOBUF_FIELD_OFFSET(::testproto::JsonNaming, bazvalue_), + PROTOBUF_FIELD_OFFSET(::testproto::JsonNaming, qux_value_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::testproto::OneofValue, _internal_metadata_), + ~0u, // no _extensions_ + PROTOBUF_FIELD_OFFSET(::testproto::OneofValue, _oneof_case_[0]), + ~0u, // no _weak_field_map_ + offsetof(::testproto::OneofValueDefaultTypeInternal, string_value_), + offsetof(::testproto::OneofValueDefaultTypeInternal, struct_value_), + PROTOBUF_FIELD_OFFSET(::testproto::OneofValue, data_), +}; +static const ::PROTOBUF_NAMESPACE_ID::internal::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { + { 0, 7, sizeof(::testproto::SimpleStruct_IntMapEntry_DoNotUse)}, + { 9, 16, sizeof(::testproto::SimpleStruct_StringMapEntry_DoNotUse)}, + { 18, -1, sizeof(::testproto::SimpleStruct)}, + { 29, -1, sizeof(::testproto::JsonNaming)}, + { 38, -1, sizeof(::testproto::OneofValue)}, +}; + +static ::PROTOBUF_NAMESPACE_ID::Message const * const file_default_instances[] = { + reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::testproto::_SimpleStruct_IntMapEntry_DoNotUse_default_instance_), + reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::testproto::_SimpleStruct_StringMapEntry_DoNotUse_default_instance_), + reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::testproto::_SimpleStruct_default_instance_), + reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::testproto::_JsonNaming_default_instance_), + reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::testproto::_OneofValue_default_instance_), +}; + +const char descriptor_table_protodef_messages_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = + "\n\016messages.proto\022\ttestproto\"\257\002\n\014SimpleSt" + "ruct\022\021\n\tint_value\030\001 \001(\003\022\024\n\014string_value\030" + "\002 \001(\t\022\017\n\007int_arr\030\003 \003(\003\022\022\n\nstring_arr\030\004 \003" + "(\t\0224\n\007int_map\030\005 \003(\0132#.testproto.SimpleSt" + "ruct.IntMapEntry\022:\n\nstring_map\030\006 \003(\0132&.t" + "estproto.SimpleStruct.StringMapEntry\032-\n\013" + "IntMapEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\005:" + "\0028\001\0320\n\016StringMapEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005va" + "lue\030\002 \001(\t:\0028\001\"V\n\nJsonNaming\022\021\n\tfoo_value" + "\030\001 \001(\002\022\020\n\010barValue\030\002 \001(\002\022\020\n\010BazValue\030\003 \001" + "(\002\022\021\n\tquX_Value\030\004 \001(\002\"]\n\nOneofValue\022\026\n\014s" + "tring_value\030\001 \001(\tH\000\022/\n\014struct_value\030\002 \001(" + "\0132\027.testproto.SimpleStructH\000B\006\n\004datab\006pr" + "oto3" + ; +static const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable*const descriptor_table_messages_2eproto_deps[1] = { +}; +static ::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase*const descriptor_table_messages_2eproto_sccs[5] = { + &scc_info_JsonNaming_messages_2eproto.base, + &scc_info_OneofValue_messages_2eproto.base, + &scc_info_SimpleStruct_messages_2eproto.base, + &scc_info_SimpleStruct_IntMapEntry_DoNotUse_messages_2eproto.base, + &scc_info_SimpleStruct_StringMapEntry_DoNotUse_messages_2eproto.base, +}; +static ::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_messages_2eproto_once; +static bool descriptor_table_messages_2eproto_initialized = false; +const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_messages_2eproto = { + &descriptor_table_messages_2eproto_initialized, descriptor_table_protodef_messages_2eproto, "messages.proto", 524, + &descriptor_table_messages_2eproto_once, descriptor_table_messages_2eproto_sccs, descriptor_table_messages_2eproto_deps, 5, 0, + schemas, file_default_instances, TableStruct_messages_2eproto::offsets, + file_level_metadata_messages_2eproto, 5, file_level_enum_descriptors_messages_2eproto, file_level_service_descriptors_messages_2eproto, +}; + +// Force running AddDescriptors() at dynamic initialization time. +static bool dynamic_init_dummy_messages_2eproto = ( ::PROTOBUF_NAMESPACE_ID::internal::AddDescriptors(&descriptor_table_messages_2eproto), true); +namespace testproto { + +// =================================================================== + +SimpleStruct_IntMapEntry_DoNotUse::SimpleStruct_IntMapEntry_DoNotUse() {} +SimpleStruct_IntMapEntry_DoNotUse::SimpleStruct_IntMapEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena) + : SuperType(arena) {} +void SimpleStruct_IntMapEntry_DoNotUse::MergeFrom(const SimpleStruct_IntMapEntry_DoNotUse& other) { + MergeFromInternal(other); +} +::PROTOBUF_NAMESPACE_ID::Metadata SimpleStruct_IntMapEntry_DoNotUse::GetMetadata() const { + return GetMetadataStatic(); +} +void SimpleStruct_IntMapEntry_DoNotUse::MergeFrom( + const ::PROTOBUF_NAMESPACE_ID::Message& other) { + ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom(other); +} + + +// =================================================================== + +SimpleStruct_StringMapEntry_DoNotUse::SimpleStruct_StringMapEntry_DoNotUse() {} +SimpleStruct_StringMapEntry_DoNotUse::SimpleStruct_StringMapEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena) + : SuperType(arena) {} +void SimpleStruct_StringMapEntry_DoNotUse::MergeFrom(const SimpleStruct_StringMapEntry_DoNotUse& other) { + MergeFromInternal(other); +} +::PROTOBUF_NAMESPACE_ID::Metadata SimpleStruct_StringMapEntry_DoNotUse::GetMetadata() const { + return GetMetadataStatic(); +} +void SimpleStruct_StringMapEntry_DoNotUse::MergeFrom( + const ::PROTOBUF_NAMESPACE_ID::Message& other) { + ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom(other); +} + + +// =================================================================== + +void SimpleStruct::InitAsDefaultInstance() { +} +class SimpleStruct::_Internal { + public: +}; + +SimpleStruct::SimpleStruct() + : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) { + SharedCtor(); + // @@protoc_insertion_point(constructor:testproto.SimpleStruct) +} +SimpleStruct::SimpleStruct(const SimpleStruct& from) + : ::PROTOBUF_NAMESPACE_ID::Message(), + _internal_metadata_(nullptr), + int_arr_(from.int_arr_), + string_arr_(from.string_arr_) { + _internal_metadata_.MergeFrom(from._internal_metadata_); + int_map_.MergeFrom(from.int_map_); + string_map_.MergeFrom(from.string_map_); + string_value_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + if (!from._internal_string_value().empty()) { + string_value_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.string_value_); + } + int_value_ = from.int_value_; + // @@protoc_insertion_point(copy_constructor:testproto.SimpleStruct) +} + +void SimpleStruct::SharedCtor() { + ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_SimpleStruct_messages_2eproto.base); + string_value_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + int_value_ = PROTOBUF_LONGLONG(0); +} + +SimpleStruct::~SimpleStruct() { + // @@protoc_insertion_point(destructor:testproto.SimpleStruct) + SharedDtor(); +} + +void SimpleStruct::SharedDtor() { + string_value_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} + +void SimpleStruct::SetCachedSize(int size) const { + _cached_size_.Set(size); +} +const SimpleStruct& SimpleStruct::default_instance() { + ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_SimpleStruct_messages_2eproto.base); + return *internal_default_instance(); +} + + +void SimpleStruct::Clear() { +// @@protoc_insertion_point(message_clear_start:testproto.SimpleStruct) + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + int_arr_.Clear(); + string_arr_.Clear(); + int_map_.Clear(); + string_map_.Clear(); + string_value_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + int_value_ = PROTOBUF_LONGLONG(0); + _internal_metadata_.Clear(); +} + +const char* SimpleStruct::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + ::PROTOBUF_NAMESPACE_ID::uint32 tag; + ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag); + CHK_(ptr); + switch (tag >> 3) { + // int64 int_value = 1; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) { + int_value_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr); + CHK_(ptr); + } else goto handle_unusual; + continue; + // string string_value = 2; + case 2: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) { + auto str = _internal_mutable_string_value(); + ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); + CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "testproto.SimpleStruct.string_value")); + CHK_(ptr); + } else goto handle_unusual; + continue; + // repeated int64 int_arr = 3; + case 3: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) { + ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_int_arr(), ptr, ctx); + CHK_(ptr); + } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24) { + _internal_add_int_arr(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr)); + CHK_(ptr); + } else goto handle_unusual; + continue; + // repeated string string_arr = 4; + case 4: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) { + ptr -= 1; + do { + ptr += 1; + auto str = _internal_add_string_arr(); + ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); + CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "testproto.SimpleStruct.string_arr")); + CHK_(ptr); + if (!ctx->DataAvailable(ptr)) break; + } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<34>(ptr)); + } else goto handle_unusual; + continue; + // map<string, int32> int_map = 5; + case 5: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) { + ptr -= 1; + do { + ptr += 1; + ptr = ctx->ParseMessage(&int_map_, ptr); + CHK_(ptr); + if (!ctx->DataAvailable(ptr)) break; + } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<42>(ptr)); + } else goto handle_unusual; + continue; + // map<string, string> string_map = 6; + case 6: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 50)) { + ptr -= 1; + do { + ptr += 1; + ptr = ctx->ParseMessage(&string_map_, ptr); + CHK_(ptr); + if (!ctx->DataAvailable(ptr)) break; + } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<50>(ptr)); + } else goto handle_unusual; + continue; + default: { + handle_unusual: + if ((tag & 7) == 4 || tag == 0) { + ctx->SetLastTag(tag); + goto success; + } + ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx); + CHK_(ptr != nullptr); + continue; + } + } // switch + } // while +success: + return ptr; +failure: + ptr = nullptr; + goto success; +#undef CHK_ +} + +::PROTOBUF_NAMESPACE_ID::uint8* SimpleStruct::_InternalSerialize( + ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:testproto.SimpleStruct) + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + // int64 int_value = 1; + if (this->int_value() != 0) { + target = stream->EnsureSpace(target); + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(1, this->_internal_int_value(), target); + } + + // string string_value = 2; + if (this->string_value().size() > 0) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_string_value().data(), static_cast<int>(this->_internal_string_value().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "testproto.SimpleStruct.string_value"); + target = stream->WriteStringMaybeAliased( + 2, this->_internal_string_value(), target); + } + + // repeated int64 int_arr = 3; + { + int byte_size = _int_arr_cached_byte_size_.load(std::memory_order_relaxed); + if (byte_size > 0) { + target = stream->WriteInt64Packed( + 3, _internal_int_arr(), byte_size, target); + } + } + + // repeated string string_arr = 4; + for (int i = 0, n = this->_internal_string_arr_size(); i < n; i++) { + const auto& s = this->_internal_string_arr(i); + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + s.data(), static_cast<int>(s.length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "testproto.SimpleStruct.string_arr"); + target = stream->WriteString(4, s, target); + } + + // map<string, int32> int_map = 5; + if (!this->_internal_int_map().empty()) { + typedef ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::PROTOBUF_NAMESPACE_ID::int32 >::const_pointer + ConstPtr; + typedef ConstPtr SortItem; + typedef ::PROTOBUF_NAMESPACE_ID::internal::CompareByDerefFirst<SortItem> Less; + struct Utf8Check { + static void Check(ConstPtr p) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + p->first.data(), static_cast<int>(p->first.length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "testproto.SimpleStruct.IntMapEntry.key"); + } + }; + + if (stream->IsSerializationDeterministic() && + this->_internal_int_map().size() > 1) { + ::std::unique_ptr<SortItem[]> items( + new SortItem[this->_internal_int_map().size()]); + typedef ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::PROTOBUF_NAMESPACE_ID::int32 >::size_type size_type; + size_type n = 0; + for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::PROTOBUF_NAMESPACE_ID::int32 >::const_iterator + it = this->_internal_int_map().begin(); + it != this->_internal_int_map().end(); ++it, ++n) { + items[static_cast<ptrdiff_t>(n)] = SortItem(&*it); + } + ::std::sort(&items[0], &items[static_cast<ptrdiff_t>(n)], Less()); + for (size_type i = 0; i < n; i++) { + target = SimpleStruct_IntMapEntry_DoNotUse::Funcs::InternalSerialize(5, items[static_cast<ptrdiff_t>(i)]->first, items[static_cast<ptrdiff_t>(i)]->second, target, stream); + Utf8Check::Check(&(*items[static_cast<ptrdiff_t>(i)])); + } + } else { + for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::PROTOBUF_NAMESPACE_ID::int32 >::const_iterator + it = this->_internal_int_map().begin(); + it != this->_internal_int_map().end(); ++it) { + target = SimpleStruct_IntMapEntry_DoNotUse::Funcs::InternalSerialize(5, it->first, it->second, target, stream); + Utf8Check::Check(&(*it)); + } + } + } + + // map<string, string> string_map = 6; + if (!this->_internal_string_map().empty()) { + typedef ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >::const_pointer + ConstPtr; + typedef ConstPtr SortItem; + typedef ::PROTOBUF_NAMESPACE_ID::internal::CompareByDerefFirst<SortItem> Less; + struct Utf8Check { + static void Check(ConstPtr p) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + p->first.data(), static_cast<int>(p->first.length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "testproto.SimpleStruct.StringMapEntry.key"); + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + p->second.data(), static_cast<int>(p->second.length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "testproto.SimpleStruct.StringMapEntry.value"); + } + }; + + if (stream->IsSerializationDeterministic() && + this->_internal_string_map().size() > 1) { + ::std::unique_ptr<SortItem[]> items( + new SortItem[this->_internal_string_map().size()]); + typedef ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >::size_type size_type; + size_type n = 0; + for (::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >::const_iterator + it = this->_internal_string_map().begin(); + it != this->_internal_string_map().end(); ++it, ++n) { + items[static_cast<ptrdiff_t>(n)] = SortItem(&*it); + } + ::std::sort(&items[0], &items[static_cast<ptrdiff_t>(n)], Less()); + for (size_type i = 0; i < n; i++) { + target = SimpleStruct_StringMapEntry_DoNotUse::Funcs::InternalSerialize(6, items[static_cast<ptrdiff_t>(i)]->first, items[static_cast<ptrdiff_t>(i)]->second, target, stream); + Utf8Check::Check(&(*items[static_cast<ptrdiff_t>(i)])); + } + } else { + for (::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >::const_iterator + it = this->_internal_string_map().begin(); + it != this->_internal_string_map().end(); ++it) { + target = SimpleStruct_StringMapEntry_DoNotUse::Funcs::InternalSerialize(6, it->first, it->second, target, stream); + Utf8Check::Check(&(*it)); + } + } + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields(), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:testproto.SimpleStruct) + return target; +} + +size_t SimpleStruct::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:testproto.SimpleStruct) + size_t total_size = 0; + + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // repeated int64 int_arr = 3; + { + size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: + Int64Size(this->int_arr_); + if (data_size > 0) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size( + static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size)); + } + int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size); + _int_arr_cached_byte_size_.store(cached_size, + std::memory_order_relaxed); + total_size += data_size; + } + + // repeated string string_arr = 4; + total_size += 1 * + ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(string_arr_.size()); + for (int i = 0, n = string_arr_.size(); i < n; i++) { + total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + string_arr_.Get(i)); + } + + // map<string, int32> int_map = 5; + total_size += 1 * + ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(this->_internal_int_map_size()); + for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::PROTOBUF_NAMESPACE_ID::int32 >::const_iterator + it = this->_internal_int_map().begin(); + it != this->_internal_int_map().end(); ++it) { + total_size += SimpleStruct_IntMapEntry_DoNotUse::Funcs::ByteSizeLong(it->first, it->second); + } + + // map<string, string> string_map = 6; + total_size += 1 * + ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(this->_internal_string_map_size()); + for (::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >::const_iterator + it = this->_internal_string_map().begin(); + it != this->_internal_string_map().end(); ++it) { + total_size += SimpleStruct_StringMapEntry_DoNotUse::Funcs::ByteSizeLong(it->first, it->second); + } + + // string string_value = 2; + if (this->string_value().size() > 0) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_string_value()); + } + + // int64 int_value = 1; + if (this->int_value() != 0) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size( + this->_internal_int_value()); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize( + _internal_metadata_, total_size, &_cached_size_); + } + int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size); + SetCachedSize(cached_size); + return total_size; +} + +void SimpleStruct::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { +// @@protoc_insertion_point(generalized_merge_from_start:testproto.SimpleStruct) + GOOGLE_DCHECK_NE(&from, this); + const SimpleStruct* source = + ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<SimpleStruct>( + &from); + if (source == nullptr) { + // @@protoc_insertion_point(generalized_merge_from_cast_fail:testproto.SimpleStruct) + ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this); + } else { + // @@protoc_insertion_point(generalized_merge_from_cast_success:testproto.SimpleStruct) + MergeFrom(*source); + } +} + +void SimpleStruct::MergeFrom(const SimpleStruct& from) { +// @@protoc_insertion_point(class_specific_merge_from_start:testproto.SimpleStruct) + GOOGLE_DCHECK_NE(&from, this); + _internal_metadata_.MergeFrom(from._internal_metadata_); + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + int_arr_.MergeFrom(from.int_arr_); + string_arr_.MergeFrom(from.string_arr_); + int_map_.MergeFrom(from.int_map_); + string_map_.MergeFrom(from.string_map_); + if (from.string_value().size() > 0) { + + string_value_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.string_value_); + } + if (from.int_value() != 0) { + _internal_set_int_value(from._internal_int_value()); + } +} + +void SimpleStruct::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { +// @@protoc_insertion_point(generalized_copy_from_start:testproto.SimpleStruct) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +void SimpleStruct::CopyFrom(const SimpleStruct& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:testproto.SimpleStruct) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool SimpleStruct::IsInitialized() const { + return true; +} + +void SimpleStruct::InternalSwap(SimpleStruct* other) { + using std::swap; + _internal_metadata_.Swap(&other->_internal_metadata_); + int_arr_.InternalSwap(&other->int_arr_); + string_arr_.InternalSwap(&other->string_arr_); + int_map_.Swap(&other->int_map_); + string_map_.Swap(&other->string_map_); + string_value_.Swap(&other->string_value_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); + swap(int_value_, other->int_value_); +} + +::PROTOBUF_NAMESPACE_ID::Metadata SimpleStruct::GetMetadata() const { + return GetMetadataStatic(); +} + + +// =================================================================== + +void JsonNaming::InitAsDefaultInstance() { +} +class JsonNaming::_Internal { + public: +}; + +JsonNaming::JsonNaming() + : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) { + SharedCtor(); + // @@protoc_insertion_point(constructor:testproto.JsonNaming) +} +JsonNaming::JsonNaming(const JsonNaming& from) + : ::PROTOBUF_NAMESPACE_ID::Message(), + _internal_metadata_(nullptr) { + _internal_metadata_.MergeFrom(from._internal_metadata_); + ::memcpy(&foo_value_, &from.foo_value_, + static_cast<size_t>(reinterpret_cast<char*>(&qux_value_) - + reinterpret_cast<char*>(&foo_value_)) + sizeof(qux_value_)); + // @@protoc_insertion_point(copy_constructor:testproto.JsonNaming) +} + +void JsonNaming::SharedCtor() { + ::memset(&foo_value_, 0, static_cast<size_t>( + reinterpret_cast<char*>(&qux_value_) - + reinterpret_cast<char*>(&foo_value_)) + sizeof(qux_value_)); +} + +JsonNaming::~JsonNaming() { + // @@protoc_insertion_point(destructor:testproto.JsonNaming) + SharedDtor(); +} + +void JsonNaming::SharedDtor() { +} + +void JsonNaming::SetCachedSize(int size) const { + _cached_size_.Set(size); +} +const JsonNaming& JsonNaming::default_instance() { + ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_JsonNaming_messages_2eproto.base); + return *internal_default_instance(); +} + + +void JsonNaming::Clear() { +// @@protoc_insertion_point(message_clear_start:testproto.JsonNaming) + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + ::memset(&foo_value_, 0, static_cast<size_t>( + reinterpret_cast<char*>(&qux_value_) - + reinterpret_cast<char*>(&foo_value_)) + sizeof(qux_value_)); + _internal_metadata_.Clear(); +} + +const char* JsonNaming::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + ::PROTOBUF_NAMESPACE_ID::uint32 tag; + ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag); + CHK_(ptr); + switch (tag >> 3) { + // float foo_value = 1; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 13)) { + foo_value_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr); + ptr += sizeof(float); + } else goto handle_unusual; + continue; + // float barValue = 2; + case 2: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 21)) { + barvalue_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr); + ptr += sizeof(float); + } else goto handle_unusual; + continue; + // float BazValue = 3; + case 3: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 29)) { + bazvalue_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr); + ptr += sizeof(float); + } else goto handle_unusual; + continue; + // float quX_Value = 4; + case 4: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 37)) { + qux_value_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr); + ptr += sizeof(float); + } else goto handle_unusual; + continue; + default: { + handle_unusual: + if ((tag & 7) == 4 || tag == 0) { + ctx->SetLastTag(tag); + goto success; + } + ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx); + CHK_(ptr != nullptr); + continue; + } + } // switch + } // while +success: + return ptr; +failure: + ptr = nullptr; + goto success; +#undef CHK_ +} + +::PROTOBUF_NAMESPACE_ID::uint8* JsonNaming::_InternalSerialize( + ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:testproto.JsonNaming) + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + // float foo_value = 1; + if (!(this->foo_value() <= 0 && this->foo_value() >= 0)) { + target = stream->EnsureSpace(target); + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(1, this->_internal_foo_value(), target); + } + + // float barValue = 2; + if (!(this->barvalue() <= 0 && this->barvalue() >= 0)) { + target = stream->EnsureSpace(target); + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(2, this->_internal_barvalue(), target); + } + + // float BazValue = 3; + if (!(this->bazvalue() <= 0 && this->bazvalue() >= 0)) { + target = stream->EnsureSpace(target); + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(3, this->_internal_bazvalue(), target); + } + + // float quX_Value = 4; + if (!(this->qux_value() <= 0 && this->qux_value() >= 0)) { + target = stream->EnsureSpace(target); + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(4, this->_internal_qux_value(), target); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields(), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:testproto.JsonNaming) + return target; +} + +size_t JsonNaming::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:testproto.JsonNaming) + size_t total_size = 0; + + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // float foo_value = 1; + if (!(this->foo_value() <= 0 && this->foo_value() >= 0)) { + total_size += 1 + 4; + } + + // float barValue = 2; + if (!(this->barvalue() <= 0 && this->barvalue() >= 0)) { + total_size += 1 + 4; + } + + // float BazValue = 3; + if (!(this->bazvalue() <= 0 && this->bazvalue() >= 0)) { + total_size += 1 + 4; + } + + // float quX_Value = 4; + if (!(this->qux_value() <= 0 && this->qux_value() >= 0)) { + total_size += 1 + 4; + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize( + _internal_metadata_, total_size, &_cached_size_); + } + int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size); + SetCachedSize(cached_size); + return total_size; +} + +void JsonNaming::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { +// @@protoc_insertion_point(generalized_merge_from_start:testproto.JsonNaming) + GOOGLE_DCHECK_NE(&from, this); + const JsonNaming* source = + ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<JsonNaming>( + &from); + if (source == nullptr) { + // @@protoc_insertion_point(generalized_merge_from_cast_fail:testproto.JsonNaming) + ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this); + } else { + // @@protoc_insertion_point(generalized_merge_from_cast_success:testproto.JsonNaming) + MergeFrom(*source); + } +} + +void JsonNaming::MergeFrom(const JsonNaming& from) { +// @@protoc_insertion_point(class_specific_merge_from_start:testproto.JsonNaming) + GOOGLE_DCHECK_NE(&from, this); + _internal_metadata_.MergeFrom(from._internal_metadata_); + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + if (!(from.foo_value() <= 0 && from.foo_value() >= 0)) { + _internal_set_foo_value(from._internal_foo_value()); + } + if (!(from.barvalue() <= 0 && from.barvalue() >= 0)) { + _internal_set_barvalue(from._internal_barvalue()); + } + if (!(from.bazvalue() <= 0 && from.bazvalue() >= 0)) { + _internal_set_bazvalue(from._internal_bazvalue()); + } + if (!(from.qux_value() <= 0 && from.qux_value() >= 0)) { + _internal_set_qux_value(from._internal_qux_value()); + } +} + +void JsonNaming::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { +// @@protoc_insertion_point(generalized_copy_from_start:testproto.JsonNaming) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +void JsonNaming::CopyFrom(const JsonNaming& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:testproto.JsonNaming) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool JsonNaming::IsInitialized() const { + return true; +} + +void JsonNaming::InternalSwap(JsonNaming* other) { + using std::swap; + _internal_metadata_.Swap(&other->_internal_metadata_); + swap(foo_value_, other->foo_value_); + swap(barvalue_, other->barvalue_); + swap(bazvalue_, other->bazvalue_); + swap(qux_value_, other->qux_value_); +} + +::PROTOBUF_NAMESPACE_ID::Metadata JsonNaming::GetMetadata() const { + return GetMetadataStatic(); +} + + +// =================================================================== + +void OneofValue::InitAsDefaultInstance() { + ::testproto::_OneofValue_default_instance_.string_value_.UnsafeSetDefault( + &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + ::testproto::_OneofValue_default_instance_.struct_value_ = const_cast< ::testproto::SimpleStruct*>( + ::testproto::SimpleStruct::internal_default_instance()); +} +class OneofValue::_Internal { + public: + static const ::testproto::SimpleStruct& struct_value(const OneofValue* msg); +}; + +const ::testproto::SimpleStruct& +OneofValue::_Internal::struct_value(const OneofValue* msg) { + return *msg->data_.struct_value_; +} +void OneofValue::set_allocated_struct_value(::testproto::SimpleStruct* struct_value) { + ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual(); + clear_data(); + if (struct_value) { + ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr; + if (message_arena != submessage_arena) { + struct_value = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage( + message_arena, struct_value, submessage_arena); + } + set_has_struct_value(); + data_.struct_value_ = struct_value; + } + // @@protoc_insertion_point(field_set_allocated:testproto.OneofValue.struct_value) +} +OneofValue::OneofValue() + : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) { + SharedCtor(); + // @@protoc_insertion_point(constructor:testproto.OneofValue) +} +OneofValue::OneofValue(const OneofValue& from) + : ::PROTOBUF_NAMESPACE_ID::Message(), + _internal_metadata_(nullptr) { + _internal_metadata_.MergeFrom(from._internal_metadata_); + clear_has_data(); + switch (from.data_case()) { + case kStringValue: { + _internal_set_string_value(from._internal_string_value()); + break; + } + case kStructValue: { + _internal_mutable_struct_value()->::testproto::SimpleStruct::MergeFrom(from._internal_struct_value()); + break; + } + case DATA_NOT_SET: { + break; + } + } + // @@protoc_insertion_point(copy_constructor:testproto.OneofValue) +} + +void OneofValue::SharedCtor() { + ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_OneofValue_messages_2eproto.base); + clear_has_data(); +} + +OneofValue::~OneofValue() { + // @@protoc_insertion_point(destructor:testproto.OneofValue) + SharedDtor(); +} + +void OneofValue::SharedDtor() { + if (has_data()) { + clear_data(); + } +} + +void OneofValue::SetCachedSize(int size) const { + _cached_size_.Set(size); +} +const OneofValue& OneofValue::default_instance() { + ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_OneofValue_messages_2eproto.base); + return *internal_default_instance(); +} + + +void OneofValue::clear_data() { +// @@protoc_insertion_point(one_of_clear_start:testproto.OneofValue) + switch (data_case()) { + case kStringValue: { + data_.string_value_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + break; + } + case kStructValue: { + delete data_.struct_value_; + break; + } + case DATA_NOT_SET: { + break; + } + } + _oneof_case_[0] = DATA_NOT_SET; +} + + +void OneofValue::Clear() { +// @@protoc_insertion_point(message_clear_start:testproto.OneofValue) + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + clear_data(); + _internal_metadata_.Clear(); +} + +const char* OneofValue::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + ::PROTOBUF_NAMESPACE_ID::uint32 tag; + ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag); + CHK_(ptr); + switch (tag >> 3) { + // string string_value = 1; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) { + auto str = _internal_mutable_string_value(); + ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); + CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "testproto.OneofValue.string_value")); + CHK_(ptr); + } else goto handle_unusual; + continue; + // .testproto.SimpleStruct struct_value = 2; + case 2: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) { + ptr = ctx->ParseMessage(_internal_mutable_struct_value(), ptr); + CHK_(ptr); + } else goto handle_unusual; + continue; + default: { + handle_unusual: + if ((tag & 7) == 4 || tag == 0) { + ctx->SetLastTag(tag); + goto success; + } + ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx); + CHK_(ptr != nullptr); + continue; + } + } // switch + } // while +success: + return ptr; +failure: + ptr = nullptr; + goto success; +#undef CHK_ +} + +::PROTOBUF_NAMESPACE_ID::uint8* OneofValue::_InternalSerialize( + ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:testproto.OneofValue) + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + // string string_value = 1; + if (_internal_has_string_value()) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_string_value().data(), static_cast<int>(this->_internal_string_value().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "testproto.OneofValue.string_value"); + target = stream->WriteStringMaybeAliased( + 1, this->_internal_string_value(), target); + } + + // .testproto.SimpleStruct struct_value = 2; + if (_internal_has_struct_value()) { + target = stream->EnsureSpace(target); + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: + InternalWriteMessage( + 2, _Internal::struct_value(this), target, stream); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields(), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:testproto.OneofValue) + return target; +} + +size_t OneofValue::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:testproto.OneofValue) + size_t total_size = 0; + + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + switch (data_case()) { + // string string_value = 1; + case kStringValue: { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_string_value()); + break; + } + // .testproto.SimpleStruct struct_value = 2; + case kStructValue: { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( + *data_.struct_value_); + break; + } + case DATA_NOT_SET: { + break; + } + } + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize( + _internal_metadata_, total_size, &_cached_size_); + } + int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size); + SetCachedSize(cached_size); + return total_size; +} + +void OneofValue::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { +// @@protoc_insertion_point(generalized_merge_from_start:testproto.OneofValue) + GOOGLE_DCHECK_NE(&from, this); + const OneofValue* source = + ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<OneofValue>( + &from); + if (source == nullptr) { + // @@protoc_insertion_point(generalized_merge_from_cast_fail:testproto.OneofValue) + ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this); + } else { + // @@protoc_insertion_point(generalized_merge_from_cast_success:testproto.OneofValue) + MergeFrom(*source); + } +} + +void OneofValue::MergeFrom(const OneofValue& from) { +// @@protoc_insertion_point(class_specific_merge_from_start:testproto.OneofValue) + GOOGLE_DCHECK_NE(&from, this); + _internal_metadata_.MergeFrom(from._internal_metadata_); + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + switch (from.data_case()) { + case kStringValue: { + _internal_set_string_value(from._internal_string_value()); + break; + } + case kStructValue: { + _internal_mutable_struct_value()->::testproto::SimpleStruct::MergeFrom(from._internal_struct_value()); + break; + } + case DATA_NOT_SET: { + break; + } + } +} + +void OneofValue::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { +// @@protoc_insertion_point(generalized_copy_from_start:testproto.OneofValue) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +void OneofValue::CopyFrom(const OneofValue& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:testproto.OneofValue) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool OneofValue::IsInitialized() const { + return true; +} + +void OneofValue::InternalSwap(OneofValue* other) { + using std::swap; + _internal_metadata_.Swap(&other->_internal_metadata_); + swap(data_, other->data_); + swap(_oneof_case_[0], other->_oneof_case_[0]); +} + +::PROTOBUF_NAMESPACE_ID::Metadata OneofValue::GetMetadata() const { + return GetMetadataStatic(); +} + + +// @@protoc_insertion_point(namespace_scope) +} // namespace testproto +PROTOBUF_NAMESPACE_OPEN +template<> PROTOBUF_NOINLINE ::testproto::SimpleStruct_IntMapEntry_DoNotUse* Arena::CreateMaybeMessage< ::testproto::SimpleStruct_IntMapEntry_DoNotUse >(Arena* arena) { + return Arena::CreateInternal< ::testproto::SimpleStruct_IntMapEntry_DoNotUse >(arena); +} +template<> PROTOBUF_NOINLINE ::testproto::SimpleStruct_StringMapEntry_DoNotUse* Arena::CreateMaybeMessage< ::testproto::SimpleStruct_StringMapEntry_DoNotUse >(Arena* arena) { + return Arena::CreateInternal< ::testproto::SimpleStruct_StringMapEntry_DoNotUse >(arena); +} +template<> PROTOBUF_NOINLINE ::testproto::SimpleStruct* Arena::CreateMaybeMessage< ::testproto::SimpleStruct >(Arena* arena) { + return Arena::CreateInternal< ::testproto::SimpleStruct >(arena); +} +template<> PROTOBUF_NOINLINE ::testproto::JsonNaming* Arena::CreateMaybeMessage< ::testproto::JsonNaming >(Arena* arena) { + return Arena::CreateInternal< ::testproto::JsonNaming >(arena); +} +template<> PROTOBUF_NOINLINE ::testproto::OneofValue* Arena::CreateMaybeMessage< ::testproto::OneofValue >(Arena* arena) { + return Arena::CreateInternal< ::testproto::OneofValue >(arena); +} +PROTOBUF_NAMESPACE_CLOSE + +// @@protoc_insertion_point(global_scope) +#include <google/protobuf/port_undef.inc> diff --git a/cpp/tests/protobuf/testpb/messages.pb.h b/cpp/tests/protobuf/testpb/messages.pb.h new file mode 100644 index 0000000000000000000000000000000000000000..f5fae933eec66cd81264600d8e729c1243c10a86 --- /dev/null +++ b/cpp/tests/protobuf/testpb/messages.pb.h @@ -0,0 +1,1270 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: messages.proto + +#ifndef GOOGLE_PROTOBUF_INCLUDED_messages_2eproto +#define GOOGLE_PROTOBUF_INCLUDED_messages_2eproto + +#include <limits> +#include <string> + +#include <google/protobuf/port_def.inc> +#if PROTOBUF_VERSION < 3011000 +#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 3011002 < 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/port_undef.inc> +#include <google/protobuf/io/coded_stream.h> +#include <google/protobuf/arena.h> +#include <google/protobuf/arenastring.h> +#include <google/protobuf/generated_message_table_driven.h> +#include <google/protobuf/generated_message_util.h> +#include <google/protobuf/inlined_string_field.h> +#include <google/protobuf/metadata.h> +#include <google/protobuf/generated_message_reflection.h> +#include <google/protobuf/message.h> +#include <google/protobuf/repeated_field.h> // IWYU pragma: export +#include <google/protobuf/extension_set.h> // IWYU pragma: export +#include <google/protobuf/map.h> // IWYU pragma: export +#include <google/protobuf/map_entry.h> +#include <google/protobuf/map_field_inl.h> +#include <google/protobuf/unknown_field_set.h> +// @@protoc_insertion_point(includes) +#include <google/protobuf/port_def.inc> +#define PROTOBUF_INTERNAL_EXPORT_messages_2eproto +PROTOBUF_NAMESPACE_OPEN +namespace internal { +class AnyMetadata; +} // namespace internal +PROTOBUF_NAMESPACE_CLOSE + +// Internal implementation detail -- do not use these members. +struct TableStruct_messages_2eproto { + static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTableField entries[] + PROTOBUF_SECTION_VARIABLE(protodesc_cold); + static const ::PROTOBUF_NAMESPACE_ID::internal::AuxillaryParseTableField aux[] + PROTOBUF_SECTION_VARIABLE(protodesc_cold); + static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTable schema[5] + PROTOBUF_SECTION_VARIABLE(protodesc_cold); + static const ::PROTOBUF_NAMESPACE_ID::internal::FieldMetadata field_metadata[]; + static const ::PROTOBUF_NAMESPACE_ID::internal::SerializationTable serialization_table[]; + static const ::PROTOBUF_NAMESPACE_ID::uint32 offsets[]; +}; +extern const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_messages_2eproto; +namespace testproto { +class JsonNaming; +class JsonNamingDefaultTypeInternal; +extern JsonNamingDefaultTypeInternal _JsonNaming_default_instance_; +class OneofValue; +class OneofValueDefaultTypeInternal; +extern OneofValueDefaultTypeInternal _OneofValue_default_instance_; +class SimpleStruct; +class SimpleStructDefaultTypeInternal; +extern SimpleStructDefaultTypeInternal _SimpleStruct_default_instance_; +class SimpleStruct_IntMapEntry_DoNotUse; +class SimpleStruct_IntMapEntry_DoNotUseDefaultTypeInternal; +extern SimpleStruct_IntMapEntry_DoNotUseDefaultTypeInternal _SimpleStruct_IntMapEntry_DoNotUse_default_instance_; +class SimpleStruct_StringMapEntry_DoNotUse; +class SimpleStruct_StringMapEntry_DoNotUseDefaultTypeInternal; +extern SimpleStruct_StringMapEntry_DoNotUseDefaultTypeInternal _SimpleStruct_StringMapEntry_DoNotUse_default_instance_; +} // namespace testproto +PROTOBUF_NAMESPACE_OPEN +template<> ::testproto::JsonNaming* Arena::CreateMaybeMessage<::testproto::JsonNaming>(Arena*); +template<> ::testproto::OneofValue* Arena::CreateMaybeMessage<::testproto::OneofValue>(Arena*); +template<> ::testproto::SimpleStruct* Arena::CreateMaybeMessage<::testproto::SimpleStruct>(Arena*); +template<> ::testproto::SimpleStruct_IntMapEntry_DoNotUse* Arena::CreateMaybeMessage<::testproto::SimpleStruct_IntMapEntry_DoNotUse>(Arena*); +template<> ::testproto::SimpleStruct_StringMapEntry_DoNotUse* Arena::CreateMaybeMessage<::testproto::SimpleStruct_StringMapEntry_DoNotUse>(Arena*); +PROTOBUF_NAMESPACE_CLOSE +namespace testproto { + +// =================================================================== + +class SimpleStruct_IntMapEntry_DoNotUse : public ::PROTOBUF_NAMESPACE_ID::internal::MapEntry<SimpleStruct_IntMapEntry_DoNotUse, + std::string, ::PROTOBUF_NAMESPACE_ID::int32, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_INT32, + 0 > { +public: + typedef ::PROTOBUF_NAMESPACE_ID::internal::MapEntry<SimpleStruct_IntMapEntry_DoNotUse, + std::string, ::PROTOBUF_NAMESPACE_ID::int32, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_INT32, + 0 > SuperType; + SimpleStruct_IntMapEntry_DoNotUse(); + SimpleStruct_IntMapEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena); + void MergeFrom(const SimpleStruct_IntMapEntry_DoNotUse& other); + static const SimpleStruct_IntMapEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const SimpleStruct_IntMapEntry_DoNotUse*>(&_SimpleStruct_IntMapEntry_DoNotUse_default_instance_); } + static bool ValidateKey(std::string* s) { + return ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(s->data(), static_cast<int>(s->size()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE, "testproto.SimpleStruct.IntMapEntry.key"); + } + static bool ValidateValue(void*) { return true; } + void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& other) final; + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + private: + static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() { + ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_messages_2eproto); + return ::descriptor_table_messages_2eproto.file_level_metadata[0]; + } + + public: +}; + +// ------------------------------------------------------------------- + +class SimpleStruct_StringMapEntry_DoNotUse : public ::PROTOBUF_NAMESPACE_ID::internal::MapEntry<SimpleStruct_StringMapEntry_DoNotUse, + std::string, std::string, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + 0 > { +public: + typedef ::PROTOBUF_NAMESPACE_ID::internal::MapEntry<SimpleStruct_StringMapEntry_DoNotUse, + std::string, std::string, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + 0 > SuperType; + SimpleStruct_StringMapEntry_DoNotUse(); + SimpleStruct_StringMapEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena); + void MergeFrom(const SimpleStruct_StringMapEntry_DoNotUse& other); + static const SimpleStruct_StringMapEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const SimpleStruct_StringMapEntry_DoNotUse*>(&_SimpleStruct_StringMapEntry_DoNotUse_default_instance_); } + static bool ValidateKey(std::string* s) { + return ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(s->data(), static_cast<int>(s->size()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE, "testproto.SimpleStruct.StringMapEntry.key"); + } + static bool ValidateValue(std::string* s) { + return ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(s->data(), static_cast<int>(s->size()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE, "testproto.SimpleStruct.StringMapEntry.value"); + } + void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& other) final; + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + private: + static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() { + ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_messages_2eproto); + return ::descriptor_table_messages_2eproto.file_level_metadata[1]; + } + + public: +}; + +// ------------------------------------------------------------------- + +class SimpleStruct : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:testproto.SimpleStruct) */ { + public: + SimpleStruct(); + virtual ~SimpleStruct(); + + SimpleStruct(const SimpleStruct& from); + SimpleStruct(SimpleStruct&& from) noexcept + : SimpleStruct() { + *this = ::std::move(from); + } + + inline SimpleStruct& operator=(const SimpleStruct& from) { + CopyFrom(from); + return *this; + } + inline SimpleStruct& operator=(SimpleStruct&& from) noexcept { + if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) { + if (this != &from) InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return GetMetadataStatic().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return GetMetadataStatic().reflection; + } + static const SimpleStruct& default_instance(); + + static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY + static inline const SimpleStruct* internal_default_instance() { + return reinterpret_cast<const SimpleStruct*>( + &_SimpleStruct_default_instance_); + } + static constexpr int kIndexInFileMessages = + 2; + + friend void swap(SimpleStruct& a, SimpleStruct& b) { + a.Swap(&b); + } + inline void Swap(SimpleStruct* other) { + if (other == this) return; + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + inline SimpleStruct* New() const final { + return CreateMaybeMessage<SimpleStruct>(nullptr); + } + + SimpleStruct* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final { + return CreateMaybeMessage<SimpleStruct>(arena); + } + void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; + void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; + void CopyFrom(const SimpleStruct& from); + void MergeFrom(const SimpleStruct& from); + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize( + ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _cached_size_.Get(); } + + private: + inline void SharedCtor(); + inline void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(SimpleStruct* other); + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "testproto.SimpleStruct"; + } + private: + inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const { + return nullptr; + } + inline void* MaybeArenaPtr() const { + return nullptr; + } + public: + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + private: + static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() { + ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_messages_2eproto); + return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages]; + } + + public: + + // nested types ---------------------------------------------------- + + + // accessors ------------------------------------------------------- + + enum : int { + kIntArrFieldNumber = 3, + kStringArrFieldNumber = 4, + kIntMapFieldNumber = 5, + kStringMapFieldNumber = 6, + kStringValueFieldNumber = 2, + kIntValueFieldNumber = 1, + }; + // repeated int64 int_arr = 3; + int int_arr_size() const; + private: + int _internal_int_arr_size() const; + public: + void clear_int_arr(); + private: + ::PROTOBUF_NAMESPACE_ID::int64 _internal_int_arr(int index) const; + const ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int64 >& + _internal_int_arr() const; + void _internal_add_int_arr(::PROTOBUF_NAMESPACE_ID::int64 value); + ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int64 >* + _internal_mutable_int_arr(); + public: + ::PROTOBUF_NAMESPACE_ID::int64 int_arr(int index) const; + void set_int_arr(int index, ::PROTOBUF_NAMESPACE_ID::int64 value); + void add_int_arr(::PROTOBUF_NAMESPACE_ID::int64 value); + const ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int64 >& + int_arr() const; + ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int64 >* + mutable_int_arr(); + + // repeated string string_arr = 4; + int string_arr_size() const; + private: + int _internal_string_arr_size() const; + public: + void clear_string_arr(); + const std::string& string_arr(int index) const; + std::string* mutable_string_arr(int index); + void set_string_arr(int index, const std::string& value); + void set_string_arr(int index, std::string&& value); + void set_string_arr(int index, const char* value); + void set_string_arr(int index, const char* value, size_t size); + std::string* add_string_arr(); + void add_string_arr(const std::string& value); + void add_string_arr(std::string&& value); + void add_string_arr(const char* value); + void add_string_arr(const char* value, size_t size); + const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& string_arr() const; + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* mutable_string_arr(); + private: + const std::string& _internal_string_arr(int index) const; + std::string* _internal_add_string_arr(); + public: + + // map<string, int32> int_map = 5; + int int_map_size() const; + private: + int _internal_int_map_size() const; + public: + void clear_int_map(); + private: + const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::PROTOBUF_NAMESPACE_ID::int32 >& + _internal_int_map() const; + ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::PROTOBUF_NAMESPACE_ID::int32 >* + _internal_mutable_int_map(); + public: + const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::PROTOBUF_NAMESPACE_ID::int32 >& + int_map() const; + ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::PROTOBUF_NAMESPACE_ID::int32 >* + mutable_int_map(); + + // map<string, string> string_map = 6; + int string_map_size() const; + private: + int _internal_string_map_size() const; + public: + void clear_string_map(); + private: + const ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >& + _internal_string_map() const; + ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >* + _internal_mutable_string_map(); + public: + const ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >& + string_map() const; + ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >* + mutable_string_map(); + + // string string_value = 2; + void clear_string_value(); + const std::string& string_value() const; + void set_string_value(const std::string& value); + void set_string_value(std::string&& value); + void set_string_value(const char* value); + void set_string_value(const char* value, size_t size); + std::string* mutable_string_value(); + std::string* release_string_value(); + void set_allocated_string_value(std::string* string_value); + private: + const std::string& _internal_string_value() const; + void _internal_set_string_value(const std::string& value); + std::string* _internal_mutable_string_value(); + public: + + // int64 int_value = 1; + void clear_int_value(); + ::PROTOBUF_NAMESPACE_ID::int64 int_value() const; + void set_int_value(::PROTOBUF_NAMESPACE_ID::int64 value); + private: + ::PROTOBUF_NAMESPACE_ID::int64 _internal_int_value() const; + void _internal_set_int_value(::PROTOBUF_NAMESPACE_ID::int64 value); + public: + + // @@protoc_insertion_point(class_scope:testproto.SimpleStruct) + private: + class _Internal; + + ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_; + ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int64 > int_arr_; + mutable std::atomic<int> _int_arr_cached_byte_size_; + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string> string_arr_; + ::PROTOBUF_NAMESPACE_ID::internal::MapField< + SimpleStruct_IntMapEntry_DoNotUse, + std::string, ::PROTOBUF_NAMESPACE_ID::int32, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_INT32, + 0 > int_map_; + ::PROTOBUF_NAMESPACE_ID::internal::MapField< + SimpleStruct_StringMapEntry_DoNotUse, + std::string, std::string, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING, + 0 > string_map_; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr string_value_; + ::PROTOBUF_NAMESPACE_ID::int64 int_value_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + friend struct ::TableStruct_messages_2eproto; +}; +// ------------------------------------------------------------------- + +class JsonNaming : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:testproto.JsonNaming) */ { + public: + JsonNaming(); + virtual ~JsonNaming(); + + JsonNaming(const JsonNaming& from); + JsonNaming(JsonNaming&& from) noexcept + : JsonNaming() { + *this = ::std::move(from); + } + + inline JsonNaming& operator=(const JsonNaming& from) { + CopyFrom(from); + return *this; + } + inline JsonNaming& operator=(JsonNaming&& from) noexcept { + if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) { + if (this != &from) InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return GetMetadataStatic().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return GetMetadataStatic().reflection; + } + static const JsonNaming& default_instance(); + + static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY + static inline const JsonNaming* internal_default_instance() { + return reinterpret_cast<const JsonNaming*>( + &_JsonNaming_default_instance_); + } + static constexpr int kIndexInFileMessages = + 3; + + friend void swap(JsonNaming& a, JsonNaming& b) { + a.Swap(&b); + } + inline void Swap(JsonNaming* other) { + if (other == this) return; + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + inline JsonNaming* New() const final { + return CreateMaybeMessage<JsonNaming>(nullptr); + } + + JsonNaming* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final { + return CreateMaybeMessage<JsonNaming>(arena); + } + void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; + void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; + void CopyFrom(const JsonNaming& from); + void MergeFrom(const JsonNaming& from); + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize( + ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _cached_size_.Get(); } + + private: + inline void SharedCtor(); + inline void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(JsonNaming* other); + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "testproto.JsonNaming"; + } + private: + inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const { + return nullptr; + } + inline void* MaybeArenaPtr() const { + return nullptr; + } + public: + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + private: + static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() { + ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_messages_2eproto); + return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages]; + } + + public: + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + enum : int { + kFooValueFieldNumber = 1, + kBarValueFieldNumber = 2, + kBazValueFieldNumber = 3, + kQuXValueFieldNumber = 4, + }; + // float foo_value = 1; + void clear_foo_value(); + float foo_value() const; + void set_foo_value(float value); + private: + float _internal_foo_value() const; + void _internal_set_foo_value(float value); + public: + + // float barValue = 2; + void clear_barvalue(); + float barvalue() const; + void set_barvalue(float value); + private: + float _internal_barvalue() const; + void _internal_set_barvalue(float value); + public: + + // float BazValue = 3; + void clear_bazvalue(); + float bazvalue() const; + void set_bazvalue(float value); + private: + float _internal_bazvalue() const; + void _internal_set_bazvalue(float value); + public: + + // float quX_Value = 4; + void clear_qux_value(); + float qux_value() const; + void set_qux_value(float value); + private: + float _internal_qux_value() const; + void _internal_set_qux_value(float value); + public: + + // @@protoc_insertion_point(class_scope:testproto.JsonNaming) + private: + class _Internal; + + ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_; + float foo_value_; + float barvalue_; + float bazvalue_; + float qux_value_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + friend struct ::TableStruct_messages_2eproto; +}; +// ------------------------------------------------------------------- + +class OneofValue : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:testproto.OneofValue) */ { + public: + OneofValue(); + virtual ~OneofValue(); + + OneofValue(const OneofValue& from); + OneofValue(OneofValue&& from) noexcept + : OneofValue() { + *this = ::std::move(from); + } + + inline OneofValue& operator=(const OneofValue& from) { + CopyFrom(from); + return *this; + } + inline OneofValue& operator=(OneofValue&& from) noexcept { + if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) { + if (this != &from) InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return GetMetadataStatic().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return GetMetadataStatic().reflection; + } + static const OneofValue& default_instance(); + + enum DataCase { + kStringValue = 1, + kStructValue = 2, + DATA_NOT_SET = 0, + }; + + static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY + static inline const OneofValue* internal_default_instance() { + return reinterpret_cast<const OneofValue*>( + &_OneofValue_default_instance_); + } + static constexpr int kIndexInFileMessages = + 4; + + friend void swap(OneofValue& a, OneofValue& b) { + a.Swap(&b); + } + inline void Swap(OneofValue* other) { + if (other == this) return; + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + inline OneofValue* New() const final { + return CreateMaybeMessage<OneofValue>(nullptr); + } + + OneofValue* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final { + return CreateMaybeMessage<OneofValue>(arena); + } + void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; + void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; + void CopyFrom(const OneofValue& from); + void MergeFrom(const OneofValue& from); + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize( + ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _cached_size_.Get(); } + + private: + inline void SharedCtor(); + inline void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(OneofValue* other); + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "testproto.OneofValue"; + } + private: + inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const { + return nullptr; + } + inline void* MaybeArenaPtr() const { + return nullptr; + } + public: + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + private: + static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() { + ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_messages_2eproto); + return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages]; + } + + public: + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + enum : int { + kStringValueFieldNumber = 1, + kStructValueFieldNumber = 2, + }; + // string string_value = 1; + private: + bool _internal_has_string_value() const; + public: + void clear_string_value(); + const std::string& string_value() const; + void set_string_value(const std::string& value); + void set_string_value(std::string&& value); + void set_string_value(const char* value); + void set_string_value(const char* value, size_t size); + std::string* mutable_string_value(); + std::string* release_string_value(); + void set_allocated_string_value(std::string* string_value); + private: + const std::string& _internal_string_value() const; + void _internal_set_string_value(const std::string& value); + std::string* _internal_mutable_string_value(); + public: + + // .testproto.SimpleStruct struct_value = 2; + bool has_struct_value() const; + private: + bool _internal_has_struct_value() const; + public: + void clear_struct_value(); + const ::testproto::SimpleStruct& struct_value() const; + ::testproto::SimpleStruct* release_struct_value(); + ::testproto::SimpleStruct* mutable_struct_value(); + void set_allocated_struct_value(::testproto::SimpleStruct* struct_value); + private: + const ::testproto::SimpleStruct& _internal_struct_value() const; + ::testproto::SimpleStruct* _internal_mutable_struct_value(); + public: + + void clear_data(); + DataCase data_case() const; + // @@protoc_insertion_point(class_scope:testproto.OneofValue) + private: + class _Internal; + void set_has_string_value(); + void set_has_struct_value(); + + inline bool has_data() const; + inline void clear_has_data(); + + ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_; + union DataUnion { + DataUnion() {} + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr string_value_; + ::testproto::SimpleStruct* struct_value_; + } data_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + ::PROTOBUF_NAMESPACE_ID::uint32 _oneof_case_[1]; + + friend struct ::TableStruct_messages_2eproto; +}; +// =================================================================== + + +// =================================================================== + +#ifdef __GNUC__ + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wstrict-aliasing" +#endif // __GNUC__ +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// SimpleStruct + +// int64 int_value = 1; +inline void SimpleStruct::clear_int_value() { + int_value_ = PROTOBUF_LONGLONG(0); +} +inline ::PROTOBUF_NAMESPACE_ID::int64 SimpleStruct::_internal_int_value() const { + return int_value_; +} +inline ::PROTOBUF_NAMESPACE_ID::int64 SimpleStruct::int_value() const { + // @@protoc_insertion_point(field_get:testproto.SimpleStruct.int_value) + return _internal_int_value(); +} +inline void SimpleStruct::_internal_set_int_value(::PROTOBUF_NAMESPACE_ID::int64 value) { + + int_value_ = value; +} +inline void SimpleStruct::set_int_value(::PROTOBUF_NAMESPACE_ID::int64 value) { + _internal_set_int_value(value); + // @@protoc_insertion_point(field_set:testproto.SimpleStruct.int_value) +} + +// string string_value = 2; +inline void SimpleStruct::clear_string_value() { + string_value_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline const std::string& SimpleStruct::string_value() const { + // @@protoc_insertion_point(field_get:testproto.SimpleStruct.string_value) + return _internal_string_value(); +} +inline void SimpleStruct::set_string_value(const std::string& value) { + _internal_set_string_value(value); + // @@protoc_insertion_point(field_set:testproto.SimpleStruct.string_value) +} +inline std::string* SimpleStruct::mutable_string_value() { + // @@protoc_insertion_point(field_mutable:testproto.SimpleStruct.string_value) + return _internal_mutable_string_value(); +} +inline const std::string& SimpleStruct::_internal_string_value() const { + return string_value_.GetNoArena(); +} +inline void SimpleStruct::_internal_set_string_value(const std::string& value) { + + string_value_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value); +} +inline void SimpleStruct::set_string_value(std::string&& value) { + + string_value_.SetNoArena( + &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); + // @@protoc_insertion_point(field_set_rvalue:testproto.SimpleStruct.string_value) +} +inline void SimpleStruct::set_string_value(const char* value) { + GOOGLE_DCHECK(value != nullptr); + + string_value_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); + // @@protoc_insertion_point(field_set_char:testproto.SimpleStruct.string_value) +} +inline void SimpleStruct::set_string_value(const char* value, size_t size) { + + string_value_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + ::std::string(reinterpret_cast<const char*>(value), size)); + // @@protoc_insertion_point(field_set_pointer:testproto.SimpleStruct.string_value) +} +inline std::string* SimpleStruct::_internal_mutable_string_value() { + + return string_value_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline std::string* SimpleStruct::release_string_value() { + // @@protoc_insertion_point(field_release:testproto.SimpleStruct.string_value) + + return string_value_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline void SimpleStruct::set_allocated_string_value(std::string* string_value) { + if (string_value != nullptr) { + + } else { + + } + string_value_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), string_value); + // @@protoc_insertion_point(field_set_allocated:testproto.SimpleStruct.string_value) +} + +// repeated int64 int_arr = 3; +inline int SimpleStruct::_internal_int_arr_size() const { + return int_arr_.size(); +} +inline int SimpleStruct::int_arr_size() const { + return _internal_int_arr_size(); +} +inline void SimpleStruct::clear_int_arr() { + int_arr_.Clear(); +} +inline ::PROTOBUF_NAMESPACE_ID::int64 SimpleStruct::_internal_int_arr(int index) const { + return int_arr_.Get(index); +} +inline ::PROTOBUF_NAMESPACE_ID::int64 SimpleStruct::int_arr(int index) const { + // @@protoc_insertion_point(field_get:testproto.SimpleStruct.int_arr) + return _internal_int_arr(index); +} +inline void SimpleStruct::set_int_arr(int index, ::PROTOBUF_NAMESPACE_ID::int64 value) { + int_arr_.Set(index, value); + // @@protoc_insertion_point(field_set:testproto.SimpleStruct.int_arr) +} +inline void SimpleStruct::_internal_add_int_arr(::PROTOBUF_NAMESPACE_ID::int64 value) { + int_arr_.Add(value); +} +inline void SimpleStruct::add_int_arr(::PROTOBUF_NAMESPACE_ID::int64 value) { + _internal_add_int_arr(value); + // @@protoc_insertion_point(field_add:testproto.SimpleStruct.int_arr) +} +inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int64 >& +SimpleStruct::_internal_int_arr() const { + return int_arr_; +} +inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int64 >& +SimpleStruct::int_arr() const { + // @@protoc_insertion_point(field_list:testproto.SimpleStruct.int_arr) + return _internal_int_arr(); +} +inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int64 >* +SimpleStruct::_internal_mutable_int_arr() { + return &int_arr_; +} +inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int64 >* +SimpleStruct::mutable_int_arr() { + // @@protoc_insertion_point(field_mutable_list:testproto.SimpleStruct.int_arr) + return _internal_mutable_int_arr(); +} + +// repeated string string_arr = 4; +inline int SimpleStruct::_internal_string_arr_size() const { + return string_arr_.size(); +} +inline int SimpleStruct::string_arr_size() const { + return _internal_string_arr_size(); +} +inline void SimpleStruct::clear_string_arr() { + string_arr_.Clear(); +} +inline std::string* SimpleStruct::add_string_arr() { + // @@protoc_insertion_point(field_add_mutable:testproto.SimpleStruct.string_arr) + return _internal_add_string_arr(); +} +inline const std::string& SimpleStruct::_internal_string_arr(int index) const { + return string_arr_.Get(index); +} +inline const std::string& SimpleStruct::string_arr(int index) const { + // @@protoc_insertion_point(field_get:testproto.SimpleStruct.string_arr) + return _internal_string_arr(index); +} +inline std::string* SimpleStruct::mutable_string_arr(int index) { + // @@protoc_insertion_point(field_mutable:testproto.SimpleStruct.string_arr) + return string_arr_.Mutable(index); +} +inline void SimpleStruct::set_string_arr(int index, const std::string& value) { + // @@protoc_insertion_point(field_set:testproto.SimpleStruct.string_arr) + string_arr_.Mutable(index)->assign(value); +} +inline void SimpleStruct::set_string_arr(int index, std::string&& value) { + // @@protoc_insertion_point(field_set:testproto.SimpleStruct.string_arr) + string_arr_.Mutable(index)->assign(std::move(value)); +} +inline void SimpleStruct::set_string_arr(int index, const char* value) { + GOOGLE_DCHECK(value != nullptr); + string_arr_.Mutable(index)->assign(value); + // @@protoc_insertion_point(field_set_char:testproto.SimpleStruct.string_arr) +} +inline void SimpleStruct::set_string_arr(int index, const char* value, size_t size) { + string_arr_.Mutable(index)->assign( + reinterpret_cast<const char*>(value), size); + // @@protoc_insertion_point(field_set_pointer:testproto.SimpleStruct.string_arr) +} +inline std::string* SimpleStruct::_internal_add_string_arr() { + return string_arr_.Add(); +} +inline void SimpleStruct::add_string_arr(const std::string& value) { + string_arr_.Add()->assign(value); + // @@protoc_insertion_point(field_add:testproto.SimpleStruct.string_arr) +} +inline void SimpleStruct::add_string_arr(std::string&& value) { + string_arr_.Add(std::move(value)); + // @@protoc_insertion_point(field_add:testproto.SimpleStruct.string_arr) +} +inline void SimpleStruct::add_string_arr(const char* value) { + GOOGLE_DCHECK(value != nullptr); + string_arr_.Add()->assign(value); + // @@protoc_insertion_point(field_add_char:testproto.SimpleStruct.string_arr) +} +inline void SimpleStruct::add_string_arr(const char* value, size_t size) { + string_arr_.Add()->assign(reinterpret_cast<const char*>(value), size); + // @@protoc_insertion_point(field_add_pointer:testproto.SimpleStruct.string_arr) +} +inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& +SimpleStruct::string_arr() const { + // @@protoc_insertion_point(field_list:testproto.SimpleStruct.string_arr) + return string_arr_; +} +inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* +SimpleStruct::mutable_string_arr() { + // @@protoc_insertion_point(field_mutable_list:testproto.SimpleStruct.string_arr) + return &string_arr_; +} + +// map<string, int32> int_map = 5; +inline int SimpleStruct::_internal_int_map_size() const { + return int_map_.size(); +} +inline int SimpleStruct::int_map_size() const { + return _internal_int_map_size(); +} +inline void SimpleStruct::clear_int_map() { + int_map_.Clear(); +} +inline const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::PROTOBUF_NAMESPACE_ID::int32 >& +SimpleStruct::_internal_int_map() const { + return int_map_.GetMap(); +} +inline const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::PROTOBUF_NAMESPACE_ID::int32 >& +SimpleStruct::int_map() const { + // @@protoc_insertion_point(field_map:testproto.SimpleStruct.int_map) + return _internal_int_map(); +} +inline ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::PROTOBUF_NAMESPACE_ID::int32 >* +SimpleStruct::_internal_mutable_int_map() { + return int_map_.MutableMap(); +} +inline ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::PROTOBUF_NAMESPACE_ID::int32 >* +SimpleStruct::mutable_int_map() { + // @@protoc_insertion_point(field_mutable_map:testproto.SimpleStruct.int_map) + return _internal_mutable_int_map(); +} + +// map<string, string> string_map = 6; +inline int SimpleStruct::_internal_string_map_size() const { + return string_map_.size(); +} +inline int SimpleStruct::string_map_size() const { + return _internal_string_map_size(); +} +inline void SimpleStruct::clear_string_map() { + string_map_.Clear(); +} +inline const ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >& +SimpleStruct::_internal_string_map() const { + return string_map_.GetMap(); +} +inline const ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >& +SimpleStruct::string_map() const { + // @@protoc_insertion_point(field_map:testproto.SimpleStruct.string_map) + return _internal_string_map(); +} +inline ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >* +SimpleStruct::_internal_mutable_string_map() { + return string_map_.MutableMap(); +} +inline ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >* +SimpleStruct::mutable_string_map() { + // @@protoc_insertion_point(field_mutable_map:testproto.SimpleStruct.string_map) + return _internal_mutable_string_map(); +} + +// ------------------------------------------------------------------- + +// JsonNaming + +// float foo_value = 1; +inline void JsonNaming::clear_foo_value() { + foo_value_ = 0; +} +inline float JsonNaming::_internal_foo_value() const { + return foo_value_; +} +inline float JsonNaming::foo_value() const { + // @@protoc_insertion_point(field_get:testproto.JsonNaming.foo_value) + return _internal_foo_value(); +} +inline void JsonNaming::_internal_set_foo_value(float value) { + + foo_value_ = value; +} +inline void JsonNaming::set_foo_value(float value) { + _internal_set_foo_value(value); + // @@protoc_insertion_point(field_set:testproto.JsonNaming.foo_value) +} + +// float barValue = 2; +inline void JsonNaming::clear_barvalue() { + barvalue_ = 0; +} +inline float JsonNaming::_internal_barvalue() const { + return barvalue_; +} +inline float JsonNaming::barvalue() const { + // @@protoc_insertion_point(field_get:testproto.JsonNaming.barValue) + return _internal_barvalue(); +} +inline void JsonNaming::_internal_set_barvalue(float value) { + + barvalue_ = value; +} +inline void JsonNaming::set_barvalue(float value) { + _internal_set_barvalue(value); + // @@protoc_insertion_point(field_set:testproto.JsonNaming.barValue) +} + +// float BazValue = 3; +inline void JsonNaming::clear_bazvalue() { + bazvalue_ = 0; +} +inline float JsonNaming::_internal_bazvalue() const { + return bazvalue_; +} +inline float JsonNaming::bazvalue() const { + // @@protoc_insertion_point(field_get:testproto.JsonNaming.BazValue) + return _internal_bazvalue(); +} +inline void JsonNaming::_internal_set_bazvalue(float value) { + + bazvalue_ = value; +} +inline void JsonNaming::set_bazvalue(float value) { + _internal_set_bazvalue(value); + // @@protoc_insertion_point(field_set:testproto.JsonNaming.BazValue) +} + +// float quX_Value = 4; +inline void JsonNaming::clear_qux_value() { + qux_value_ = 0; +} +inline float JsonNaming::_internal_qux_value() const { + return qux_value_; +} +inline float JsonNaming::qux_value() const { + // @@protoc_insertion_point(field_get:testproto.JsonNaming.quX_Value) + return _internal_qux_value(); +} +inline void JsonNaming::_internal_set_qux_value(float value) { + + qux_value_ = value; +} +inline void JsonNaming::set_qux_value(float value) { + _internal_set_qux_value(value); + // @@protoc_insertion_point(field_set:testproto.JsonNaming.quX_Value) +} + +// ------------------------------------------------------------------- + +// OneofValue + +// string string_value = 1; +inline bool OneofValue::_internal_has_string_value() const { + return data_case() == kStringValue; +} +inline void OneofValue::set_has_string_value() { + _oneof_case_[0] = kStringValue; +} +inline void OneofValue::clear_string_value() { + if (_internal_has_string_value()) { + data_.string_value_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + clear_has_data(); + } +} +inline const std::string& OneofValue::string_value() const { + // @@protoc_insertion_point(field_get:testproto.OneofValue.string_value) + return _internal_string_value(); +} +inline void OneofValue::set_string_value(const std::string& value) { + _internal_set_string_value(value); + // @@protoc_insertion_point(field_set:testproto.OneofValue.string_value) +} +inline std::string* OneofValue::mutable_string_value() { + // @@protoc_insertion_point(field_mutable:testproto.OneofValue.string_value) + return _internal_mutable_string_value(); +} +inline const std::string& OneofValue::_internal_string_value() const { + if (_internal_has_string_value()) { + return data_.string_value_.GetNoArena(); + } + return *&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(); +} +inline void OneofValue::_internal_set_string_value(const std::string& value) { + if (!_internal_has_string_value()) { + clear_data(); + set_has_string_value(); + data_.string_value_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + } + data_.string_value_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value); +} +inline void OneofValue::set_string_value(std::string&& value) { + // @@protoc_insertion_point(field_set:testproto.OneofValue.string_value) + if (!_internal_has_string_value()) { + clear_data(); + set_has_string_value(); + data_.string_value_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + } + data_.string_value_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); + // @@protoc_insertion_point(field_set_rvalue:testproto.OneofValue.string_value) +} +inline void OneofValue::set_string_value(const char* value) { + GOOGLE_DCHECK(value != nullptr); + if (!_internal_has_string_value()) { + clear_data(); + set_has_string_value(); + data_.string_value_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + } + data_.string_value_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + ::std::string(value)); + // @@protoc_insertion_point(field_set_char:testproto.OneofValue.string_value) +} +inline void OneofValue::set_string_value(const char* value, size_t size) { + if (!_internal_has_string_value()) { + clear_data(); + set_has_string_value(); + data_.string_value_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + } + data_.string_value_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string( + reinterpret_cast<const char*>(value), size)); + // @@protoc_insertion_point(field_set_pointer:testproto.OneofValue.string_value) +} +inline std::string* OneofValue::_internal_mutable_string_value() { + if (!_internal_has_string_value()) { + clear_data(); + set_has_string_value(); + data_.string_value_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + } + return data_.string_value_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline std::string* OneofValue::release_string_value() { + // @@protoc_insertion_point(field_release:testproto.OneofValue.string_value) + if (_internal_has_string_value()) { + clear_has_data(); + return data_.string_value_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + } else { + return nullptr; + } +} +inline void OneofValue::set_allocated_string_value(std::string* string_value) { + if (has_data()) { + clear_data(); + } + if (string_value != nullptr) { + set_has_string_value(); + data_.string_value_.UnsafeSetDefault(string_value); + } + // @@protoc_insertion_point(field_set_allocated:testproto.OneofValue.string_value) +} + +// .testproto.SimpleStruct struct_value = 2; +inline bool OneofValue::_internal_has_struct_value() const { + return data_case() == kStructValue; +} +inline bool OneofValue::has_struct_value() const { + return _internal_has_struct_value(); +} +inline void OneofValue::set_has_struct_value() { + _oneof_case_[0] = kStructValue; +} +inline void OneofValue::clear_struct_value() { + if (_internal_has_struct_value()) { + delete data_.struct_value_; + clear_has_data(); + } +} +inline ::testproto::SimpleStruct* OneofValue::release_struct_value() { + // @@protoc_insertion_point(field_release:testproto.OneofValue.struct_value) + if (_internal_has_struct_value()) { + clear_has_data(); + ::testproto::SimpleStruct* temp = data_.struct_value_; + data_.struct_value_ = nullptr; + return temp; + } else { + return nullptr; + } +} +inline const ::testproto::SimpleStruct& OneofValue::_internal_struct_value() const { + return _internal_has_struct_value() + ? *data_.struct_value_ + : *reinterpret_cast< ::testproto::SimpleStruct*>(&::testproto::_SimpleStruct_default_instance_); +} +inline const ::testproto::SimpleStruct& OneofValue::struct_value() const { + // @@protoc_insertion_point(field_get:testproto.OneofValue.struct_value) + return _internal_struct_value(); +} +inline ::testproto::SimpleStruct* OneofValue::_internal_mutable_struct_value() { + if (!_internal_has_struct_value()) { + clear_data(); + set_has_struct_value(); + data_.struct_value_ = CreateMaybeMessage< ::testproto::SimpleStruct >( + GetArenaNoVirtual()); + } + return data_.struct_value_; +} +inline ::testproto::SimpleStruct* OneofValue::mutable_struct_value() { + // @@protoc_insertion_point(field_mutable:testproto.OneofValue.struct_value) + return _internal_mutable_struct_value(); +} + +inline bool OneofValue::has_data() const { + return data_case() != DATA_NOT_SET; +} +inline void OneofValue::clear_has_data() { + _oneof_case_[0] = DATA_NOT_SET; +} +inline OneofValue::DataCase OneofValue::data_case() const { + return OneofValue::DataCase(_oneof_case_[0]); +} +#ifdef __GNUC__ + #pragma GCC diagnostic pop +#endif // __GNUC__ +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + + +// @@protoc_insertion_point(namespace_scope) + +} // namespace testproto + +// @@protoc_insertion_point(global_scope) + +#include <google/protobuf/port_undef.inc> +#endif // GOOGLE_PROTOBUF_INCLUDED_GOOGLE_PROTOBUF_INCLUDED_messages_2eproto diff --git a/cpp/tests/util/env.hh b/cpp/tests/util/env.hh new file mode 100644 index 0000000000000000000000000000000000000000..a568743550e6e9cb6c036b8d5dc3ba07fdb71595 --- /dev/null +++ b/cpp/tests/util/env.hh @@ -0,0 +1,34 @@ +#ifndef __VEREIGN_TEST_UTIL_ENV_HH +#define __VEREIGN_TEST_UTIL_ENV_HH + +#include <string> + +#include "catch.hpp" +#include <fmt/core.h> + +namespace vereign { +namespace test { + +inline std::string RequireEnv(const std::string& name) { + auto var = std::getenv(name.c_str()); + if (var == nullptr) { + FAIL(fmt::format("{} env variable is required", name)); + return ""; + } + + return var; +} + +inline std::string GetEnv(const std::string& name, const std::string& default_) { + auto var = std::getenv(name.c_str()); + if (var == nullptr) { + return default_; + } + + return var; +} + +} // namespace vereign +} // namespace test + +#endif // __VEREIGN_TEST_UTIL_ENV_HH diff --git a/cpp/tests/util/protobuf.cc b/cpp/tests/util/protobuf.cc new file mode 100644 index 0000000000000000000000000000000000000000..c8a1ae96c0d491510a158236161f8dc843cea08d --- /dev/null +++ b/cpp/tests/util/protobuf.cc @@ -0,0 +1,38 @@ +#include <util/protobuf.hh> + +#include <google/protobuf/util/json_util.h> +#include <fmt/core.h> + +#include "catch.hpp" + +namespace vereign { +namespace test { + +std::string ProtobufToJson(const google::protobuf::Message& msg) { + google::protobuf::util::JsonPrintOptions options; + options.preserve_proto_field_names = true; + options.always_print_primitive_fields = true; + options.always_print_enums_as_ints = true; + options.add_whitespace = true; + + std::string json; + auto status = google::protobuf::util::MessageToJsonString( + msg, + &json, + options + ); + + if (!status.ok()) { + FAIL( + fmt::format( + "request json encode failed: {}", + std::string(status.error_message()) + ) + ); + } + + return json; +} + +} // namespace vereign +} // namespace test diff --git a/cpp/tests/util/protobuf.hh b/cpp/tests/util/protobuf.hh new file mode 100644 index 0000000000000000000000000000000000000000..09ca9be1f1b36d9d1444160333d0017ffc396b8e --- /dev/null +++ b/cpp/tests/util/protobuf.hh @@ -0,0 +1,15 @@ +#ifndef __VEREIGN_TEST_UTIL_PROTOBUF_HH +#define __VEREIGN_TEST_UTIL_PROTOBUF_HH + +#include <string> +#include <google/protobuf/message.h> + +namespace vereign { +namespace test { + +std::string ProtobufToJson(const google::protobuf::Message& msg); + +} // namespace vereign +} // namespace test + +#endif // __VEREIGN_TEST_UTIL_PROTOBUF_HH diff --git a/cpp/tests/vereign/CMakeLists.txt b/cpp/tests/vereign/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..1e4dcd3f7ceca01493e0f3b6601c0a5ddd3d3ee9 --- /dev/null +++ b/cpp/tests/vereign/CMakeLists.txt @@ -0,0 +1,38 @@ + + +include_directories( + ${CMAKE_SOURCE_DIR}/src + ${VENDOR_INSTALL_DIR}/include + ${CMAKE_SOURCE_DIR}/src/vereign/v1pb/googleapis + ${CMAKE_SOURCE_DIR}/src/vereign/v1pb +) + +list(APPEND tests_src + ../init_tests.cc + ../util/protobuf.cc + ../experiment/array.cc + + sync/channel_test.cc + restapi/client_test.cc + restapi/client_session_test.cc + service/gen/passport_service_test.cc + grpc/server_test.cc +) +add_executable(tests ${tests_src}) +target_link_libraries(tests + vereignlib + Threads::Threads +) + +#add_custom_command( +# TARGET protobuf_tests +# COMMENT "Run protobuf tests" +# POST_BUILD +# WORKING_DIRECTORY ${CMAKE_BINARY_DIR} +# COMMAND ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/protobuf_tests +#) + +add_test( + NAME tests + COMMAND tests +) diff --git a/cpp/tests/vereign/grpc/server_test.cc b/cpp/tests/vereign/grpc/server_test.cc new file mode 100644 index 0000000000000000000000000000000000000000..8351504fabeeb7f5b3a09d47d0a2cd77f368027c --- /dev/null +++ b/cpp/tests/vereign/grpc/server_test.cc @@ -0,0 +1,62 @@ +#include <vereign/grpc/server.hh> +#include <vereign/core/scope_guard.hh> +#include <vereign/v1pb/passport_api.gen.grpc.pb.h> +#include <util/env.hh> +#include <util/protobuf.hh> + +#include "catch.hpp" + +#include <grpcpp/create_channel.h> + +TEST_CASE("Server", "[vereign/grpc/server][.integration]") { + auto publicKey = vereign::test::RequireEnv("TEST_VEREIGN_PUB_KEY"); + auto host = vereign::test::RequireEnv("TEST_VEREIGN_API_HOST"); + auto port = vereign::test::GetEnv("TEST_VEREIGN_API_PORT", "https"); + + vereign::grpc::Server server{"localhost:", host, port, publicKey}; + auto on_exit = vereign::core::MakeScopeGuard([&server] { + server.Shutdown(); + }); + + auto channel = ::grpc::CreateChannel( + "localhost:" + std::to_string(server.SelectedPort()), + ::grpc::InsecureChannelCredentials() + ); + + auto client = vereign::v1pb::PassportAPI::NewStub(channel); + + vereign::v1pb::ListPassportsForm req; + vereign::v1pb::ListPassportsFormResponse resp; + ::grpc::ClientContext ctx; + auto status = client->ListPassports(&ctx, req, &resp); + + // std::cout << vereign::test::ProtobufToJson(resp) << std::endl; + + REQUIRE(status.error_message() == ""); + REQUIRE(resp.error() == ""); + CHECK(resp.status() == "OK"); + CHECK(resp.code() == "200"); + CHECK(resp.data().size() > 0); + for (auto& passport : resp.data()) { + CHECK(passport.uuid().size() == 36); + } + + req.Clear(); + resp.Clear(); + ::grpc::ClientContext manually_ctx; + status = client->ListPassportsManually(&manually_ctx, req, &resp); + + // std::cout << vereign::test::ProtobufToJson(resp) << std::endl; + + REQUIRE(status.error_message() == ""); + REQUIRE(resp.error() == ""); + CHECK(resp.status() == "OK"); + CHECK(resp.code() == "200"); + CHECK(resp.data().size() > 0); + for (auto& passport : resp.data()) { + CHECK(passport.uuid().size() == 36); + } + + grpc_shutdown(); + google::protobuf::ShutdownProtobufLibrary(); +} diff --git a/cpp/tests/vereign/restapi/client_session_test.cc b/cpp/tests/vereign/restapi/client_session_test.cc new file mode 100644 index 0000000000000000000000000000000000000000..091ac06bdc3109cb121c99ad74179a3f7872c82f --- /dev/null +++ b/cpp/tests/vereign/restapi/client_session_test.cc @@ -0,0 +1,62 @@ +#include <vereign/restapi/client.hh> +#include <vereign/restapi/client_session.hh> +#include <vereign/core/scope_guard.hh> +#include <vereign/v1pb/passport_types.gen.pb.h> +#include <util/env.hh> +#include <util/protobuf.hh> + +#include "catch.hpp" + +#include <boost/asio/io_context.hpp> +#include <boost/asio/ssl/context.hpp> +#include <fmt/core.h> + +TEST_CASE("ClientSession::Post", "[vereign/restapi/client_session][.integration]") { + namespace asio = boost::asio; + namespace beast = boost::beast; + asio::io_context ioc; + auto work_guard = boost::asio::make_work_guard(ioc); + asio::ssl::context ctx(asio::ssl::context::tlsv12_client); + + auto publicKey = vereign::test::RequireEnv("TEST_VEREIGN_PUB_KEY"); + auto host = vereign::test::RequireEnv("TEST_VEREIGN_API_HOST"); + auto port = vereign::test::GetEnv("TEST_VEREIGN_API_PORT", "https"); + + // Verify the remote server's certificate + // ctx.set_verify_mode(ssl::verify_peer); + + vereign::restapi::Client client{ioc, ctx, host, port}; + vereign::restapi::ClientSession client_session{client, publicKey}; + + std::thread ioc_thread([&ioc]{ + ioc.run(); + }); + auto on_exit = vereign::core::MakeScopeGuard( + [&client, &ioc_thread, &work_guard] { + client.Close(); + work_guard.reset(); + ioc_thread.join(); + } + ); + + for (int i = 0; i < 1; i++) { + auto list_result = client_session.Post( + "/passport/listPassports", + std::make_unique<vereign::v1pb::ListPassportsForm>(), + std::make_unique<vereign::v1pb::ListPassportsFormResponse>() + ); + + auto result = list_result.get(); + + // std::cout << vereign::test::ProtobufToJson(*result.Response) << std::endl; + + auto& list = result.Response; + REQUIRE(list->error() == ""); + CHECK(list->status() == "OK"); + CHECK(list->code() == "200"); + CHECK(list->data().size() > 0); + for (auto& passport : list->data()) { + CHECK(passport.uuid().size() == 36); + } + } +} diff --git a/cpp/tests/vereign/restapi/client_test.cc b/cpp/tests/vereign/restapi/client_test.cc new file mode 100644 index 0000000000000000000000000000000000000000..98cfc825aa414e1c2d3ede1d93d5d6033be7474a --- /dev/null +++ b/cpp/tests/vereign/restapi/client_test.cc @@ -0,0 +1,169 @@ +#include <chrono> +#include <vereign/restapi/client.hh> +#include <vereign/v1pb/identity_types.pb.h> +#include <vereign/v1pb/passport_types.gen.pb.h> +#include <vereign/core/scope_guard.hh> +#include <util/env.hh> + +#include "boost/asio/executor_work_guard.hpp" +#include "catch.hpp" +#include "common_types.pb.h" + +#include <thread> +#include <boost/asio/io_context.hpp> +#include <boost/asio/ssl/context.hpp> +#include <fmt/core.h> +#include <experiment/array.hh> + +TEST_CASE("Client::Post", "[vereign/restapi/client][.integration]") { + namespace asio = boost::asio; + namespace beast = boost::beast; + asio::io_context ioc; + auto work_guard = boost::asio::make_work_guard(ioc); + asio::ssl::context ctx(asio::ssl::context::tlsv12_client); + + auto publicKey = vereign::test::RequireEnv("TEST_VEREIGN_PUB_KEY"); + auto host = vereign::test::RequireEnv("TEST_VEREIGN_API_HOST"); + auto port = vereign::test::GetEnv("TEST_VEREIGN_API_PORT", "https"); + + // Verify the remote server's certificate + // ctx.set_verify_mode(ssl::verify_peer); + + // host = "localhost"; + // port = "9292"; + + vereign::restapi::Client client{ioc, ctx, host, port}; + std::thread ioc_thread([&ioc]{ + ioc.run(); + }); + auto on_exit = vereign::core::MakeScopeGuard( + [&client, &ioc_thread, &work_guard] { + client.Close(); + work_guard.reset(); + ioc_thread.join(); + } + ); + + auto req = std::make_unique<vereign::v1pb::EmptyRequest>(); + auto resp = std::make_unique<vereign::v1pb::LoginFormPreviousAddedDeviceResponse>(); + + // const vereign::v1pb::EmptyRequest* reqptr = req.get(); + // vereign::v1pb::LoginFormPreviousAddedDeviceResponse* respptr = resp.get(); + + auto result = client.Post( + "/api/identity/loginWithPreviouslyAddedDevice", + std::move(req), + std::move(resp), + std::vector<vereign::restapi::HttpHeader>{ + {"publicKey", publicKey} + } + ); + + auto resp_ptr = result.get().Response; + REQUIRE(resp_ptr->error() == ""); + CHECK(resp_ptr->status() == "OK"); + CHECK(resp_ptr->code() == "200"); + + auto token = resp_ptr->data().session(); + auto uuid = resp_ptr->data().uuid(); + UNSCOPED_INFO(fmt::format("-- session: {}\n", resp_ptr->data().session())); + UNSCOPED_INFO(fmt::format("-- uuid: {}\n", resp_ptr->data().uuid())); + + auto list_result = client.Post( + "/api/passport/listPassports", + std::make_unique<vereign::v1pb::ListPassportsForm>(), + std::make_unique<vereign::v1pb::ListPassportsFormResponse>(), + std::vector<vereign::restapi::HttpHeader>{ + {"publicKey", publicKey}, + {"token", token}, + {"uuid", uuid} + } + ); + + auto list = list_result.get().Response; + REQUIRE(list->error() == ""); + CHECK(list->status() == "OK"); + CHECK(list->code() == "200"); + CHECK(list->data().size() > 0); + for (auto& passport : list->data()) { + CHECK(passport.uuid().size() == 36); + } +} + +TEST_CASE("Client load test", "[vereign/restapi/client][.bench]") { + namespace asio = boost::asio; + namespace beast = boost::beast; + asio::io_context ioc; + auto work_guard = boost::asio::make_work_guard(ioc); + asio::ssl::context ctx(asio::ssl::context::tlsv12_client); + + auto publicKey = vereign::test::RequireEnv("TEST_VEREIGN_PUB_KEY"); + auto host = vereign::test::RequireEnv("TEST_VEREIGN_API_HOST"); + auto port = vereign::test::GetEnv("TEST_VEREIGN_API_PORT", "https"); + + host = "localhost"; + port = "9292"; + + vereign::restapi::Client client(ioc, ctx, host, port); + std::thread ioc_thread([&ioc]{ + ioc.run(); + }); + + auto on_exit = vereign::core::MakeScopeGuard( + [&client, &ioc_thread, &work_guard] { + client.Close(); + work_guard.reset(); + ioc_thread.join(); + } + ); + + auto start = std::chrono::high_resolution_clock::now(); + std::vector<std::thread> threads; + for (int i = 0; i < 10; i++) { + auto th = i; + + threads.emplace_back( + [&client, th]() mutable { + auto req = std::make_unique<vereign::v1pb::LoginForm>(); + auto resp = std::make_unique<vereign::v1pb::LoginFormPreviousAddedDeviceResponse>(); + + for (int i = 0; i < 1000; i++) { + auto id = fmt::format("t{}-{}", th, i); + + req->Clear(); + resp->Clear(); + req->set_mode(id); + + auto result = client.Post( + "/", + std::move(req), + std::move(resp) + ); + + // std::cout << ">> waiting for result " << id << std::endl; + auto r = result.get(); + req = std::move(r.Request); + resp = std::move(r.Response); + if (resp->error().size() != 0) { + std::cout << ">> read failed with: " << resp->error() << std::endl; + + } else { + // std::cout << ">> result " << resp->code() << std::endl; + if (resp->code() != id) { + std::cout << ">> id do not match" << std::endl; + } + } + } + } + ); + } + + // client.Close(); + for (auto& th : threads) { + th.join(); + } + + auto end = std::chrono::high_resolution_clock::now(); + auto elapsed = std::chrono::duration_cast<std::chrono::milliseconds>(end - start); + fmt::print("elapsed: {}ms\n", elapsed.count()); +} diff --git a/cpp/tests/vereign/service/gen/passport_service_test.cc b/cpp/tests/vereign/service/gen/passport_service_test.cc new file mode 100644 index 0000000000000000000000000000000000000000..b54d109fd6957503a2f19b582527486ee233d9cc --- /dev/null +++ b/cpp/tests/vereign/service/gen/passport_service_test.cc @@ -0,0 +1,61 @@ +#include <vereign/service/gen/passport_service.hh> +#include <vereign/core/scope_guard.hh> +#include <vereign/v1pb/passport_types.gen.pb.h> +#include <util/env.hh> +#include <util/protobuf.hh> + +#include "catch.hpp" + +#include <boost/asio/io_context.hpp> +#include <boost/asio/ssl/context.hpp> +#include <fmt/core.h> + +TEST_CASE("PassportService::ListPassports", "[vereign/service/gen][.integration]") { + namespace asio = boost::asio; + namespace beast = boost::beast; + asio::io_context ioc; + auto work_guard = boost::asio::make_work_guard(ioc); + asio::ssl::context ctx(asio::ssl::context::tlsv12_client); + + auto publicKey = vereign::test::RequireEnv("TEST_VEREIGN_PUB_KEY"); + auto host = vereign::test::RequireEnv("TEST_VEREIGN_API_HOST"); + auto port = vereign::test::GetEnv("TEST_VEREIGN_API_PORT", "https"); + + // Verify the remote server's certificate + // ctx.set_verify_mode(ssl::verify_peer); + + vereign::restapi::Client client{ioc, ctx, host, port}; + vereign::restapi::ClientSession client_session{client, publicKey}; + vereign::service::gen::PassportService service{client_session}; + + std::thread ioc_thread([&ioc]{ + ioc.run(); + }); + auto on_exit = vereign::core::MakeScopeGuard( + [&client_session, &ioc_thread, &work_guard] { + client_session.Close(); + work_guard.reset(); + ioc_thread.join(); + } + ); + + for (int i = 0; i < 2; i++) { + auto req = std::make_unique<vereign::v1pb::ListPassportsForm>(); + auto resp = std::make_unique<vereign::v1pb::ListPassportsFormResponse>(); + + auto list_result = service.ListPassports(req.get(), resp.get()); + + auto result = list_result.get(); + + // std::cout << vereign::test::ProtobufToJson(*result.Response) << std::endl; + + auto& list = result.Response; + REQUIRE(list->error() == ""); + CHECK(list->status() == "OK"); + CHECK(list->code() == "200"); + CHECK(list->data().size() > 0); + for (auto& passport : list->data()) { + CHECK(passport.uuid().size() == 36); + } + } +} diff --git a/cpp/tests/vereign/sync/channel_test.cc b/cpp/tests/vereign/sync/channel_test.cc new file mode 100644 index 0000000000000000000000000000000000000000..aad0ad75914a1085799bf103b20c0e0d4b6b321e --- /dev/null +++ b/cpp/tests/vereign/sync/channel_test.cc @@ -0,0 +1,214 @@ +#include <vereign/sync/channel.hh> +#include <thread> + +#include "catch.hpp" + +TEST_CASE("Channel::Channel", "[vereign/sync/channel]") { + vereign::sync::Channel<std::string>{10}; + vereign::sync::Channel<std::unique_ptr<std::string>>{10}; +} + +TEST_CASE("Channel general usage", "[vereign/sync/channel]") { + vereign::sync::Channel<std::string> ch{10}; + std::vector<std::string> input; + for (int i = 0; i < 100; i++) { + input.push_back(std::to_string(i)); + } + + std::thread t1{[&ch, &input]() { + for (auto &s : input) { + ch.Add(std::string(s)); + } + ch.Close(); + }}; + + std::vector<std::string> messages; + std::thread t2{[&ch, &messages]() { + for (;;) { + auto val = ch.Get(); + if (val) { + messages.push_back(val.Value()); + } + + if (val.IsClosed() && val.IsEmpty()) { + return; + } + } + }}; + + t1.join(); + t2.join(); + + REQUIRE_THAT(messages, Catch::Equals(input)); +} + +TEST_CASE("Drain closed channel", "[vereign/sync/channel]") { + vereign::sync::Channel<std::string> ch{10}; + std::vector<std::string> input; + for (int i = 0; i < 10; i++) { + ch.Add(std::to_string(i)); + } + ch.Close(); + + std::vector<std::string> messages; + for (;;) { + auto val = ch.Get(); + if (val) { + messages.push_back(val.Value()); + } + + if (val.IsClosed() && val.IsEmpty()) { + return; + } + } + + REQUIRE_THAT(messages, Catch::Equals(input)); +} + +TEST_CASE("Multiple consumers", "[vereign/sync/channel]") { + vereign::sync::Channel<int> ch{10}; + std::vector<int> input; + for (int i = 0; i < 100; i++) { + input.push_back(i); + } + + std::thread t1{[&ch, &input]() { + for (int val : input) { + ch.Add(val); + } + ch.Close(); + }}; + + std::mutex mu; + std::vector<int> messages; + auto worker = [&ch, &messages, &mu](){ + for (;;) { + auto val = ch.Get(); + if (val) { + std::lock_guard<std::mutex> lock{mu}; + messages.push_back(val.Value()); + } + + if (val.IsClosed() && val.IsEmpty()) { + return; + } + } + }; + + std::vector<std::thread> consumers; + for (int i = 0; i < 10; i++) { + consumers.emplace_back(std::thread{worker}); + } + + t1.join(); + for (auto& th: consumers) { + th.join(); + } + + std::sort(messages.begin(), messages.end()); + + REQUIRE_THAT(messages, Catch::Equals(input)); +} + +TEST_CASE("Unblock all consumers on close", "[vereign/sync/channel]") { + vereign::sync::Channel<int> ch{10}; + + auto worker = [&ch](){ + for (;;) { + auto val = ch.Get(); + if (val) { + } + + if (val.IsClosed() && val.IsEmpty()) { + return; + } + } + }; + + std::vector<std::thread> consumers; + for (int i = 0; i < 10; i++) { + consumers.emplace_back(std::thread{worker}); + } + + std::thread t1{[&ch]() { + ch.Close(); + }}; + t1.join(); + + for (auto& th: consumers) { + th.join(); + } +} + +TEST_CASE("Channel::TryAdd const reference", "[vereign/sync/channel]") { + int value; + vereign::sync::Channel<int> ch{2}; + auto result = ch.TryAdd(value); + CHECK(result); + CHECK(result.IsOk()); + CHECK_FALSE(result.IsClosed()); + CHECK_FALSE(result.IsFull()); + + result = ch.TryAdd(value); + CHECK(result); + CHECK(result.IsOk()); + CHECK_FALSE(result.IsClosed()); + CHECK_FALSE(result.IsFull()); + + result = ch.TryAdd(value); + CHECK_FALSE(result); + CHECK_FALSE(result.IsOk()); + CHECK_FALSE(result.IsClosed()); + CHECK(result.IsFull()); + + ch.Close(); + result = ch.TryAdd(value); + CHECK_FALSE(result); + CHECK_FALSE(result.IsOk()); + CHECK(result.IsClosed()); + CHECK(result.IsFull()); + + vereign::sync::Channel<int> closed_ch{2}; + closed_ch.Close(); + result = closed_ch.TryAdd(value); + CHECK_FALSE(result); + CHECK_FALSE(result.IsOk()); + CHECK(result.IsClosed()); + CHECK_FALSE(result.IsFull()); +} + +TEST_CASE("Channel::TryAdd rvalue reference", "[vereign/sync/channel]") { + vereign::sync::Channel<std::string> ch{2}; + auto result = ch.TryAdd("foo"); + CHECK(result); + CHECK(result.IsOk()); + CHECK_FALSE(result.IsClosed()); + CHECK_FALSE(result.IsFull()); + + result = ch.TryAdd("bar"); + CHECK(result); + CHECK(result.IsOk()); + CHECK_FALSE(result.IsClosed()); + CHECK_FALSE(result.IsFull()); + + result = ch.TryAdd("baz"); + CHECK_FALSE(result); + CHECK_FALSE(result.IsOk()); + CHECK_FALSE(result.IsClosed()); + CHECK(result.IsFull()); + + ch.Close(); + result = ch.TryAdd("baz"); + CHECK_FALSE(result); + CHECK_FALSE(result.IsOk()); + CHECK(result.IsClosed()); + CHECK(result.IsFull()); + + vereign::sync::Channel<std::string> closed_ch{2}; + closed_ch.Close(); + result = closed_ch.TryAdd("foo"); + CHECK_FALSE(result); + CHECK_FALSE(result.IsOk()); + CHECK(result.IsClosed()); + CHECK_FALSE(result.IsFull()); +}