12345678910111213141516171819202122232425262728293031323334353637383940 |
- import { ConnectionManager as ConnectionManagerInterface, AdapterSet, TransportService, TransportEvent, Transport } from "../interface/connector.interface"
- import { TransmitterConnectionAdapter } from './connector.transmitter'
- import { ReceiverConnectionAdapter } from './connector.receiver'
- import { RequestResponseConnectionAdapter } from './connector.request.response'
- import { v4 as uuidv4 } from 'uuid'
- import { Subject } from "rxjs"
- export class ConnectionManager implements ConnectionManagerInterface {
- private adapterSet: AdapterSet[] = []
- private event!: Subject<TransportEvent>
- constructor(event: Subject<TransportEvent>) {
- this.event = event
- console.log(`Connection Manager: Contructing ConnectionManager....`)
- }
- getAdapter(clientId: string, transportService: TransportService): AdapterSet {
- let transportType: Transport = transportService.getInfo()
- let adapterId: string = clientId
- let transmitterAdapter: TransmitterConnectionAdapter = new TransmitterConnectionAdapter(adapterId, transportType, transportService)
- let receiverAdapter: ReceiverConnectionAdapter = new ReceiverConnectionAdapter(adapterId, transportType, transportService)
- let adapterSet: AdapterSet = {
- id: adapterId,
- dateCreated: new Date(),
- transmitterAdapter: transmitterAdapter,
- receiverAdapter: receiverAdapter,
- requestResponsAdapter: new RequestResponseConnectionAdapter(transmitterAdapter, receiverAdapter)
- }
- this.adapterSet.push(adapterSet)
- this.event.next({
- id: uuidv4(),
- event: 'New Adapter',
- data: adapterId
- } as TransportEvent)
- return adapterSet
- }
- }
|