UNPKG

spot-sdk-js

Version:

Develop applications and payloads for Spot using the unofficial Boston Dynamics Spot Node.js SDK.

3,255 lines 101 kB
// source: bosdyn/api/bddf.proto
/**
 * @fileoverview
 * @enhanceable
 * @suppress {missingRequire} reports error on implicit type usages.
 * @suppress {messageConventions} JS Compiler reports an error if a variable or
 *     field starts with 'MSG_' and isn't a translatable message.
 * @public
 */
// GENERATED CODE -- DO NOT EDIT!
/* eslint-disable */
// @ts-nocheck

var jspb = require('google-protobuf');
var goog = jspb;
var global = Function('return this')();

var google_protobuf_timestamp_pb = require('google-protobuf/google/protobuf/timestamp_pb.js');
goog.object.extend(proto, google_protobuf_timestamp_pb);
goog.exportSymbol('proto.bosdyn.api.DataDescriptor', null, global);
goog.exportSymbol('proto.bosdyn.api.DescriptorBlock', null, global);
goog.exportSymbol('proto.bosdyn.api.DescriptorBlock.DescriptortypeCase', null, global);
goog.exportSymbol('proto.bosdyn.api.FileFormatDescriptor', null, global);
goog.exportSymbol('proto.bosdyn.api.FileFormatDescriptor.CheckSumType', null, global);
goog.exportSymbol('proto.bosdyn.api.FileFormatVersion', null, global);
goog.exportSymbol('proto.bosdyn.api.FileIndex', null, global);
goog.exportSymbol('proto.bosdyn.api.MessageTypeDescriptor', null, global);
goog.exportSymbol('proto.bosdyn.api.PodTypeDescriptor', null, global);
goog.exportSymbol('proto.bosdyn.api.PodTypeEnum', null, global);
goog.exportSymbol('proto.bosdyn.api.SeriesBlockIndex', null, global);
goog.exportSymbol('proto.bosdyn.api.SeriesBlockIndex.BlockEntry', null, global);
goog.exportSymbol('proto.bosdyn.api.SeriesDescriptor', null, global);
goog.exportSymbol('proto.bosdyn.api.SeriesDescriptor.DatatypeCase', null, global);
goog.exportSymbol('proto.bosdyn.api.SeriesIdentifier', null, global);
goog.exportSymbol('proto.bosdyn.api.StructTypeDescriptor', null, global);
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.bosdyn.api.DescriptorBlock = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, proto.bosdyn.api.DescriptorBlock.oneofGroups_);
};
goog.inherits(proto.bosdyn.api.DescriptorBlock, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.bosdyn.api.DescriptorBlock.displayName = 'proto.bosdyn.api.DescriptorBlock';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.bosdyn.api.DataDescriptor = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, proto.bosdyn.api.DataDescriptor.repeatedFields_, null);
};
goog.inherits(proto.bosdyn.api.DataDescriptor, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.bosdyn.api.DataDescriptor.displayName = 'proto.bosdyn.api.DataDescriptor';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.bosdyn.api.FileFormatDescriptor = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.bosdyn.api.FileFormatDescriptor, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.bosdyn.api.FileFormatDescriptor.displayName = 'proto.bosdyn.api.FileFormatDescriptor';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.bosdyn.api.FileFormatVersion = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.bosdyn.api.FileFormatVersion, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.bosdyn.api.FileFormatVersion.displayName = 'proto.bosdyn.api.FileFormatVersion';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.bosdyn.api.SeriesDescriptor = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, proto.bosdyn.api.SeriesDescriptor.repeatedFields_, proto.bosdyn.api.SeriesDescriptor.oneofGroups_);
};
goog.inherits(proto.bosdyn.api.SeriesDescriptor, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.bosdyn.api.SeriesDescriptor.displayName = 'proto.bosdyn.api.SeriesDescriptor';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.bosdyn.api.MessageTypeDescriptor = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.bosdyn.api.MessageTypeDescriptor, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.bosdyn.api.MessageTypeDescriptor.displayName = 'proto.bosdyn.api.MessageTypeDescriptor';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.bosdyn.api.PodTypeDescriptor = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, proto.bosdyn.api.PodTypeDescriptor.repeatedFields_, null);
};
goog.inherits(proto.bosdyn.api.PodTypeDescriptor, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.bosdyn.api.PodTypeDescriptor.displayName = 'proto.bosdyn.api.PodTypeDescriptor';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.bosdyn.api.StructTypeDescriptor = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.bosdyn.api.StructTypeDescriptor, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.bosdyn.api.StructTypeDescriptor.displayName = 'proto.bosdyn.api.StructTypeDescriptor';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.bosdyn.api.FileIndex = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, proto.bosdyn.api.FileIndex.repeatedFields_, null);
};
goog.inherits(proto.bosdyn.api.FileIndex, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.bosdyn.api.FileIndex.displayName = 'proto.bosdyn.api.FileIndex';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.bosdyn.api.SeriesBlockIndex = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, proto.bosdyn.api.SeriesBlockIndex.repeatedFields_, null);
};
goog.inherits(proto.bosdyn.api.SeriesBlockIndex, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.bosdyn.api.SeriesBlockIndex.displayName = 'proto.bosdyn.api.SeriesBlockIndex';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.bosdyn.api.SeriesBlockIndex.BlockEntry = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, proto.bosdyn.api.SeriesBlockIndex.BlockEntry.repeatedFields_, null);
};
goog.inherits(proto.bosdyn.api.SeriesBlockIndex.BlockEntry, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.bosdyn.api.SeriesBlockIndex.BlockEntry.displayName = 'proto.bosdyn.api.SeriesBlockIndex.BlockEntry';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.bosdyn.api.SeriesIdentifier = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.bosdyn.api.SeriesIdentifier, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.bosdyn.api.SeriesIdentifier.displayName = 'proto.bosdyn.api.SeriesIdentifier';
}

/**
 * Oneof group definitions for this message. Each group defines the field
 * numbers belonging to that group. When of these fields' value is set, all
 * other fields in the group are cleared. During deserialization, if multiple
 * fields are encountered for a group, only the last value seen will be kept.
 * @private {!Array<!Array<number>>}
 * @const
 */
proto.bosdyn.api.DescriptorBlock.oneofGroups_ = [[1,2,3,4]];

/**
 * @enum {number}
 */
proto.bosdyn.api.DescriptorBlock.DescriptortypeCase = {
  DESCRIPTORTYPE_NOT_SET: 0,
  FILE_DESCRIPTOR: 1,
  SERIES_DESCRIPTOR: 2,
  SERIES_BLOCK_INDEX: 3,
  FILE_INDEX: 4
};

/**
 * @return {proto.bosdyn.api.DescriptorBlock.DescriptortypeCase}
 */
proto.bosdyn.api.DescriptorBlock.prototype.getDescriptortypeCase = function() {
  return /** @type {proto.bosdyn.api.DescriptorBlock.DescriptortypeCase} */(jspb.Message.computeOneofCase(this, proto.bosdyn.api.DescriptorBlock.oneofGroups_[0]));
};



if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * Optional fields that are not set will be set to undefined.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
 * @param {boolean=} opt_includeInstance Deprecated. whether to include the
 *     JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @return {!Object}
 */
proto.bosdyn.api.DescriptorBlock.prototype.toObject = function(opt_includeInstance) {
  return proto.bosdyn.api.DescriptorBlock.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.bosdyn.api.DescriptorBlock} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.bosdyn.api.DescriptorBlock.toObject = function(includeInstance, msg) {
  var f, obj = {
    fileDescriptor: (f = msg.getFileDescriptor()) && proto.bosdyn.api.FileFormatDescriptor.toObject(includeInstance, f),
    seriesDescriptor: (f = msg.getSeriesDescriptor()) && proto.bosdyn.api.SeriesDescriptor.toObject(includeInstance, f),
    seriesBlockIndex: (f = msg.getSeriesBlockIndex()) && proto.bosdyn.api.SeriesBlockIndex.toObject(includeInstance, f),
    fileIndex: (f = msg.getFileIndex()) && proto.bosdyn.api.FileIndex.toObject(includeInstance, f)
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.bosdyn.api.DescriptorBlock}
 */
proto.bosdyn.api.DescriptorBlock.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.bosdyn.api.DescriptorBlock;
  return proto.bosdyn.api.DescriptorBlock.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.bosdyn.api.DescriptorBlock} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.bosdyn.api.DescriptorBlock}
 */
