See: Description
| Interface | Description |
|---|---|
| _Private_IonManagedWriter | Deprecated
This is a private API subject to change without notice.
|
| _Private_IonRawWriter | Deprecated
This is a private API subject to change without notice.
|
| Class | Description |
|---|---|
| _Private_IonManagedBinaryWriterBuilder |
Constructs instances of binary
IonWriter. |
| _PrivateIon_HashTrampoline | Deprecated |
| IntList |
A list of integer values that grows as necessary.
|
| Enum | Description |
|---|---|
| _Private_IonManagedBinaryWriterBuilder.AllocatorMode |
IonWriter.
This package limits most of its APIs to package-level access, the public API of note is contained within
the _Private_IonManagedBinaryWriterBuilder which builds instances of
IonManagedBinaryWriter. See the below section for what Managed means
in this context.
Block API.
There are two factory type APIs to actually get a Block instance:
BlockAllocator which vend blocks of a particular fixed size
and BlockAllocatorProvider which creates BlockAllocator
instances.
The primary reason for this level of indirection is flexibility for the underlying implementations of Block
and BlockAllocator. These APIs are not required to be thread-safe, whereas
BlockAllocatorProvider is required to be thread-safe.
The APIs for BlockAllocator and Block
follow the resource pattern (similar in principle to I/O streams), and should be closed when no longer needed
to allow implementation resources to be released or re-used.
IonRawBinaryWriter deals with the low-level encoding considerations of the
Ion format. The WriteBuffer is used closely with this implementation to
deal with the Ion sub-field encodings (e.g. VarInt, VarUInt, and UTF-8).
IonManagedBinaryWriter is layered on top of the IonRawBinaryWriter.
In particular, it intercepts symbol, annotation, field names and handles the mechanics of symbol table management
transparently to the user.