all files / src/core/stream/ StreamManager.js

0% Statements 0/8
0% Branches 0/2
0% Functions 0/3
0% Lines 0/8
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50                                                                                                   
import Remote from './Remote';
 
/**
 * @access protected
 */
export default class StreamManager {
	/**
	 * Constructor
	 * @access protected
	 */
	constructor() {
		/**
		 * Shared local streams
		 * @type {{*: Local}}
		 */
		this.shared = {};
		/**
		 * Subscribed remote streams
		 * @type {{*: Remote}}
		 */
		this.remote = {};
	}
 
	/**
	 * Get a Remote stream reference
	 * @param {object} streamData
	 * @returns {Remote}
	 */
	getRemote(streamData) {
		let remoteStream = this.remote[streamData.uid];
		if(remoteStream) {
			remoteStream.update(streamData);
		} else {
			this.remote[streamData.uid] = remoteStream = new Remote(streamData);
		}
		return remoteStream;
	}
 
	/**
	 * Get a Remote stream reference
	 * @param {object} streamData
	 * @returns {Remote}
	 */
	getShared(streamData) {
		// TODO: If it does not exists locally as it should, maybe we should remove it ?
		return this.shared[streamData.uid];
	}
 
}