public void ReliableTransferMsg_Basic() { EnhancedStream es = new EnhancedMemoryStream(); ReliableTransferMsg msgIn, msgOut; Guid id = Helper.NewGuid(); Msg.ClearTypes(); Msg.LoadTypes(Assembly.GetExecutingAssembly()); msgOut = new ReliableTransferMsg(ReliableTransferMsg.ErrorCmd); msgOut.Direction = TransferDirection.Download; msgOut.TransferID = id; msgOut.Args = "Hello"; msgOut.BlockData = new byte[] { 0, 1, 2, 3, 4 }; msgOut.BlockIndex = 10; msgOut.BlockSize = 1024; msgOut.Exception = "Error"; Msg.Save(es, msgOut); es.Position = 0; msgIn = (ReliableTransferMsg)Msg.Load(es); Assert.IsNotNull(msgIn); Assert.AreEqual(TransferDirection.Download, msgIn.Direction); Assert.AreEqual(id, msgIn.TransferID); Assert.AreEqual("Hello", msgIn.Args); CollectionAssert.AreEqual(new byte[] { 0, 1, 2, 3, 4 }, msgIn.BlockData); Assert.AreEqual(10, msgIn.BlockIndex); Assert.AreEqual(1024, msgIn.BlockSize); Assert.AreEqual("Error", msgIn.Exception); }
public void OnMsg(ReliableTransferMsg msg) { if (netFail) { return; } StreamTransferSession session; ArgCollection args; AppRef appRef; AppPackageInfo packageInfo; string path; args = ArgCollection.Parse(msg.Args); appRef = AppRef.Parse(args["appref"]); if (msg.Direction == TransferDirection.Upload) { path = packageFolder.BeginTransit(appRef); session = StreamTransferSession.ServerUpload(router, msg, path); session.BeginTransfer(onTransfer, new TransferInfo(session, path, msg.Direction)); } else { packageInfo = packageFolder.GetPackageInfo(appRef); if (packageInfo == null) { throw SessionException.Create(null, "Package [{0}] cannot be found.", appRef); } path = packageInfo.FullPath; session = StreamTransferSession.ServerDownload(router, msg, path); session.BeginTransfer(onTransfer, new TransferInfo(session, path, msg.Direction)); } }
public void OnMsgDownload(ReliableTransferMsg msg) { StreamTransferSession session; session = StreamTransferSession.ServerDownload(msg._Session.Router, msg, msServer); session.SimulateCancel = simServerCancel; session.SimulateError = simServerError; session.BeginTransfer(new AsyncCallback(OnServerDone), session); serverArgs = msg.Args; }