proto.bosdyn.api.DescriptorBlock.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = new proto.bosdyn.api.FileFormatDescriptor;
      reader.readMessage(value,proto.bosdyn.api.FileFormatDescriptor.deserializeBinaryFromReader);
      msg.setFileDescriptor(value);
      break;
    case 2:
      var value = new proto.bosdyn.api.SeriesDescriptor;
      reader.readMessage(value,proto.bosdyn.api.SeriesDescriptor.deserializeBinaryFromReader);
      msg.setSeriesDescriptor(value);
      break;
    case 3:
      var value = new proto.bosdyn.api.SeriesBlockIndex;
      reader.readMessage(value,proto.bosdyn.api.SeriesBlockIndex.deserializeBinaryFromReader);
      msg.setSeriesBlockIndex(value);
      break;
    case 4:
      var value = new proto.bosdyn.api.FileIndex;
      reader.readMessage(value,proto.bosdyn.api.FileIndex.deserializeBinaryFromReader);
      msg.setFileIndex(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.bosdyn.api.DescriptorBlock.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.bosdyn.api.DescriptorBlock.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.bosdyn.api.DescriptorBlock} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.bosdyn.api.DescriptorBlock.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getFileDescriptor();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      proto.bosdyn.api.FileFormatDescriptor.serializeBinaryToWriter
    );
  }
  f = message.getSeriesDescriptor();
  if (f != null) {
    writer.writeMessage(
      2,
      f,
      proto.bosdyn.api.SeriesDescriptor.serializeBinaryToWriter
    );
  }
  f = message.getSeriesBlockIndex();
  if (f != null) {
    writer.writeMessage(
      3,
      f,
      proto.bosdyn.api.SeriesBlockIndex.serializeBinaryToWriter
    );
  }
  f = message.getFileIndex();
  if (f != null) {
    writer.writeMessage(
      4,
      f,
      proto.bosdyn.api.FileIndex.serializeBinaryToWriter
    );
  }
};


/**
 * optional FileFormatDescriptor file_descriptor = 1;
 * @return {?proto.bosdyn.api.FileFormatDescriptor}
 */
proto.bosdyn.api.DescriptorBlock.prototype.getFileDescriptor = function() {
  return /** @type{?proto.bosdyn.api.FileFormatDescriptor} */ (
    jspb.Message.getWrapperField(this, proto.bosdyn.api.FileFormatDescriptor, 1));
};


