forked from protocolbuffers/protobuf
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathGPBAny.pbobjc.h
More file actions
131 lines (111 loc) · 5.06 KB
/
Copy pathGPBAny.pbobjc.h
File metadata and controls
131 lines (111 loc) · 5.06 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
// Generated by the protocol buffer compiler. DO NOT EDIT!
// NO CHECKED-IN PROTOBUF GENCODE
// clang-format off
// source: google/protobuf/any.proto
#import "GPBDescriptor.h"
#import "GPBMessage.h"
#import "GPBRootObject.h"
#if GOOGLE_PROTOBUF_OBJC_VERSION < 40311
#error This file was generated by a newer version of protoc which is incompatible with your Protocol Buffer library sources.
#endif
#if 40311 < GOOGLE_PROTOBUF_OBJC_MIN_SUPPORTED_VERSION
#error This file was generated by an older version of protoc which is incompatible with your Protocol Buffer library sources.
#endif
// @@protoc_insertion_point(imports)
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
CF_EXTERN_C_BEGIN
NS_ASSUME_NONNULL_BEGIN
#pragma mark - GPBAnyRoot
/**
* Exposes the extension registry for this file.
*
* The base class provides:
* @code
* + (GPBExtensionRegistry *)extensionRegistry;
* @endcode
* which is a @c GPBExtensionRegistry that includes all the extensions defined by
* this file and all files that it depends on.
**/
GPB_FINAL @interface GPBAnyRoot : GPBRootObject
@end
#pragma mark - GPBAny
typedef GPB_ENUM(GPBAny_FieldNumber) {
GPBAny_FieldNumber_TypeURL = 1,
GPBAny_FieldNumber_Value = 2,
};
/**
* `Any` contains an arbitrary serialized protocol buffer message along with a
* URL that describes the type of the serialized message.
*
* In its binary encoding, an `Any` is an ordinary message; but in other wire
* forms like JSON, it has a special encoding. The format of the type URL is
* described on the `type_url` field.
*
* Protobuf APIs provide utilities to interact with `Any` values:
*
* - A 'pack' operation accepts a message and constructs a generic `Any` wrapper
* around it.
* - An 'unpack' operation reads the content of an `Any` message, either into an
* existing message or a new one. Unpack operations must check the type of the
* value they unpack against the declared `type_url`.
* - An 'is' operation decides whether an `Any` contains a message of the given
* type, i.e. whether it can 'unpack' that type.
*
* The JSON format representation of an `Any` follows one of these cases:
*
* - For types without special-cased JSON encodings, the JSON format
* representation of the `Any` is the same as that of the message, with an
* additional `\@type` field which contains the type URL.
* - For types with special-cased JSON encodings (typically called 'well-known'
* types, listed in https://protobuf.dev/programming-guides/json/#any), the
* JSON format representation has a key `\@type` which contains the type URL
* and a key `value` which contains the JSON-serialized value.
*
* The text format representation of an `Any` is like a message with one field
* whose name is the type URL in brackets. For example, an `Any` containing a
* `foo.Bar` message may be written `[type.googleapis.com/foo.Bar] { a: 2 }`.
**/
GPB_FINAL @interface GPBAny : GPBMessage
/**
* Identifies the type of the serialized Protobuf message with a URI reference
* consisting of a prefix ending in a slash and the fully-qualified type name.
*
* Example: type.googleapis.com/google.protobuf.StringValue
*
* This string must contain at least one `/` character, and the content after
* the last `/` must be the fully-qualified name of the type in canonical
* form, without a leading dot. Do not write a scheme on these URI references
* so that clients do not attempt to contact them.
*
* The prefix is arbitrary and Protobuf implementations are expected to
* simply strip off everything up to and including the last `/` to identify
* the type. `type.googleapis.com/` is a common default prefix that some
* legacy implementations require. This prefix does not indicate the origin of
* the type, and URIs containing it are not expected to respond to any
* requests.
*
* All type URL strings must be legal URI references with the additional
* restriction (for the text format) that the content of the reference
* must consist only of alphanumeric characters, percent-encoded escapes, and
* characters in the following set (not including the outer backticks):
* `/-.~_!$&()*+,;=`. Despite our allowing percent encodings, implementations
* should not unescape them to prevent confusion with existing parsers. For
* example, `type.googleapis.com%2FFoo` should be rejected.
*
* In the original design of `Any`, the possibility of launching a type
* resolution service at these type URLs was considered but Protobuf never
* implemented one and considers contacting these URLs to be problematic and
* a potential security issue. Do not attempt to contact type URLs.
**/
@property(nonatomic, readwrite, copy, null_resettable) NSString *typeURL;
/** Holds a Protobuf serialization of the type described by type_url. */
@property(nonatomic, readwrite, copy, null_resettable) NSData *value;
// NOTE: There are some Objective-C specific methods/properties in
// GPBWellKnownTypes.h that will likely be useful.
@end
NS_ASSUME_NONNULL_END
CF_EXTERN_C_END
#pragma clang diagnostic pop
// @@protoc_insertion_point(global_scope)
// clang-format on