|  | // Generated by the protocol buffer compiler.  DO NOT EDIT! | 
|  | // source: google/protobuf/timestamp.proto | 
|  |  | 
|  | // This CPP symbol can be defined to use imports that match up to the framework | 
|  | // imports needed when using CocoaPods. | 
|  | #if !defined(GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS) | 
|  | #define GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS 0 | 
|  | #endif | 
|  |  | 
|  | #if GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS | 
|  | #import <Protobuf/GPBProtocolBuffers_RuntimeSupport.h> | 
|  | #else | 
|  | #import "GPBProtocolBuffers_RuntimeSupport.h" | 
|  | #endif | 
|  |  | 
|  | #if GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS | 
|  | #import <Protobuf/GPBTimestamp.pbobjc.h> | 
|  | #else | 
|  | #import "GPBTimestamp.pbobjc.h" | 
|  | #endif | 
|  | // @@protoc_insertion_point(imports) | 
|  |  | 
|  | #pragma clang diagnostic push | 
|  | #pragma clang diagnostic ignored "-Wdeprecated-declarations" | 
|  |  | 
|  | #pragma mark - GPBTimestampRoot | 
|  |  | 
|  | @implementation GPBTimestampRoot | 
|  |  | 
|  | // No extensions in the file and no imports, so no need to generate | 
|  | // +extensionRegistry. | 
|  |  | 
|  | @end | 
|  |  | 
|  | #pragma mark - GPBTimestampRoot_FileDescriptor | 
|  |  | 
|  | static GPBFileDescriptor *GPBTimestampRoot_FileDescriptor(void) { | 
|  | // This is called by +initialize so there is no need to worry | 
|  | // about thread safety of the singleton. | 
|  | static GPBFileDescriptor *descriptor = NULL; | 
|  | if (!descriptor) { | 
|  | GPB_DEBUG_CHECK_RUNTIME_VERSIONS(); | 
|  | descriptor = [[GPBFileDescriptor alloc] initWithPackage:@"google.protobuf" | 
|  | objcPrefix:@"GPB" | 
|  | syntax:GPBFileSyntaxProto3]; | 
|  | } | 
|  | return descriptor; | 
|  | } | 
|  |  | 
|  | #pragma mark - GPBTimestamp | 
|  |  | 
|  | @implementation GPBTimestamp | 
|  |  | 
|  | @dynamic seconds; | 
|  | @dynamic nanos; | 
|  |  | 
|  | typedef struct GPBTimestamp__storage_ { | 
|  | uint32_t _has_storage_[1]; | 
|  | int32_t nanos; | 
|  | int64_t seconds; | 
|  | } GPBTimestamp__storage_; | 
|  |  | 
|  | // This method is threadsafe because it is initially called | 
|  | // in +initialize for each subclass. | 
|  | + (GPBDescriptor *)descriptor { | 
|  | static GPBDescriptor *descriptor = nil; | 
|  | if (!descriptor) { | 
|  | static GPBMessageFieldDescription fields[] = { | 
|  | { | 
|  | .name = "seconds", | 
|  | .dataTypeSpecific.clazz = Nil, | 
|  | .number = GPBTimestamp_FieldNumber_Seconds, | 
|  | .hasIndex = 0, | 
|  | .offset = (uint32_t)offsetof(GPBTimestamp__storage_, seconds), | 
|  | .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), | 
|  | .dataType = GPBDataTypeInt64, | 
|  | }, | 
|  | { | 
|  | .name = "nanos", | 
|  | .dataTypeSpecific.clazz = Nil, | 
|  | .number = GPBTimestamp_FieldNumber_Nanos, | 
|  | .hasIndex = 1, | 
|  | .offset = (uint32_t)offsetof(GPBTimestamp__storage_, nanos), | 
|  | .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero), | 
|  | .dataType = GPBDataTypeInt32, | 
|  | }, | 
|  | }; | 
|  | GPBDescriptor *localDescriptor = | 
|  | [GPBDescriptor allocDescriptorForClass:[GPBTimestamp class] | 
|  | rootClass:[GPBTimestampRoot class] | 
|  | file:GPBTimestampRoot_FileDescriptor() | 
|  | fields:fields | 
|  | fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription)) | 
|  | storageSize:sizeof(GPBTimestamp__storage_) | 
|  | flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)]; | 
|  | #if defined(DEBUG) && DEBUG | 
|  | NSAssert(descriptor == nil, @"Startup recursed!"); | 
|  | #endif  // DEBUG | 
|  | descriptor = localDescriptor; | 
|  | } | 
|  | return descriptor; | 
|  | } | 
|  |  | 
|  | @end | 
|  |  | 
|  |  | 
|  | #pragma clang diagnostic pop | 
|  |  | 
|  | // @@protoc_insertion_point(global_scope) |