// Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/protobuf/duration.proto #import "GPBProtocolBuffers.h" #if GOOGLE_PROTOBUF_OBJC_GEN_VERSION != 30001 #error This file was generated by a different 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 - GPBDurationRoot /// 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. @interface GPBDurationRoot : GPBRootObject @end #pragma mark - GPBDuration typedef GPB_ENUM(GPBDuration_FieldNumber) { GPBDuration_FieldNumber_Seconds = 1, GPBDuration_FieldNumber_Nanos = 2, }; /// A Duration represents a signed, fixed-length span of time represented /// as a count of seconds and fractions of seconds at nanosecond /// resolution. It is independent of any calendar and concepts like "day" /// or "month". It is related to Timestamp in that the difference between /// two Timestamp values is a Duration and it can be added or subtracted /// from a Timestamp. Range is approximately +-10,000 years. /// /// Example 1: Compute Duration from two Timestamps in pseudo code. /// /// Timestamp start = ...; /// Timestamp end = ...; /// Duration duration = ...; /// /// duration.seconds = end.seconds - start.seconds; /// duration.nanos = end.nanos - start.nanos; /// /// if (duration.seconds < 0 && duration.nanos > 0) { /// duration.seconds += 1; /// duration.nanos -= 1000000000; /// } else if (durations.seconds > 0 && duration.nanos < 0) { /// duration.seconds -= 1; /// duration.nanos += 1000000000; /// } /// /// Example 2: Compute Timestamp from Timestamp + Duration in pseudo code. /// /// Timestamp start = ...; /// Duration duration = ...; /// Timestamp end = ...; /// /// end.seconds = start.seconds + duration.seconds; /// end.nanos = start.nanos + duration.nanos; /// /// if (end.nanos < 0) { /// end.seconds -= 1; /// end.nanos += 1000000000; /// } else if (end.nanos >= 1000000000) { /// end.seconds += 1; /// end.nanos -= 1000000000; /// } @interface GPBDuration : GPBMessage /// Signed seconds of the span of time. Must be from -315,576,000,000 /// to +315,576,000,000 inclusive. @property(nonatomic, readwrite) int64_t seconds; /// Signed fractions of a second at nanosecond resolution of the span /// of time. Durations less than one second are represented with a 0 /// `seconds` field and a positive or negative `nanos` field. For durations /// of one second or more, a non-zero value for the `nanos` field must be /// of the same sign as the `seconds` field. Must be from -999,999,999 /// to +999,999,999 inclusive. @property(nonatomic, readwrite) int32_t nanos; @end NS_ASSUME_NONNULL_END CF_EXTERN_C_END #pragma clang diagnostic pop // @@protoc_insertion_point(global_scope)