gtfs-rb
Version:
Generated JavaScript library based on the GTFS Realtime protocol buffer specification
1,110 lines (1,038 loc) • 211 kB
JavaScript
// THIS IS AN AUTO-GENERATED FILE, DO NOT MANUALLY MODIFY
// Copyright (c) 2019 Cyberscape
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in all
// copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
//
// Copyright (c) 2015 Google Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
"use strict";
var $protobuf = require("protobufjs/minimal");
// Common aliases
var $Reader = $protobuf.Reader, $Writer = $protobuf.Writer, $util = $protobuf.util;
// Exported root namespace
var $root = $protobuf.roots["default"] || ($protobuf.roots["default"] = {});
$root.transit_realtime = (function() {
/**
* Namespace transit_realtime.
* @exports transit_realtime
* @namespace
*/
var transit_realtime = {};
transit_realtime.FeedMessage = (function() {
/**
* Properties of a FeedMessage.
* @memberof transit_realtime
* @interface IFeedMessage
* @property {transit_realtime.IFeedHeader} header FeedMessage header
* @property {Array.<transit_realtime.IFeedEntity>|null} [entity] FeedMessage entity
*/
/**
* Constructs a new FeedMessage.
* @memberof transit_realtime
* @classdesc Represents a FeedMessage.
* @implements IFeedMessage
* @constructor
* @param {transit_realtime.IFeedMessage=} [properties] Properties to set
*/
function FeedMessage(properties) {
this.entity = [];
if (properties)
for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
if (properties[keys[i]] != null)
this[keys[i]] = properties[keys[i]];
}
/**
* FeedMessage header.
* @member {transit_realtime.IFeedHeader} header
* @memberof transit_realtime.FeedMessage
* @instance
*/
FeedMessage.prototype.header = null;
/**
* FeedMessage entity.
* @member {Array.<transit_realtime.IFeedEntity>} entity
* @memberof transit_realtime.FeedMessage
* @instance
*/
FeedMessage.prototype.entity = $util.emptyArray;
/**
* Creates a new FeedMessage instance using the specified properties.
* @function create
* @memberof transit_realtime.FeedMessage
* @static
* @param {transit_realtime.IFeedMessage=} [properties] Properties to set
* @returns {transit_realtime.FeedMessage} FeedMessage instance
*/
FeedMessage.create = function create(properties) {
return new FeedMessage(properties);
};
/**
* Encodes the specified FeedMessage message. Does not implicitly {@link transit_realtime.FeedMessage.verify|verify} messages.
* @function encode
* @memberof transit_realtime.FeedMessage
* @static
* @param {transit_realtime.IFeedMessage} message FeedMessage message or plain object to encode
* @param {$protobuf.Writer} [writer] Writer to encode to
* @returns {$protobuf.Writer} Writer
*/
FeedMessage.encode = function encode(message, writer) {
if (!writer)
writer = $Writer.create();
$root.transit_realtime.FeedHeader.encode(message.header, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();
if (message.entity != null && message.entity.length)
for (var i = 0; i < message.entity.length; ++i)
$root.transit_realtime.FeedEntity.encode(message.entity[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();
return writer;
};
/**
* Encodes the specified FeedMessage message, length delimited. Does not implicitly {@link transit_realtime.FeedMessage.verify|verify} messages.
* @function encodeDelimited
* @memberof transit_realtime.FeedMessage
* @static
* @param {transit_realtime.IFeedMessage} message FeedMessage message or plain object to encode
* @param {$protobuf.Writer} [writer] Writer to encode to
* @returns {$protobuf.Writer} Writer
*/
FeedMessage.encodeDelimited = function encodeDelimited(message, writer) {
return this.encode(message, writer).ldelim();
};
/**
* Decodes a FeedMessage message from the specified reader or buffer.
* @function decode
* @memberof transit_realtime.FeedMessage
* @static
* @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
* @param {number} [length] Message length if known beforehand
* @returns {transit_realtime.FeedMessage} FeedMessage
* @throws {Error} If the payload is not a reader or valid buffer
* @throws {$protobuf.util.ProtocolError} If required fields are missing
*/
FeedMessage.decode = function decode(reader, length) {
if (!(reader instanceof $Reader))
reader = $Reader.create(reader);
var end = length === undefined ? reader.len : reader.pos + length, message = new $root.transit_realtime.FeedMessage();
while (reader.pos < end) {
var tag = reader.uint32();
switch (tag >>> 3) {
case 1:
message.header = $root.transit_realtime.FeedHeader.decode(reader, reader.uint32());
break;
case 2:
if (!(message.entity && message.entity.length))
message.entity = [];
message.entity.push($root.transit_realtime.FeedEntity.decode(reader, reader.uint32()));
break;
default:
reader.skipType(tag & 7);
break;
}
}
if (!message.hasOwnProperty("header"))
throw $util.ProtocolError("missing required 'header'", { instance: message });
return message;
};
/**
* Decodes a FeedMessage message from the specified reader or buffer, length delimited.
* @function decodeDelimited
* @memberof transit_realtime.FeedMessage
* @static
* @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
* @returns {transit_realtime.FeedMessage} FeedMessage
* @throws {Error} If the payload is not a reader or valid buffer
* @throws {$protobuf.util.ProtocolError} If required fields are missing
*/
FeedMessage.decodeDelimited = function decodeDelimited(reader) {
if (!(reader instanceof $Reader))
reader = new $Reader(reader);
return this.decode(reader, reader.uint32());
};
/**
* Verifies a FeedMessage message.
* @function verify
* @memberof transit_realtime.FeedMessage
* @static
* @param {Object.<string,*>} message Plain object to verify
* @returns {string|null} `null` if valid, otherwise the reason why it is not
*/
FeedMessage.verify = function verify(message) {
if (typeof message !== "object" || message === null)
return "object expected";
{
var error = $root.transit_realtime.FeedHeader.verify(message.header);
if (error)
return "header." + error;
}
if (message.entity != null && message.hasOwnProperty("entity")) {
if (!Array.isArray(message.entity))
return "entity: array expected";
for (var i = 0; i < message.entity.length; ++i) {
var error = $root.transit_realtime.FeedEntity.verify(message.entity[i]);
if (error)
return "entity." + error;
}
}
return null;
};
/**
* Creates a FeedMessage message from a plain object. Also converts values to their respective internal types.
* @function fromObject
* @memberof transit_realtime.FeedMessage
* @static
* @param {Object.<string,*>} object Plain object
* @returns {transit_realtime.FeedMessage} FeedMessage
*/
FeedMessage.fromObject = function fromObject(object) {
if (object instanceof $root.transit_realtime.FeedMessage)
return object;
var message = new $root.transit_realtime.FeedMessage();
if (object.header != null) {
if (typeof object.header !== "object")
throw TypeError(".transit_realtime.FeedMessage.header: object expected");
message.header = $root.transit_realtime.FeedHeader.fromObject(object.header);
}
if (object.entity) {
if (!Array.isArray(object.entity))
throw TypeError(".transit_realtime.FeedMessage.entity: array expected");
message.entity = [];
for (var i = 0; i < object.entity.length; ++i) {
if (typeof object.entity[i] !== "object")
throw TypeError(".transit_realtime.FeedMessage.entity: object expected");
message.entity[i] = $root.transit_realtime.FeedEntity.fromObject(object.entity[i]);
}
}
return message;
};
/**
* Creates a plain object from a FeedMessage message. Also converts values to other types if specified.
* @function toObject
* @memberof transit_realtime.FeedMessage
* @static
* @param {transit_realtime.FeedMessage} message FeedMessage
* @param {$protobuf.IConversionOptions} [options] Conversion options
* @returns {Object.<string,*>} Plain object
*/
FeedMessage.toObject = function toObject(message, options) {
if (!options)
options = {};
var object = {};
if (options.arrays || options.defaults)
object.entity = [];
if (options.defaults)
object.header = null;
if (message.header != null && message.hasOwnProperty("header"))
object.header = $root.transit_realtime.FeedHeader.toObject(message.header, options);
if (message.entity && message.entity.length) {
object.entity = [];
for (var j = 0; j < message.entity.length; ++j)
object.entity[j] = $root.transit_realtime.FeedEntity.toObject(message.entity[j], options);
}
return object;
};
/**
* Converts this FeedMessage to JSON.
* @function toJSON
* @memberof transit_realtime.FeedMessage
* @instance
* @returns {Object.<string,*>} JSON object
*/
FeedMessage.prototype.toJSON = function toJSON() {
return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
};
return FeedMessage;
})();
transit_realtime.FeedHeader = (function() {
/**
* Properties of a FeedHeader.
* @memberof transit_realtime
* @interface IFeedHeader
* @property {string} gtfsRealtimeVersion FeedHeader gtfsRealtimeVersion
* @property {transit_realtime.FeedHeader.Incrementality|null} [incrementality] FeedHeader incrementality
* @property {Long|null} [timestamp] FeedHeader timestamp
*/
/**
* Constructs a new FeedHeader.
* @memberof transit_realtime
* @classdesc Represents a FeedHeader.
* @implements IFeedHeader
* @constructor
* @param {transit_realtime.IFeedHeader=} [properties] Properties to set
*/
function FeedHeader(properties) {
if (properties)
for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
if (properties[keys[i]] != null)
this[keys[i]] = properties[keys[i]];
}
/**
* FeedHeader gtfsRealtimeVersion.
* @member {string} gtfsRealtimeVersion
* @memberof transit_realtime.FeedHeader
* @instance
*/
FeedHeader.prototype.gtfsRealtimeVersion = "";
/**
* FeedHeader incrementality.
* @member {transit_realtime.FeedHeader.Incrementality} incrementality
* @memberof transit_realtime.FeedHeader
* @instance
*/
FeedHeader.prototype.incrementality = 0;
/**
* FeedHeader timestamp.
* @member {Long} timestamp
* @memberof transit_realtime.FeedHeader
* @instance
*/
FeedHeader.prototype.timestamp = $util.Long ? $util.Long.fromBits(0,0,true) : 0;
/**
* Creates a new FeedHeader instance using the specified properties.
* @function create
* @memberof transit_realtime.FeedHeader
* @static
* @param {transit_realtime.IFeedHeader=} [properties] Properties to set
* @returns {transit_realtime.FeedHeader} FeedHeader instance
*/
FeedHeader.create = function create(properties) {
return new FeedHeader(properties);
};
/**
* Encodes the specified FeedHeader message. Does not implicitly {@link transit_realtime.FeedHeader.verify|verify} messages.
* @function encode
* @memberof transit_realtime.FeedHeader
* @static
* @param {transit_realtime.IFeedHeader} message FeedHeader message or plain object to encode
* @param {$protobuf.Writer} [writer] Writer to encode to
* @returns {$protobuf.Writer} Writer
*/
FeedHeader.encode = function encode(message, writer) {
if (!writer)
writer = $Writer.create();
writer.uint32(/* id 1, wireType 2 =*/10).string(message.gtfsRealtimeVersion);
if (message.incrementality != null && message.hasOwnProperty("incrementality"))
writer.uint32(/* id 2, wireType 0 =*/16).int32(message.incrementality);
if (message.timestamp != null && message.hasOwnProperty("timestamp"))
writer.uint32(/* id 3, wireType 0 =*/24).uint64(message.timestamp);
return writer;
};
/**
* Encodes the specified FeedHeader message, length delimited. Does not implicitly {@link transit_realtime.FeedHeader.verify|verify} messages.
* @function encodeDelimited
* @memberof transit_realtime.FeedHeader
* @static
* @param {transit_realtime.IFeedHeader} message FeedHeader message or plain object to encode
* @param {$protobuf.Writer} [writer] Writer to encode to
* @returns {$protobuf.Writer} Writer
*/
FeedHeader.encodeDelimited = function encodeDelimited(message, writer) {
return this.encode(message, writer).ldelim();
};
/**
* Decodes a FeedHeader message from the specified reader or buffer.
* @function decode
* @memberof transit_realtime.FeedHeader
* @static
* @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
* @param {number} [length] Message length if known beforehand
* @returns {transit_realtime.FeedHeader} FeedHeader
* @throws {Error} If the payload is not a reader or valid buffer
* @throws {$protobuf.util.ProtocolError} If required fields are missing
*/
FeedHeader.decode = function decode(reader, length) {
if (!(reader instanceof $Reader))
reader = $Reader.create(reader);
var end = length === undefined ? reader.len : reader.pos + length, message = new $root.transit_realtime.FeedHeader();
while (reader.pos < end) {
var tag = reader.uint32();
switch (tag >>> 3) {
case 1:
message.gtfsRealtimeVersion = reader.string();
break;
case 2:
message.incrementality = reader.int32();
break;
case 3:
message.timestamp = reader.uint64();
break;
default:
reader.skipType(tag & 7);
break;
}
}
if (!message.hasOwnProperty("gtfsRealtimeVersion"))
throw $util.ProtocolError("missing required 'gtfsRealtimeVersion'", { instance: message });
return message;
};
/**
* Decodes a FeedHeader message from the specified reader or buffer, length delimited.
* @function decodeDelimited
* @memberof transit_realtime.FeedHeader
* @static
* @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
* @returns {transit_realtime.FeedHeader} FeedHeader
* @throws {Error} If the payload is not a reader or valid buffer
* @throws {$protobuf.util.ProtocolError} If required fields are missing
*/
FeedHeader.decodeDelimited = function decodeDelimited(reader) {
if (!(reader instanceof $Reader))
reader = new $Reader(reader);
return this.decode(reader, reader.uint32());
};
/**
* Verifies a FeedHeader message.
* @function verify
* @memberof transit_realtime.FeedHeader
* @static
* @param {Object.<string,*>} message Plain object to verify
* @returns {string|null} `null` if valid, otherwise the reason why it is not
*/
FeedHeader.verify = function verify(message) {
if (typeof message !== "object" || message === null)
return "object expected";
if (!$util.isString(message.gtfsRealtimeVersion))
return "gtfsRealtimeVersion: string expected";
if (message.incrementality != null && message.hasOwnProperty("incrementality"))
switch (message.incrementality) {
default:
return "incrementality: enum value expected";
case 0:
case 1:
break;
}
if (message.timestamp != null && message.hasOwnProperty("timestamp"))
if (!$util.isInteger(message.timestamp) && !(message.timestamp && $util.isInteger(message.timestamp.low) && $util.isInteger(message.timestamp.high)))
return "timestamp: integer|Long expected";
return null;
};
/**
* Creates a FeedHeader message from a plain object. Also converts values to their respective internal types.
* @function fromObject
* @memberof transit_realtime.FeedHeader
* @static
* @param {Object.<string,*>} object Plain object
* @returns {transit_realtime.FeedHeader} FeedHeader
*/
FeedHeader.fromObject = function fromObject(object) {
if (object instanceof $root.transit_realtime.FeedHeader)
return object;
var message = new $root.transit_realtime.FeedHeader();
if (object.gtfsRealtimeVersion != null)
message.gtfsRealtimeVersion = String(object.gtfsRealtimeVersion);
switch (object.incrementality) {
case "FULL_DATASET":
case 0:
message.incrementality = 0;
break;
case "DIFFERENTIAL":
case 1:
message.incrementality = 1;
break;
}
if (object.timestamp != null)
if ($util.Long)
(message.timestamp = $util.Long.fromValue(object.timestamp)).unsigned = true;
else if (typeof object.timestamp === "string")
message.timestamp = parseInt(object.timestamp, 10);
else if (typeof object.timestamp === "number")
message.timestamp = object.timestamp;
else if (typeof object.timestamp === "object")
message.timestamp = new $util.LongBits(object.timestamp.low >>> 0, object.timestamp.high >>> 0).toNumber(true);
return message;
};
/**
* Creates a plain object from a FeedHeader message. Also converts values to other types if specified.
* @function toObject
* @memberof transit_realtime.FeedHeader
* @static
* @param {transit_realtime.FeedHeader} message FeedHeader
* @param {$protobuf.IConversionOptions} [options] Conversion options
* @returns {Object.<string,*>} Plain object
*/
FeedHeader.toObject = function toObject(message, options) {
if (!options)
options = {};
var object = {};
if (options.defaults) {
object.gtfsRealtimeVersion = "";
object.incrementality = options.enums === String ? "FULL_DATASET" : 0;
if ($util.Long) {
var long = new $util.Long(0, 0, true);
object.timestamp = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;
} else
object.timestamp = options.longs === String ? "0" : 0;
}
if (message.gtfsRealtimeVersion != null && message.hasOwnProperty("gtfsRealtimeVersion"))
object.gtfsRealtimeVersion = message.gtfsRealtimeVersion;
if (message.incrementality != null && message.hasOwnProperty("incrementality"))
object.incrementality = options.enums === String ? $root.transit_realtime.FeedHeader.Incrementality[message.incrementality] : message.incrementality;
if (message.timestamp != null && message.hasOwnProperty("timestamp"))
if (typeof message.timestamp === "number")
object.timestamp = options.longs === String ? String(message.timestamp) : message.timestamp;
else
object.timestamp = options.longs === String ? $util.Long.prototype.toString.call(message.timestamp) : options.longs === Number ? new $util.LongBits(message.timestamp.low >>> 0, message.timestamp.high >>> 0).toNumber(true) : message.timestamp;
return object;
};
/**
* Converts this FeedHeader to JSON.
* @function toJSON
* @memberof transit_realtime.FeedHeader
* @instance
* @returns {Object.<string,*>} JSON object
*/
FeedHeader.prototype.toJSON = function toJSON() {
return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
};
/**
* Incrementality enum.
* @name transit_realtime.FeedHeader.Incrementality
* @enum {string}
* @property {number} FULL_DATASET=0 FULL_DATASET value
* @property {number} DIFFERENTIAL=1 DIFFERENTIAL value
*/
FeedHeader.Incrementality = (function() {
var valuesById = {}, values = Object.create(valuesById);
values[valuesById[0] = "FULL_DATASET"] = 0;
values[valuesById[1] = "DIFFERENTIAL"] = 1;
return values;
})();
return FeedHeader;
})();
transit_realtime.FeedEntity = (function() {
/**
* Properties of a FeedEntity.
* @memberof transit_realtime
* @interface IFeedEntity
* @property {string} id FeedEntity id
* @property {boolean|null} [isDeleted] FeedEntity isDeleted
* @property {transit_realtime.ITripUpdate|null} [tripUpdate] FeedEntity tripUpdate
* @property {transit_realtime.IVehiclePosition|null} [vehicle] FeedEntity vehicle
* @property {transit_realtime.IAlert|null} [alert] FeedEntity alert
*/
/**
* Constructs a new FeedEntity.
* @memberof transit_realtime
* @classdesc Represents a FeedEntity.
* @implements IFeedEntity
* @constructor
* @param {transit_realtime.IFeedEntity=} [properties] Properties to set
*/
function FeedEntity(properties) {
if (properties)
for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
if (properties[keys[i]] != null)
this[keys[i]] = properties[keys[i]];
}
/**
* FeedEntity id.
* @member {string} id
* @memberof transit_realtime.FeedEntity
* @instance
*/
FeedEntity.prototype.id = "";
/**
* FeedEntity isDeleted.
* @member {boolean} isDeleted
* @memberof transit_realtime.FeedEntity
* @instance
*/
FeedEntity.prototype.isDeleted = false;
/**
* FeedEntity tripUpdate.
* @member {transit_realtime.ITripUpdate|null|undefined} tripUpdate
* @memberof transit_realtime.FeedEntity
* @instance
*/
FeedEntity.prototype.tripUpdate = null;
/**
* FeedEntity vehicle.
* @member {transit_realtime.IVehiclePosition|null|undefined} vehicle
* @memberof transit_realtime.FeedEntity
* @instance
*/
FeedEntity.prototype.vehicle = null;
/**
* FeedEntity alert.
* @member {transit_realtime.IAlert|null|undefined} alert
* @memberof transit_realtime.FeedEntity
* @instance
*/
FeedEntity.prototype.alert = null;
/**
* Creates a new FeedEntity instance using the specified properties.
* @function create
* @memberof transit_realtime.FeedEntity
* @static
* @param {transit_realtime.IFeedEntity=} [properties] Properties to set
* @returns {transit_realtime.FeedEntity} FeedEntity instance
*/
FeedEntity.create = function create(properties) {
return new FeedEntity(properties);
};
/**
* Encodes the specified FeedEntity message. Does not implicitly {@link transit_realtime.FeedEntity.verify|verify} messages.
* @function encode
* @memberof transit_realtime.FeedEntity
* @static
* @param {transit_realtime.IFeedEntity} message FeedEntity message or plain object to encode
* @param {$protobuf.Writer} [writer] Writer to encode to
* @returns {$protobuf.Writer} Writer
*/
FeedEntity.encode = function encode(message, writer) {
if (!writer)
writer = $Writer.create();
writer.uint32(/* id 1, wireType 2 =*/10).string(message.id);
if (message.isDeleted != null && message.hasOwnProperty("isDeleted"))
writer.uint32(/* id 2, wireType 0 =*/16).bool(message.isDeleted);
if (message.tripUpdate != null && message.hasOwnProperty("tripUpdate"))
$root.transit_realtime.TripUpdate.encode(message.tripUpdate, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();
if (message.vehicle != null && message.hasOwnProperty("vehicle"))
$root.transit_realtime.VehiclePosition.encode(message.vehicle, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim();
if (message.alert != null && message.hasOwnProperty("alert"))
$root.transit_realtime.Alert.encode(message.alert, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim();
return writer;
};
/**
* Encodes the specified FeedEntity message, length delimited. Does not implicitly {@link transit_realtime.FeedEntity.verify|verify} messages.
* @function encodeDelimited
* @memberof transit_realtime.FeedEntity
* @static
* @param {transit_realtime.IFeedEntity} message FeedEntity message or plain object to encode
* @param {$protobuf.Writer} [writer] Writer to encode to
* @returns {$protobuf.Writer} Writer
*/
FeedEntity.encodeDelimited = function encodeDelimited(message, writer) {
return this.encode(message, writer).ldelim();
};
/**
* Decodes a FeedEntity message from the specified reader or buffer.
* @function decode
* @memberof transit_realtime.FeedEntity
* @static
* @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
* @param {number} [length] Message length if known beforehand
* @returns {transit_realtime.FeedEntity} FeedEntity
* @throws {Error} If the payload is not a reader or valid buffer
* @throws {$protobuf.util.ProtocolError} If required fields are missing
*/
FeedEntity.decode = function decode(reader, length) {
if (!(reader instanceof $Reader))
reader = $Reader.create(reader);
var end = length === undefined ? reader.len : reader.pos + length, message = new $root.transit_realtime.FeedEntity();
while (reader.pos < end) {
var tag = reader.uint32();
switch (tag >>> 3) {
case 1:
message.id = reader.string();
break;
case 2:
message.isDeleted = reader.bool();
break;
case 3:
message.tripUpdate = $root.transit_realtime.TripUpdate.decode(reader, reader.uint32());
break;
case 4:
message.vehicle = $root.transit_realtime.VehiclePosition.decode(reader, reader.uint32());
break;
case 5:
message.alert = $root.transit_realtime.Alert.decode(reader, reader.uint32());
break;
default:
reader.skipType(tag & 7);
break;
}
}
if (!message.hasOwnProperty("id"))
throw $util.ProtocolError("missing required 'id'", { instance: message });
return message;
};
/**
* Decodes a FeedEntity message from the specified reader or buffer, length delimited.
* @function decodeDelimited
* @memberof transit_realtime.FeedEntity
* @static
* @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
* @returns {transit_realtime.FeedEntity} FeedEntity
* @throws {Error} If the payload is not a reader or valid buffer
* @throws {$protobuf.util.ProtocolError} If required fields are missing
*/
FeedEntity.decodeDelimited = function decodeDelimited(reader) {
if (!(reader instanceof $Reader))
reader = new $Reader(reader);
return this.decode(reader, reader.uint32());
};
/**
* Verifies a FeedEntity message.
* @function verify
* @memberof transit_realtime.FeedEntity
* @static
* @param {Object.<string,*>} message Plain object to verify
* @returns {string|null} `null` if valid, otherwise the reason why it is not
*/
FeedEntity.verify = function verify(message) {
if (typeof message !== "object" || message === null)
return "object expected";
if (!$util.isString(message.id))
return "id: string expected";
if (message.isDeleted != null && message.hasOwnProperty("isDeleted"))
if (typeof message.isDeleted !== "boolean")
return "isDeleted: boolean expected";
if (message.tripUpdate != null && message.hasOwnProperty("tripUpdate")) {
var error = $root.transit_realtime.TripUpdate.verify(message.tripUpdate);
if (error)
return "tripUpdate." + error;
}
if (message.vehicle != null && message.hasOwnProperty("vehicle")) {
var error = $root.transit_realtime.VehiclePosition.verify(message.vehicle);
if (error)
return "vehicle." + error;
}
if (message.alert != null && message.hasOwnProperty("alert")) {
var error = $root.transit_realtime.Alert.verify(message.alert);
if (error)
return "alert." + error;
}
return null;
};
/**
* Creates a FeedEntity message from a plain object. Also converts values to their respective internal types.
* @function fromObject
* @memberof transit_realtime.FeedEntity
* @static
* @param {Object.<string,*>} object Plain object
* @returns {transit_realtime.FeedEntity} FeedEntity
*/
FeedEntity.fromObject = function fromObject(object) {
if (object instanceof $root.transit_realtime.FeedEntity)
return object;
var message = new $root.transit_realtime.FeedEntity();
if (object.id != null)
message.id = String(object.id);
if (object.isDeleted != null)
message.isDeleted = Boolean(object.isDeleted);
if (object.tripUpdate != null) {
if (typeof object.tripUpdate !== "object")
throw TypeError(".transit_realtime.FeedEntity.tripUpdate: object expected");
message.tripUpdate = $root.transit_realtime.TripUpdate.fromObject(object.tripUpdate);
}
if (object.vehicle != null) {
if (typeof object.vehicle !== "object")
throw TypeError(".transit_realtime.FeedEntity.vehicle: object expected");
message.vehicle = $root.transit_realtime.VehiclePosition.fromObject(object.vehicle);
}
if (object.alert != null) {
if (typeof object.alert !== "object")
throw TypeError(".transit_realtime.FeedEntity.alert: object expected");
message.alert = $root.transit_realtime.Alert.fromObject(object.alert);
}
return message;
};
/**
* Creates a plain object from a FeedEntity message. Also converts values to other types if specified.
* @function toObject
* @memberof transit_realtime.FeedEntity
* @static
* @param {transit_realtime.FeedEntity} message FeedEntity
* @param {$protobuf.IConversionOptions} [options] Conversion options
* @returns {Object.<string,*>} Plain object
*/
FeedEntity.toObject = function toObject(message, options) {
if (!options)
options = {};
var object = {};
if (options.defaults) {
object.id = "";
object.isDeleted = false;
object.tripUpdate = null;
object.vehicle = null;
object.alert = null;
}
if (message.id != null && message.hasOwnProperty("id"))
object.id = message.id;
if (message.isDeleted != null && message.hasOwnProperty("isDeleted"))
object.isDeleted = message.isDeleted;
if (message.tripUpdate != null && message.hasOwnProperty("tripUpdate"))
object.tripUpdate = $root.transit_realtime.TripUpdate.toObject(message.tripUpdate, options);
if (message.vehicle != null && message.hasOwnProperty("vehicle"))
object.vehicle = $root.transit_realtime.VehiclePosition.toObject(message.vehicle, options);
if (message.alert != null && message.hasOwnProperty("alert"))
object.alert = $root.transit_realtime.Alert.toObject(message.alert, options);
return object;
};
/**
* Converts this FeedEntity to JSON.
* @function toJSON
* @memberof transit_realtime.FeedEntity
* @instance
* @returns {Object.<string,*>} JSON object
*/
FeedEntity.prototype.toJSON = function toJSON() {
return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
};
return FeedEntity;
})();
transit_realtime.TripUpdate = (function() {
/**
* Properties of a TripUpdate.
* @memberof transit_realtime
* @interface ITripUpdate
* @property {transit_realtime.ITripDescriptor} trip TripUpdate trip
* @property {transit_realtime.IVehicleDescriptor|null} [vehicle] TripUpdate vehicle
* @property {Array.<transit_realtime.TripUpdate.IStopTimeUpdate>|null} [stopTimeUpdate] TripUpdate stopTimeUpdate
* @property {Long|null} [timestamp] TripUpdate timestamp
* @property {number|null} [delay] TripUpdate delay
*/
/**
* Constructs a new TripUpdate.
* @memberof transit_realtime
* @classdesc Represents a TripUpdate.
* @implements ITripUpdate
* @constructor
* @param {transit_realtime.ITripUpdate=} [properties] Properties to set
*/
function TripUpdate(properties) {
this.stopTimeUpdate = [];
if (properties)
for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
if (properties[keys[i]] != null)
this[keys[i]] = properties[keys[i]];
}
/**
* TripUpdate trip.
* @member {transit_realtime.ITripDescriptor} trip
* @memberof transit_realtime.TripUpdate
* @instance
*/
TripUpdate.prototype.trip = null;
/**
* TripUpdate vehicle.
* @member {transit_realtime.IVehicleDescriptor|null|undefined} vehicle
* @memberof transit_realtime.TripUpdate
* @instance
*/
TripUpdate.prototype.vehicle = null;
/**
* TripUpdate stopTimeUpdate.
* @member {Array.<transit_realtime.TripUpdate.IStopTimeUpdate>} stopTimeUpdate
* @memberof transit_realtime.TripUpdate
* @instance
*/
TripUpdate.prototype.stopTimeUpdate = $util.emptyArray;
/**
* TripUpdate timestamp.
* @member {Long} timestamp
* @memberof transit_realtime.TripUpdate
* @instance
*/
TripUpdate.prototype.timestamp = $util.Long ? $util.Long.fromBits(0,0,true) : 0;
/**
* TripUpdate delay.
* @member {number} delay
* @memberof transit_realtime.TripUpdate
* @instance
*/
TripUpdate.prototype.delay = 0;
/**
* Creates a new TripUpdate instance using the specified properties.
* @function create
* @memberof transit_realtime.TripUpdate
* @static
* @param {transit_realtime.ITripUpdate=} [properties] Properties to set
* @returns {transit_realtime.TripUpdate} TripUpdate instance
*/
TripUpdate.create = function create(properties) {
return new TripUpdate(properties);
};
/**
* Encodes the specified TripUpdate message. Does not implicitly {@link transit_realtime.TripUpdate.verify|verify} messages.
* @function encode
* @memberof transit_realtime.TripUpdate
* @static
* @param {transit_realtime.ITripUpdate} message TripUpdate message or plain object to encode
* @param {$protobuf.Writer} [writer] Writer to encode to
* @returns {$protobuf.Writer} Writer
*/
TripUpdate.encode = function encode(message, writer) {
if (!writer)
writer = $Writer.create();
$root.transit_realtime.TripDescriptor.encode(message.trip, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();
if (message.stopTimeUpdate != null && message.stopTimeUpdate.length)
for (var i = 0; i < message.stopTimeUpdate.length; ++i)
$root.transit_realtime.TripUpdate.StopTimeUpdate.encode(message.stopTimeUpdate[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();
if (message.vehicle != null && message.hasOwnProperty("vehicle"))
$root.transit_realtime.VehicleDescriptor.encode(message.vehicle, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();
if (message.timestamp != null && message.hasOwnProperty("timestamp"))
writer.uint32(/* id 4, wireType 0 =*/32).uint64(message.timestamp);
if (message.delay != null && message.hasOwnProperty("delay"))
writer.uint32(/* id 5, wireType 0 =*/40).int32(message.delay);
return writer;
};
/**
* Encodes the specified TripUpdate message, length delimited. Does not implicitly {@link transit_realtime.TripUpdate.verify|verify} messages.
* @function encodeDelimited
* @memberof transit_realtime.TripUpdate
* @static
* @param {transit_realtime.ITripUpdate} message TripUpdate message or plain object to encode
* @param {$protobuf.Writer} [writer] Writer to encode to
* @returns {$protobuf.Writer} Writer
*/
TripUpdate.encodeDelimited = function encodeDelimited(message, writer) {
return this.encode(message, writer).ldelim();
};
/**
* Decodes a TripUpdate message from the specified reader or buffer.
* @function decode
* @memberof transit_realtime.TripUpdate
* @static
* @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
* @param {number} [length] Message length if known beforehand
* @returns {transit_realtime.TripUpdate} TripUpdate
* @throws {Error} If the payload is not a reader or valid buffer
* @throws {$protobuf.util.ProtocolError} If required fields are missing
*/
TripUpdate.decode = function decode(reader, length) {
if (!(reader instanceof $Reader))
reader = $Reader.create(reader);
var end = length === undefined ? reader.len : reader.pos + length, message = new $root.transit_realtime.TripUpdate();
while (reader.pos < end) {
var tag = reader.uint32();
switch (tag >>> 3) {
case 1:
message.trip = $root.transit_realtime.TripDescriptor.decode(reader, reader.uint32());
break;
case 3:
message.vehicle = $root.transit_realtime.VehicleDescriptor.decode(reader, reader.uint32());
break;
case 2:
if (!(message.stopTimeUpdate && message.stopTimeUpdate.length))
message.stopTimeUpdate = [];
message.stopTimeUpdate.push($root.transit_realtime.TripUpdate.StopTimeUpdate.decode(reader, reader.uint32()));
break;
case 4:
message.timestamp = reader.uint64();
break;
case 5:
message.delay = reader.int32();
break;
default:
reader.skipType(tag & 7);
break;
}
}
if (!message.hasOwnProperty("trip"))
throw $util.ProtocolError("missing required 'trip'", { instance: message });
return message;
};
/**
* Decodes a TripUpdate message from the specified reader or buffer, length delimited.
* @function decodeDelimited
* @memberof transit_realtime.TripUpdate
* @static
* @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
* @returns {transit_realtime.TripUpdate} TripUpdate
* @throws {Error} If the payload is not a reader or valid buffer
* @throws {$protobuf.util.ProtocolError} If required fields are missing
*/
TripUpdate.decodeDelimited = function decodeDelimited(reader) {
if (!(reader instanceof $Reader))
reader = new $Reader(reader);
return this.decode(reader, reader.uint32());
};
/**
* Verifies a TripUpdate message.
* @function verify
* @memberof transit_realtime.TripUpdate
* @static
* @param {Object.<string,*>} message Plain object to verify
* @returns {string|null} `null` if valid, otherwise the reason why it is not
*/
TripUpdate.verify = function verify(message) {
if (typeof message !== "object" || message === null)
return "object expected";
{
var error = $root.transit_realtime.TripDescriptor.verify(message.trip);
if (error)
return "trip." + error;
}
if (message.vehicle != null && message.hasOwnProperty("vehicle")) {
var error = $root.transit_realtime.VehicleDescriptor.verify(message.vehicle);
if (error)
return "vehicle." + error;
}
if (message.stopTimeUpdate != null && message.hasOwnProperty("stopTimeUpdate")) {
if (!Array.isArray(message.stopTimeUpdate))
return "stopTimeUpdate: array expected";
for (var i = 0; i < message.stopTimeUpdate.length; ++i) {
var error = $root.transit_realtime.TripUpdate.StopTimeUpdate.verify(message.stopTimeUpdate[i]);
if (error)
return "stopTimeUpdate." + error;
}
}
if (message.timestamp != null && message.hasOwnProperty("timestamp"))
if (!$util.isInteger(message.timestamp) && !(message.timestamp && $util.isInteger(message.timestamp.low) && $util.isInteger(message.timestamp.high)))
return "timestamp: integer|Long expected";
if (message.delay != null && message.hasOwnProperty("delay"))
if (!$util.isInteger(message.delay))
return "delay: integer expected";
return null;
};
/**
* Creates a TripUpdate message from a plain object. Also converts values to their respective internal types.
* @function fromObject
* @memberof transit_realtime.TripUpdate
* @static
* @param {Object.<string,*>} object Plain object
* @returns {transit_realtime.TripUpdate} TripUpdate
*/
TripUpdate.fromObject = function fromObject(object) {
if (object instanceof $root.transit_realtime.TripUpdate)
return object;
var message = new $root.transit_realtime.TripUpdate();
if (object.trip != null) {
if (typeof object.trip !== "object")
throw TypeError(".transit_realtime.TripUpdate.trip: object expected");
message.trip = $root.transit_realtime.TripDescriptor.fromObject(object.trip);
}
if (object.vehicle != null) {
if (typeof object.vehicle !== "object")
throw TypeError(".transit_realtime.TripUpdate.vehicle: object expected");
message.vehicle = $root.transit_realtime.VehicleDescriptor.fromObject(object.vehicle);
}
if (object.stopTimeUpdate) {
if (!Array.isArray(object.stopTimeUpdate))
throw TypeError(".transit_realtime.TripUpdate.stopTimeUpdate: array expected");
message.stopTimeUpdate = [];
for (var i = 0; i < object.stopTimeUpdate.length; ++i) {
if (typeof object.stopTimeUpdate[i] !== "object")
throw TypeError(".transit_realtime.TripUpdate.stopTimeUpdate: object expected");
message.stopTimeUpdate[i] = $root.transit_realtime.TripUpdate.StopTimeUpdate.fromObject(object.stopTimeUpdate[i]);
}
}
if (object.timestamp != null)
if ($util.Long)
(message.tim