Пример #1
0
        internal StreamLog(StreamLogManager streamLogManager,
                           StreamLogState state,
                           int ratePerMinuteHint = 0,
                           string textId         = null)
        {
            _streamLogManager = streamLogManager;
            State             = state;

            WriteMode       = state.GetWriteMode();
            _streamLogFlags = State.StreamLogFlags;

            if (state.GetRatePerMinute() == 0)
            {
                if (ratePerMinuteHint > 0)
                {
                    // hinted rate stored as negative
                    State.SetRatePerMinute(-ratePerMinuteHint);
                }
                else
                {
                    State.SetRatePerMinute(MinChunkSize);
                }
            }
            else
            {
                if (ratePerMinuteHint > 0 && Slid != StreamLogId.Log0Id)
                {
                    // hinted rate stored as negative
                    State.SetRatePerMinute(-ratePerMinuteHint);
                }
            }

            // TODO State init must check for RO
            if (_streamLogManager.BlockIndex.GetIsCompleted(State.StreamLogId))
            {
                State.SetIsCompleted();
            }

            _textId = textId;
        }
Пример #2
0
 public static bool Pow2Payload(this StreamLogFlags flags)
 {
     return(((byte)flags & (byte)StreamLogFlags.Pow2Payload) != 0);
 }
Пример #3
0
 public static bool DropPacked(this StreamLogFlags flags)
 {
     return(((byte)flags & (byte)StreamLogFlags.DropPacked) != 0);
 }
Пример #4
0
 public static bool NoPacking(this StreamLogFlags flags)
 {
     return(((byte)flags & (byte)StreamLogFlags.NoPacking) != 0);
 }
Пример #5
0
 public static bool NoTimestamp(this StreamLogFlags flags)
 {
     return(((byte)flags & (byte)StreamLogFlags.NoTimestamp) != 0);
 }
Пример #6
0
 public static bool IsBinary(this StreamLogFlags flags)
 {
     return(((byte)flags & (byte)StreamLogFlags.IsBinary) != 0);
 }