CSharpRTMP.Core.Streaming.StreamsManager.RegisterStream C# (CSharp) Method

RegisterStream() public method

public RegisterStream ( IStream stream ) : bool
stream IStream
return bool
        public bool RegisterStream(IStream stream)
        {
            if (StreamsByUniqueId.ContainsKey(stream.UniqueId))
            {
                Logger.FATAL("Stream with unique ID {0} already registered",stream.UniqueId);
                return false;
            }
            StreamsByUniqueId[stream.UniqueId] = stream;
            var protocol = stream.GetProtocol();
            if (protocol != null)
            {
                if (!StreamsByProtocolId.ContainsKey(protocol.Id))
                    StreamsByProtocolId[protocol.Id] = new Dictionary<uint, IStream>();
                StreamsByProtocolId[protocol.Id][stream.UniqueId] = stream;

            }
            if (!StreamsByType.ContainsKey(stream.Type))
            {
                StreamsByType[stream.Type] = new Dictionary<uint, IStream>();
            }
            StreamsByType[stream.Type][stream.UniqueId] = stream;
            if (!StreamsByName.ContainsKey(stream.Name))
            {
                StreamsByName[stream.Name] = new Dictionary<uint, IStream>();
            }
            StreamsByName[stream.Name][stream.UniqueId] = stream;
            Application.SignalStreamRegistered(stream);
            return true;
        }

Usage Example

Example #1
0
 protected BaseStream(T pProtocol, StreamsManager pStreamsManager, string name)
 {
     _pStreamsManager = pStreamsManager;
     UniqueId         = _pStreamsManager.GenerateUniqueId();
     Protocol         = pProtocol;
     Name             = name;
     Type             = GetType().GetCustomAttribute <StreamTypeAttribute>(true).Type;
     pStreamsManager.RegisterStream(this);
     CreationTimestamp = DateTime.Now.Ticks;
 }