void ISourceFolder.ExportMessages(IFxProxy destFolderProxy, CopyMessagesFlags flags, byte[][] entryIds) { MrsTracer.Provider.Function("StorageSourceFolder.ExportMessages({0})", new object[] { base.DisplayNameForTracing }); bool exportCompleted = false; CommonUtils.ProcessKnownExceptions(delegate { using (this.Mailbox.RHTracker.Start()) { using (FxProxyBudgetWrapper fxProxyBudgetWrapper = new FxProxyBudgetWrapper(destFolderProxy, false, new Func <IDisposable>(this.Mailbox.RHTracker.StartExclusive), new Action <uint>(this.Mailbox.RHTracker.Charge))) { this.MapiFolder.ExportMessages(fxProxyBudgetWrapper, flags, entryIds); } } exportCompleted = true; destFolderProxy.Flush(); }, delegate(Exception ex) { if (!exportCompleted) { MrsTracer.Provider.Debug("Flushing target proxy after receiving an exception.", new object[0]); CommonUtils.CatchKnownExceptions(new Action(destFolderProxy.Flush), null); } return(false); }); }
void ISourceFolder.ExportMessages(IFxProxy destFolderProxy, CopyMessagesFlags flags, byte[][] entryIds) { MrsTracer.Provider.Function("MapiSourceFolder.CopyTo", new object[0]); bool flag = false; try { using (base.Mailbox.RHTracker.Start()) { using (FxProxyBudgetWrapper fxProxyBudgetWrapper = new FxProxyBudgetWrapper(destFolderProxy, false, new Func <IDisposable>(base.Mailbox.RHTracker.StartExclusive), new Action <uint>(base.Mailbox.RHTracker.Charge))) { base.Folder.ExportMessages(fxProxyBudgetWrapper, flags, entryIds); } } flag = true; destFolderProxy.Flush(); } catch (LocalizedException) { if (!flag) { MrsTracer.Provider.Debug("Flushing target proxy after receiving an exception.", new object[0]); CommonUtils.CatchKnownExceptions(new Action(destFolderProxy.Flush), null); } throw; } }
void ISourceFolder.ExportMessages(IFxProxy destFolderProxy, CopyMessagesFlags flags, byte[][] entryIds) { base.CreateContext("ISourceFolder.ExportMessages", new DataContext[] { new SimpleValueDataContext("Flags", flags), new EntryIDsDataContext(entryIds) }).Execute(delegate { ((ISourceFolder)this.WrappedObject).ExportMessages(destFolderProxy, flags, entryIds); }, true); }
public void FolderExportMessages(ISourceFolder folder, CopyMessagesFlags flags, byte[][] entryIds) { this.RunExportThread(delegate { using (BufferedTransmitter bufferedTransmitter = new BufferedTransmitter(this, this.service.ExportBufferSizeFromMrsKB, false, this.service.UseBufferring, this.service.UseCompression)) { using (AsynchronousTransmitter asynchronousTransmitter = new AsynchronousTransmitter(bufferedTransmitter, false)) { using (FxProxyTransmitter fxProxyTransmitter = new FxProxyTransmitter(asynchronousTransmitter, false)) { folder.ExportMessages(fxProxyTransmitter, flags, entryIds); } } } }); }
void ISourceFolder.ExportMessages(IFxProxy destFolderProxy, CopyMessagesFlags flags, byte[][] entryIds) { MrsTracer.ProxyClient.Function("ISourceFolder.ExportMessages({0}): {1}", new object[] { flags, base.FolderName }); byte[] objectData = destFolderProxy.GetObjectData(); DataExportBatch dataExportBatch = base.MrsProxy.ISourceFolder_ExportMessages(base.Handle, (int)flags, entryIds, objectData); long dataExportHandle = dataExportBatch.DataExportHandle; using (FxProxyReceiver fxProxyReceiver = new FxProxyReceiver(destFolderProxy, false)) { using (BufferedReceiver bufferedReceiver = new BufferedReceiver(fxProxyReceiver, false, base.MrsProxyClient.UseBuffering, base.MrsProxyClient.UseCompression)) { RemoteDataExport.ExportRoutine(base.MrsProxy, dataExportHandle, bufferedReceiver, dataExportBatch, base.MrsProxyClient.UseCompression); } } }
void ISourceFolder.ExportMessages(IFxProxy destFolderProxy, CopyMessagesFlags flags, byte[][] entryIds) { throw new NotImplementedException(); }