protected override FastTransferBlock MapiGetBuffer(out int residualCacheSize, out bool doneInCache) { FastTransferBlock buffer = this.synchronizer.GetBuffer(out residualCacheSize, out doneInCache); if (buffer.Progress > 0U && !this.reportedMessagesWereDownloaded) { base.CoreFolder.Session.MessagesWereDownloaded = true; this.reportedMessagesWereDownloaded = true; } return(buffer); }
private void InternalGetBuffer(out byte[] buffer, out uint steps, out uint progress, out FastTransferState state, out int residualCacheSize, out bool doneInCache) { StoreSession session = this.folder.Session; bool flag = false; try { if (session != null) { session.BeginMapiCall(); session.BeginServerHealthCall(); flag = true; } if (StorageGlobals.MapiTestHookBeforeCall != null) { StorageGlobals.MapiTestHookBeforeCall(MethodBase.GetCurrentMethod()); } FastTransferBlock fastTransferBlock = this.MapiGetBuffer(out residualCacheSize, out doneInCache); buffer = fastTransferBlock.Buffer; steps = fastTransferBlock.Steps; progress = fastTransferBlock.Progress; state = (FastTransferState)fastTransferBlock.State; } catch (MapiPermanentException ex) { throw StorageGlobals.TranslateMapiException(ServerStrings.CannotGetSynchronizeBuffers(typeof(SynchronizerProviderBase)), ex, session, this, "{0}. MapiException = {1}.", new object[] { string.Format("SynchronizerProviderBase.GetBuffer. Call to GetBuffer failed.", new object[0]), ex }); } catch (MapiRetryableException ex2) { throw StorageGlobals.TranslateMapiException(ServerStrings.CannotGetSynchronizeBuffers(typeof(SynchronizerProviderBase)), ex2, session, this, "{0}. MapiException = {1}.", new object[] { string.Format("SynchronizerProviderBase.GetBuffer. Call to GetBuffer failed.", new object[0]), ex2 }); } finally { try { if (session != null) { session.EndMapiCall(); if (flag) { session.EndServerHealthCall(); } } } finally { if (StorageGlobals.MapiTestHookAfterCall != null) { StorageGlobals.MapiTestHookAfterCall(MethodBase.GetCurrentMethod()); } } } }