function Router (options) {
  if (!(this instanceof Router)) {
    return new Router(options)
  }
  this._log = options.logger
  this._rpc = options.transport
  this._self = this._rpc._contact
  this._validator = options.validator
  this._routingTable = new RoutingTable(options.storage, this._rpc)
}
function Router (options) {
  if (!(this instanceof Router)) {
    return new Router(options)
  }
  this._log = options.logger
  this._rpc = options.transport
  this._self = this._rpc._contact
  this._validator = options.validator
  this._routingTable = new RoutingTable(options.storage, this._rpc)
}
function Router ( options ) { if ( ! ( this instanceof Router ) ) { return new Router ( options ) } this . _log = options . logger this . _rpc = options . transport this . _self = this . _rpc . _contact this . _validator = options . validator this . _routingTable = new RoutingTable ( options . storage , this . _rpc ) }
Represents a routing table of known {@link Contact}s; used by {@link Node}.
@constructor
@param {Object} options
@param {Logger} options.logger - Logger instance to use
@param {RPC} options.transport - Transport adapter (RPC) to use
@param {Router~validator} options.validator - Key-Value validation function
@emits Router#add
@emits Router#drop
@emits Router#shift
Represents a routing table of known {