1*1b3f573fSAndroid Build Coastguard Worker<?php 2*1b3f573fSAndroid Build Coastguard Worker# Generated by the protocol buffer compiler. DO NOT EDIT! 3*1b3f573fSAndroid Build Coastguard Worker# source: google/protobuf/duration.proto 4*1b3f573fSAndroid Build Coastguard Worker 5*1b3f573fSAndroid Build Coastguard Workernamespace Google\Protobuf; 6*1b3f573fSAndroid Build Coastguard Worker 7*1b3f573fSAndroid Build Coastguard Workeruse Google\Protobuf\Internal\GPBType; 8*1b3f573fSAndroid Build Coastguard Workeruse Google\Protobuf\Internal\RepeatedField; 9*1b3f573fSAndroid Build Coastguard Workeruse Google\Protobuf\Internal\GPBUtil; 10*1b3f573fSAndroid Build Coastguard Worker 11*1b3f573fSAndroid Build Coastguard Worker/** 12*1b3f573fSAndroid Build Coastguard Worker * A Duration represents a signed, fixed-length span of time represented 13*1b3f573fSAndroid Build Coastguard Worker * as a count of seconds and fractions of seconds at nanosecond 14*1b3f573fSAndroid Build Coastguard Worker * resolution. It is independent of any calendar and concepts like "day" 15*1b3f573fSAndroid Build Coastguard Worker * or "month". It is related to Timestamp in that the difference between 16*1b3f573fSAndroid Build Coastguard Worker * two Timestamp values is a Duration and it can be added or subtracted 17*1b3f573fSAndroid Build Coastguard Worker * from a Timestamp. Range is approximately +-10,000 years. 18*1b3f573fSAndroid Build Coastguard Worker * # Examples 19*1b3f573fSAndroid Build Coastguard Worker * Example 1: Compute Duration from two Timestamps in pseudo code. 20*1b3f573fSAndroid Build Coastguard Worker * Timestamp start = ...; 21*1b3f573fSAndroid Build Coastguard Worker * Timestamp end = ...; 22*1b3f573fSAndroid Build Coastguard Worker * Duration duration = ...; 23*1b3f573fSAndroid Build Coastguard Worker * duration.seconds = end.seconds - start.seconds; 24*1b3f573fSAndroid Build Coastguard Worker * duration.nanos = end.nanos - start.nanos; 25*1b3f573fSAndroid Build Coastguard Worker * if (duration.seconds < 0 && duration.nanos > 0) { 26*1b3f573fSAndroid Build Coastguard Worker * duration.seconds += 1; 27*1b3f573fSAndroid Build Coastguard Worker * duration.nanos -= 1000000000; 28*1b3f573fSAndroid Build Coastguard Worker * } else if (duration.seconds > 0 && duration.nanos < 0) { 29*1b3f573fSAndroid Build Coastguard Worker * duration.seconds -= 1; 30*1b3f573fSAndroid Build Coastguard Worker * duration.nanos += 1000000000; 31*1b3f573fSAndroid Build Coastguard Worker * } 32*1b3f573fSAndroid Build Coastguard Worker * Example 2: Compute Timestamp from Timestamp + Duration in pseudo code. 33*1b3f573fSAndroid Build Coastguard Worker * Timestamp start = ...; 34*1b3f573fSAndroid Build Coastguard Worker * Duration duration = ...; 35*1b3f573fSAndroid Build Coastguard Worker * Timestamp end = ...; 36*1b3f573fSAndroid Build Coastguard Worker * end.seconds = start.seconds + duration.seconds; 37*1b3f573fSAndroid Build Coastguard Worker * end.nanos = start.nanos + duration.nanos; 38*1b3f573fSAndroid Build Coastguard Worker * if (end.nanos < 0) { 39*1b3f573fSAndroid Build Coastguard Worker * end.seconds -= 1; 40*1b3f573fSAndroid Build Coastguard Worker * end.nanos += 1000000000; 41*1b3f573fSAndroid Build Coastguard Worker * } else if (end.nanos >= 1000000000) { 42*1b3f573fSAndroid Build Coastguard Worker * end.seconds += 1; 43*1b3f573fSAndroid Build Coastguard Worker * end.nanos -= 1000000000; 44*1b3f573fSAndroid Build Coastguard Worker * } 45*1b3f573fSAndroid Build Coastguard Worker * Example 3: Compute Duration from datetime.timedelta in Python. 46*1b3f573fSAndroid Build Coastguard Worker * td = datetime.timedelta(days=3, minutes=10) 47*1b3f573fSAndroid Build Coastguard Worker * duration = Duration() 48*1b3f573fSAndroid Build Coastguard Worker * duration.FromTimedelta(td) 49*1b3f573fSAndroid Build Coastguard Worker * # JSON Mapping 50*1b3f573fSAndroid Build Coastguard Worker * In JSON format, the Duration type is encoded as a string rather than an 51*1b3f573fSAndroid Build Coastguard Worker * object, where the string ends in the suffix "s" (indicating seconds) and 52*1b3f573fSAndroid Build Coastguard Worker * is preceded by the number of seconds, with nanoseconds expressed as 53*1b3f573fSAndroid Build Coastguard Worker * fractional seconds. For example, 3 seconds with 0 nanoseconds should be 54*1b3f573fSAndroid Build Coastguard Worker * encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should 55*1b3f573fSAndroid Build Coastguard Worker * be expressed in JSON format as "3.000000001s", and 3 seconds and 1 56*1b3f573fSAndroid Build Coastguard Worker * microsecond should be expressed in JSON format as "3.000001s". 57*1b3f573fSAndroid Build Coastguard Worker * 58*1b3f573fSAndroid Build Coastguard Worker * Generated from protobuf message <code>google.protobuf.Duration</code> 59*1b3f573fSAndroid Build Coastguard Worker */ 60*1b3f573fSAndroid Build Coastguard Workerclass Duration extends \Google\Protobuf\Internal\Message 61*1b3f573fSAndroid Build Coastguard Worker{ 62*1b3f573fSAndroid Build Coastguard Worker /** 63*1b3f573fSAndroid Build Coastguard Worker * Signed seconds of the span of time. Must be from -315,576,000,000 64*1b3f573fSAndroid Build Coastguard Worker * to +315,576,000,000 inclusive. Note: these bounds are computed from: 65*1b3f573fSAndroid Build Coastguard Worker * 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years 66*1b3f573fSAndroid Build Coastguard Worker * 67*1b3f573fSAndroid Build Coastguard Worker * Generated from protobuf field <code>int64 seconds = 1;</code> 68*1b3f573fSAndroid Build Coastguard Worker */ 69*1b3f573fSAndroid Build Coastguard Worker protected $seconds = 0; 70*1b3f573fSAndroid Build Coastguard Worker /** 71*1b3f573fSAndroid Build Coastguard Worker * Signed fractions of a second at nanosecond resolution of the span 72*1b3f573fSAndroid Build Coastguard Worker * of time. Durations less than one second are represented with a 0 73*1b3f573fSAndroid Build Coastguard Worker * `seconds` field and a positive or negative `nanos` field. For durations 74*1b3f573fSAndroid Build Coastguard Worker * of one second or more, a non-zero value for the `nanos` field must be 75*1b3f573fSAndroid Build Coastguard Worker * of the same sign as the `seconds` field. Must be from -999,999,999 76*1b3f573fSAndroid Build Coastguard Worker * to +999,999,999 inclusive. 77*1b3f573fSAndroid Build Coastguard Worker * 78*1b3f573fSAndroid Build Coastguard Worker * Generated from protobuf field <code>int32 nanos = 2;</code> 79*1b3f573fSAndroid Build Coastguard Worker */ 80*1b3f573fSAndroid Build Coastguard Worker protected $nanos = 0; 81*1b3f573fSAndroid Build Coastguard Worker 82*1b3f573fSAndroid Build Coastguard Worker /** 83*1b3f573fSAndroid Build Coastguard Worker * Constructor. 84*1b3f573fSAndroid Build Coastguard Worker * 85*1b3f573fSAndroid Build Coastguard Worker * @param array $data { 86*1b3f573fSAndroid Build Coastguard Worker * Optional. Data for populating the Message object. 87*1b3f573fSAndroid Build Coastguard Worker * 88*1b3f573fSAndroid Build Coastguard Worker * @type int|string $seconds 89*1b3f573fSAndroid Build Coastguard Worker * Signed seconds of the span of time. Must be from -315,576,000,000 90*1b3f573fSAndroid Build Coastguard Worker * to +315,576,000,000 inclusive. Note: these bounds are computed from: 91*1b3f573fSAndroid Build Coastguard Worker * 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years 92*1b3f573fSAndroid Build Coastguard Worker * @type int $nanos 93*1b3f573fSAndroid Build Coastguard Worker * Signed fractions of a second at nanosecond resolution of the span 94*1b3f573fSAndroid Build Coastguard Worker * of time. Durations less than one second are represented with a 0 95*1b3f573fSAndroid Build Coastguard Worker * `seconds` field and a positive or negative `nanos` field. For durations 96*1b3f573fSAndroid Build Coastguard Worker * of one second or more, a non-zero value for the `nanos` field must be 97*1b3f573fSAndroid Build Coastguard Worker * of the same sign as the `seconds` field. Must be from -999,999,999 98*1b3f573fSAndroid Build Coastguard Worker * to +999,999,999 inclusive. 99*1b3f573fSAndroid Build Coastguard Worker * } 100*1b3f573fSAndroid Build Coastguard Worker */ 101*1b3f573fSAndroid Build Coastguard Worker public function __construct($data = NULL) { 102*1b3f573fSAndroid Build Coastguard Worker \GPBMetadata\Google\Protobuf\Duration::initOnce(); 103*1b3f573fSAndroid Build Coastguard Worker parent::__construct($data); 104*1b3f573fSAndroid Build Coastguard Worker } 105*1b3f573fSAndroid Build Coastguard Worker 106*1b3f573fSAndroid Build Coastguard Worker /** 107*1b3f573fSAndroid Build Coastguard Worker * Signed seconds of the span of time. Must be from -315,576,000,000 108*1b3f573fSAndroid Build Coastguard Worker * to +315,576,000,000 inclusive. Note: these bounds are computed from: 109*1b3f573fSAndroid Build Coastguard Worker * 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years 110*1b3f573fSAndroid Build Coastguard Worker * 111*1b3f573fSAndroid Build Coastguard Worker * Generated from protobuf field <code>int64 seconds = 1;</code> 112*1b3f573fSAndroid Build Coastguard Worker * @return int|string 113*1b3f573fSAndroid Build Coastguard Worker */ 114*1b3f573fSAndroid Build Coastguard Worker public function getSeconds() 115*1b3f573fSAndroid Build Coastguard Worker { 116*1b3f573fSAndroid Build Coastguard Worker return $this->seconds; 117*1b3f573fSAndroid Build Coastguard Worker } 118*1b3f573fSAndroid Build Coastguard Worker 119*1b3f573fSAndroid Build Coastguard Worker /** 120*1b3f573fSAndroid Build Coastguard Worker * Signed seconds of the span of time. Must be from -315,576,000,000 121*1b3f573fSAndroid Build Coastguard Worker * to +315,576,000,000 inclusive. Note: these bounds are computed from: 122*1b3f573fSAndroid Build Coastguard Worker * 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years 123*1b3f573fSAndroid Build Coastguard Worker * 124*1b3f573fSAndroid Build Coastguard Worker * Generated from protobuf field <code>int64 seconds = 1;</code> 125*1b3f573fSAndroid Build Coastguard Worker * @param int|string $var 126*1b3f573fSAndroid Build Coastguard Worker * @return $this 127*1b3f573fSAndroid Build Coastguard Worker */ 128*1b3f573fSAndroid Build Coastguard Worker public function setSeconds($var) 129*1b3f573fSAndroid Build Coastguard Worker { 130*1b3f573fSAndroid Build Coastguard Worker GPBUtil::checkInt64($var); 131*1b3f573fSAndroid Build Coastguard Worker $this->seconds = $var; 132*1b3f573fSAndroid Build Coastguard Worker 133*1b3f573fSAndroid Build Coastguard Worker return $this; 134*1b3f573fSAndroid Build Coastguard Worker } 135*1b3f573fSAndroid Build Coastguard Worker 136*1b3f573fSAndroid Build Coastguard Worker /** 137*1b3f573fSAndroid Build Coastguard Worker * Signed fractions of a second at nanosecond resolution of the span 138*1b3f573fSAndroid Build Coastguard Worker * of time. Durations less than one second are represented with a 0 139*1b3f573fSAndroid Build Coastguard Worker * `seconds` field and a positive or negative `nanos` field. For durations 140*1b3f573fSAndroid Build Coastguard Worker * of one second or more, a non-zero value for the `nanos` field must be 141*1b3f573fSAndroid Build Coastguard Worker * of the same sign as the `seconds` field. Must be from -999,999,999 142*1b3f573fSAndroid Build Coastguard Worker * to +999,999,999 inclusive. 143*1b3f573fSAndroid Build Coastguard Worker * 144*1b3f573fSAndroid Build Coastguard Worker * Generated from protobuf field <code>int32 nanos = 2;</code> 145*1b3f573fSAndroid Build Coastguard Worker * @return int 146*1b3f573fSAndroid Build Coastguard Worker */ 147*1b3f573fSAndroid Build Coastguard Worker public function getNanos() 148*1b3f573fSAndroid Build Coastguard Worker { 149*1b3f573fSAndroid Build Coastguard Worker return $this->nanos; 150*1b3f573fSAndroid Build Coastguard Worker } 151*1b3f573fSAndroid Build Coastguard Worker 152*1b3f573fSAndroid Build Coastguard Worker /** 153*1b3f573fSAndroid Build Coastguard Worker * Signed fractions of a second at nanosecond resolution of the span 154*1b3f573fSAndroid Build Coastguard Worker * of time. Durations less than one second are represented with a 0 155*1b3f573fSAndroid Build Coastguard Worker * `seconds` field and a positive or negative `nanos` field. For durations 156*1b3f573fSAndroid Build Coastguard Worker * of one second or more, a non-zero value for the `nanos` field must be 157*1b3f573fSAndroid Build Coastguard Worker * of the same sign as the `seconds` field. Must be from -999,999,999 158*1b3f573fSAndroid Build Coastguard Worker * to +999,999,999 inclusive. 159*1b3f573fSAndroid Build Coastguard Worker * 160*1b3f573fSAndroid Build Coastguard Worker * Generated from protobuf field <code>int32 nanos = 2;</code> 161*1b3f573fSAndroid Build Coastguard Worker * @param int $var 162*1b3f573fSAndroid Build Coastguard Worker * @return $this 163*1b3f573fSAndroid Build Coastguard Worker */ 164*1b3f573fSAndroid Build Coastguard Worker public function setNanos($var) 165*1b3f573fSAndroid Build Coastguard Worker { 166*1b3f573fSAndroid Build Coastguard Worker GPBUtil::checkInt32($var); 167*1b3f573fSAndroid Build Coastguard Worker $this->nanos = $var; 168*1b3f573fSAndroid Build Coastguard Worker 169*1b3f573fSAndroid Build Coastguard Worker return $this; 170*1b3f573fSAndroid Build Coastguard Worker } 171*1b3f573fSAndroid Build Coastguard Worker 172*1b3f573fSAndroid Build Coastguard Worker} 173*1b3f573fSAndroid Build Coastguard Worker 174