Skip to content
This repository was archived by the owner on Jan 16, 2024. It is now read-only.

Commit 230f0de

Browse files
committed
build 3.0.0
1 parent fc81043 commit 230f0de

File tree

147 files changed

+28358
-42100
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

147 files changed

+28358
-42100
lines changed

bin32/protoc.exe

3.63 MB
Binary file not shown.

bin64/protoc.exe

3.5 MB
Binary file not shown.

include/google/protobuf/any.h

Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
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+
#ifndef GOOGLE_PROTOBUF_ANY_H__
32+
#define GOOGLE_PROTOBUF_ANY_H__
33+
34+
#include <string>
35+
36+
#include <google/protobuf/stubs/common.h>
37+
#include <google/protobuf/descriptor.h>
38+
#include <google/protobuf/message.h>
39+
#include <google/protobuf/arenastring.h>
40+
41+
namespace google {
42+
namespace protobuf {
43+
namespace internal {
44+
45+
// Helper class used to implement google::protobuf::Any.
46+
class LIBPROTOBUF_EXPORT AnyMetadata {
47+
typedef ArenaStringPtr UrlType;
48+
typedef ArenaStringPtr ValueType;
49+
public:
50+
// AnyMetadata does not take ownership of "type_url" and "value".
51+
AnyMetadata(UrlType* type_url, ValueType* value);
52+
53+
// Packs a message using the default type URL prefix: "type.googleapis.com".
54+
// The resulted type URL will be "type.googleapis.com/<message_full_name>".
55+
void PackFrom(const Message& message);
56+
// Packs a message using the given type URL prefix. The type URL will be
57+
// constructed by concatenating the message type's full name to the prefix
58+
// with an optional "/" separator if the prefix doesn't already end up "/".
59+
// For example, both PackFrom(message, "type.googleapis.com") and
60+
// PackFrom(message, "type.googleapis.com/") yield the same result type
61+
// URL: "type.googleapis.com/<message_full_name>".
62+
void PackFrom(const Message& message, const string& type_url_prefix);
63+
64+
// Unpacks the payload into the given message. Returns false if the message's
65+
// type doesn't match the type specified in the type URL (i.e., the full
66+
// name after the last "/" of the type URL doesn't match the message's actaul
67+
// full name) or parsing the payload has failed.
68+
bool UnpackTo(Message* message) const;
69+
70+
// Checks whether the type specified in the type URL matches the given type.
71+
// A type is consdiered matching if its full name matches the full name after
72+
// the last "/" in the type URL.
73+
template<typename T>
74+
bool Is() const {
75+
return InternalIs(T::default_instance().GetDescriptor());
76+
}
77+
78+
private:
79+
bool InternalIs(const Descriptor* message) const;
80+
81+
UrlType* type_url_;
82+
ValueType* value_;
83+
84+
GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(AnyMetadata);
85+
};
86+
87+
extern const char kAnyFullTypeName[]; // "google.protobuf.Any".
88+
extern const char kTypeGoogleApisComPrefix[]; // "type.googleapis.com/".
89+
extern const char kTypeGoogleProdComPrefix[]; // "type.googleprod.com/".
90+
91+
// Get the proto type name from Any::type_url value. For example, passing
92+
// "type.googleapis.com/rpc.QueryOrigin" will return "rpc.QueryOrigin" in
93+
// *full_type_name. Returns false if type_url does not start with
94+
// "type.googleapis.com" or "type.googleprod.com".
95+
bool ParseAnyTypeUrl(const string& type_url, string* full_type_name);
96+
97+
// See if message is of type google.protobuf.Any, if so, return the descriptors
98+
// for "type_url" and "value" fields.
99+
bool GetAnyFieldDescriptors(const Message& message,
100+
const FieldDescriptor** type_url_field,
101+
const FieldDescriptor** value_field);
102+
103+
} // namespace internal
104+
} // namespace protobuf
105+
106+
} // namespace google
107+
#endif // GOOGLE_PROTOBUF_ANY_H__

include/google/protobuf/any.pb.h

Lines changed: 258 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)