Instance Methods | Properties | List of all members
GPBDuration Class Reference

#import <Duration.pbobjc.h>

Inheritance diagram for GPBDuration:
Inheritance graph
[legend]

Instance Methods

(NSTimeInterval timeIntervalSince1970) - __attribute__
 
(NSTimeInterval timeIntervalSince1970) - __attribute__
 
(instancetype) - initWithTimeInterval:
 
(instancetype) - initWithTimeInterval:
 
(instancetype) - initWithTimeIntervalSince1970:
 
(instancetype) - initWithTimeIntervalSince1970:
 
- Instance Methods inherited from GPBMessage
(void) - addExtension:value:
 
(void) - addExtension:value:
 
(void) - addUnknownMapEntry:value: [implementation]
 
(void) - addUnknownMapEntry:value: [implementation]
 
(void) - clear
 
(void) - clear
 
(void) - clearExtension:
 
(void) - clearExtension:
 
(nullable NSData *) - data
 
(nullable NSData *) - data
 
(NSData *) - delimitedData
 
(NSData *) - delimitedData
 
(GPBDescriptor *) - descriptor
 
(GPBDescriptor *) - descriptor
 
(NSArray *) - extensionsCurrentlySet
 
(NSArray *) - extensionsCurrentlySet
 
(id- getExistingExtension: [implementation]
 
(id- getExistingExtension: [implementation]
 
(nullable id- getExtension:
 
(nullable id- getExtension:
 
(BOOL- hasExtension:
 
(BOOL- hasExtension:
 
(nullable instancetype) - initWithCodedInputStream:extensionRegistry:error:
 
(nullable instancetype) - initWithCodedInputStream:extensionRegistry:error:
 
(nullable instancetype) - initWithData:error:
 
(nullable instancetype) - initWithData:error:
 
(nullable instancetype) - initWithData:extensionRegistry:error:
 
(nullable instancetype) - initWithData:extensionRegistry:error:
 
(void) - mergeDelimitedFromCodedInputStream:extensionRegistry: [implementation]
 
(void) - mergeDelimitedFromCodedInputStream:extensionRegistry: [implementation]
 
(void) - mergeFrom:
 
(void) - mergeFrom:
 
(void) - mergeFromCodedInputStream:extensionRegistry: [implementation]
 
(void) - mergeFromCodedInputStream:extensionRegistry: [implementation]
 
(void) - mergeFromData:extensionRegistry:
 
(void) - mergeFromData:extensionRegistry:
 
(size_t) - serializedSize
 
(size_t) - serializedSize
 
(void) - setExtension:index:value:
 
(void) - setExtension:index:value:
 
(void) - setExtension:value:
 
(void) - setExtension:value:
 
(void) - writeDelimitedToCodedOutputStream:
 
(void) - writeDelimitedToCodedOutputStream:
 
(void) - writeDelimitedToOutputStream:
 
(void) - writeDelimitedToOutputStream:
 
(void) - writeToCodedOutputStream:
 
(void) - writeToCodedOutputStream:
 
(void) - writeToOutputStream:
 
(void) - writeToOutputStream:
 

Properties

int32_t nanos
 
int64_t seconds
 
NSTimeInterval timeInterval
 
- Properties inherited from GPBMessage
BOOL initialized
 
GPBUnknownFieldSetunknownFields
 

Additional Inherited Members

- Class Methods inherited from GPBMessage
(GPBDescriptor *) + descriptor
 
(GPBDescriptor *) + descriptor
 
(instancetype) + message
 
(instancetype) + message
 
(nullable instancetype) + parseDelimitedFromCodedInputStream:extensionRegistry:error:
 
(nullable instancetype) + parseDelimitedFromCodedInputStream:extensionRegistry:error:
 
(nullable instancetype) + parseFromCodedInputStream:extensionRegistry:error:
 
(nullable instancetype) + parseFromCodedInputStream:extensionRegistry:error:
 
(nullable instancetype) + parseFromData:error:
 
(nullable instancetype) + parseFromData:error:
 
(nullable instancetype) + parseFromData:extensionRegistry:error:
 
(nullable instancetype) + parseFromData:extensionRegistry:error:
 
- Protected Attributes inherited from GPBMessage
package GPBMessage_StoragePtr messageStorage_
 

Detailed Description

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.

Examples

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 (duration.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;
}

Example 3: Compute Duration from datetime.timedelta in Python.

td = datetime.timedelta(days=3, minutes=10)
duration = Duration()
duration.FromTimedelta(td)

JSON Mapping

In JSON format, the Duration type is encoded as a string rather than an object, where the string ends in the suffix "s" (indicating seconds) and is preceded by the number of seconds, with nanoseconds expressed as fractional seconds. For example, 3 seconds with 0 nanoseconds should be encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should be expressed in JSON format as "3.000000001s", and 3 seconds and 1 microsecond should be expressed in JSON format as "3.000001s".

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.

Examples

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 (duration.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;
}

Example 3: Compute Duration from datetime.timedelta in Python.

td = datetime.timedelta(days=3, minutes=10)
duration = Duration()
duration.FromTimedelta(td)

JSON Mapping

In JSON format, the Duration type is encoded as a string rather than an object, where the string ends in the suffix "s" (indicating seconds) and is preceded by the number of seconds, with nanoseconds expressed as fractional seconds. For example, 3 seconds with 0 nanoseconds should be encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should be expressed in JSON format as "3.000000001s", and 3 seconds and 1 microsecond should be expressed in JSON format as "3.000001s".

Definition at line 118 of file bloaty/third_party/protobuf/objectivec/google/protobuf/Duration.pbobjc.h.

Method Documentation

◆ __attribute__ [1/2]

- (NSTimeInterval timeIntervalSince1970) __attribute__ ((deprecated("Use timeInterval"))) 

Deprecated, use timeInterval instead.

Provided by category GPBDuration(GBPWellKnownTypes).

◆ __attribute__ [2/2]

- (NSTimeInterval timeIntervalSince1970) __attribute__ ((deprecated("Use timeInterval"))) 

Deprecated, use timeInterval instead.

Provided by category GPBDuration(GBPWellKnownTypes).

◆ initWithTimeInterval: [1/2]

- (instancetype) initWithTimeInterval: (NSTimeInterval)  timeInterval

Initializes a GPBDuration with the given NSTimeInterval.

Parameters
timeIntervalTime interval to configure the GPBDuration with.
Returns
A newly initialized GPBDuration.

Provided by category GPBDuration(GBPWellKnownTypes).

◆ initWithTimeInterval: [2/2]

- (instancetype) initWithTimeInterval: (NSTimeInterval)  timeInterval

Initializes a GPBDuration with the given NSTimeInterval.

Parameters
timeIntervalTime interval to configure the GPBDuration with.
Returns
A newly initialized GPBDuration.

Provided by category GPBDuration(GBPWellKnownTypes).

◆ initWithTimeIntervalSince1970: [1/2]

- (instancetype) initWithTimeIntervalSince1970: ((deprecated("Use initWithTimeInterval:")))  __attribute__

Deprecated, use initWithTimeInterval: instead.

Provided by category GPBDuration(GBPWellKnownTypes).

◆ initWithTimeIntervalSince1970: [2/2]

- (instancetype) initWithTimeIntervalSince1970: ((deprecated("Use initWithTimeInterval:")))  __attribute__

Deprecated, use initWithTimeInterval: instead.

Provided by category GPBDuration(GBPWellKnownTypes).

Property Documentation

◆ nanos

- (int32_t) nanos
readwritenonatomicassign

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.

Definition at line 135 of file bloaty/third_party/protobuf/objectivec/google/protobuf/Duration.pbobjc.h.

◆ seconds

- (int64_t) seconds
readwritenonatomicassign

Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years

Definition at line 125 of file bloaty/third_party/protobuf/objectivec/google/protobuf/Duration.pbobjc.h.

◆ timeInterval

- (NSTimeInterval) timeInterval
readwritenonatomicassign

The NSTimeInterval representation of this GPBDuration.

Note
: Not all second/nanos combinations can be represented in a NSTimeInterval, so getting this could be a lossy transform.

Provided by category GPBDuration(GBPWellKnownTypes).

Definition at line 115 of file bloaty/third_party/protobuf/objectivec/GPBWellKnownTypes.h.


The documentation for this class was generated from the following files:


grpc
Author(s):
autogenerated on Fri May 16 2025 03:01:45