Exemplo n.º 1
0
        public IHerculesTagsBuilder AddContainer(string key, Action <IHerculesTagsBuilder> value)
        {
            writer.WriteWithByteLength(key);
            writer.Write(TagType.Container);

            using (var builder = new BinaryCountingTagsBuilder(writer))
                value.Invoke(builder);

            return(this);
        }
Exemplo n.º 2
0
        public BinaryEventBuilder(IBinaryWriter binaryWriter, Func <DateTimeOffset> timeProvider, byte protocolVersion)
        {
            this.binaryWriter = binaryWriter.EnsureBigEndian();
            this.timeProvider = timeProvider;

            binaryWriter.Write(protocolVersion);

            timestampPosition = binaryWriter.Position;
            binaryWriter.Write(0L);
            binaryWriter.Write(GuidGenerator.GenerateNotCryptoQualityGuid());

            tagsBuilder = new BinaryCountingTagsBuilder(binaryWriter);
        }
Exemplo n.º 3
0
        public IHerculesTagsBuilder AddVectorOfContainers(string key, IReadOnlyList <Action <IHerculesTagsBuilder> > values)
        {
            writer.WriteWithByteLength(key);
            writer.Write(TagType.Vector);
            writer.Write(TagType.Container);
            writer.Write(values.Count);

            foreach (var action in values)
            {
                using (var builder = new BinaryCountingTagsBuilder(writer))
                    action(builder);
            }

            return(this);
        }