Class MarshalerContext

java.lang.Object
io.opentelemetry.exporter.internal.marshal.MarshalerContext

public final class MarshalerContext extends Object
Class for keeping marshaling state. The state consists of integers, that we call sizes, and objects, that we call data. Both integers and objects can be read from the state in the order they were added (first in, first out). Additionally, this class provides various pools and caches for objects that can be reused between marshalling attempts.

This class is internal and is hence not for public use. Its APIs are unstable and can change at any time.

  • Constructor Details

    • MarshalerContext

      public MarshalerContext()
    • MarshalerContext

      public MarshalerContext(boolean marshalStringNoAllocation, boolean marshalStringUnsafe)
  • Method Details

    • marshalStringNoAllocation

      public boolean marshalStringNoAllocation()
    • marshalStringUnsafe

      public boolean marshalStringUnsafe()
    • addSize

      public void addSize(int size)
    • addSize

      public int addSize()
    • setSize

      public void setSize(int index, int size)
    • getSize

      public int getSize()
    • addData

      public void addData(@Nullable Object o)
    • getData

      public <T> T getData(Class<T> type)
    • getTraceIdBuffer

      public byte[] getTraceIdBuffer()
      Returns a buffer that can be used to hold a trace id.
    • getSpanIdBuffer

      public byte[] getSpanIdBuffer()
      Returns a buffer that can be used to hold a span id.
    • getIdentityMap

      public <K,V> Map<K,V> getIdentityMap()
      Returns a pooled identity map.
    • getList

      public <T> List<T> getList()
      Returns a pooled list.
    • resetReadIndex

      public void resetReadIndex()
      Reset context so that serialization could be re-run.
    • reset

      public void reset()
      Reset context so that it could be reused.
    • key

      public static MarshalerContext.Key key()
    • getInstance

      public <T> T getInstance(MarshalerContext.Key key, Supplier<T> supplier)