1b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer// Generated by the protocol buffer compiler. DO NOT EDIT! 2b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer// source: google/protobuf/timestamp.proto 3b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 4b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer#import "GPBProtocolBuffers.h" 5b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 6b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer#if GOOGLE_PROTOBUF_OBJC_GEN_VERSION != 30001 7b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer#error This file was generated by a different version of protoc which is incompatible with your Protocol Buffer library sources. 8b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer#endif 9b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 10b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer// @@protoc_insertion_point(imports) 11b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 12b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer#pragma clang diagnostic push 13b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer#pragma clang diagnostic ignored "-Wdeprecated-declarations" 14b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 15b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas BerghammerCF_EXTERN_C_BEGIN 16b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 17b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas BerghammerNS_ASSUME_NONNULL_BEGIN 18b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 19b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer#pragma mark - GPBTimestampRoot 20b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 21b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer/// Exposes the extension registry for this file. 22b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer/// 23b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer/// The base class provides: 24b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer/// @code 25b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer/// + (GPBExtensionRegistry *)extensionRegistry; 26b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer/// @endcode 27b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer/// which is a @c GPBExtensionRegistry that includes all the extensions defined by 28b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer/// this file and all files that it depends on. 29b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer@interface GPBTimestampRoot : GPBRootObject 30b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer@end 31b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 32b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer#pragma mark - GPBTimestamp 33b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 34b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammertypedef GPB_ENUM(GPBTimestamp_FieldNumber) { 35b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer GPBTimestamp_FieldNumber_Seconds = 1, 36b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer GPBTimestamp_FieldNumber_Nanos = 2, 37b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer}; 38b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 39b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer/// A Timestamp represents a point in time independent of any time zone 40b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer/// or calendar, represented as seconds and fractions of seconds at 41b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer/// nanosecond resolution in UTC Epoch time. It is encoded using the 42b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer/// Proleptic Gregorian Calendar which extends the Gregorian calendar 43b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer/// backwards to year one. It is encoded assuming all minutes are 60 44b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer/// seconds long, i.e. leap seconds are "smeared" so that no leap second 45b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer/// table is needed for interpretation. Range is from 46b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer/// 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. 47b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer/// By restricting to that range, we ensure that we can convert to 48b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer/// and from RFC 3339 date strings. 49b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer/// See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt). 50b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer/// 51b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer/// Example 1: Compute Timestamp from POSIX `time()`. 52b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer/// 53b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer/// Timestamp timestamp; 54b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer/// timestamp.set_seconds(time(NULL)); 55b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer/// timestamp.set_nanos(0); 56b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer/// 57b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer/// Example 2: Compute Timestamp from POSIX `gettimeofday()`. 58b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer/// 59b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer/// struct timeval tv; 60b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer/// gettimeofday(&tv, NULL); 61b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer/// 62b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer/// Timestamp timestamp; 63b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer/// timestamp.set_seconds(tv.tv_sec); 64b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer/// timestamp.set_nanos(tv.tv_usec * 1000); 65b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer/// 66b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer/// Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`. 67b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer/// 68b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer/// FILETIME ft; 69b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer/// GetSystemTimeAsFileTime(&ft); 70b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer/// UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime; 71b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer/// 72b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer/// // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z 73b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer/// // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. 74b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer/// Timestamp timestamp; 75b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer/// timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); 76b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer/// timestamp.set_nanos((INT32) ((ticks % 10000000) * 100)); 77b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer/// 78b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer/// Example 4: Compute Timestamp from Java `System.currentTimeMillis()`. 79b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer/// 80b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer/// long millis = System.currentTimeMillis(); 81b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer/// 82b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer/// Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) 83b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer/// .setNanos((int) ((millis % 1000) * 1000000)).build(); 84b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer/// 85b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer/// 86b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer/// Example 5: Compute Timestamp from current time in Python. 87b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer/// 88b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer/// now = time.time() 89b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer/// seconds = int(now) 90b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer/// nanos = int((now - seconds) * 10**9) 91b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer/// timestamp = Timestamp(seconds=seconds, nanos=nanos) 92b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer@interface GPBTimestamp : GPBMessage 93b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 94b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer/// Represents seconds of UTC time since Unix epoch 95b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer/// 1970-01-01T00:00:00Z. Must be from from 0001-01-01T00:00:00Z to 96b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer/// 9999-12-31T23:59:59Z inclusive. 97b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer@property(nonatomic, readwrite) int64_t seconds; 98b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 99b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer/// Non-negative fractions of a second at nanosecond resolution. Negative 100b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer/// second values with fractions must still have non-negative nanos values 101b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer/// that count forward in time. Must be from 0 to 999,999,999 102b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer/// inclusive. 103b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer@property(nonatomic, readwrite) int32_t nanos; 104b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 105b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer@end 106b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 107b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas BerghammerNS_ASSUME_NONNULL_END 108b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 109b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas BerghammerCF_EXTERN_C_END 110b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 111b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer#pragma clang diagnostic pop 112b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 113b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer// @@protoc_insertion_point(global_scope) 114