import { Datagram, DatagramInitObject } from "../../Independents/Datagram/datagram-types.js"; import { msToTime } from "../../Independents/util/misc.js"; import { GatewayProxy } from "../GatewayProxy.js"; export abstract class Transport { firstHeartbeat = Date.now(); lastHeartbeat = Date.now(); allowedSilence = -1; constructor(public employer: GatewayProxy) { employer.Transport = this; } get debug(): any { return { // localGateway: this.employer.gateway.hostId, remoteGateway: Object.values(this.employer.remoteAliases).map(e => e.nameTemplate), type: this.constructor.name, } } abstract get isClosed(): boolean; abstract transmitDatagram(d: DatagramInitObject): void; abstract close(): void; onReceiveDatagram(d: Datagram) { //}, hook?: (response: Promise) => void, requestTransport?: Transport): void { this.employer.onReceiveDatagram(d); //, hook, requestTransport); this.lastHeartbeat = Date.now() } }