コード例 #1
0
        public void EntityIdsRange()
        {
            const Int32 maxShards = 20;

            foreach (var rawPacket in GetRawPacketsFromPcap(TestPcapFile.VariousBigger))
            {
                if (!RawPacketEntityIdSetter.SetEntityIdForRawPacket(rawPacket, maxShards))
                {
                    continue;
                }

                var entityId = rawPacket.EntityId;
                Assert.True(entityId >= 0);
                Assert.True(entityId < maxShards);
            }
        }
コード例 #2
0
        protected IMaybeMultipleValues <RawPacket> ParsePacket(RawCapture rawCapture)
        {
            if (rawCapture == null)
            {
                return(new ProcessRawPacketRequestError("Missing packet payload"));
            }

            var rawPacket = new RawPacket(rawCapture);

            if (!RawPacketEntityIdSetter.SetEntityIdForRawPacket(rawPacket, this.MaxNumberOfShards))
            {
                return(ProcessRawPacketFragmentsRequest.EmptyInstance);
            }

            return(rawPacket);
        }
コード例 #3
0
        public DistributionStatsReport Process(Uri pcapUri, Int32 numberOfShards)
        {
            var shardsOccurence = new UInt64[numberOfShards];
            var shardsSize      = new UInt64[numberOfShards];

            foreach (var rawPacket in this.LoadRawPacketsFromPcap(pcapUri))
            {
                if (!RawPacketEntityIdSetter.SetEntityIdForRawPacket(rawPacket, numberOfShards))
                {
                    continue;
                }

                shardsOccurence[rawPacket.EntityId]++;
                shardsSize[rawPacket.EntityId] += (UInt64)rawPacket.RawPacketData.Length;
            }

            var report = new DistributionStatsReport
            {
                ShardsOccurence = shardsOccurence,
                ShardsSize      = shardsSize
            };

            return(report);
        }