void TransparentStreamReadRequestMessageReceived(TransparentStreamMessageBase transparentStreamMessageBase) { TransparentStreamReadRequestMessage request = (TransparentStreamReadRequestMessage)transparentStreamMessageBase; byte[] buffer = new byte[request.Count]; try { baseStream.BeginRead(buffer, 0, request.Count, (ar) => { try { int bytesRead = baseStream.EndRead(ar); if (bytesRead != ((byte[])ar.AsyncState).Length) { byte[] newBuffer = new byte[bytesRead]; System.Buffer.BlockCopy((byte[])ar.AsyncState, 0, newBuffer, 0, bytesRead); objectBusSession.SendMessage(new TransparentStreamReadResponseMessage(streamID, request.ID, newBuffer, null)); } else { objectBusSession.SendMessage(new TransparentStreamReadResponseMessage(streamID, request.ID, (byte[])ar.AsyncState, null)); } } catch (Exception ex) { objectBusSession.SendMessage(new TransparentStreamReadResponseMessage(streamID, request.ID, (byte[])ar.AsyncState, ex)); } }, buffer); } catch (Exception ex) { objectBusSession.SendMessage(new TransparentStreamReadResponseMessage(streamID, request.ID, null, ex)); } }
internal void Set(TransparentStreamMessageBase transparentStreamMessageBase) { response = transparentStreamMessageBase; waitHandle.Set(); if (callback != null) { callback(this); } }
void TransparentStreamSetWriteTimeoutRequestMessageReceived(TransparentStreamMessageBase transparentStreamMessageBase) { TransparentStreamSetWriteTimeoutRequestMessage request = (TransparentStreamSetWriteTimeoutRequestMessage)transparentStreamMessageBase; Exception exception = null; try { baseStream.WriteTimeout = request.WriteTimeout; } catch (Exception ex) { exception = ex; } objectBusSession.SendMessage(new TransparentStreamSetWriteTimeoutResponseMessage(streamID, request.ID, exception)); }
bool TransparentStreamCloseRequestMessageReceived(TransparentStreamMessageBase transparentStreamMessageBase) { TransparentStreamCloseRequestMessage request = (TransparentStreamCloseRequestMessage)transparentStreamMessageBase; Exception exception = null; try { baseStream.Close(); } catch (Exception ex) { exception = ex; } objectBusSession.SendMessage(new TransparentStreamCloseResponseMessage(streamID, request.ID, exception)); return(exception == null); }
void TransparentStreamGetPositionRequestMessageReceived(TransparentStreamMessageBase transparentStreamMessageBase) { TransparentStreamGetPositionRequestMessage request = (TransparentStreamGetPositionRequestMessage)transparentStreamMessageBase; Exception exception = null; long position = -1; try { position = baseStream.Length; } catch (Exception ex) { exception = ex; } objectBusSession.SendMessage(new TransparentStreamGetPositionResponseMessage(streamID, request.ID, position, exception)); }
void TransparentStreamGetReadTimeoutRequestMessageReceived(TransparentStreamMessageBase transparentStreamMessageBase) { TransparentStreamGetReadTimeoutRequestMessage request = (TransparentStreamGetReadTimeoutRequestMessage)transparentStreamMessageBase; Exception exception = null; int readTimeout = -1; try { readTimeout = baseStream.ReadTimeout; } catch (Exception ex) { exception = ex; } objectBusSession.SendMessage(new TransparentStreamGetReadTimeoutResponseMessage(streamID, request.ID, readTimeout, exception)); }
void TransparentStreamSeekRequestMessageReceived(TransparentStreamMessageBase transparentStreamMessageBase) { TransparentStreamSeekRequestMessage request = (TransparentStreamSeekRequestMessage)transparentStreamMessageBase; Exception exception = null; long seek = -1; try { seek = baseStream.Seek(request.Offset, request.SeekOrigin); } catch (Exception ex) { exception = ex; } objectBusSession.SendMessage(new TransparentStreamSeekResponseMessage(streamID, request.ID, seek, exception)); }
void TransparentStreamCanWriteRequestMessageReceived(TransparentStreamMessageBase transparentStreamMessageBase) { TransparentStreamCanWriteRequestMessage request = (TransparentStreamCanWriteRequestMessage)transparentStreamMessageBase; Exception exception = null; bool canWrite = false; try { canWrite = baseStream.CanWrite; } catch (Exception ex) { exception = ex; } objectBusSession.SendMessage(new TransparentStreamCanWriteResponseMessage(streamID, request.ID, canWrite, exception)); }
void TransparentStreamWriteRequestMessageReceived(TransparentStreamMessageBase transparentStreamMessageBase) { TransparentStreamWriteRequestMessage request = (TransparentStreamWriteRequestMessage)transparentStreamMessageBase; Exception exception = null; try { baseStream.BeginWrite(request.Buffer, 0, request.Buffer.Length, (ar) => { try { baseStream.EndWrite(ar); } catch (Exception ex) { objectBusSession.SendMessage(new TransparentStreamWriteResponseMessage(streamID, request.ID, ex)); } }, request.Buffer); } catch (Exception ex) { exception = ex; objectBusSession.SendMessage(new TransparentStreamWriteResponseMessage(streamID, request.ID, exception)); } }
public void EnqueueRequest(TransparentStreamMessageBase transparentStreamMessageBase) { if (transparentStreamMessageBase == null) { throw new ArgumentNullException("transparentStreamMessageBase"); } if (transparentStreamMessageBase is TransparentStreamCanReadRequestMessage) { TransparentStreamCanReadRequestMessageReceived(transparentStreamMessageBase); } else if (transparentStreamMessageBase is TransparentStreamCanSeekRequestMessage) { TransparentStreamCanSeekRequestMessageReceived(transparentStreamMessageBase); } else if (transparentStreamMessageBase is TransparentStreamCanTimeoutRequestMessage) { TransparentStreamCanTimeoutRequestMessageReceived(transparentStreamMessageBase); } else if (transparentStreamMessageBase is TransparentStreamCanWriteRequestMessage) { TransparentStreamCanWriteRequestMessageReceived(transparentStreamMessageBase); } else if (transparentStreamMessageBase is TransparentStreamCloseRequestMessage) { if (TransparentStreamCloseRequestMessageReceived(transparentStreamMessageBase)) { agent.RemoveStreamServer(this); } } else if (transparentStreamMessageBase is TransparentStreamFlushRequestMessage) { TransparentStreamFlushRequestMessageReceived(transparentStreamMessageBase); } else if (transparentStreamMessageBase is TransparentStreamGetLengthRequestMessage) { TransparentStreamGetLengthRequestMessageReceived(transparentStreamMessageBase); } else if (transparentStreamMessageBase is TransparentStreamGetPositionRequestMessage) { TransparentStreamGetPositionRequestMessageReceived(transparentStreamMessageBase); } else if (transparentStreamMessageBase is TransparentStreamGetReadTimeoutRequestMessage) { TransparentStreamGetReadTimeoutRequestMessageReceived(transparentStreamMessageBase); } else if (transparentStreamMessageBase is TransparentStreamGetWriteTimeoutRequestMessage) { TransparentStreamGetWriteTimeoutRequestMessageReceived(transparentStreamMessageBase); } else if (transparentStreamMessageBase is TransparentStreamReadRequestMessage) { TransparentStreamReadRequestMessageReceived(transparentStreamMessageBase); } else if (transparentStreamMessageBase is TransparentStreamSeekRequestMessage) { TransparentStreamSeekRequestMessageReceived(transparentStreamMessageBase); } else if (transparentStreamMessageBase is TransparentStreamSetLengthRequestMessage) { TransparentStreamSetLengthRequestMessageReceived(transparentStreamMessageBase); } else if (transparentStreamMessageBase is TransparentStreamSetPositionRequestMessage) { TransparentStreamSetPositionRequestMessageReceived(transparentStreamMessageBase); } else if (transparentStreamMessageBase is TransparentStreamSetReadTimeoutRequestMessage) { TransparentStreamSetReadTimeoutRequestMessageReceived(transparentStreamMessageBase); } else if (transparentStreamMessageBase is TransparentStreamSetWriteTimeoutRequestMessage) { TransparentStreamSetWriteTimeoutRequestMessageReceived(transparentStreamMessageBase); } else if (transparentStreamMessageBase is TransparentStreamWriteRequestMessage) { TransparentStreamWriteRequestMessageReceived(transparentStreamMessageBase); } }
void TransparentStreamWriteRequestMessageReceived(TransparentStreamMessageBase transparentStreamMessageBase) { TransparentStreamWriteRequestMessage request = (TransparentStreamWriteRequestMessage)transparentStreamMessageBase; Exception exception = null; try { baseStream.BeginWrite (request.Buffer, 0, request.Buffer.Length, (ar) => { try { baseStream.EndWrite (ar); } catch (Exception ex) { objectBusSession.SendMessage (new TransparentStreamWriteResponseMessage (streamID, request.ID, ex)); } }, request.Buffer); } catch (Exception ex) { exception = ex; objectBusSession.SendMessage (new TransparentStreamWriteResponseMessage (streamID, request.ID, exception)); } }
void TransparentStreamWriteResponseMessageReceived (TransparentStreamMessageBase transparentStreamMessageBase) { if (transparentStreamMessageBase == null) throw new ArgumentNullException ("transparentStreamMessageBase"); if (transparentStreamMessageBase.StreamID != streamID) throw new Exception ("TransparentStreamMessageBase instance does not belong to this stream"); if (!(transparentStreamMessageBase is TransparentStreamWriteResponseMessage)) { throw new ArgumentException ("transparentStreamMessageBase must be of type TransparentStreamWriteResponseMessage."); } TransparentStreamWriteResponseMessage response = (TransparentStreamWriteResponseMessage)transparentStreamMessageBase; TransparentStreamAsyncResult ar; pendingWriteRequests.TryRemove (response.RequestID, out ar); ar.Set (response); }
void TransparentStreamReadResponseMessageReceived (TransparentStreamMessageBase transparentStreamMessageBase) { if (transparentStreamMessageBase == null) throw new ArgumentNullException ("transparentStreamMessageBase"); if (transparentStreamMessageBase.StreamID != streamID) throw new Exception ("TransparentStreamMessageBase instance does not belong to this stream"); if (!(transparentStreamMessageBase is TransparentStreamReadResponseMessage)) { throw new ArgumentException ("transparentStreamMessageBase must be of type TransparentStreamReadResponseMessage."); } TransparentStreamReadResponseMessage response = (TransparentStreamReadResponseMessage)transparentStreamMessageBase; Tuple <TransparentStreamAsyncResult, byte[], int, int> tuple; pendingReadRequests.TryGetValue (response.RequestID, out tuple); tuple.Item1.Set (response); }
bool TransparentStreamCloseRequestMessageReceived(TransparentStreamMessageBase transparentStreamMessageBase) { TransparentStreamCloseRequestMessage request = (TransparentStreamCloseRequestMessage)transparentStreamMessageBase; Exception exception = null; try { baseStream.Close (); } catch (Exception ex) { exception = ex; } objectBusSession.SendMessage (new TransparentStreamCloseResponseMessage (streamID, request.ID, exception)); return (exception == null); }
void TransparentStreamCanWriteRequestMessageReceived(TransparentStreamMessageBase transparentStreamMessageBase) { TransparentStreamCanWriteRequestMessage request = (TransparentStreamCanWriteRequestMessage)transparentStreamMessageBase; Exception exception = null; bool canWrite = false; try { canWrite = baseStream.CanWrite; } catch (Exception ex) { exception = ex; } objectBusSession.SendMessage (new TransparentStreamCanWriteResponseMessage (streamID, request.ID, canWrite, exception)); }
void TransparentStreamGetReadTimeoutRequestMessageReceived(TransparentStreamMessageBase transparentStreamMessageBase) { TransparentStreamGetReadTimeoutRequestMessage request = (TransparentStreamGetReadTimeoutRequestMessage)transparentStreamMessageBase; Exception exception = null; int readTimeout = -1; try { readTimeout = baseStream.ReadTimeout; } catch (Exception ex) { exception = ex; } objectBusSession.SendMessage (new TransparentStreamGetReadTimeoutResponseMessage (streamID, request.ID, readTimeout, exception)); }
void TransparentStreamGetPositionRequestMessageReceived(TransparentStreamMessageBase transparentStreamMessageBase) { TransparentStreamGetPositionRequestMessage request = (TransparentStreamGetPositionRequestMessage)transparentStreamMessageBase; Exception exception = null; long position = -1; try { position = baseStream.Length; } catch (Exception ex) { exception = ex; } objectBusSession.SendMessage (new TransparentStreamGetPositionResponseMessage (streamID, request.ID, position, exception)); }
void TransparentStreamReadRequestMessageReceived(TransparentStreamMessageBase transparentStreamMessageBase) { TransparentStreamReadRequestMessage request = (TransparentStreamReadRequestMessage)transparentStreamMessageBase; byte[] buffer = new byte[request.Count]; try { baseStream.BeginRead (buffer, 0, request.Count, (ar) => { try { int bytesRead = baseStream.EndRead (ar); if (bytesRead != ((byte[])ar.AsyncState).Length) { byte[] newBuffer = new byte[bytesRead]; System.Buffer.BlockCopy ((byte[])ar.AsyncState, 0, newBuffer, 0, bytesRead); objectBusSession.SendMessage (new TransparentStreamReadResponseMessage (streamID, request.ID, newBuffer, null)); } else { objectBusSession.SendMessage (new TransparentStreamReadResponseMessage (streamID, request.ID, (byte[])ar.AsyncState, null)); } } catch (Exception ex) { objectBusSession.SendMessage (new TransparentStreamReadResponseMessage (streamID, request.ID, (byte[])ar.AsyncState, ex)); } }, buffer); } catch (Exception ex) { objectBusSession.SendMessage (new TransparentStreamReadResponseMessage (streamID, request.ID, null, ex)); } }
public void EnqueueRequest(TransparentStreamMessageBase transparentStreamMessageBase) { if (transparentStreamMessageBase == null) throw new ArgumentNullException ("transparentStreamMessageBase"); if (transparentStreamMessageBase is TransparentStreamCanReadRequestMessage) { TransparentStreamCanReadRequestMessageReceived (transparentStreamMessageBase); } else if (transparentStreamMessageBase is TransparentStreamCanSeekRequestMessage) { TransparentStreamCanSeekRequestMessageReceived (transparentStreamMessageBase); } else if (transparentStreamMessageBase is TransparentStreamCanTimeoutRequestMessage) { TransparentStreamCanTimeoutRequestMessageReceived (transparentStreamMessageBase); } else if (transparentStreamMessageBase is TransparentStreamCanWriteRequestMessage) { TransparentStreamCanWriteRequestMessageReceived (transparentStreamMessageBase); } else if (transparentStreamMessageBase is TransparentStreamCloseRequestMessage) { if (TransparentStreamCloseRequestMessageReceived (transparentStreamMessageBase)) agent.RemoveStreamServer (this); } else if (transparentStreamMessageBase is TransparentStreamFlushRequestMessage) { TransparentStreamFlushRequestMessageReceived (transparentStreamMessageBase); } else if (transparentStreamMessageBase is TransparentStreamGetLengthRequestMessage) { TransparentStreamGetLengthRequestMessageReceived (transparentStreamMessageBase); } else if (transparentStreamMessageBase is TransparentStreamGetPositionRequestMessage) { TransparentStreamGetPositionRequestMessageReceived (transparentStreamMessageBase); } else if (transparentStreamMessageBase is TransparentStreamGetReadTimeoutRequestMessage) { TransparentStreamGetReadTimeoutRequestMessageReceived (transparentStreamMessageBase); } else if (transparentStreamMessageBase is TransparentStreamGetWriteTimeoutRequestMessage) { TransparentStreamGetWriteTimeoutRequestMessageReceived (transparentStreamMessageBase); } else if (transparentStreamMessageBase is TransparentStreamReadRequestMessage) { TransparentStreamReadRequestMessageReceived (transparentStreamMessageBase); } else if (transparentStreamMessageBase is TransparentStreamSeekRequestMessage) { TransparentStreamSeekRequestMessageReceived (transparentStreamMessageBase); } else if (transparentStreamMessageBase is TransparentStreamSetLengthRequestMessage) { TransparentStreamSetLengthRequestMessageReceived (transparentStreamMessageBase); } else if (transparentStreamMessageBase is TransparentStreamSetPositionRequestMessage) { TransparentStreamSetPositionRequestMessageReceived (transparentStreamMessageBase); } else if (transparentStreamMessageBase is TransparentStreamSetReadTimeoutRequestMessage) { TransparentStreamSetReadTimeoutRequestMessageReceived (transparentStreamMessageBase); } else if (transparentStreamMessageBase is TransparentStreamSetWriteTimeoutRequestMessage) { TransparentStreamSetWriteTimeoutRequestMessageReceived (transparentStreamMessageBase); } else if (transparentStreamMessageBase is TransparentStreamWriteRequestMessage) { TransparentStreamWriteRequestMessageReceived (transparentStreamMessageBase); } }
internal void ResponseReceived (TransparentStreamMessageBase transparentStreamMessageBase) { if (transparentStreamMessageBase is TransparentStreamCanReadResponseMessage) { TransparentStreamCanReadResponseMessageReceived (transparentStreamMessageBase); } else if (transparentStreamMessageBase is TransparentStreamCanSeekResponseMessage) { TransparentStreamCanSeekResponseMessageReceived (transparentStreamMessageBase); } else if (transparentStreamMessageBase is TransparentStreamCanTimeoutResponseMessage) { TransparentStreamCanTimeoutResponseMessageReceived (transparentStreamMessageBase); } else if (transparentStreamMessageBase is TransparentStreamCanWriteResponseMessage) { TransparentStreamCanWriteResponseMessageReceived (transparentStreamMessageBase); } else if (transparentStreamMessageBase is TransparentStreamCloseResponseMessage) { TransparentStreamCloseResponseMessageReceived (transparentStreamMessageBase); } else if (transparentStreamMessageBase is TransparentStreamFlushResponseMessage) { TransparentStreamFlushResponseMessageReceived (transparentStreamMessageBase); } else if (transparentStreamMessageBase is TransparentStreamGetLengthResponseMessage) { TransparentStreamGetLengthResponseMessageReceived (transparentStreamMessageBase); } else if (transparentStreamMessageBase is TransparentStreamGetPositionResponseMessage) { TransparentStreamGetPositionResponseMessageReceived (transparentStreamMessageBase); } else if (transparentStreamMessageBase is TransparentStreamGetReadTimeoutResponseMessage) { TransparentStreamGetReadTimeoutResponseMessageReceived (transparentStreamMessageBase); } else if (transparentStreamMessageBase is TransparentStreamGetWriteTimeoutResponseMessage) { TransparentStreamGetWriteTimeoutResponseMessageReceived (transparentStreamMessageBase); } else if (transparentStreamMessageBase is TransparentStreamReadResponseMessage) { TransparentStreamReadResponseMessageReceived (transparentStreamMessageBase); } else if (transparentStreamMessageBase is TransparentStreamSeekResponseMessage) { TransparentStreamSeekResponseMessageReceived (transparentStreamMessageBase); } else if (transparentStreamMessageBase is TransparentStreamSetLengthResponseMessage) { TransparentStreamSetLengthResponseMessageReceived (transparentStreamMessageBase); } else if (transparentStreamMessageBase is TransparentStreamSetPositionResponseMessage) { TransparentStreamSetPositionResponseMessageReceived (transparentStreamMessageBase); } else if (transparentStreamMessageBase is TransparentStreamSetReadTimeoutResponseMessage) { TransparentStreamSetReadTimeoutResponseMessageReceived (transparentStreamMessageBase); } else if (transparentStreamMessageBase is TransparentStreamSetWriteTimeoutResponseMessage) { TransparentStreamSetWriteTimeoutResponseMessageReceived (transparentStreamMessageBase); } else if (transparentStreamMessageBase is TransparentStreamWriteResponseMessage) { TransparentStreamWriteResponseMessageReceived (transparentStreamMessageBase); } }
void TransparentStreamSetWriteTimeoutRequestMessageReceived(TransparentStreamMessageBase transparentStreamMessageBase) { TransparentStreamSetWriteTimeoutRequestMessage request = (TransparentStreamSetWriteTimeoutRequestMessage)transparentStreamMessageBase; Exception exception = null; try { baseStream.WriteTimeout = request.WriteTimeout; } catch (Exception ex) { exception = ex; } objectBusSession.SendMessage (new TransparentStreamSetWriteTimeoutResponseMessage (streamID, request.ID, exception)); }
void TransparentStreamSeekRequestMessageReceived(TransparentStreamMessageBase transparentStreamMessageBase) { TransparentStreamSeekRequestMessage request = (TransparentStreamSeekRequestMessage)transparentStreamMessageBase; Exception exception = null; long seek = -1; try { seek = baseStream.Seek (request.Offset, request.SeekOrigin); } catch (Exception ex) { exception = ex; } objectBusSession.SendMessage (new TransparentStreamSeekResponseMessage (streamID, request.ID, seek, exception)); }