private void WriteMetricMetadataIndex(BinaryWriter writer, IMetricMetadata value) { uint index; if (!this.metadataIndexes.TryGetValue(value, out index)) { index = this.nextMetadataIndex++; this.metadataIndexes.Add(value, index); this.metadatas.Add(value); if (this.estimatePacketSize) { // In versions 0-2 Metric Namespace was part of the Metric data, from version 3 it became a part of Metric Metadata if (this.version >= 3) { this.currentMetadataDictionaryBlockSize += SerializationUtils.EstimateUInt32InBase128Size(this.RegisterString(value.MetricNamespace)); } this.currentMetadataDictionaryBlockSize += SerializationUtils.EstimateUInt32InBase128Size(this.RegisterString(value.MetricName)); this.currentMetadataDictionaryBlockSize += SerializationUtils.EstimateUInt32InBase128Size((uint)value.DimensionsCount); for (int i = 0; i < value.DimensionsCount; ++i) { this.currentMetadataDictionaryBlockSize += SerializationUtils.EstimateUInt32InBase128Size(this.RegisterString(value.GetDimensionName(i))); } } } SerializationUtils.WriteUInt32AsBase128(writer, index); }
private void WriteMetricMetadata(BinaryWriter writer, IMetricMetadata value) { // In versions 0-2 Metric Namespace was part of the Metric data, from version 3 it became a part of Metric Metadata if (this.version >= 3) { SerializationUtils.WriteUInt32AsBase128(writer, this.RegisterString(value.MetricNamespace)); } SerializationUtils.WriteUInt32AsBase128(writer, this.RegisterString(value.MetricName)); SerializationUtils.WriteUInt32AsBase128(writer, (uint)value.DimensionsCount); for (var i = 0; i < value.DimensionsCount; ++i) { SerializationUtils.WriteUInt32AsBase128(writer, this.RegisterString(value.GetDimensionName(i))); } }