aboutsummaryrefslogtreecommitdiffhomepage
path: root/csharp/src/Google.Protobuf/WellKnownTypes/Timestamp.cs
diff options
context:
space:
mode:
authorGravatar Jon Skeet <jonskeet@google.com>2015-10-01 10:38:01 +0100
committerGravatar Jon Skeet <jonskeet@google.com>2015-10-01 10:38:01 +0100
commit18e0a2e5ec883d665a4e8fe57a1eb3e603340de7 (patch)
tree1e0b68fbc3e3957d479b2cbc24f8db6efc374556 /csharp/src/Google.Protobuf/WellKnownTypes/Timestamp.cs
parent67dd42c50d2b6d9c208bb1a4c63ee879781a9ac1 (diff)
Generated code from previous commit.
Diffstat (limited to 'csharp/src/Google.Protobuf/WellKnownTypes/Timestamp.cs')
-rw-r--r--csharp/src/Google.Protobuf/WellKnownTypes/Timestamp.cs54
1 files changed, 54 insertions, 0 deletions
diff --git a/csharp/src/Google.Protobuf/WellKnownTypes/Timestamp.cs b/csharp/src/Google.Protobuf/WellKnownTypes/Timestamp.cs
index 6b186b37..f372f8fd 100644
--- a/csharp/src/Google.Protobuf/WellKnownTypes/Timestamp.cs
+++ b/csharp/src/Google.Protobuf/WellKnownTypes/Timestamp.cs
@@ -41,6 +41,47 @@ namespace Google.Protobuf.WellKnownTypes {
}
}
#region Messages
+ /// <summary>
+ /// A Timestamp represents a point in time independent of any time zone
+ /// or calendar, represented as seconds and fractions of seconds at
+ /// nanosecond resolution in UTC Epoch time. It is encoded using the
+ /// Proleptic Gregorian Calendar which extends the Gregorian calendar
+ /// backwards to year one. It is encoded assuming all minutes are 60
+ /// seconds long, i.e. leap seconds are "smeared" so that no leap second
+ /// table is needed for interpretation. Range is from
+ /// 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z.
+ /// By restricting to that range, we ensure that we can convert to
+ /// and from RFC 3339 date strings.
+ /// See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt).
+ /// Example 1: Compute Timestamp from POSIX `time()`.
+ /// Timestamp timestamp;
+ /// timestamp.set_seconds(time(NULL));
+ /// timestamp.set_nanos(0);
+ /// Example 2: Compute Timestamp from POSIX `gettimeofday()`.
+ /// struct timeval tv;
+ /// gettimeofday(&amp;tv, NULL);
+ /// Timestamp timestamp;
+ /// timestamp.set_seconds(tv.tv_sec);
+ /// timestamp.set_nanos(tv.tv_usec * 1000);
+ /// Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
+ /// FILETIME ft;
+ /// GetSystemTimeAsFileTime(&amp;ft);
+ /// UINT64 ticks = (((UINT64)ft.dwHighDateTime) &lt;&lt; 32) | ft.dwLowDateTime;
+ /// // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z
+ /// // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z.
+ /// Timestamp timestamp;
+ /// timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));
+ /// timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
+ /// Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
+ /// long millis = System.currentTimeMillis();
+ /// Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)
+ /// .setNanos((int) ((millis % 1000) * 1000000)).build();
+ /// Example 5: Compute Timestamp from current time in Python.
+ /// now = time.time()
+ /// seconds = int(now)
+ /// nanos = int((now - seconds) * 10**9)
+ /// timestamp = Timestamp(seconds=seconds, nanos=nanos)
+ /// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
public sealed partial class Timestamp : pb::IMessage<Timestamp> {
private static readonly pb::MessageParser<Timestamp> _parser = new pb::MessageParser<Timestamp>(() => new Timestamp());
@@ -69,8 +110,14 @@ namespace Google.Protobuf.WellKnownTypes {
return new Timestamp(this);
}
+ /// <summary>Field number for the "seconds" field.</summary>
public const int SecondsFieldNumber = 1;
private long seconds_;
+ /// <summary>
+ /// Represents seconds of UTC time since Unix epoch
+ /// 1970-01-01T00:00:00Z. Must be from from 0001-01-01T00:00:00Z to
+ /// 9999-12-31T23:59:59Z inclusive.
+ /// </summary>
public long Seconds {
get { return seconds_; }
set {
@@ -78,8 +125,15 @@ namespace Google.Protobuf.WellKnownTypes {
}
}
+ /// <summary>Field number for the "nanos" field.</summary>
public const int NanosFieldNumber = 2;
private int nanos_;
+ /// <summary>
+ /// Non-negative fractions of a second at nanosecond resolution. Negative
+ /// second values with fractions must still have non-negative nanos values
+ /// that count forward in time. Must be from 0 to 999,999,999
+ /// inclusive.
+ /// </summary>
public int Nanos {
get { return nanos_; }
set {