Class BinarySerializationUtils
- java.lang.Object
-
- io.opencensus.implcore.tags.propagation.BinarySerializationUtils
-
final class BinarySerializationUtils extends java.lang.Object
Methods for serializing and deserializingTagContext
s.The format defined in this class is shared across all implementations of OpenCensus. It allows tags to propagate across requests.
OpenCensus tag context encoding:
- Tags are encoded in single byte sequence. The version 0 format is:
<version_id><encoded_tags>
<version_id> == a single byte, value 0
<encoded_tags> == (<tag_field_id><tag_encoding>)*
<tag_field_id>
== a single byte, value 0<tag_encoding>
:<tag_key_len><tag_key><tag_val_len><tag_val>
<tag_key_len>
== varint encoded integer<tag_key>
== tag_key_len bytes comprising tag key name<tag_val_len>
== varint encoded integer<tag_val>
== tag_val_len bytes comprising UTF-8 string
-
-
Field Summary
Fields Modifier and Type Field Description private static TagMetadata
METADATA_UNLIMITED_PROPAGATION
(package private) static int
TAG_FIELD_ID
(package private) static int
TAGCONTEXT_SERIALIZED_SIZE_LIMIT
(package private) static int
VERSION_ID
-
Constructor Summary
Constructors Modifier Constructor Description private
BinarySerializationUtils()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description private static TagKey
createTagKey(java.lang.String name)
private static TagValue
createTagValue(TagKey key, java.lang.String value)
private static java.lang.String
decodeString(java.nio.ByteBuffer buffer)
(package private) static TagMapImpl
deserializeBinary(byte[] bytes)
private static void
encodeString(java.lang.String input, com.google.common.io.ByteArrayDataOutput byteArrayDataOutput)
private static void
encodeTag(Tag tag, com.google.common.io.ByteArrayDataOutput byteArrayDataOutput)
private static java.util.Map<TagKey,TagValueWithMetadata>
parseTags(java.nio.ByteBuffer buffer)
private static void
putVarInt(int input, com.google.common.io.ByteArrayDataOutput byteArrayDataOutput)
(package private) static byte[]
serializeBinary(TagContext tags)
-
-
-
Field Detail
-
METADATA_UNLIMITED_PROPAGATION
private static final TagMetadata METADATA_UNLIMITED_PROPAGATION
-
VERSION_ID
static final int VERSION_ID
- See Also:
- Constant Field Values
-
TAG_FIELD_ID
static final int TAG_FIELD_ID
- See Also:
- Constant Field Values
-
TAGCONTEXT_SERIALIZED_SIZE_LIMIT
static final int TAGCONTEXT_SERIALIZED_SIZE_LIMIT
- See Also:
- Constant Field Values
-
-
Method Detail
-
serializeBinary
static byte[] serializeBinary(TagContext tags) throws TagContextSerializationException
- Throws:
TagContextSerializationException
-
deserializeBinary
static TagMapImpl deserializeBinary(byte[] bytes) throws TagContextDeserializationException
-
parseTags
private static java.util.Map<TagKey,TagValueWithMetadata> parseTags(java.nio.ByteBuffer buffer) throws TagContextDeserializationException
-
createTagKey
private static final TagKey createTagKey(java.lang.String name) throws TagContextDeserializationException
-
createTagValue
private static final TagValue createTagValue(TagKey key, java.lang.String value) throws TagContextDeserializationException
-
encodeTag
private static final void encodeTag(Tag tag, com.google.common.io.ByteArrayDataOutput byteArrayDataOutput)
-
encodeString
private static final void encodeString(java.lang.String input, com.google.common.io.ByteArrayDataOutput byteArrayDataOutput)
-
putVarInt
private static final void putVarInt(int input, com.google.common.io.ByteArrayDataOutput byteArrayDataOutput)
-
decodeString
private static final java.lang.String decodeString(java.nio.ByteBuffer buffer)
-
-