1*1b3f573fSAndroid Build Coastguard Worker // Generated by the protocol buffer compiler. DO NOT EDIT! 2*1b3f573fSAndroid Build Coastguard Worker // source: google/protobuf/any.proto 3*1b3f573fSAndroid Build Coastguard Worker 4*1b3f573fSAndroid Build Coastguard Worker #import "GPBDescriptor.h" 5*1b3f573fSAndroid Build Coastguard Worker #import "GPBMessage.h" 6*1b3f573fSAndroid Build Coastguard Worker #import "GPBRootObject.h" 7*1b3f573fSAndroid Build Coastguard Worker 8*1b3f573fSAndroid Build Coastguard Worker #if GOOGLE_PROTOBUF_OBJC_VERSION < 30004 9*1b3f573fSAndroid Build Coastguard Worker #error This file was generated by a newer version of protoc which is incompatible with your Protocol Buffer library sources. 10*1b3f573fSAndroid Build Coastguard Worker #endif 11*1b3f573fSAndroid Build Coastguard Worker #if 30004 < GOOGLE_PROTOBUF_OBJC_MIN_SUPPORTED_VERSION 12*1b3f573fSAndroid Build Coastguard Worker #error This file was generated by an older version of protoc which is incompatible with your Protocol Buffer library sources. 13*1b3f573fSAndroid Build Coastguard Worker #endif 14*1b3f573fSAndroid Build Coastguard Worker 15*1b3f573fSAndroid Build Coastguard Worker // @@protoc_insertion_point(imports) 16*1b3f573fSAndroid Build Coastguard Worker 17*1b3f573fSAndroid Build Coastguard Worker #pragma clang diagnostic push 18*1b3f573fSAndroid Build Coastguard Worker #pragma clang diagnostic ignored "-Wdeprecated-declarations" 19*1b3f573fSAndroid Build Coastguard Worker 20*1b3f573fSAndroid Build Coastguard Worker CF_EXTERN_C_BEGIN 21*1b3f573fSAndroid Build Coastguard Worker 22*1b3f573fSAndroid Build Coastguard Worker NS_ASSUME_NONNULL_BEGIN 23*1b3f573fSAndroid Build Coastguard Worker 24*1b3f573fSAndroid Build Coastguard Worker #pragma mark - GPBAnyRoot 25*1b3f573fSAndroid Build Coastguard Worker 26*1b3f573fSAndroid Build Coastguard Worker /** 27*1b3f573fSAndroid Build Coastguard Worker * Exposes the extension registry for this file. 28*1b3f573fSAndroid Build Coastguard Worker * 29*1b3f573fSAndroid Build Coastguard Worker * The base class provides: 30*1b3f573fSAndroid Build Coastguard Worker * @code 31*1b3f573fSAndroid Build Coastguard Worker * + (GPBExtensionRegistry *)extensionRegistry; 32*1b3f573fSAndroid Build Coastguard Worker * @endcode 33*1b3f573fSAndroid Build Coastguard Worker * which is a @c GPBExtensionRegistry that includes all the extensions defined by 34*1b3f573fSAndroid Build Coastguard Worker * this file and all files that it depends on. 35*1b3f573fSAndroid Build Coastguard Worker **/ 36*1b3f573fSAndroid Build Coastguard Worker GPB_FINAL @interface GPBAnyRoot : GPBRootObject 37*1b3f573fSAndroid Build Coastguard Worker @end 38*1b3f573fSAndroid Build Coastguard Worker 39*1b3f573fSAndroid Build Coastguard Worker #pragma mark - GPBAny 40*1b3f573fSAndroid Build Coastguard Worker 41*1b3f573fSAndroid Build Coastguard Worker typedef GPB_ENUM(GPBAny_FieldNumber) { 42*1b3f573fSAndroid Build Coastguard Worker GPBAny_FieldNumber_TypeURL = 1, 43*1b3f573fSAndroid Build Coastguard Worker GPBAny_FieldNumber_Value = 2, 44*1b3f573fSAndroid Build Coastguard Worker }; 45*1b3f573fSAndroid Build Coastguard Worker 46*1b3f573fSAndroid Build Coastguard Worker /** 47*1b3f573fSAndroid Build Coastguard Worker * `Any` contains an arbitrary serialized protocol buffer message along with a 48*1b3f573fSAndroid Build Coastguard Worker * URL that describes the type of the serialized message. 49*1b3f573fSAndroid Build Coastguard Worker * 50*1b3f573fSAndroid Build Coastguard Worker * Protobuf library provides support to pack/unpack Any values in the form 51*1b3f573fSAndroid Build Coastguard Worker * of utility functions or additional generated methods of the Any type. 52*1b3f573fSAndroid Build Coastguard Worker * 53*1b3f573fSAndroid Build Coastguard Worker * Example 1: Pack and unpack a message in C++. 54*1b3f573fSAndroid Build Coastguard Worker * 55*1b3f573fSAndroid Build Coastguard Worker * Foo foo = ...; 56*1b3f573fSAndroid Build Coastguard Worker * Any any; 57*1b3f573fSAndroid Build Coastguard Worker * any.PackFrom(foo); 58*1b3f573fSAndroid Build Coastguard Worker * ... 59*1b3f573fSAndroid Build Coastguard Worker * if (any.UnpackTo(&foo)) { 60*1b3f573fSAndroid Build Coastguard Worker * ... 61*1b3f573fSAndroid Build Coastguard Worker * } 62*1b3f573fSAndroid Build Coastguard Worker * 63*1b3f573fSAndroid Build Coastguard Worker * Example 2: Pack and unpack a message in Java. 64*1b3f573fSAndroid Build Coastguard Worker * 65*1b3f573fSAndroid Build Coastguard Worker * Foo foo = ...; 66*1b3f573fSAndroid Build Coastguard Worker * Any any = Any.pack(foo); 67*1b3f573fSAndroid Build Coastguard Worker * ... 68*1b3f573fSAndroid Build Coastguard Worker * if (any.is(Foo.class)) { 69*1b3f573fSAndroid Build Coastguard Worker * foo = any.unpack(Foo.class); 70*1b3f573fSAndroid Build Coastguard Worker * } 71*1b3f573fSAndroid Build Coastguard Worker * 72*1b3f573fSAndroid Build Coastguard Worker * Example 3: Pack and unpack a message in Python. 73*1b3f573fSAndroid Build Coastguard Worker * 74*1b3f573fSAndroid Build Coastguard Worker * foo = Foo(...) 75*1b3f573fSAndroid Build Coastguard Worker * any = Any() 76*1b3f573fSAndroid Build Coastguard Worker * any.Pack(foo) 77*1b3f573fSAndroid Build Coastguard Worker * ... 78*1b3f573fSAndroid Build Coastguard Worker * if any.Is(Foo.DESCRIPTOR): 79*1b3f573fSAndroid Build Coastguard Worker * any.Unpack(foo) 80*1b3f573fSAndroid Build Coastguard Worker * ... 81*1b3f573fSAndroid Build Coastguard Worker * 82*1b3f573fSAndroid Build Coastguard Worker * Example 4: Pack and unpack a message in Go 83*1b3f573fSAndroid Build Coastguard Worker * 84*1b3f573fSAndroid Build Coastguard Worker * foo := &pb.Foo{...} 85*1b3f573fSAndroid Build Coastguard Worker * any, err := anypb.New(foo) 86*1b3f573fSAndroid Build Coastguard Worker * if err != nil { 87*1b3f573fSAndroid Build Coastguard Worker * ... 88*1b3f573fSAndroid Build Coastguard Worker * } 89*1b3f573fSAndroid Build Coastguard Worker * ... 90*1b3f573fSAndroid Build Coastguard Worker * foo := &pb.Foo{} 91*1b3f573fSAndroid Build Coastguard Worker * if err := any.UnmarshalTo(foo); err != nil { 92*1b3f573fSAndroid Build Coastguard Worker * ... 93*1b3f573fSAndroid Build Coastguard Worker * } 94*1b3f573fSAndroid Build Coastguard Worker * 95*1b3f573fSAndroid Build Coastguard Worker * The pack methods provided by protobuf library will by default use 96*1b3f573fSAndroid Build Coastguard Worker * 'type.googleapis.com/full.type.name' as the type URL and the unpack 97*1b3f573fSAndroid Build Coastguard Worker * methods only use the fully qualified type name after the last '/' 98*1b3f573fSAndroid Build Coastguard Worker * in the type URL, for example "foo.bar.com/x/y.z" will yield type 99*1b3f573fSAndroid Build Coastguard Worker * name "y.z". 100*1b3f573fSAndroid Build Coastguard Worker * 101*1b3f573fSAndroid Build Coastguard Worker * 102*1b3f573fSAndroid Build Coastguard Worker * JSON 103*1b3f573fSAndroid Build Coastguard Worker * 104*1b3f573fSAndroid Build Coastguard Worker * The JSON representation of an `Any` value uses the regular 105*1b3f573fSAndroid Build Coastguard Worker * representation of the deserialized, embedded message, with an 106*1b3f573fSAndroid Build Coastguard Worker * additional field `\@type` which contains the type URL. Example: 107*1b3f573fSAndroid Build Coastguard Worker * 108*1b3f573fSAndroid Build Coastguard Worker * package google.profile; 109*1b3f573fSAndroid Build Coastguard Worker * message Person { 110*1b3f573fSAndroid Build Coastguard Worker * string first_name = 1; 111*1b3f573fSAndroid Build Coastguard Worker * string last_name = 2; 112*1b3f573fSAndroid Build Coastguard Worker * } 113*1b3f573fSAndroid Build Coastguard Worker * 114*1b3f573fSAndroid Build Coastguard Worker * { 115*1b3f573fSAndroid Build Coastguard Worker * "\@type": "type.googleapis.com/google.profile.Person", 116*1b3f573fSAndroid Build Coastguard Worker * "firstName": <string>, 117*1b3f573fSAndroid Build Coastguard Worker * "lastName": <string> 118*1b3f573fSAndroid Build Coastguard Worker * } 119*1b3f573fSAndroid Build Coastguard Worker * 120*1b3f573fSAndroid Build Coastguard Worker * If the embedded message type is well-known and has a custom JSON 121*1b3f573fSAndroid Build Coastguard Worker * representation, that representation will be embedded adding a field 122*1b3f573fSAndroid Build Coastguard Worker * `value` which holds the custom JSON in addition to the `\@type` 123*1b3f573fSAndroid Build Coastguard Worker * field. Example (for message [google.protobuf.Duration][]): 124*1b3f573fSAndroid Build Coastguard Worker * 125*1b3f573fSAndroid Build Coastguard Worker * { 126*1b3f573fSAndroid Build Coastguard Worker * "\@type": "type.googleapis.com/google.protobuf.Duration", 127*1b3f573fSAndroid Build Coastguard Worker * "value": "1.212s" 128*1b3f573fSAndroid Build Coastguard Worker * } 129*1b3f573fSAndroid Build Coastguard Worker **/ 130*1b3f573fSAndroid Build Coastguard Worker GPB_FINAL @interface GPBAny : GPBMessage 131*1b3f573fSAndroid Build Coastguard Worker 132*1b3f573fSAndroid Build Coastguard Worker /** 133*1b3f573fSAndroid Build Coastguard Worker * A URL/resource name that uniquely identifies the type of the serialized 134*1b3f573fSAndroid Build Coastguard Worker * protocol buffer message. This string must contain at least 135*1b3f573fSAndroid Build Coastguard Worker * one "/" character. The last segment of the URL's path must represent 136*1b3f573fSAndroid Build Coastguard Worker * the fully qualified name of the type (as in 137*1b3f573fSAndroid Build Coastguard Worker * `path/google.protobuf.Duration`). The name should be in a canonical form 138*1b3f573fSAndroid Build Coastguard Worker * (e.g., leading "." is not accepted). 139*1b3f573fSAndroid Build Coastguard Worker * 140*1b3f573fSAndroid Build Coastguard Worker * In practice, teams usually precompile into the binary all types that they 141*1b3f573fSAndroid Build Coastguard Worker * expect it to use in the context of Any. However, for URLs which use the 142*1b3f573fSAndroid Build Coastguard Worker * scheme `http`, `https`, or no scheme, one can optionally set up a type 143*1b3f573fSAndroid Build Coastguard Worker * server that maps type URLs to message definitions as follows: 144*1b3f573fSAndroid Build Coastguard Worker * 145*1b3f573fSAndroid Build Coastguard Worker * * If no scheme is provided, `https` is assumed. 146*1b3f573fSAndroid Build Coastguard Worker * * An HTTP GET on the URL must yield a [google.protobuf.Type][] 147*1b3f573fSAndroid Build Coastguard Worker * value in binary format, or produce an error. 148*1b3f573fSAndroid Build Coastguard Worker * * Applications are allowed to cache lookup results based on the 149*1b3f573fSAndroid Build Coastguard Worker * URL, or have them precompiled into a binary to avoid any 150*1b3f573fSAndroid Build Coastguard Worker * lookup. Therefore, binary compatibility needs to be preserved 151*1b3f573fSAndroid Build Coastguard Worker * on changes to types. (Use versioned type names to manage 152*1b3f573fSAndroid Build Coastguard Worker * breaking changes.) 153*1b3f573fSAndroid Build Coastguard Worker * 154*1b3f573fSAndroid Build Coastguard Worker * Note: this functionality is not currently available in the official 155*1b3f573fSAndroid Build Coastguard Worker * protobuf release, and it is not used for type URLs beginning with 156*1b3f573fSAndroid Build Coastguard Worker * type.googleapis.com. 157*1b3f573fSAndroid Build Coastguard Worker * 158*1b3f573fSAndroid Build Coastguard Worker * Schemes other than `http`, `https` (or the empty scheme) might be 159*1b3f573fSAndroid Build Coastguard Worker * used with implementation specific semantics. 160*1b3f573fSAndroid Build Coastguard Worker **/ 161*1b3f573fSAndroid Build Coastguard Worker @property(nonatomic, readwrite, copy, null_resettable) NSString *typeURL; 162*1b3f573fSAndroid Build Coastguard Worker 163*1b3f573fSAndroid Build Coastguard Worker /** Must be a valid serialized protocol buffer of the above specified type. */ 164*1b3f573fSAndroid Build Coastguard Worker @property(nonatomic, readwrite, copy, null_resettable) NSData *value; 165*1b3f573fSAndroid Build Coastguard Worker 166*1b3f573fSAndroid Build Coastguard Worker @end 167*1b3f573fSAndroid Build Coastguard Worker 168*1b3f573fSAndroid Build Coastguard Worker NS_ASSUME_NONNULL_END 169*1b3f573fSAndroid Build Coastguard Worker 170*1b3f573fSAndroid Build Coastguard Worker CF_EXTERN_C_END 171*1b3f573fSAndroid Build Coastguard Worker 172*1b3f573fSAndroid Build Coastguard Worker #pragma clang diagnostic pop 173*1b3f573fSAndroid Build Coastguard Worker 174*1b3f573fSAndroid Build Coastguard Worker // @@protoc_insertion_point(global_scope) 175