Package | Description |
---|---|
brown.tracingplane.baggageprotocol |
Defines an encoding scheme for nested data structures using atoms.
|
brown.tracingplane.bdl |
Library classes used by BDL-generated objects, including the
BDLContext implementation of
BaggageContext . |
brown.tracingplane.impl |
Implementations of
BaggageContext at several different points in the Tracing Plane. |
Class and Description |
---|
AtomPrefixes.AtomPrefix
The first byte of an atom is its prefix, which contains some metadata about the atom; the first bit of an atom
denotes whether it is a data atom or header atom.
|
AtomPrefixes.DataPrefix |
AtomPrefixes.HeaderPrefix
The first byte of a header atom also specifies whether it is indexed or keyed, and the header's level
|
AtomPrefixes.IndexedHeaderPrefix
The payload of an indexed header is expected to be an unsigned variable-length lexicographically consistent
integer:
UnsignedLexVarint |
AtomPrefixes.KeyedHeaderPrefix
The payload of a keyed header is expected to be arbitrary length bytes.
|
AtomPrefixTypes.AtomType
The first bit of a prefix is the atom type:
0 is a data atom
1 is a header atom There is also an overflow marker BaggageAtoms#OVERFLOW_MARKER that is just the empty byte array (ie, it
has no prefix) and therefore lexicographically less than all other atoms |
AtomPrefixTypes.BagOptionsInPrefix
Some bag options are contained within the header prefix -- currently only the
BagOptions.MergeBehavior |
AtomPrefixTypes.HeaderType
There are two different types of header.
|
AtomPrefixTypes.Level
Levels are used by headers.
|
BaggageLayerException |
BaggageReader
Iterates over a list of atoms, interpreting them according to the baggage protocol; readers interpret data atoms and construct corresponding object representations.
|
BaggageWriter
Used for writing out baggage atoms that adhere to the baggage protocol
TODO: comments and documentation
|
BagKey
A
BagKey is used to look up data items and child bags within a baggage instance. |
BagKey.Indexed
An Indexed BagKey is one that uses an integer as identifier (versus arbitrary bytes for a
BagKey.Keyed key) |
BagKey.Keyed
A Keyed BagKey is one that uses arbitrary bytes as identifier (versus an integer for
BagKey.Indexed key) |
BagOptions
The only additional option that we propagate is the merge behavior.
|
BagOptions.MergeBehavior |
ElementReader
Iterator-like interface for reading data atoms
|
ElementWriter
Iterator-like interface for writing atoms.
|
Class and Description |
---|
BaggageReader
Iterates over a list of atoms, interpreting them according to the baggage protocol; readers interpret data atoms and construct corresponding object representations.
|
BaggageWriter
Used for writing out baggage atoms that adhere to the baggage protocol
TODO: comments and documentation
|
ElementReader
Iterator-like interface for reading data atoms
|
ElementWriter
Iterator-like interface for writing atoms.
|
Class and Description |
---|
BagKey
A
BagKey is used to look up data items and child bags within a baggage instance. |