function Gnubbies() {
  /** @private {Object<string, Array>} */
  this.devs_ = {};
  this.pendingEnumerate = [];  // clients awaiting an enumerate
  /**
   * The distinct namespaces registered in this Gnubbies instance, in order of
   * registration.
   * @private {Array<string>}
   */
  this.namespaces_ = [];
  /** @private {Object<string, GnubbyNamespaceImpl>} */
  this.impl_ = {};
  /** @private {Object<string, Object<number|string, !GnubbyDevice>>} */
  this.openDevs_ = {};
  /** @private {Object<string, Object<number, *>>} */
  this.pendingOpens_ = {};  // clients awaiting an open
}
/**
 * Manager of opened devices.
 * @constructor
 */
Manager of opened devices.
@constructor
Manager of opened devices . @constructor
function Gnubbies() {
  this.devs_ = {};
  this.pendingEnumerate = [];  
  this.namespaces_ = [];
  this.impl_ = {};
  this.openDevs_ = {};
  this.pendingOpens_ = {};  
}
function Gnubbies ( ) { this . devs_ = { } ; this . pendingEnumerate = [ ] ; this . namespaces_ = [ ] ; this . impl_ = { } ; this . openDevs_ = { } ; this . pendingOpens_ = { } ; }
Manager of opened devices.
Manager of opened devices .
/** @private {Object<string, Array>} */ // clients awaiting an enumerate /**
   * The distinct namespaces registered in this Gnubbies instance, in order of
   * registration.
   * @private {Array<string>}
   */ /** @private {Object<string, GnubbyNamespaceImpl>} */ /** @private {Object<string, Object<number|string, !GnubbyDevice>>} */ /** @private {Object<string, Object<number, *>>} */ // clients awaiting an open