예제 #1
0
        public int RequestSegment(string path, long offset, int length, int token)
        {
            var req = new HyperRequestMessage
            {
                Token  = token,
                Path   = path,
                Offset = offset,
                Length = length
            };

            _requests.Enqueue(req);

            for (int i = 0; i < _controlConnections.Count; i++)
            {
                if (_controlConnections[i].ConnectionStatus == ConnectionStatus.Connected)
                {
                    _controlConnections[i].FlushRequestQueueAsync();
                }
            }

            return(req.Token);
        }
예제 #2
0
 public bool TryGetRequest(out HyperRequestMessage request)
 {
     return(_requests.TryDequeue(out request));
 }
예제 #3
0
 protected virtual void OnMessageSegmentRequest(HyperRequestMessage message)
 {
 }
예제 #4
0
 protected override void OnMessageSegmentRequest(HyperRequestMessage message)
 {
     OnSegmentRequested(new HyperSegmentRequestEventArgs {
         Task = new HyperServerTask(message)
     });
 }