public CoverageCircularBuffer(int[] loggedParametersIds, int loggedParametersRateInMilliHz,
                                      int bufferWidthInSeconds, ITimeUtils <TTime> timeUtils)
        {
            m_loggedParametersIds           = loggedParametersIds;
            m_loggedParametersRateInMilliHz = loggedParametersRateInMilliHz;
            m_timeUtils = timeUtils;

            m_coverageStateMachine = new CoverageStateMachine(new FixedCoverageStateFactory());

            var bufferSize = loggedParametersRateInMilliHz * bufferWidthInSeconds / 1000;

            m_buffers = new CircularArray <double> [loggedParametersIds.Length];
            for (int i = 0; i < m_buffers.Length; i++)
            {
                m_buffers[i] = new CircularArray <double>(bufferSize, double.NaN);
            }

            m_timeZero = timeUtils.Zero();
        }
 public CircularArraySegment(CircularArray <T> circularArray, long from, long to)
 {
     m_circularArray = circularArray;
     m_from          = @from;
 }