/**
 * @param {?proto.bosdyn.api.FileFormatDescriptor|undefined} value
 * @return {!proto.bosdyn.api.DescriptorBlock} returns this
*/
proto.bosdyn.api.DescriptorBlock.prototype.setFileDescriptor = function(value) {
  return jspb.Message.setOneofWrapperField(this, 1, proto.bosdyn.api.DescriptorBlock.oneofGroups_[0], value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.bosdyn.api.DescriptorBlock} returns this
 */
proto.bosdyn.api.DescriptorBlock.prototype.clearFileDescriptor = function() {
  return this.setFileDescriptor(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.bosdyn.api.DescriptorBlock.prototype.hasFileDescriptor = function() {
  return jspb.Message.getField(this, 1) != null;
};


/**
 * optional SeriesDescriptor series_descriptor = 2;
 * @return {?proto.bosdyn.api.SeriesDescriptor}
 */
proto.bosdyn.api.DescriptorBlock.prototype.getSeriesDescriptor = function() {
  return /** @type{?proto.bosdyn.api.SeriesDescriptor} */ (
    jspb.Message.getWrapperField(this, proto.bosdyn.api.SeriesDescriptor, 2));
};


/**
 * @param {?proto.bosdyn.api.SeriesDescriptor|undefined} value
 * @return {!proto.bosdyn.api.DescriptorBlock} returns this
*/
proto.bosdyn.api.DescriptorBlock.prototype.setSeriesDescriptor = function(value) {
  return jspb.Message.setOneofWrapperField(this, 2, proto.bosdyn.api.DescriptorBlock.oneofGroups_[0], value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.bosdyn.api.DescriptorBlock} returns this
 */
proto.bosdyn.api.DescriptorBlock.prototype.clearSeriesDescriptor = function() {
  return this.setSeriesDescriptor(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.bosdyn.api.DescriptorBlock.prototype.hasSeriesDescriptor = function() {
  return jspb.Message.getField(this, 2) != null;
};


/**
 * optional SeriesBlockIndex series_block_index = 3;
 * @return {?proto.bosdyn.api.SeriesBlockIndex}
 */
proto.bosdyn.api.DescriptorBlock.prototype.getSeriesBlockIndex = function() {
  return /** @type{?proto.bosdyn.api.SeriesBlockIndex} */ (
    jspb.Message.getWrapperField(this, proto.bosdyn.api.SeriesBlockIndex, 3));
};


/**
 * @param {?proto.bosdyn.api.SeriesBlockIndex|undefined} value
 * @return {!proto.bosdyn.api.DescriptorBlock} returns this
*/
proto.bosdyn.api.DescriptorBlock.prototype.setSeriesBlockIndex = function(value) {
  return jspb.Message.setOneofWrapperField(this, 3, proto.bosdyn.api.DescriptorBlock.oneofGroups_[0], value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.bosdyn.api.DescriptorBlock} returns this
 */
proto.bosdyn.api.DescriptorBlock.prototype.clearSeriesBlockIndex = function() {
  return this.setSeriesBlockIndex(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.bosdyn.api.DescriptorBlock.prototype.hasSeriesBlockIndex = function() {
  return jspb.Message.getField(this, 3) != null;
};


/**
 * optional FileIndex file_index = 4;
 * @return {?proto.bosdyn.api.FileIndex}
 */
proto.bosdyn.api.DescriptorBlock.prototype.getFileIndex = function() {
  return /** @type{?proto.bosdyn.api.FileIndex} */ (
    jspb.Message.getWrapperField(this, proto.bosdyn.api.FileIndex, 4));
};


/**
 * @param {?proto.bosdyn.api.FileIndex|undefined} value
 * @return {!proto.bosdyn.api.DescriptorBlock} returns this
*/
proto.bosdyn.api.DescriptorBlock.prototype.setFileIndex = function(value) {
  return jspb.Message.setOneofWrapperField(this, 4, proto.bosdyn.api.DescriptorBlock.oneofGroups_[0], value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.bosdyn.api.DescriptorBlock} returns this
 */
proto.bosdyn.api.DescriptorBlock.prototype.clearFileIndex = function() {
  return this.setFileIndex(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.bosdyn.api.DescriptorBlock.prototype.hasFileIndex = function() {
  return jspb.Message.getField(this, 4) != null;
};



/**
 * List of repeated fields within this message type.
 * @private {!Array<number>}
 * @const
 */
proto.bosdyn.api.DataDescriptor.repeatedFields_ = [3];



if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * Optional fields that are not set will be set to undefined.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
 * @param {boolean=} opt_includeInstance Deprecated. whether to include the
 *     JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @return {!Object}
 */
proto.bosdyn.api.DataDescriptor.prototype.toObject = function(opt_includeInstance) {
  return proto.bosdyn.api.DataDescriptor.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.bosdyn.api.DataDescriptor} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.bosdyn.api.DataDescriptor.toObject = function(includeInstance, msg) {
  var f, obj = {
    seriesIndex: jspb.Message.getFieldWithDefault(msg, 1, 0),
    timestamp: (f = msg.getTimestamp()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),
    additionalIndexesList: (f = jspb.Message.getRepeatedField(msg, 3)) == null ? undefined : f
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.bosdyn.api.DataDescriptor}
 */
proto.bosdyn.api.DataDescriptor.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.bosdyn.api.DataDescriptor;
  return proto.bosdyn.api.DataDescriptor.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.bosdyn.api.DataDescriptor} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.bosdyn.api.DataDescriptor}
 */
proto.bosdyn.api.DataDescriptor.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {number} */ (reader.readUint32());
      msg.setSeriesIndex(value);
      break;
    case 2:
      var value = new google_protobuf_timestamp_pb.Timestamp;
      reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);
      msg.setTimestamp(value);
      break;
    case 3:
      var values = /** @type {!Array<number>} */ (reader.isDelimited() ? reader.readPackedInt64() : [reader.readInt64()]);
      for (var i = 0; i < values.length; i++) {
        msg.addAdditionalIndexes(values[i]);
      }
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.bosdyn.api.DataDescriptor.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.bosdyn.api.DataDescriptor.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.bosdyn.api.DataDescriptor} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.bosdyn.api.DataDescriptor.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getSeriesIndex();
  if (f !== 0) {
    writer.writeUint32(
      1,
      f
    );
  }
  f = message.getTimestamp();
  if (f != null) {
    writer.writeMessage(
      2,
      f,
      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter
    );
  }
  f = message.getAdditionalIndexesList();
  if (f.length > 0) {
    writer.writePackedInt64(
      3,
      f
    );
  }
};


/**
 * optional uint32 series_index = 1;
 * @return {number}
 */
proto.bosdyn.api.DataDescriptor.prototype.getSeriesIndex = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/**
 * @param {number} value
 * @return {!proto.bosdyn.api.DataDescriptor} returns this
 */
proto.bosdyn.api.DataDescriptor.prototype.setSeriesIndex = function(value) {
  return jspb.Message.setProto3IntField(this, 1, value);
};


/**
 * optional google.protobuf.Timestamp timestamp = 2;
 * @return {?proto.google.protobuf.Timestamp}
 */
proto.bosdyn.api.DataDescriptor.prototype.getTimestamp = function() {
  return /** @type{?proto.google.protobuf.Timestamp} */ (
    jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 2));
};


/**
 * @param {?proto.google.protobuf.Timestamp|undefined} value
 * @return {!proto.bosdyn.api.DataDescriptor} returns this
*/
proto.bosdyn.api.DataDescriptor.prototype.setTimestamp = function(value) {
  return jspb.Message.setWrapperField(this, 2, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.bosdyn.api.DataDescriptor} returns this
 */
proto.bosdyn.api.DataDescriptor.prototype.clearTimestamp = function() {
  return this.setTimestamp(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.bosdyn.api.DataDescriptor.prototype.hasTimestamp = function() {
  return jspb.Message.getField(this, 2) != null;
};


/**
 * repeated int64 additional_indexes = 3;
 * @return {!Array<number>}
 */
proto.bosdyn.api.DataDescriptor.prototype.getAdditionalIndexesList = function() {
  return /** @type {!Array<number>} */ (jspb.Message.getRepeatedField(this, 3));
};


/**
 * @param {!Array<number>} value
 * @return {!proto.bosdyn.api.DataDescriptor} returns this
 */
proto.bosdyn.api.DataDescriptor.prototype.setAdditionalIndexesList = function(value) {
  return jspb.Message.setField(this, 3, value || []);
};


/**
 * @param {number} value
 * @param {number=} opt_index
 * @return {!proto.bosdyn.api.DataDescriptor} returns this
 */
proto.bosdyn.api.DataDescriptor.prototype.addAdditionalIndexes = function(value, opt_index) {
  return jspb.Message.addToRepeatedField(this, 3, value, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.bosdyn.api.DataDescriptor} returns this
 */
proto.bosdyn.api.DataDescriptor.prototype.clearAdditionalIndexesList = function() {
  return this.setAdditionalIndexesList([]);
};





if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * Optional fields that are not set will be set to undefined.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
 * @param {boolean=} opt_includeInstance Deprecated. whether to include the
 *     JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @return {!Object}
 */
proto.bosdyn.api.FileFormatDescriptor.prototype.toObject = function(opt_includeInstance) {
  return proto.bosdyn.api.FileFormatDescriptor.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.bosdyn.api.FileFormatDescriptor} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.bosdyn.api.FileFormatDescriptor.toObject = function(includeInstance, msg) {
  var f, obj = {
    version: (f = msg.getVersion()) && proto.bosdyn.api.FileFormatVersion.toObject(includeInstance, f),
    annotationsMap: (f = msg.getAnnotationsMap()) ? f.toObject(includeInstance, undefined) : [],
    checksumType: jspb.Message.getFieldWithDefault(msg, 3, 0),
    checksumNumBytes: jspb.Message.getFieldWithDefault(msg, 4, 0)
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.bosdyn.api.FileFormatDescriptor}
 */
proto.bosdyn.api.FileFormatDescriptor.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.bosdyn.api.FileFormatDescriptor;
  return proto.bosdyn.api.FileFormatDescriptor.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.bosdyn.api.FileFormatDescriptor} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.bosdyn.api.FileFormatDescriptor}
 */
proto.bosdyn.api.FileFormatDescriptor.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = new proto.bosdyn.api.FileFormatVersion;
      reader.readMessage(value,proto.bosdyn.api.FileFormatVersion.deserializeBinaryFromReader);
      msg.setVersion(value);
      break;
    case 2:
      var value = msg.getAnnotationsMap();
      reader.readMessage(value, function(message, reader) {
        jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readString, null, "", "");
         });
      break;
    case 3:
      var value = /** @type {!proto.bosdyn.api.FileFormatDescriptor.CheckSumType} */ (reader.readEnum());
      msg.setChecksumType(value);
      break;
    case 4:
      var value = /** @type {number} */ (reader.readUint32());
      msg.setChecksumNumBytes(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.bosdyn.api.FileFormatDescriptor.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.bosdyn.api.FileFormatDescriptor.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.bosdyn.api.FileFormatDescriptor} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.bosdyn.api.FileFormatDescriptor.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getVersion();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      proto.bosdyn.api.FileFormatVersion.serializeBinaryToWriter
    );
  }
  f = message.getAnnotationsMap(true);
  if (f && f.getLength() > 0) {
    f.serializeBinary(2, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeString);
  }
  f = message.getChecksumType();
  if (f !== 0.0) {
    writer.writeEnum(
      3,
      f
    );
  }
  f = message.getChecksumNumBytes();
  if (f !== 0) {
    writer.writeUint32(
      4,
      f
    );
  }
};


/**
 * @enum {number}
 */
proto.bosdyn.api.FileFormatDescriptor.CheckSumType = {
  CHECKSUM_TYPE_UNKNOWN: 0,
  CHECKSUM_TYPE_NONE: 1,
  CHECKSUM_TYPE_SHA1: 2
};

/**
 * optional FileFormatVersion version = 1;
 * @return {?proto.bosdyn.api.FileFormatVersion}
 */
proto.bosdyn.api.FileFormatDescriptor.prototype.getVersion = function() {
  return /** @type{?proto.bosdyn.api.FileFormatVersion} */ (
    jspb.Message.getWrapperField(this, proto.bosdyn.api.FileFormatVersion, 1));
};


/**
 * @param {?proto.bosdyn.api.FileFormatVersion|undefined} value
 * @return {!proto.bosdyn.api.FileFormatDescriptor} returns this
*/
proto.bosdyn.api.FileFormatDescriptor.prototype.setVersion = function(value) {
  return jspb.Message.setWrapperField(this, 1, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.bosdyn.api.FileFormatDescriptor} returns this
 */
proto.bosdyn.api.FileFormatDescriptor.prototype.clearVersion = function() {
  return this.setVersion(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.bosdyn.api.FileFormatDescriptor.prototype.hasVersion = function() {
  return jspb.Message.getField(this, 1) != null;
};


/**
 * map<string, string> annotations = 2;
 * @param {boolean=} opt_noLazyCreate Do not create the map if
 * empty, instead returning `undefined`
 * @return {!jspb.Map<string,string>}
 */
proto.bosdyn.api.FileFormatDescriptor.prototype.getAnnotationsMap = function(opt_noLazyCreate) {
  return /** @type {!jspb.Map<string,string>} */ (
      jspb.Message.getMapField(this, 2, opt_noLazyCreate,
      null));
};


/**
 * Clears values from the map. The map will be non-null.
 * @return {!proto.bosdyn.api.FileFormatDescriptor} returns this
 */
proto.bosdyn.api.FileFormatDescriptor.prototype.clearAnnotationsMap = function() {
  this.getAnnotationsMap().clear();
  return this;};


/**
 * optional CheckSumType checksum_type = 3;
 * @return {!proto.bosdyn.api.FileFormatDescriptor.CheckSumType}
 */
proto.bosdyn.api.FileFormatDescriptor.prototype.getChecksumType = function() {
  return /** @type {!proto.bosdyn.api.FileFormatDescriptor.CheckSumType} */ (jspb.Message.getFieldWithDefault(this, 3, 0));
};


/**
 * @param {!proto.bosdyn.api.FileFormatDescriptor.CheckSumType} value
 * @return {!proto.bosdyn.api.FileFormatDescriptor} returns this
 */
proto.bosdyn.api.FileFormatDescriptor.prototype.setChecksumType = function(value) {
  return jspb.Message.setProto3EnumField(this, 3, value);
};


/**
 * optional uint32 checksum_num_bytes = 4;
 * @return {number}
 */
proto.bosdyn.api.FileFormatDescriptor.prototype.getChecksumNumBytes = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0));
};


/**
 * @param {number} value
 * @return {!proto.bosdyn.api.FileFormatDescriptor} returns this
 */
proto.bosdyn.api.FileFormatDescriptor.prototype.setChecksumNumBytes = function(value) {
  return jspb.Message.setProto3IntField(this, 4, value);
};





if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * Optional fields that are not set will be set to undefined.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
 * @param {boolean=} opt_includeInstance Deprecated. whether to include the
 *     JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @return {!Object}
 */
proto.bosdyn.api.FileFormatVersion.prototype.toObject = function(opt_includeInstance) {
  return proto.bosdyn.api.FileFormatVersion.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.bosdyn.api.FileFormatVersion} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.bosdyn.api.FileFormatVersion.toObject = function(includeInstance, msg) {
  var f, obj = {
    majorVersion: jspb.Message.getFieldWithDefault(msg, 1, 0),
    minorVersion: jspb.Message.getFieldWithDefault(msg, 2, 0),
    patchLevel: jspb.Message.getFieldWithDefault(msg, 3, 0)
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.bosdyn.api.FileFormatVersion}
 */
proto.bosdyn.api.FileFormatVersion.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.bosdyn.api.FileFormatVersion;
  return proto.bosdyn.api.FileFormatVersion.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.bosdyn.api.FileFormatVersion} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.bosdyn.api.FileFormatVersion}
 */
proto.bosdyn.api.FileFormatVersion.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {number} */ (reader.readUint32());
      msg.setMajorVersion(value);
      break;
    case 2:
      var value = /** @type {number} */ (reader.readUint32());
      msg.setMinorVersion(value);
      break;
    case 3:
      var value = /** @type {number} */ (reader.readUint32());
      msg.setPatchLevel(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.bosdyn.api.FileFormatVersion.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.bosdyn.api.FileFormatVersion.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.bosdyn.api.FileFormatVersion} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.bosdyn.api.FileFormatVersion.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getMajorVersion();
  if (f !== 0) {
    writer.writeUint32(
      1,
      f
    );
  }
  f = message.getMinorVersion();
  if (f !== 0) {
    writer.writeUint32(
      2,
      f
    );
  }
  f = message.getPatchLevel();
  if (f !== 0) {
    writer.writeUint32(
      3,
      f
    );
  }
};


/**
 * optional uint32 major_version = 1;
 * @return {number}
 */
proto.bosdyn.api.FileFormatVersion.prototype.getMajorVersion = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/**
 * @param {number} value
 * @return {!proto.bosdyn.api.FileFormatVersion} returns this
 */
proto.bosdyn.api.FileFormatVersion.prototype.setMajorVersion = function(value) {
  return jspb.Message.setProto3IntField(this, 1, value);
};


/**
 * optional uint32 minor_version = 2;
 * @return {number}
 */
proto.bosdyn.api.FileFormatVersion.prototype.getMinorVersion = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));
};


/**
 * @param {number} value
 * @return {!proto.bosdyn.api.FileFormatVersion} returns this
 */
proto.bosdyn.api.FileFormatVersion.prototype.setMinorVersion = function(value) {
  return jspb.Message.setProto3IntField(this, 2, value);
};


/**
 * optional uint32 patch_level = 3;
 * @return {number}
 */
proto.bosdyn.api.FileFormatVersion.prototype.getPatchLevel = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0));
};


