Ejemplo n.º 1
0
        public void KeepStream(IStreamProxy streamProxy, int iIndex)
        {
            DateTime timeNow = DateTime.UtcNow;
            IStreamProxy prevPostedStream = null;

            lock (_proxy.SyncRoot)
            {
                if (!(_iPostedStreamID < 0) && _timePostedStream > timeNow)
                {
                    prevPostedStream = _proxy[_iPostedStreamID];
                }

                if (null != _proxy[iIndex])
                {
                    _iPostedStreamID = iIndex;
                    _timePostedStream = timeNow.AddMinutes(2);
                }
            }

            if (null != prevPostedStream)
            {
                prevPostedStream.Shutdown();
            }
        }
Ejemplo n.º 2
0
        public int AddNewStream(IStreamProxy streamProxy)
        {
            int ndx = 0;

            lock (_proxy.SyncRoot)
            {
                while (ndx < _proxy.Length && null != _proxy[ndx])
                {
                    ndx++;
                }

                if (ndx < _proxy.Length)
                {
                    _proxy[ndx] = streamProxy;
                }
                else
                {
                    ndx = -1;
                }
            }

            if (ndx < 0)
            {
                throw new Exception("Maximum stream count exceeded.");
            }

            return ndx;
        }
Ejemplo n.º 3
0
 public void DeleteStream(IStreamProxy streamProxy, int iIndex)
 {
     lock (_proxy.SyncRoot)
     {
         if (_iPostedStreamID == iIndex)
         {
             _iPostedStreamID = -1;
         }
         _proxy[iIndex] = null;
     }
 }
Ejemplo n.º 4
0
 public MultiNodeStreamBridge(INodeMapping serverMapping, INodeUriProvider nodeUriProvider, IStreamProxy streamProxy)
 {
     _serverMapping   = serverMapping;
     _nodeUriProvider = nodeUriProvider;
     _streamProxy     = streamProxy;
 }