Esempio n. 1
0
        /// <summary>Sequence of blobs in the cluster, with sequence numbers</summary>
        static IEnumerable <sSeekPos> listBlobsInCluster(ReusableCluster cluster, ulong trackNumber, int clusterIdx)
        {
            sSeekPos result = default;

            result.cluster = clusterIdx;
            result.blob    = 0;
            long time = (long)cluster.timestamp;

            // The filtering code needs to match what's in ReaderBase.loadCluster or this gonna fail, miserably.
            if (null != cluster.simpleBlock)
            {
                foreach (var b in cluster.simpleBlock)
                {
                    if (b.trackNumber != trackNumber)
                    {
                        continue;
                    }
                    result.time = checked ((ulong)(time + b.timestamp));
                    yield return(result);

                    result.blob++;
                }
            }
            if (null != cluster.blockGroup)
            {
                foreach (var b in cluster.blockGroup)
                {
                    if (b.block.trackNumber != trackNumber)
                    {
                        continue;
                    }
                    result.time = checked ((ulong)(time + b.block.timestamp));
                    result.blob++;
                }
            }
        }
Esempio n. 2
0
 static sSeekPos?nullable(sSeekPos sp) => sp;