/**
 * @param {number} value
 * @return {!proto.bosdyn.api.FileFormatVersion} returns this
 */
proto.bosdyn.api.FileFormatVersion.prototype.setPatchLevel = function(value) {
  return jspb.Message.setProto3IntField(this, 3, value);
};



/**
 * List of repeated fields within this message type.
 * @private {!Array<number>}
 * @const
 */
proto.bosdyn.api.SeriesDescriptor.repeatedFields_ = [8];

/**
 * Oneof group definitions for this message. Each group defines the field
 * numbers belonging to that group. When of these fields' value is set, all
 * other fields in the group are cleared. During deserialization, if multiple
 * fields are encountered for a group, only the last value seen will be kept.
 * @private {!Array<!Array<number>>}
 * @const
 */
proto.bosdyn.api.SeriesDescriptor.oneofGroups_ = [[4,5,6]];

/**
 * @enum {number}
 */
proto.bosdyn.api.SeriesDescriptor.DatatypeCase = {
  DATATYPE_NOT_SET: 0,
  MESSAGE_TYPE: 4,
  POD_TYPE: 5,
  STRUCT_TYPE: 6
};

/**
 * @return {proto.bosdyn.api.SeriesDescriptor.DatatypeCase}
 */
proto.bosdyn.api.SeriesDescriptor.prototype.getDatatypeCase = function() {
  return /** @type {proto.bosdyn.api.SeriesDescriptor.DatatypeCase} */(jspb.Message.computeOneofCase(this, proto.bosdyn.api.SeriesDescriptor.oneofGroups_[0]));
};



if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * Optional fields that are not set will be set to undefined.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
 * @param {boolean=} opt_includeInstance Deprecated. whether to include the
 *     JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @return {!Object}
 */
proto.bosdyn.api.SeriesDescriptor.prototype.toObject = function(opt_includeInstance) {
  return proto.bosdyn.api.SeriesDescriptor.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.bosdyn.api.SeriesDescriptor} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.bosdyn.api.SeriesDescriptor.toObject = function(includeInstance, msg) {
  var f, obj = {
    seriesIndex: jspb.Message.getFieldWithDefault(msg, 1, 0),
    seriesIdentifier: (f = msg.getSeriesIdentifier()) && proto.bosdyn.api.SeriesIdentifier.toObject(includeInstance, f),
    identifierHash: jspb.Message.getFieldWithDefault(msg, 3, 0),
    messageType: (f = msg.getMessageType()) && proto.bosdyn.api.MessageTypeDescriptor.toObject(includeInstance, f),
    podType: (f = msg.getPodType()) && proto.bosdyn.api.PodTypeDescriptor.toObject(includeInstance, f),
    structType: (f = msg.getStructType()) && proto.bosdyn.api.StructTypeDescriptor.toObject(includeInstance, f),
    annotationsMap: (f = msg.getAnnotationsMap()) ? f.toObject(includeInstance, undefined) : [],
    additionalIndexNamesList: (f = jspb.Message.getRepeatedField(msg, 8)) == null ? undefined : f,
    description: jspb.Message.getFieldWithDefault(msg, 9, "")
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.bosdyn.api.SeriesDescriptor}
 */
proto.bosdyn.api.SeriesDescriptor.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.bosdyn.api.SeriesDescriptor;
  return proto.bosdyn.api.SeriesDescriptor.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.bosdyn.api.SeriesDescriptor} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.bosdyn.api.SeriesDescriptor}
 */
proto.bosdyn.api.SeriesDescriptor.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {number} */ (reader.readUint32());
      msg.setSeriesIndex(value);
      break;
    case 2:
      var value = new proto.bosdyn.api.SeriesIdentifier;
      reader.readMessage(value,proto.bosdyn.api.SeriesIdentifier.deserializeBinaryFromReader);
      msg.setSeriesIdentifier(value);
      break;
    case 3:
      var value = /** @type {number} */ (reader.readUint64());
      msg.setIdentifierHash(value);
      break;
    case 4:
      var value = new proto.bosdyn.api.MessageTypeDescriptor;
      reader.readMessage(value,proto.bosdyn.api.MessageTypeDescriptor.deserializeBinaryFromReader);
      msg.setMessageType(value);
      break;
    case 5:
      var value = new proto.bosdyn.api.PodTypeDescriptor;
      reader.readMessage(value,proto.bosdyn.api.PodTypeDescriptor.deserializeBinaryFromReader);
      msg.setPodType(value);
      break;
    case 6:
      var value = new proto.bosdyn.api.StructTypeDescriptor;
      reader.readMessage(value,proto.bosdyn.api.StructTypeDescriptor.deserializeBinaryFromReader);
      msg.setStructType(value);
      break;
    case 7:
      var value = msg.getAnnotationsMap();
      reader.readMessage(value, function(message, reader) {
        jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readString, null, "", "");
         });
      break;
    case 8:
      var value = /** @type {string} */ (reader.readString());
      msg.addAdditionalIndexNames(value);
      break;
    case 9:
      var value = /** @type {string} */ (reader.readString());
      msg.setDescription(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.bosdyn.api.SeriesDescriptor.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.bosdyn.api.SeriesDescriptor.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.bosdyn.api.SeriesDescriptor} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.bosdyn.api.SeriesDescriptor.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getSeriesIndex();
  if (f !== 0) {
    writer.writeUint32(
      1,
      f
    );
  }
  f = message.getSeriesIdentifier();
  if (f != null) {
    writer.writeMessage(
      2,
      f,
      proto.bosdyn.api.SeriesIdentifier.serializeBinaryToWriter
    );
  }
  f = message.getIdentifierHash();
  if (f !== 0) {
    writer.writeUint64(
      3,
      f
    );
  }
  f = message.getMessageType();
  if (f != null) {
    writer.writeMessage(
      4,
      f,
      proto.bosdyn.api.MessageTypeDescriptor.serializeBinaryToWriter
    );
  }
  f = message.getPodType();
  if (f != null) {
    writer.writeMessage(
      5,
      f,
      proto.bosdyn.api.PodTypeDescriptor.serializeBinaryToWriter
    );
  }
  f = message.getStructType();
  if (f != null) {
    writer.writeMessage(
      6,
      f,
      proto.bosdyn.api.StructTypeDescriptor.serializeBinaryToWriter
    );
  }
  f = message.getAnnotationsMap(true);
  if (f && f.getLength() > 0) {
    f.serializeBinary(7, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeString);
  }
  f = message.getAdditionalIndexNamesList();
  if (f.length > 0) {
    writer.writeRepeatedString(
      8,
      f
    );
  }
  f = message.getDescription();
  if (f.length > 0) {
    writer.writeString(
      9,
      f
    );
  }
};


/**
 * optional uint32 series_index = 1;
 * @return {number}
 */
proto.bosdyn.api.SeriesDescriptor.prototype.getSeriesIndex = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/**
 * @param {number} value
 * @return {!proto.bosdyn.api.SeriesDescriptor} returns this
 */
proto.bosdyn.api.SeriesDescriptor.prototype.setSeriesIndex = function(value) {
  return jspb.Message.setProto3IntField(this, 1, value);
};


/**
 * optional SeriesIdentifier series_identifier = 2;
 * @return {?proto.bosdyn.api.SeriesIdentifier}
 */
proto.bosdyn.api.SeriesDescriptor.prototype.getSeriesIdentifier = function() {
  return /** @type{?proto.bosdyn.api.SeriesIdentifier} */ (
    jspb.Message.getWrapperField(this, proto.bosdyn.api.SeriesIdentifier, 2));
};


/**
 * @param {?proto.bosdyn.api.SeriesIdentifier|undefined} value
 * @return {!proto.bosdyn.api.SeriesDescriptor} returns this
*/
proto.bosdyn.api.SeriesDescriptor.prototype.setSeriesIdentifier = function(value) {
  return jspb.Message.setWrapperField(this, 2, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.bosdyn.api.SeriesDescriptor} returns this
 */
proto.bosdyn.api.SeriesDescriptor.prototype.clearSeriesIdentifier = function() {
  return this.setSeriesIdentifier(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.bosdyn.api.SeriesDescriptor.prototype.hasSeriesIdentifier = function() {
  return jspb.Message.getField(this, 2) != null;
};


/**
 * optional uint64 identifier_hash = 3;
 * @return {number}
 */
proto.bosdyn.api.SeriesDescriptor.prototype.getIdentifierHash = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0));
};


