diff --git a/index.js b/index.js index 0734c4d..8a5cc1f 100644 --- a/index.js +++ b/index.js @@ -305,7 +305,6 @@ module.exports = class Protomux { this._infos = new Map(); this._notify = new Map(); - this._slave = slave; this.stream.on("data", this._ondata.bind(this)); this.stream.on("end", this._onend.bind(this)); @@ -357,67 +356,7 @@ module.exports = class Protomux { const info = this._infos.get(key); return info ? info.opened > 0 : false; } - - _createChannel({ - userData = null, - protocol, - aliases = [], - id = null, - unique = true, - handshake = null, - messages = [], - onopen = noop, - onclose = noop, - ondestroy = noop, - }) { - if (this.stream.destroyed) return null; - - const info = this._get(protocol, id, aliases); - if (unique && info.opened > 0) return null; - - if (info.incoming.length === 0) { - return new Channel( - this, - info, - userData, - protocol, - aliases, - id, - handshake, - messages, - onopen, - onclose, - ondestroy - ); - } - - this._remoteBacklog--; - - const remoteId = info.incoming.shift(); - const r = this._remote[remoteId - 1]; - if (r === null) return null; - - const session = new Channel( - this, - info, - userData, - protocol, - aliases, - id, - handshake, - messages, - onopen, - onclose, - ondestroy - ); - - session._remoteId = remoteId; - session._fullyOpenSoon(); - - return session; - } - - async _createChannelAsync({ + async createChannel({ userData = null, protocol, aliases = [], @@ -481,14 +420,6 @@ module.exports = class Protomux { return session; } - createChannel(options) { - if (this._slave) { - return this._createChannelAsync(options); - } - - return this._createChannel(options); - } - _pushBatch(localId, buffer) { if (this._batchState.end >= MAX_BATCH) { this._sendBatch(this._batch, this._batchState); @@ -530,43 +461,7 @@ module.exports = class Protomux { this.stream.write(state.buffer); } - _get(protocol, id, aliases = []) { - if (this._slave) { - return this._getAsync(protocol, id, aliases); - } - - return this.__get(protocol, id, aliases); - } - - __get(protocol, id, aliases) { - const key = toKey(protocol, id); - - let info = this._infos.get(key); - if (info) return info; - - info = { - key, - protocol, - aliases: [], - id, - pairing: 0, - opened: 0, - incoming: [], - outgoing: [], - }; - this._infos.set(key, info); - - for (const alias of aliases) { - const key = toKey(alias, id); - info.aliases.push(key); - - this._infos.set(key, info); - } - - return info; - } - - async _getAsync(protocol, id, aliases = []) { + async _get(protocol, id, aliases = []) { const key = toKey(protocol, id); await this.pullInfos(); @@ -904,33 +799,18 @@ module.exports = class Protomux { } async popFree(id) { - if (!this._slave) { - return; - } await this.stream.syncProtomux("popFree", id); } async pushFree(id) { - if (!this._slave) { - return; - } await this.stream.syncProtomux("pushFree", id); } async pushLocal(id) { - if (!this._slave) { - return; - } await this.stream.syncProtomux("pushLocal", id); } async pushRemote(id) { - if (!this._slave) { - return; - } await this.stream.syncProtomux("pushRemote", id); } async pushInfos() { - if (!this._slave) { - return; - } await this.stream.syncProtomux( "pushInfos", Array.from(this._infos.entries()) @@ -938,9 +818,6 @@ module.exports = class Protomux { } async pullLocal() { - if (!this._slave) { - return; - } const ids = await this.stream.syncProtomux("pullLocal"); ids.forEach((item) => { @@ -951,18 +828,12 @@ module.exports = class Protomux { }); } async pullFree() { - if (!this._slave) { - return; - } const ids = await this.stream.syncProtomux("pullFree"); this._free = Array.from(new Set([...this._free, ...ids])); this._free = this._free.filter((item) => item !== null); } async pullRemote() { - if (!this._slave) { - return; - } const ids = await this.stream.syncProtomux("pullRemote"); ids.forEach((item) => { @@ -973,10 +844,6 @@ module.exports = class Protomux { }); } async pullInfos() { - if (!this._slave) { - return; - } - const info = await this.stream.syncProtomux( "pullInfos", Array.from(this._infos.entries())