/// <exception cref="System.IO.IOException"></exception> public override void ProcessClient(Socket4Adapter sock) { Msg message = Msg.ReadMessage(MessageDispatcher(), Transaction(), sock); if (message.Equals(Msg.Length)) { try { _currentByte = 0; _length = message.PayLoad().ReadInt(); _blob.GetStatusFrom(this); _blob.SetStatus(Status.Processing); Copy(sock, this._blob.GetClientOutputStream(), _length, true); message = Msg.ReadMessage(MessageDispatcher(), Transaction(), sock); if (message.Equals(Msg.Ok)) { this._blob.SetStatus(Status.Completed); } else { this._blob.SetStatus(Status.Error); } } catch (Exception) { } } else { if (message.Equals(Msg.Error)) { this._blob.SetStatus(Status.Error); } } }
/// <exception cref="System.IO.IOException"></exception> public override void ProcessClient(Socket4Adapter sock) { Msg message = Msg.ReadMessage(MessageDispatcher(), Transaction(), sock); if (message.Equals(Msg.Ok)) { try { _currentByte = 0; _length = this._blob.GetLength(); _blob.GetStatusFrom(this); _blob.SetStatus(Status.Processing); FileInputStream inBlob = this._blob.GetClientInputStream(); Copy(inBlob, sock, true); sock.Flush(); message = Msg.ReadMessage(MessageDispatcher(), Transaction(), sock); if (message.Equals(Msg.Ok)) { // make sure to load the filename to i_blob // to allow client databasefile switching Container().Deactivate(Transaction(), _blob, int.MaxValue); Container().Activate(Transaction(), _blob, new FullActivationDepth()); this._blob.SetStatus(Status.Completed); } else { this._blob.SetStatus(Status.Error); } } catch (Exception e) { Sharpen.Runtime.PrintStackTrace(e); } } }
public Msg ExpectedResponse(Msg expectedMessage) { Msg message = GetResponse(); if (expectedMessage.Equals(message)) { return message; } CheckExceptionMessage(message); throw new InvalidOperationException("Unexpected Message:" + message + " Expected:" + expectedMessage); }