/**
 * @param {number} value
 * @return {!proto.bosdyn.api.SeriesDescriptor} returns this
 */
proto.bosdyn.api.SeriesDescriptor.prototype.setIdentifierHash = function(value) {
  return jspb.Message.setProto3IntField(this, 3, value);
};


/**
 * optional MessageTypeDescriptor message_type = 4;
 * @return {?proto.bosdyn.api.MessageTypeDescriptor}
 */
proto.bosdyn.api.SeriesDescriptor.prototype.getMessageType = function() {
  return /** @type{?proto.bosdyn.api.MessageTypeDescriptor} */ (
    jspb.Message.getWrapperField(this, proto.bosdyn.api.MessageTypeDescriptor, 4));
};


/**
 * @param {?proto.bosdyn.api.MessageTypeDescriptor|undefined} value
 * @return {!proto.bosdyn.api.SeriesDescriptor} returns this
*/
proto.bosdyn.api.SeriesDescriptor.prototype.setMessageType = function(value) {
  return jspb.Message.setOneofWrapperField(this, 4, proto.bosdyn.api.SeriesDescriptor.oneofGroups_[0], value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.bosdyn.api.SeriesDescriptor} returns this
 */
proto.bosdyn.api.SeriesDescriptor.prototype.clearMessageType = function() {
  return this.setMessageType(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.bosdyn.api.SeriesDescriptor.prototype.hasMessageType = function() {
  return jspb.Message.getField(this, 4) != null;
};


/**
 * optional PodTypeDescriptor pod_type = 5;
 * @return {?proto.bosdyn.api.PodTypeDescriptor}
 */
proto.bosdyn.api.SeriesDescriptor.prototype.getPodType = function() {
  return /** @type{?proto.bosdyn.api.PodTypeDescriptor} */ (
    jspb.Message.getWrapperField(this, proto.bosdyn.api.PodTypeDescriptor, 5));
};


/**
 * @param {?proto.bosdyn.api.PodTypeDescriptor|undefined} value
 * @return {!proto.bosdyn.api.SeriesDescriptor} returns this
*/
proto.bosdyn.api.SeriesDescriptor.prototype.setPodType = function(value) {
  return jspb.Message.setOneofWrapperField(this, 5, proto.bosdyn.api.SeriesDescriptor.oneofGroups_[0], value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.bosdyn.api.SeriesDescriptor} returns this
 */
proto.bosdyn.api.SeriesDescriptor.prototype.clearPodType = function() {
  return this.setPodType(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.bosdyn.api.SeriesDescriptor.prototype.hasPodType = function() {
  return jspb.Message.getField(this, 5) != null;
};


/**
 * optional StructTypeDescriptor struct_type = 6;
 * @return {?proto.bosdyn.api.StructTypeDescriptor}
 */
proto.bosdyn.api.SeriesDescriptor.prototype.getStructType = function() {
  return /** @type{?proto.bosdyn.api.StructTypeDescriptor} */ (
    jspb.Message.getWrapperField(this, proto.bosdyn.api.StructTypeDescriptor, 6));
};


/**
 * @param {?proto.bosdyn.api.StructTypeDescriptor|undefined} value
 * @return {!proto.bosdyn.api.SeriesDescriptor} returns this
*/
proto.bosdyn.api.SeriesDescriptor.prototype.setStructType = function(value) {
  return jspb.Message.setOneofWrapperField(this, 6, proto.bosdyn.api.SeriesDescriptor.oneofGroups_[0], value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.bosdyn.api.SeriesDescriptor} returns this
 */
proto.bosdyn.api.SeriesDescriptor.prototype.clearStructType = function() {
  return this.setStructType(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.bosdyn.api.SeriesDescriptor.prototype.hasStructType = function() {
  return jspb.Message.getField(this, 6) != null;
};


/**
 * map<string, string> annotations = 7;
 * @param {boolean=} opt_noLazyCreate Do not create the map if
 * empty, instead returning `undefined`
 * @return {!jspb.Map<string,string>}
 */
proto.bosdyn.api.SeriesDescriptor.prototype.getAnnotationsMap = function(opt_noLazyCreate) {
  return /** @type {!jspb.Map<string,string>} */ (
      jspb.Message.getMapField(this, 7, opt_noLazyCreate,
      null));
};


/**
 * Clears values from the map. The map will be non-null.
 * @return {!proto.bosdyn.api.SeriesDescriptor} returns this
 */
proto.bosdyn.api.SeriesDescriptor.prototype.clearAnnotationsMap = function() {
  this.getAnnotationsMap().clear();
  return this;};


/**
 * repeated string additional_index_names = 8;
 * @return {!Array<string>}
 */
proto.bosdyn.api.SeriesDescriptor.prototype.getAdditionalIndexNamesList = function() {
  return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 8));
};


/**
 * @param {!Array<string>} value
 * @return {!proto.bosdyn.api.SeriesDescriptor} returns this
 */
proto.bosdyn.api.SeriesDescriptor.prototype.setAdditionalIndexNamesList = function(value) {
  return jspb.Message.setField(this, 8, value || []);
};


/**
 * @param {string} value
 * @param {number=} opt_index
 * @return {!proto.bosdyn.api.SeriesDescriptor} returns this
 */
proto.bosdyn.api.SeriesDescriptor.prototype.addAdditionalIndexNames = function(value, opt_index) {
  return jspb.Message.addToRepeatedField(this, 8, value, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.bosdyn.api.SeriesDescriptor} returns this
 */
proto.bosdyn.api.SeriesDescriptor.prototype.clearAdditionalIndexNamesList = function() {
  return this.setAdditionalIndexNamesList([]);
};


/**
 * optional string description = 9;
 * @return {string}
 */
proto.bosdyn.api.SeriesDescriptor.prototype.getDescription = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 9, ""));
};


/**
 * @param {string} value
 * @return {!proto.bosdyn.api.SeriesDescriptor} returns this
 */
proto.bosdyn.api.SeriesDescriptor.prototype.setDescription = function(value) {
  return jspb.Message.setProto3StringField(this, 9, value);
};





if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * Optional fields that are not set will be set to undefined.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
 * @param {boolean=} opt_includeInstance Deprecated. whether to include the
 *     JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @return {!Object}
 */
proto.bosdyn.api.MessageTypeDescriptor.prototype.toObject = function(opt_includeInstance) {
  return proto.bosdyn.api.MessageTypeDescriptor.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.bosdyn.api.MessageTypeDescriptor} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.bosdyn.api.MessageTypeDescriptor.toObject = function(includeInstance, msg) {
  var f, obj = {
    contentType: jspb.Message.getFieldWithDefault(msg, 1, ""),
    typeName: jspb.Message.getFieldWithDefault(msg, 2, ""),
    isMetadata: jspb.Message.getBooleanFieldWithDefault(msg, 3, false)
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.bosdyn.api.MessageTypeDescriptor}
 */
proto.bosdyn.api.MessageTypeDescriptor.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.bosdyn.api.MessageTypeDescriptor;
  return proto.bosdyn.api.MessageTypeDescriptor.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.bosdyn.api.MessageTypeDescriptor} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.bosdyn.api.MessageTypeDescriptor}
 */
proto.bosdyn.api.MessageTypeDescriptor.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {string} */ (reader.readString());
      msg.setContentType(value);
      break;
    case 2:
      var value = /** @type {string} */ (reader.readString());
      msg.setTypeName(value);
      break;
    case 3:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setIsMetadata(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.bosdyn.api.MessageTypeDescriptor.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.bosdyn.api.MessageTypeDescriptor.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.bosdyn.api.MessageTypeDescriptor} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.bosdyn.api.MessageTypeDescriptor.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getContentType();
  if (f.length > 0) {
    writer.writeString(
      1,
      f
    );
  }
  f = message.getTypeName();
  if (f.length > 0) {
    writer.writeString(
      2,
      f
    );
  }
  f = message.getIsMetadata();
  if (f) {
    writer.writeBool(
      3,
      f
    );
  }
};


/**
 * optional string content_type = 1;
 * @return {string}
 */
proto.bosdyn.api.MessageTypeDescriptor.prototype.getContentType = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};


/**
 * @param {string} value
 * @return {!proto.bosdyn.api.MessageTypeDescriptor} returns this
 */
proto.bosdyn.api.MessageTypeDescriptor.prototype.setContentType = function(value) {
  return jspb.Message.setProto3StringField(this, 1, value);
};


/**
 * optional string type_name = 2;
 * @return {string}
 */
proto.bosdyn.api.MessageTypeDescriptor.prototype.getTypeName = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};


/**
 * @param {string} value
 * @return {!proto.bosdyn.api.MessageTypeDescriptor} returns this
 */
proto.bosdyn.api.MessageTypeDescriptor.prototype.setTypeName = function(value) {
  return jspb.Message.setProto3StringField(this, 2, value);
};


/**
 * optional bool is_metadata = 3;
 * @return {boolean}
 */
proto.bosdyn.api.MessageTypeDescriptor.prototype.getIsMetadata = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 3, false));
};


/**
 * @param {boolean} value
 * @return {!proto.bosdyn.api.MessageTypeDescriptor} returns this
 */
