public override void Write(
            SortedRefCountedSet <object> valueSet,
            DataOutput output,
            byte[] unitKey,
            EventBeanCollatedWriter writer)
        {
            output.WriteInt(valueSet.RefSet.Count);
            foreach (var entry in valueSet.RefSet)
            {
                _inner.Write(entry.Key, output, unitKey, writer);
                output.WriteLong(entry.Value.Get());
            }

            output.WriteLong(valueSet.CountPoints);
        }
        public override SortedRefCountedSet <object> ReadValue(
            DataInput input,
            byte[] unitKey)
        {
            var valueSet = new SortedRefCountedSet <object>();
            var refSet   = valueSet.RefSet;
            int size     = input.ReadInt();

            for (int i = 0; i < size; i++)
            {
                var key = _inner.Read(input, unitKey);
                var cnt = input.ReadLong();
                refSet[key] = new AtomicLong(cnt);
            }

            valueSet.CountPoints = input.ReadLong();
            return(valueSet);
        }
 /// <summary>Ctor.  </summary>
 /// <param name="minMaxTypeEnum">enum indicating to return minimum or maximum values</param>
 /// <param name="returnType">is the value type returned by aggregator</param>
 public AggregatorMinMax(MinMaxTypeEnum minMaxTypeEnum)
 {
     _minMaxTypeEnum = minMaxTypeEnum;
     _refSet         = new SortedRefCountedSet <Object>();
 }