Class BinarySerializationUtils
- java.lang.Object
-
- io.opencensus.implcore.tags.propagation.BinarySerializationUtils
-
final class BinarySerializationUtils extends java.lang.ObjectMethods for serializing and deserializingTagContexts.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 TagMetadataMETADATA_UNLIMITED_PROPAGATION(package private) static intTAG_FIELD_ID(package private) static intTAGCONTEXT_SERIALIZED_SIZE_LIMIT(package private) static intVERSION_ID
-
Constructor Summary
Constructors Modifier Constructor Description privateBinarySerializationUtils()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description private static TagKeycreateTagKey(java.lang.String name)private static TagValuecreateTagValue(TagKey key, java.lang.String value)private static java.lang.StringdecodeString(java.nio.ByteBuffer buffer)(package private) static TagMapImpldeserializeBinary(byte[] bytes)private static voidencodeString(java.lang.String input, com.google.common.io.ByteArrayDataOutput byteArrayDataOutput)private static voidencodeTag(Tag tag, com.google.common.io.ByteArrayDataOutput byteArrayDataOutput)private static java.util.Map<TagKey,TagValueWithMetadata>parseTags(java.nio.ByteBuffer buffer)private static voidputVarInt(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)
-
-