proto.bosdyn.api.MessageTypeDescriptor.prototype.setIsMetadata = function(value) {
  return jspb.Message.setProto3BooleanField(this, 3, value);
};



/**
 * List of repeated fields within this message type.
 * @private {!Array<number>}
 * @const
 */
proto.bosdyn.api.PodTypeDescriptor.repeatedFields_ = [2];



if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * Optional fields that are not set will be set to undefined.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
 * @param {boolean=} opt_includeInstance Deprecated. whether to include the
 *     JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @return {!Object}
 */
proto.bosdyn.api.PodTypeDescriptor.prototype.toObject = function(opt_includeInstance) {
  return proto.bosdyn.api.PodTypeDescriptor.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.bosdyn.api.PodTypeDescriptor} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.bosdyn.api.PodTypeDescriptor.toObject = function(includeInstance, msg) {
  var f, obj = {
    podType: jspb.Message.getFieldWithDefault(msg, 1, 0),
    dimensionList: (f = jspb.Message.getRepeatedField(msg, 2)) == null ? undefined : f
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.bosdyn.api.PodTypeDescriptor}
 */
proto.bosdyn.api.PodTypeDescriptor.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.bosdyn.api.PodTypeDescriptor;
  return proto.bosdyn.api.PodTypeDescriptor.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.bosdyn.api.PodTypeDescriptor} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.bosdyn.api.PodTypeDescriptor}
 */
proto.bosdyn.api.PodTypeDescriptor.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {!proto.bosdyn.api.PodTypeEnum} */ (reader.readEnum());
      msg.setPodType(value);
      break;
    case 2:
      var values = /** @type {!Array<number>} */ (reader.isDelimited() ? reader.readPackedUint32() : [reader.readUint32()]);
      for (var i = 0; i < values.length; i++) {
        msg.addDimension(values[i]);
      }
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.bosdyn.api.PodTypeDescriptor.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.bosdyn.api.PodTypeDescriptor.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.bosdyn.api.PodTypeDescriptor} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.bosdyn.api.PodTypeDescriptor.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getPodType();
  if (f !== 0.0) {
    writer.writeEnum(
      1,
      f
    );
  }
  f = message.getDimensionList();
  if (f.length > 0) {
    writer.writePackedUint32(
      2,
      f
    );
  }
};


/**
 * optional PodTypeEnum pod_type = 1;
 * @return {!proto.bosdyn.api.PodTypeEnum}
 */
proto.bosdyn.api.PodTypeDescriptor.prototype.getPodType = function() {
  return /** @type {!proto.bosdyn.api.PodTypeEnum} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/**
 * @param {!proto.bosdyn.api.PodTypeEnum} value
 * @return {!proto.bosdyn.api.PodTypeDescriptor} returns this
 */
proto.bosdyn.api.PodTypeDescriptor.prototype.setPodType = function(value) {
  return jspb.Message.setProto3EnumField(this, 1, value);
};


/**
 * repeated uint32 dimension = 2;
 * @return {!Array<number>}
 */
proto.bosdyn.api.PodTypeDescriptor.prototype.getDimensionList = function() {
  return /** @type {!Array<number>} */ (jspb.Message.getRepeatedField(this, 2));
};


/**
 * @param {!Array<number>} value
 * @return {!proto.bosdyn.api.PodTypeDescriptor} returns this
 */
proto.bosdyn.api.PodTypeDescriptor.prototype.setDimensionList = function(value) {
  return jspb.Message.setField(this, 2, value || []);
};


/**
 * @param {number} value
 * @param {number=} opt_index
 * @return {!proto.bosdyn.api.PodTypeDescriptor} returns this
 */
proto.bosdyn.api.PodTypeDescriptor.prototype.addDimension = function(value, opt_index) {
  return jspb.Message.addToRepeatedField(this, 2, value, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.bosdyn.api.PodTypeDescriptor} returns this
 */
proto.bosdyn.api.PodTypeDescriptor.prototype.clearDimensionList = function() {
  return this.setDimensionList([]);
};





if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * Optional fields that are not set will be set to undefined.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
 * @param {boolean=} opt_includeInstance Deprecated. whether to include the
 *     JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @return {!Object}
 */
proto.bosdyn.api.StructTypeDescriptor.prototype.toObject = function(opt_includeInstance) {
  return proto.bosdyn.api.StructTypeDescriptor.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.bosdyn.api.StructTypeDescriptor} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.bosdyn.api.StructTypeDescriptor.toObject = function(includeInstance, msg) {
  var f, obj = {
    keyToSeriesIdentifierHashMap: (f = msg.getKeyToSeriesIdentifierHashMap()) ? f.toObject(includeInstance, undefined) : []
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.bosdyn.api.StructTypeDescriptor}
 */
proto.bosdyn.api.StructTypeDescriptor.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.bosdyn.api.StructTypeDescriptor;
  return proto.bosdyn.api.StructTypeDescriptor.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.bosdyn.api.StructTypeDescriptor} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.bosdyn.api.StructTypeDescriptor}
 */
proto.bosdyn.api.StructTypeDescriptor.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = msg.getKeyToSeriesIdentifierHashMap();
      reader.readMessage(value, function(message, reader) {
        jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readUint64, null, "", 0);
         });
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.bosdyn.api.StructTypeDescriptor.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.bosdyn.api.StructTypeDescriptor.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.bosdyn.api.StructTypeDescriptor} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.bosdyn.api.StructTypeDescriptor.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getKeyToSeriesIdentifierHashMap(true);
  if (f && f.getLength() > 0) {
    f.serializeBinary(1, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeUint64);
  }
};


/**
 * map<string, uint64> key_to_series_identifier_hash = 1;
 * @param {boolean=} opt_noLazyCreate Do not create the map if
 * empty, instead returning `undefined`
 * @return {!jspb.Map<string,number>}
 */
proto.bosdyn.api.StructTypeDescriptor.prototype.getKeyToSeriesIdentifierHashMap = function(opt_noLazyCreate) {
  return /** @type {!jspb.Map<string,number>} */ (
      jspb.Message.getMapField(this, 1, opt_noLazyCreate,
      null));
};


/**
 * Clears values from the map. The map will be non-null.
 * @return {!proto.bosdyn.api.StructTypeDescriptor} returns this
 */
proto.bosdyn.api.StructTypeDescriptor.prototype.clearKeyToSeriesIdentifierHashMap = function() {
  this.getKeyToSeriesIdentifierHashMap().clear();
  return this;};



/**
 * List of repeated fields within this message type.
 * @private {!Array<number>}
 * @const
 */
proto.bosdyn.api.FileIndex.repeatedFields_ = [1,2,3];



if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * Optional fields that are not set will be set to undefined.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
 * @param {boolean=} opt_includeInstance Deprecated. whether to include the
 *     JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @return {!Object}
 */
proto.bosdyn.api.FileIndex.prototype.toObject = function(opt_includeInstance) {
  return proto.bosdyn.api.FileIndex.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.bosdyn.api.FileIndex} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.bosdyn.api.FileIndex.toObject = function(includeInstance, msg) {
  var f, obj = {
    seriesIdentifiersList: jspb.Message.toObjectList(msg.getSeriesIdentifiersList(),
    proto.bosdyn.api.SeriesIdentifier.toObject, includeInstance),
    seriesBlockIndexOffsetsList: (f = jspb.Message.getRepeatedField(msg, 2)) == null ? undefined : f,
    seriesIdentifierHashesList: (f = jspb.Message.getRepeatedField(msg, 3)) == null ? undefined : f
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.bosdyn.api.FileIndex}
 */
proto.bosdyn.api.FileIndex.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.bosdyn.api.FileIndex;
  return proto.bosdyn.api.FileIndex.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.bosdyn.api.FileIndex} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.bosdyn.api.FileIndex}
 */
proto.bosdyn.api.FileIndex.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = new proto.bosdyn.api.SeriesIdentifier;
      reader.readMessage(value,proto.bosdyn.api.SeriesIdentifier.deserializeBinaryFromReader);
      msg.addSeriesIdentifiers(value);
      break;
    case 2:
      var values = /** @type {!Array<number>} */ (reader.isDelimited() ? reader.readPackedUint64() : [reader.readUint64()]);
      for (var i = 0; i < values.length; i++) {
        msg.addSeriesBlockIndexOffsets(values[i]);
      }
      break;
    case 3:
      var values = /** @type {!Array<number>} */ (reader.isDelimited() ? reader.readPackedUint64() : [reader.readUint64()]);
      for (var i = 0; i < values.length; i++) {
        msg.addSeriesIdentifierHashes(values[i]);
      }
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.bosdyn.api.FileIndex.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.bosdyn.api.FileIndex.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.bosdyn.api.FileIndex} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.bosdyn.api.FileIndex.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getSeriesIdentifiersList();
  if (f.length > 0) {
    writer.writeRepeatedMessage(
      1,
      f,
      proto.bosdyn.api.SeriesIdentifier.serializeBinaryToWriter
    );
  }
  f = message.getSeriesBlockIndexOffsetsList();
  if (f.length > 0) {
    writer.writePackedUint64(
      2,
      f
    );
  }
  f = message.getSeriesIdentifierHashesList();
  if (f.length > 0) {
    writer.writePackedUint64(
      3,
      f
    );
  }
};


