grpc
third_party
protobuf
src
google
protobuf
protobuf/src/google/protobuf/reflection_ops.h
Go to the documentation of this file.
1
// Protocol Buffers - Google's data interchange format
2
// Copyright 2008 Google Inc. All rights reserved.
3
// https://developers.google.com/protocol-buffers/
4
//
5
// Redistribution and use in source and binary forms, with or without
6
// modification, are permitted provided that the following conditions are
7
// met:
8
//
9
// * Redistributions of source code must retain the above copyright
10
// notice, this list of conditions and the following disclaimer.
11
// * Redistributions in binary form must reproduce the above
12
// copyright notice, this list of conditions and the following disclaimer
13
// in the documentation and/or other materials provided with the
14
// distribution.
15
// * Neither the name of Google Inc. nor the names of its
16
// contributors may be used to endorse or promote products derived from
17
// this software without specific prior written permission.
18
//
19
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30
31
// Author: kenton@google.com (Kenton Varda)
32
// Based on original Protocol Buffers design by
33
// Sanjay Ghemawat, Jeff Dean, and others.
34
//
35
// This header is logically internal, but is made public because it is used
36
// from protocol-compiler-generated code, which may reside in other components.
37
38
#ifndef GOOGLE_PROTOBUF_REFLECTION_OPS_H__
39
#define GOOGLE_PROTOBUF_REFLECTION_OPS_H__
40
41
#include <google/protobuf/stubs/common.h>
42
#include <google/protobuf/message.h>
43
44
#ifdef SWIG
45
#error "You cannot SWIG proto headers"
46
#endif
47
48
#include <google/protobuf/port_def.inc>
49
50
namespace
google
{
51
namespace
protobuf
{
52
namespace
internal
{
53
54
// Basic operations that can be performed using reflection.
55
// These can be used as a cheap way to implement the corresponding
56
// methods of the Message interface, though they are likely to be
57
// slower than implementations tailored for the specific message type.
58
//
59
// This class should stay limited to operations needed to implement
60
// the Message interface.
61
//
62
// This class is really a namespace that contains only static methods.
63
class
PROTOBUF_EXPORT ReflectionOps {
64
public
:
65
static
void
Copy
(
const
Message
&
from
,
Message
*
to
);
66
static
void
Merge
(
const
Message
&
from
,
Message
*
to
);
67
static
void
Clear
(
Message
*
message
);
68
static
bool
IsInitialized
(
const
Message
&
message
);
69
static
bool
IsInitialized
(
const
Message
&
message
,
bool
check_fields,
70
bool
check_descendants);
71
static
void
DiscardUnknownFields
(
Message
*
message
);
72
73
// Finds all unset required fields in the message and adds their full
74
// paths (e.g. "foo.bar[5].baz") to *names. "prefix" will be attached to
75
// the front of each name.
76
static
void
FindInitializationErrors
(
const
Message
&
message
,
77
const
std::string
&
prefix
,
78
std::vector<std::string>*
errors
);
79
80
private
:
81
// All methods are static. No need to construct.
82
GOOGLE_DISALLOW_EVIL_CONSTRUCTORS
(ReflectionOps);
83
};
84
85
}
// namespace internal
86
}
// namespace protobuf
87
}
// namespace google
88
89
#include <google/protobuf/port_undef.inc>
90
91
#endif // GOOGLE_PROTOBUF_REFLECTION_OPS_H__
GOOGLE_DISALLOW_EVIL_CONSTRUCTORS
#define GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(TypeName)
Definition:
bloaty/third_party/protobuf/src/google/protobuf/stubs/macros.h:40
google::protobuf.internal.python_message.DiscardUnknownFields
DiscardUnknownFields
Definition:
bloaty/third_party/protobuf/python/google/protobuf/internal/python_message.py:1432
testing::internal::string
::std::string string
Definition:
bloaty/third_party/protobuf/third_party/googletest/googletest/include/gtest/internal/gtest-port.h:881
google::protobuf
Definition:
bloaty/third_party/protobuf/benchmarks/util/data_proto2_to_proto3_util.h:12
to
size_t to
Definition:
abseil-cpp/absl/container/internal/layout_test.cc:1385
message
char * message
Definition:
libuv/docs/code/tty-gravity/main.c:12
from
size_t from
Definition:
abseil-cpp/absl/container/internal/layout_test.cc:1384
errors
const char * errors
Definition:
bloaty/third_party/protobuf/src/google/protobuf/io/tokenizer_unittest.cc:841
google::protobuf.text_format.Merge
def Merge(text, message, allow_unknown_extension=False, allow_field_number=False, descriptor_pool=None, allow_unknown_field=False)
Definition:
bloaty/third_party/protobuf/python/google/protobuf/text_format.py:659
google::protobuf.internal.python_message.Clear
Clear
Definition:
bloaty/third_party/protobuf/python/google/protobuf/internal/python_message.py:1430
Copy
@ Copy
Definition:
upb/benchmarks/benchmark.cc:200
prefix
static const char prefix[]
Definition:
head_of_line_blocking.cc:28
google::protobuf.internal.python_message.IsInitialized
IsInitialized
Definition:
bloaty/third_party/protobuf/python/google/protobuf/internal/python_message.py:1245
internal
Definition:
benchmark/test/output_test_helper.cc:20
google
Definition:
bloaty/third_party/protobuf/benchmarks/util/data_proto2_to_proto3_util.h:11
Message
Definition:
protobuf/php/ext/google/protobuf/message.c:53
google::protobuf.internal.python_message.FindInitializationErrors
FindInitializationErrors
Definition:
bloaty/third_party/protobuf/python/google/protobuf/internal/python_message.py:1291
grpc
Author(s):
autogenerated on Fri May 16 2025 03:00:01