UNPKG

@uyu423/pinpoint-node-agent

Version:

Pinpoint node agent provided by NAVER (Personalized version)

45 lines (37 loc) 1.11 kB
/** * Pinpoint Node.js Agent * Copyright 2020-present NAVER Corp. * Apache License v2.0 */ 'use strict' const StreamChannel = require('./stream-channel') class StreamChannelManger { constructor(dataSender) { this.streamChannels = new Map() this.dataSender = dataSender } add (newStreamChannel) { if (this.streamChannels.has(newStreamChannel.id)) { const streamChannel = this.streamChannels.get(newStreamChannel.id) if (streamChannel === newStreamChannel || streamChannel.isOpen()) { return newStreamChannel } this.remove(streamChannel) } this.streamChannels.set(newStreamChannel.id, newStreamChannel) return newStreamChannel } remove (streamChannelId) { const streamChannel = this.streamChannels.get(streamChannelId) if (streamChannel) { streamChannel.setClosed() this.streamChannels.delete(streamChannelId) } return streamChannel } getOpenChannels () { return Array.from(this.streamChannels.values()) .filter(streamChannel => streamChannel.isOpen()) } } module.exports = StreamChannelManger