void IMapiFxProxy.ProcessRequest(FxOpcodes opCode, byte[] data) { switch (opCode) { case FxOpcodes.Config: this.folderProcessor = FastTransferFolderCopyTo.CreateUploadStateMachine((PstFxFolder)this.targetObject); this.uploadContext = new FastTransferUploadContext(Encoding.ASCII, NullResourceTracker.Instance, PropertyFilterFactory.IncludeAllFactory, false); this.uploadContext.PushInitial(this.folderProcessor); return; case FxOpcodes.TransferBuffer: try { this.uploadContext.PutNextBuffer(new ArraySegment <byte>(data)); return; } catch (PSTExceptionBase innerException) { throw new MailboxReplicationPermanentException(new LocalizedString("TransferBuffer"), innerException); } break; case FxOpcodes.IsInterfaceOk: case FxOpcodes.TellPartnerVersion: return; } throw new NotSupportedException(); }
protected override IFastTransferProcessor <FastTransferUploadContext> GetFxProcessor(uint transferMethod) { IFastTransferProcessor <FastTransferUploadContext> result; if (transferMethod == 1U) { result = FastTransferFolderCopyTo.CreateUploadStateMachine(base.TargetObject.FxFolder); } else { if (transferMethod != 3U) { throw new FastTransferBufferException("transferMethod", (int)transferMethod); } result = new FastTransferMessageIterator(new MessageIteratorClient(base.TargetObject.CoreFolder), true); } return(result); }