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;
}