Пример #1
0
 public bool TryWriteTick(TickIO tickIO)
 {
     if (!isInitialized)
     {
         throw new InvalidStateException("Please call one of the Initialize() methods first.");
     }
     if (isFirstTick)
     {
         HandleFirstWrite();
         isFirstTick = false;
     }
     if (isLegacy)
     {
         return(legacy.TryWriteTick(tickIO));
     }
     TryCompleteAsyncWrite();
     if (trace)
     {
         log.Trace("Writing to file buffer: " + tickIO);
     }
     if (!fileBlock.TryWriteTick(tickIO))
     {
         MoveMemoryToQueue();
         fileBlock.ReserveHeader();
         tickIO.ResetCompression();
         if (!fileBlock.TryWriteTick(tickIO))
         {
             throw new InvalidOperationException("After creating new block, writing tick failed.");
         }
         TryCompleteAsyncWrite();
         if (writeFileResult == null)
         {
             writeFileResult = writeFileAction.BeginInvoke(null, null);
         }
     }
     return(true);
 }