/**
 * repeated SeriesIdentifier series_identifiers = 1;
 * @return {!Array<!proto.bosdyn.api.SeriesIdentifier>}
 */
proto.bosdyn.api.FileIndex.prototype.getSeriesIdentifiersList = function() {
  return /** @type{!Array<!proto.bosdyn.api.SeriesIdentifier>} */ (
    jspb.Message.getRepeatedWrapperField(this, proto.bosdyn.api.SeriesIdentifier, 1));
};


/**
 * @param {!Array<!proto.bosdyn.api.SeriesIdentifier>} value
 * @return {!proto.bosdyn.api.FileIndex} returns this
*/
proto.bosdyn.api.FileIndex.prototype.setSeriesIdentifiersList = function(value) {
  return jspb.Message.setRepeatedWrapperField(this, 1, value);
};


/**
 * @param {!proto.bosdyn.api.SeriesIdentifier=} opt_value
 * @param {number=} opt_index
 * @return {!proto.bosdyn.api.SeriesIdentifier}
 */
proto.bosdyn.api.FileIndex.prototype.addSeriesIdentifiers = function(opt_value, opt_index) {
  return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.bosdyn.api.SeriesIdentifier, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.bosdyn.api.FileIndex} returns this
 */
proto.bosdyn.api.FileIndex.prototype.clearSeriesIdentifiersList = function() {
  return this.setSeriesIdentifiersList([]);
};


/**
 * repeated uint64 series_block_index_offsets = 2;
 * @return {!Array<number>}
 */
proto.bosdyn.api.FileIndex.prototype.getSeriesBlockIndexOffsetsList = function() {
  return /** @type {!Array<number>} */ (jspb.Message.getRepeatedField(this, 2));
};


/**
 * @param {!Array<number>} value
 * @return {!proto.bosdyn.api.FileIndex} returns this
 */
proto.bosdyn.api.FileIndex.prototype.setSeriesBlockIndexOffsetsList = function(value) {
  return jspb.Message.setField(this, 2, value || []);
};


/**
 * @param {number} value
 * @param {number=} opt_index
 * @return {!proto.bosdyn.api.FileIndex} returns this
 */
proto.bosdyn.api.FileIndex.prototype.addSeriesBlockIndexOffsets = function(value, opt_index) {
  return jspb.Message.addToRepeatedField(this, 2, value, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.bosdyn.api.FileIndex} returns this
 */
proto.bosdyn.api.FileIndex.prototype.clearSeriesBlockIndexOffsetsList = function() {
  return this.setSeriesBlockIndexOffsetsList([]);
};


/**
 * repeated uint64 series_identifier_hashes = 3;
 * @return {!Array<number>}
 */
proto.bosdyn.api.FileIndex.prototype.getSeriesIdentifierHashesList = function() {
  return /** @type {!Array<number>} */ (jspb.Message.getRepeatedField(this, 3));
};


/**
 * @param {!Array<number>} value
 * @return {!proto.bosdyn.api.FileIndex} returns this
 */
proto.bosdyn.api.FileIndex.prototype.setSeriesIdentifierHashesList = function(value) {
  return jspb.Message.setField(this, 3, value || []);
};


/**
 * @param {number} value
 * @param {number=} opt_index
 * @return {!proto.bosdyn.api.FileIndex} returns this
 */
proto.bosdyn.api.FileIndex.prototype.addSeriesIdentifierHashes = function(value, opt_index) {
  return jspb.Message.addToRepeatedField(this, 3, value, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.bosdyn.api.FileIndex} returns this
 */
proto.bosdyn.api.FileIndex.prototype.clearSeriesIdentifierHashesList = function() {
  return this.setSeriesIdentifierHashesList([]);
};



/**
 * List of repeated fields within this message type.
 * @private {!Array<number>}
 * @const
 */
proto.bosdyn.api.SeriesBlockIndex.repeatedFields_ = [3];



if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * Optional fields that are not set will be set to undefined.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
 * @param {boolean=} opt_includeInstance Deprecated. whether to include the
 *     JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @return {!Object}
 */
proto.bosdyn.api.SeriesBlockIndex.prototype.toObject = function(opt_includeInstance) {
  return proto.bosdyn.api.SeriesBlockIndex.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.bosdyn.api.SeriesBlockIndex} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.bosdyn.api.SeriesBlockIndex.toObject = function(includeInstance, msg) {
  var f, obj = {
    seriesIndex: jspb.Message.getFieldWithDefault(msg, 1, 0),
    descriptorFileOffset: jspb.Message.getFieldWithDefault(msg, 2, 0),
    blockEntriesList: jspb.Message.toObjectList(msg.getBlockEntriesList(),
    proto.bosdyn.api.SeriesBlockIndex.BlockEntry.toObject, includeInstance),
    totalBytes: jspb.Message.getFieldWithDefault(msg, 4, 0)
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.bosdyn.api.SeriesBlockIndex}
 */
proto.bosdyn.api.SeriesBlockIndex.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.bosdyn.api.SeriesBlockIndex;
  return proto.bosdyn.api.SeriesBlockIndex.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.bosdyn.api.SeriesBlockIndex} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.bosdyn.api.SeriesBlockIndex}
 */
proto.bosdyn.api.SeriesBlockIndex.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {number} */ (reader.readUint32());
      msg.setSeriesIndex(value);
      break;
    case 2:
      var value = /** @type {number} */ (reader.readUint64());
      msg.setDescriptorFileOffset(value);
      break;
    case 3:
      var value = new proto.bosdyn.api.SeriesBlockIndex.BlockEntry;
      reader.readMessage(value,proto.bosdyn.api.SeriesBlockIndex.BlockEntry.deserializeBinaryFromReader);
      msg.addBlockEntries(value);
      break;
    case 4:
      var value = /** @type {number} */ (reader.readUint64());
      msg.setTotalBytes(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.bosdyn.api.SeriesBlockIndex.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.bosdyn.api.SeriesBlockIndex.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.bosdyn.api.SeriesBlockIndex} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.bosdyn.api.SeriesBlockIndex.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getSeriesIndex();
  if (f !== 0) {
    writer.writeUint32(
      1,
      f
    );
  }
  f = message.getDescriptorFileOffset();
  if (f !== 0) {
    writer.writeUint64(
      2,
      f
    );
  }
  f = message.getBlockEntriesList();
  if (f.length > 0) {
    writer.writeRepeatedMessage(
      3,
      f,
      proto.bosdyn.api.SeriesBlockIndex.BlockEntry.serializeBinaryToWriter
    );
  }
  f = message.getTotalBytes();
  if (f !== 0) {
    writer.writeUint64(
      4,
      f
    );
  }
};



/**
 * List of repeated fields within this message type.
 * @private {!Array<number>}
 * @const
 */
proto.bosdyn.api.SeriesBlockIndex.BlockEntry.repeatedFields_ = [3];



if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * Optional fields that are not set will be set to undefined.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
 * @param {boolean=} opt_includeInstance Deprecated. whether to include the
 *     JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @return {!Object}
 */
proto.bosdyn.api.SeriesBlockIndex.BlockEntry.prototype.toObject = function(opt_includeInstance) {
  return proto.bosdyn.api.SeriesBlockIndex.BlockEntry.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.bosdyn.api.SeriesBlockIndex.BlockEntry} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.bosdyn.api.SeriesBlockIndex.BlockEntry.toObject = function(includeInstance, msg) {
  var f, obj = {
    timestamp: (f = msg.getTimestamp()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),
    fileOffset: jspb.Message.getFieldWithDefault(msg, 2, 0),
    additionalIndexesList: (f = jspb.Message.getRepeatedField(msg, 3)) == null ? undefined : f
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.bosdyn.api.SeriesBlockIndex.BlockEntry}
 */
proto.bosdyn.api.SeriesBlockIndex.BlockEntry.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.bosdyn.api.SeriesBlockIndex.BlockEntry;
  return proto.bosdyn.api.SeriesBlockIndex.BlockEntry.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.bosdyn.api.SeriesBlockIndex.BlockEntry} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.bosdyn.api.SeriesBlockIndex.BlockEntry}
 */
proto.bosdyn.api.SeriesBlockIndex.BlockEntry.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = new google_protobuf_timestamp_pb.Timestamp;
      reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);
      msg.setTimestamp(value);
      break;
    case 2:
      var value = /** @type {number} */ (reader.readUint64());
      msg.setFileOffset(value);
      break;
    case 3:
      var values = /** @type {!Array<number>} */ (reader.isDelimited() ? reader.readPackedInt64() : [reader.readInt64()]);
      for (var i = 0; i < values.length; i++) {
        msg.addAdditionalIndexes(values[i]);
      }
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.bosdyn.api.SeriesBlockIndex.BlockEntry.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.bosdyn.api.SeriesBlockIndex.BlockEntry.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.bosdyn.api.SeriesBlockIndex.BlockEntry} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.bosdyn.api.SeriesBlockIndex.BlockEntry.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getTimestamp();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter
    );
  }
  f = message.getFileOffset();
  if (f !== 0) {
    writer.writeUint64(
      2,
      f
    );
  }
  f = message.getAdditionalIndexesList();
  if (f.length > 0) {
    writer.writePackedInt64(
      3,
      f
    );
  }
};


