@iotize/tap
Version:
IoTize Device client for Javascript
57 lines • 3.61 kB
JavaScript
import { ConnectionState, } from '@iotize/tap/protocol/api';
import { Subject } from 'rxjs';
import { debug } from './debug';
const TAG = 'ComProtocol';
export class AbstractComProtocol {
constructor() {
this.connectionState = ConnectionState.DISCONNECTED;
this._options = {
connect: {
timeout: 1000,
},
disconnect: {
timeout: 1000,
},
send: {
timeout: 500,
},
};
}
get options() {
return this._options;
}
set options(options) {
this._options = options;
}
getConnectionState() {
return this.connectionState;
}
isConnected() {
return this.connectionState == ConnectionState.CONNECTED;
}
setConnectionState(connectionState) {
debug(TAG, 'setConnectionState', ConnectionState[connectionState], 'Old: ', ConnectionState[this.connectionState]);
let event = {
newState: connectionState,
oldState: this.connectionState,
};
this.connectionState = connectionState;
if (this._connectionStateChange) {
this._connectionStateChange.next(event);
}
return this;
}
/**
* Must be implemented in childs
*/
receiveStream() {
throw new Error('Method not implemented.');
}
onConnectionStateChange() {
if (!this._connectionStateChange) {
this._connectionStateChange = new Subject();
}
return this._connectionStateChange;
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtY29tLXByb3RvY29sLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvdG9jb2wvY29yZS9zcmMvbGliL2Fic3RyYWN0LWNvbS1wcm90b2NvbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBS0wsZUFBZSxHQUVoQixNQUFNLDBCQUEwQixDQUFDO0FBQ2xDLE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFM0MsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUVoQyxNQUFNLEdBQUcsR0FBRyxhQUFhLENBQUM7QUFFMUIsTUFBTSxPQUFnQixtQkFBbUI7SUEyQnZDO1FBQ0UsSUFBSSxDQUFDLGVBQWUsR0FBRyxlQUFlLENBQUMsWUFBWSxDQUFDO1FBQ3BELElBQUksQ0FBQyxRQUFRLEdBQUc7WUFDZCxPQUFPLEVBQUU7Z0JBQ1AsT0FBTyxFQUFFLElBQUk7YUFDZDtZQUNELFVBQVUsRUFBRTtnQkFDVixPQUFPLEVBQUUsSUFBSTthQUNkO1lBQ0QsSUFBSSxFQUFFO2dCQUNKLE9BQU8sRUFBRSxHQUFHO2FBQ2I7U0FDRixDQUFDO0lBQ0osQ0FBQztJQWxDRCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQUksT0FBTyxDQUFDLE9BQTJCO1FBQ3JDLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO0lBQzFCLENBQUM7SUE4QkQsa0JBQWtCO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUM5QixDQUFDO0lBRUQsV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDLGVBQWUsSUFBSSxlQUFlLENBQUMsU0FBUyxDQUFDO0lBQzNELENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxlQUFnQztRQUNqRCxLQUFLLENBQ0gsR0FBRyxFQUNILG9CQUFvQixFQUNwQixlQUFlLENBQUMsZUFBZSxDQUFDLEVBQ2hDLE9BQU8sRUFDUCxlQUFlLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUN0QyxDQUFDO1FBQ0YsSUFBSSxLQUFLLEdBQUc7WUFDVixRQUFRLEVBQUUsZUFBZTtZQUN6QixRQUFRLEVBQUUsSUFBSSxDQUFDLGVBQWU7U0FDL0IsQ0FBQztRQUNGLElBQUksQ0FBQyxlQUFlLEdBQUcsZUFBZSxDQUFDO1FBQ3ZDLElBQUksSUFBSSxDQUFDLHNCQUFzQixFQUFFO1lBQy9CLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDekM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7T0FFRztJQUNILGFBQWE7UUFDWCxNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELHVCQUF1QjtRQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLHNCQUFzQixFQUFFO1lBQ2hDLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLE9BQU8sRUFBOEIsQ0FBQztTQUN6RTtRQUNELE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDO0lBQ3JDLENBQUM7Q0FDRiJ9