private void OnRequestReceived(PlaylistRequestMessage requestMessage) { if (this.PlaylistRequestReceived != null) { this.PlaylistRequestReceived(this, new PlaylistRequestEventArgs(requestMessage)); } }
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); }
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); }
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); } } } } }
private void Send(PlaylistRequestMessage message) { byte[] data = Serialize(message); _sendService.Send(data); }
private void OnPlaylistSyncRequestReceived(PlaylistRequestMessage message) { //throw new NotImplementedException(); }