diff options
author | Joshua Duong <joshuaduong@google.com> | 2018-08-29 13:40:10 -0700 |
---|---|---|
committer | Joshua Duong <joshuaduong@google.com> | 2018-09-24 11:09:29 -0700 |
commit | 8e2a5472dd374e6c971d30eb3d00898a8c1a25c8 (patch) | |
tree | aa098d10f1e6d05e824b9d4f0125b3350746fe8a /windows_msvc-x86_64/include/google/protobuf/reflection_ops.h | |
parent | a0e5a4bd1145efc33ce19d7a0ddbd851f6e756bf (diff) | |
download | protobuf-emu-29.0-release.tar.gz |
[windows-msvc] Add protobuf prebuilts for windows-msvc build.emu-master-devemu-30-releaseemu-3.1-releaseemu-3.0-releaseemu-29.0-releaseaosp-emu-30-release
Built natively with Visual Studio with linking to dynamic CRT
(msvcrt.lib).
Change-Id: I08a6610e330f4180ac0263c28bd4445280171e18
Diffstat (limited to 'windows_msvc-x86_64/include/google/protobuf/reflection_ops.h')
-rw-r--r-- | windows_msvc-x86_64/include/google/protobuf/reflection_ops.h | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/windows_msvc-x86_64/include/google/protobuf/reflection_ops.h b/windows_msvc-x86_64/include/google/protobuf/reflection_ops.h new file mode 100644 index 0000000..4775911 --- /dev/null +++ b/windows_msvc-x86_64/include/google/protobuf/reflection_ops.h @@ -0,0 +1,81 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +// Author: kenton@google.com (Kenton Varda) +// Based on original Protocol Buffers design by +// Sanjay Ghemawat, Jeff Dean, and others. +// +// This header is logically internal, but is made public because it is used +// from protocol-compiler-generated code, which may reside in other components. + +#ifndef GOOGLE_PROTOBUF_REFLECTION_OPS_H__ +#define GOOGLE_PROTOBUF_REFLECTION_OPS_H__ + +#include <google/protobuf/stubs/common.h> +#include <google/protobuf/message.h> + +namespace google { +namespace protobuf { +namespace internal { + +// Basic operations that can be performed using reflection. +// These can be used as a cheap way to implement the corresponding +// methods of the Message interface, though they are likely to be +// slower than implementations tailored for the specific message type. +// +// This class should stay limited to operations needed to implement +// the Message interface. +// +// This class is really a namespace that contains only static methods. +class LIBPROTOBUF_EXPORT ReflectionOps { + public: + static void Copy(const Message& from, Message* to); + static void Merge(const Message& from, Message* to); + static void Clear(Message* message); + static bool IsInitialized(const Message& message); + static void DiscardUnknownFields(Message* message); + + // Finds all unset required fields in the message and adds their full + // paths (e.g. "foo.bar[5].baz") to *names. "prefix" will be attached to + // the front of each name. + static void FindInitializationErrors(const Message& message, + const string& prefix, + vector<string>* errors); + + private: + // All methods are static. No need to construct. + GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(ReflectionOps); +}; + +} // namespace internal +} // namespace protobuf + +} // namespace google +#endif // GOOGLE_PROTOBUF_REFLECTION_OPS_H__ |