コード例 #1
0
 private void OnRequestReceived(PlaylistRequestMessage requestMessage)
 {
     if (this.PlaylistRequestReceived != null)
     {
         this.PlaylistRequestReceived(this, new PlaylistRequestEventArgs(requestMessage));
     }
 }
コード例 #2
0
        private bool HasReceived(PlaylistRequestMessage requestMessage)
        {
            bool result;
            var  token = requestMessage.GetRequestToken();

            if (_requestTokens.Contains(token))
            {
                result = true;
            }
            else
            {
                _requestTokens.Enqueue(token);
                result = false;
            }

            if (_requestTokens.Count > 100)
            {
                while (_requestTokens.Count > 50)
                {
                    _requestTokens.Dequeue();
                }
            }

            return(result);
        }
コード例 #3
0
        public void SendPlaylistRequest(IPlayItem[] playItems, PlaylistRequestCategory requestCategory)
        {
            var requestId = Guid.NewGuid();

            var message = new PlaylistRequestMessage()
            {
                Category  = requestCategory,
                PlayItems = playItems,
                RequestId = requestId,
                Sender    = this.ServiceId
            };

            Send(message);
        }
コード例 #4
0
        private void _messageParser_DataReceived(object sender, NetDataReceivedEventArgs e)
        {
            PlaylistRequestMessage requestMessage = null;

            try
            {
                requestMessage = Deserialize <PlaylistRequestMessage>(e.Data);
            }
            catch
            {
                requestMessage = null;
            }


            if (requestMessage != null)
            {
                PlaylistResponseMessage responseMessage = requestMessage as PlaylistResponseMessage;
                if (responseMessage != null)
                {
                    if (responseMessage.ResponseId != this.ServiceId && responseMessage.RequestId == this.ServiceId)
                    {
                        if (!HasReceived(responseMessage))
                        {
                            OnResponseReceived(responseMessage);
                        }
                    }
                }
                else
                {
                    if (requestMessage.Sender != this.ServiceId)
                    {
                        if (!HasReceived(requestMessage))
                        {
                            OnRequestReceived(requestMessage);
                        }
                    }
                }
            }
        }
コード例 #5
0
 private void Send(PlaylistRequestMessage message)
 {
     byte[] data = Serialize(message);
     _sendService.Send(data);
 }
コード例 #6
0
 private void OnPlaylistSyncRequestReceived(PlaylistRequestMessage message)
 {
     //throw new NotImplementedException();
 }