aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/google/protobuf/reflection_ops.h
diff options
context:
space:
mode:
authorGravatar temporal <temporal@630680e5-0e50-0410-840e-4b1c322b438d>2008-08-13 03:15:00 +0000
committerGravatar temporal <temporal@630680e5-0e50-0410-840e-4b1c322b438d>2008-08-13 03:15:00 +0000
commit779f61c6a3ce02a119e28e802f229e61b69b9046 (patch)
tree9131ef5f0acdc3d708a795fc6703488674741ee0 /src/google/protobuf/reflection_ops.h
parenta0f27fcd96c5bf2509ca88cca54f00b78f7b8bc5 (diff)
Integrate recent changes from google3.
protoc - New flags --encode and --decode can be used to convert between protobuf text format and binary format from the command-line. - New flag --descriptor_set_out can be used to write FileDescriptorProtos for all parsed files directly into a single output file. This is particularly useful if you wish to parse .proto files from programs written in languages other than C++: just run protoc as a background process and have it output a FileDescriptorList, then parse that natively. C++ - Reflection objects are now per-class rather than per-instance. To make this possible, the Reflection interface had to be changed such that all methods take the Message instance as a parameter. This change improves performance significantly in memory-bandwidth-limited use cases, since it makes the message objects smaller. Note that source-incompatible interface changes like this will not be made again after the library leaves beta. Python - MergeFrom(message) and CopyFrom(message) are now implemented. - SerializeToString() raises an exception if the message is missing required fields. - Code organization improvements. - Fixed doc comments for RpcController and RpcChannel, which had somehow been swapped.
Diffstat (limited to 'src/google/protobuf/reflection_ops.h')
-rw-r--r--src/google/protobuf/reflection_ops.h22
1 files changed, 7 insertions, 15 deletions
diff --git a/src/google/protobuf/reflection_ops.h b/src/google/protobuf/reflection_ops.h
index 4a7f76bb..b6922a63 100644
--- a/src/google/protobuf/reflection_ops.h
+++ b/src/google/protobuf/reflection_ops.h
@@ -30,7 +30,7 @@ namespace google {
namespace protobuf {
namespace internal {
-// Basic operations that can be performed using Message::Reflection.
+// 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.
@@ -41,24 +41,16 @@ namespace internal {
// This class is really a namespace that contains only static methods.
class LIBPROTOBUF_EXPORT ReflectionOps {
public:
- static void Copy(const Descriptor* descriptor,
- const Message::Reflection& from,
- Message::Reflection* to);
- static void Merge(const Descriptor* descriptor,
- const Message::Reflection& from,
- Message::Reflection* to);
- static void Clear(const Descriptor* descriptor,
- Message::Reflection* reflection);
- static bool IsInitialized(const Descriptor* descriptor,
- const Message::Reflection& reflection);
- static void DiscardUnknownFields(const Descriptor* descriptor,
- Message::Reflection* reflection);
+ 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 Descriptor* descriptor,
- const Message::Reflection& reflection,
+ static void FindInitializationErrors(const Message& message,
const string& prefix,
vector<string>* errors);