internal virtual BlobImpl ServerGetBlobImpl() { BlobImpl blobImpl = null; var id = _payLoad.ReadInt(); lock (ContainerLock()) { blobImpl = (BlobImpl)Container().GetByID(Transaction(), id); Container().Activate(Transaction(), blobImpl, new FixedActivationDepth(3)); } return(blobImpl); }
/// <exception cref="System.IO.IOException"></exception> public virtual void ReadBlobFrom(Transaction trans, BlobImpl blob) { MsgBlob msg = null; lock (Lock()) { Store(blob); int id = (int)GetID(blob); msg = (MsgBlob)Msg.WriteBlob.GetWriterForInt(trans, id); msg._blob = blob; blob.SetStatus(Status.Queued); } ProcessBlobMessage(msg); }
public virtual void ProcessAtServer() { try { BlobImpl blobImpl = this.ServerGetBlobImpl(); if (blobImpl != null) { blobImpl.SetTrans(Transaction()); Sharpen.IO.File file = blobImpl.ServerFile(null, true); Socket4Adapter sock = ServerMessageDispatcher().Socket(); Msg.Ok.Write(sock); FileOutputStream fout = new FileOutputStream(file); Copy(sock, fout, blobImpl.GetLength(), false); Msg.Ok.Write(sock); } } catch (Exception) { } }
public virtual void ProcessAtServer() { try { BlobImpl blobImpl = this.ServerGetBlobImpl(); if (blobImpl != null) { blobImpl.SetTrans(Transaction()); Sharpen.IO.File file = blobImpl.ServerFile(null, false); int length = (int)file.Length(); Socket4Adapter sock = ServerMessageDispatcher().Socket(); Msg.Length.GetWriterForInt(Transaction(), length).Write(sock); FileInputStream fin = new FileInputStream(file); Copy(fin, sock, false); sock.Flush(); Msg.Ok.Write(sock); } } catch (Exception) { Write(Msg.Error); } }