/**
 * optional google.protobuf.Timestamp timestamp = 1;
 * @return {?proto.google.protobuf.Timestamp}
 */
proto.bosdyn.api.SeriesBlockIndex.BlockEntry.prototype.getTimestamp = function() {
  return /** @type{?proto.google.protobuf.Timestamp} */ (
    jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 1));
};


/**
 * @param {?proto.google.protobuf.Timestamp|undefined} value
 * @return {!proto.bosdyn.api.SeriesBlockIndex.BlockEntry} returns this
*/
proto.bosdyn.api.SeriesBlockIndex.BlockEntry.prototype.setTimestamp = function(value) {
  return jspb.Message.setWrapperField(this, 1, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.bosdyn.api.SeriesBlockIndex.BlockEntry} returns this
 */
proto.bosdyn.api.SeriesBlockIndex.BlockEntry.prototype.clearTimestamp = function() {
  return this.setTimestamp(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.bosdyn.api.SeriesBlockIndex.BlockEntry.prototype.hasTimestamp = function() {
  return jspb.Message.getField(this, 1) != null;
};


/**
 * optional uint64 file_offset = 2;
 * @return {number}
 */
proto.bosdyn.api.SeriesBlockIndex.BlockEntry.prototype.getFileOffset = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));
};


/**
 * @param {number} value
 * @return {!proto.bosdyn.api.SeriesBlockIndex.BlockEntry} returns this
 */
proto.bosdyn.api.SeriesBlockIndex.BlockEntry.prototype.setFileOffset = function(value) {
  return jspb.Message.setProto3IntField(this, 2, value);
};


/**
 * repeated int64 additional_indexes = 3;
 * @return {!Array<number>}
 */
proto.bosdyn.api.SeriesBlockIndex.BlockEntry.prototype.getAdditionalIndexesList = function() {
  return /** @type {!Array<number>} */ (jspb.Message.getRepeatedField(this, 3));
};


/**
 * @param {!Array<number>} value
 * @return {!proto.bosdyn.api.SeriesBlockIndex.BlockEntry} returns this
 */
proto.bosdyn.api.SeriesBlockIndex.BlockEntry.prototype.setAdditionalIndexesList = function(value) {
  return jspb.Message.setField(this, 3, value || []);
};


/**
 * @param {number} value
 * @param {number=} opt_index
 * @return {!proto.bosdyn.api.SeriesBlockIndex.BlockEntry} returns this
 */
proto.bosdyn.api.SeriesBlockIndex.BlockEntry.prototype.addAdditionalIndexes = function(value, opt_index) {
  return jspb.Message.addToRepeatedField(this, 3, value, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.bosdyn.api.SeriesBlockIndex.BlockEntry} returns this
 */
proto.bosdyn.api.SeriesBlockIndex.BlockEntry.prototype.clearAdditionalIndexesList = function() {
  return this.setAdditionalIndexesList([]);
};


/**
 * optional uint32 series_index = 1;
 * @return {number}
 */
proto.bosdyn.api.SeriesBlockIndex.prototype.getSeriesIndex = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/**
 * @param {number} value
 * @return {!proto.bosdyn.api.SeriesBlockIndex} returns this
 */
proto.bosdyn.api.SeriesBlockIndex.prototype.setSeriesIndex = function(value) {
  return jspb.Message.setProto3IntField(this, 1, value);
};


/**
 * optional uint64 descriptor_file_offset = 2;
 * @return {number}
 */
proto.bosdyn.api.SeriesBlockIndex.prototype.getDescriptorFileOffset = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));
};


/**
 * @param {number} value
 * @return {!proto.bosdyn.api.SeriesBlockIndex} returns this
 */
proto.bosdyn.api.SeriesBlockIndex.prototype.setDescriptorFileOffset = function(value) {
  return jspb.Message.setProto3IntField(this, 2, value);
};


/**
 * repeated BlockEntry block_entries = 3;
 * @return {!Array<!proto.bosdyn.api.SeriesBlockIndex.BlockEntry>}
 */
proto.bosdyn.api.SeriesBlockIndex.prototype.getBlockEntriesList = function() {
  return /** @type{!Array<!proto.bosdyn.api.SeriesBlockIndex.BlockEntry>} */ (
    jspb.Message.getRepeatedWrapperField(this, proto.bosdyn.api.SeriesBlockIndex.BlockEntry, 3));
};


/**
 * @param {!Array<!proto.bosdyn.api.SeriesBlockIndex.BlockEntry>} value
 * @return {!proto.bosdyn.api.SeriesBlockIndex} returns this
*/
proto.bosdyn.api.SeriesBlockIndex.prototype.setBlockEntriesList = function(value) {
  return jspb.Message.setRepeatedWrapperField(this, 3, value);
};


/**
 * @param {!proto.bosdyn.api.SeriesBlockIndex.BlockEntry=} opt_value
 * @param {number=} opt_index
 * @return {!proto.bosdyn.api.SeriesBlockIndex.BlockEntry}
 */
proto.bosdyn.api.SeriesBlockIndex.prototype.addBlockEntries = function(opt_value, opt_index) {
  return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.bosdyn.api.SeriesBlockIndex.BlockEntry, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.bosdyn.api.SeriesBlockIndex} returns this
 */
proto.bosdyn.api.SeriesBlockIndex.prototype.clearBlockEntriesList = function() {
  return this.setBlockEntriesList([]);
};


/**
 * optional uint64 total_bytes = 4;
 * @return {number}
 */
proto.bosdyn.api.SeriesBlockIndex.prototype.getTotalBytes = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0));
};


/**
 * @param {number} value
 * @return {!proto.bosdyn.api.SeriesBlockIndex} returns this
 */
proto.bosdyn.api.SeriesBlockIndex.prototype.setTotalBytes = function(value) {
  return jspb.Message.setProto3IntField(this, 4, value);
};





if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * Optional fields that are not set will be set to undefined.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
 * @param {boolean=} opt_includeInstance Deprecated. whether to include the
 *     JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @return {!Object}
 */
proto.bosdyn.api.SeriesIdentifier.prototype.toObject = function(opt_includeInstance) {
  return proto.bosdyn.api.SeriesIdentifier.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.bosdyn.api.SeriesIdentifier} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.bosdyn.api.SeriesIdentifier.toObject = function(includeInstance, msg) {
  var f, obj = {
    seriesType: jspb.Message.getFieldWithDefault(msg, 1, ""),
    specMap: (f = msg.getSpecMap()) ? f.toObject(includeInstance, undefined) : []
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.bosdyn.api.SeriesIdentifier}
 */
proto.bosdyn.api.SeriesIdentifier.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.bosdyn.api.SeriesIdentifier;
  return proto.bosdyn.api.SeriesIdentifier.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.bosdyn.api.SeriesIdentifier} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.bosdyn.api.SeriesIdentifier}
 */
proto.bosdyn.api.SeriesIdentifier.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {string} */ (reader.readString());
      msg.setSeriesType(value);
      break;
    case 2:
      var value = msg.getSpecMap();
      reader.readMessage(value, function(message, reader) {
        jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readString, null, "", "");
         });
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.bosdyn.api.SeriesIdentifier.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.bosdyn.api.SeriesIdentifier.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.bosdyn.api.SeriesIdentifier} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.bosdyn.api.SeriesIdentifier.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getSeriesType();
  if (f.length > 0) {
    writer.writeString(
      1,
      f
    );
  }
  f = message.getSpecMap(true);
  if (f && f.getLength() > 0) {
    f.serializeBinary(2, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeString);
  }
};


/**
 * optional string series_type = 1;
 * @return {string}
 */
proto.bosdyn.api.SeriesIdentifier.prototype.getSeriesType = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};


/**
 * @param {string} value
 * @return {!proto.bosdyn.api.SeriesIdentifier} returns this
 */
proto.bosdyn.api.SeriesIdentifier.prototype.setSeriesType = function(value) {
  return jspb.Message.setProto3StringField(this, 1, value);
};


/**
 * map<string, string> spec = 2;
 * @param {boolean=} opt_noLazyCreate Do not create the map if
 * empty, instead returning `undefined`
 * @return {!jspb.Map<string,string>}
 */
proto.bosdyn.api.SeriesIdentifier.prototype.getSpecMap = function(opt_noLazyCreate) {
  return /** @type {!jspb.Map<string,string>} */ (
      jspb.Message.getMapField(this, 2, opt_noLazyCreate,
      null));
};


/**
 * Clears values from the map. The map will be non-null.
 * @return {!proto.bosdyn.api.SeriesIdentifier} returns this
 */
proto.bosdyn.api.SeriesIdentifier.prototype.clearSpecMap = function() {
  this.getSpecMap().clear();
  return this;};


/**
 * @enum {number}
 */
proto.bosdyn.api.PodTypeEnum = {
  TYPE_UNSPECIFIED: 0,
  TYPE_INT8: 1,
  TYPE_INT16: 2,
  TYPE_INT32: 3,
  TYPE_INT64: 4,
  TYPE_UINT8: 5,
  TYPE_UINT16: 6,
  TYPE_UINT32: 7,
  TYPE_UINT64: 8,
  TYPE_FLOAT32: 9,
  TYPE_FLOAT64: 10
};

goog.object.extend(exports, proto.bosdyn.api);