// Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/protobuf/duration.proto #import "GPBProtocolBuffers.h" #if GOOGLE_PROTOBUF_OBJC_GEN_VERSION != 30000 #error This file was generated by a different version of protoc-gen-objc which is incompatible with your Protocol Buffer sources. #endif CF_EXTERN_C_BEGIN @class GPBDuration; #pragma mark - GPBDurationRoot @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 CF_EXTERN_C_END