cqi.status = {};


/**
 * A base class from which all other status inherit.
 */
cqi.status.CQiStatus = class CQiStatus {
  constructor() {
    this.code = undefined;
  }
};


cqi.status.StatusOk = class StatusOk extends cqi.status.CQiStatus {
  constructor() {
    super();
    this.code = 257;
  }
};


cqi.status.StatusConnectOk = class StatusConnectOk extends cqi.status.CQiStatus {
  constructor() {
    super();
    this.code = 258;
  }
};


cqi.status.StatusByeOk = class StatusByeOk extends cqi.status.CQiStatus {
  constructor() {
    super();
    this.code = 259;
  }
};


cqi.status.StatusPingOk = class StatusPingOk extends cqi.status.CQiStatus {
  constructor() {
    super();
    this.code = 260;
  }
};


cqi.status.lookup = {
  257: cqi.status.StatusOk,
  258: cqi.status.StatusConnectOk,
  259: cqi.status.StatusByeOk,
  260: cqi.status.StatusPingOk
};