## Uses of Class
net.i2p.data.DataStructureImpl

- Packages that use DataStructureImpl
  Package | Description
  --- | ---
  net.i2p.client | Interfaces and factories for the base I2P SDK used to develop applications that communicate through I2P.
  net.i2p.data | These classes define the common data structures used by the various I2P protocols.
  net.i2p.data.i2cp | The Invisible Internet Client Protocol (I2CP) allows applications simplified access to I2P network without requiring them to deal with the issues involved with the Invisible Internet Network Protocol (I2NP).
  net.i2p.data.i2np | This package defines the low-level messages sent between routers, called Invisible Internet Network Protocol (I2NP).
  net.i2p.data.router | Router-specific data structures and identity management classes for I2P.

- - ### Uses of DataStructureImpl in net.i2p.client

    Subclasses of DataStructureImpl in net.i2p.client
    Modifier and Type | Class and Description
    --- | ---
    `class` | `SendMessageOptions` Advanced options attached to a single outgoing I2CP message.

  - ### Uses of DataStructureImpl in net.i2p.data

    Subclasses of DataStructureImpl in net.i2p.data
    Modifier and Type | Class and Description
    --- | ---
    `class` | `Certificate` Extensible certificate system for I2P structures providing metadata and capabilities.
    `class` | `DatabaseEntry` Base class for data structures stored in the I2P network database (NetDb).
    `class` | `DateAndFlags` A six-byte Date and 2 bytes of flags, since a Date won't encroach on the top two bytes until the year 10889.
    `class` | `Destination` Defines an endpoint in the I2P network that can receive messages.
    `class` | `EncryptedLeaseSet` Implementation of EncryptedLeaseSet as specified in Proposal 123: New NetDb Entries.
    `class` | `KeyCertificate` Specialized certificate for defining cryptographic key types used in I2P identities.
    `class` | `KeysAndCert` Container for cryptographic keys and certificate as used by I2P identities.
    `class` | `Lease` Authorization grant proving a router/tunnel may receive messages for a destination.
    `class` | `Lease2` Implementation of Lease2 as specified in Proposal 123: New NetDb Entries.
    `class` | `LeaseSet` Defines the set of leases that a destination currently has available for routing messages.
    `class` | `LeaseSet2` Implementation of LeaseSet2 as specified in Proposal 123: New NetDb Entries.
    `class` | `MetaLease` Implementation of MetaLease as specified in Proposal 123: New NetDb Entries.
    `class` | `MetaLeaseSet` Implementation of MetaLeaseSet as specified in Proposal 123: New NetDb Entries.
    `class` | `Payload` Message payload container for I2P communications with encryption support.
    `class` | `VerifiedDestination` Extend Destination with methods to verify its Certificate.

  - ### Uses of DataStructureImpl in net.i2p.data.i2cp

    Subclasses of DataStructureImpl in net.i2p.data.i2cp
    Modifier and Type | Class and Description
    --- | ---
    `class` | `AbuseReason` Defines the structure for why abuse was reported either by the client to the router or by the router to the client
    `class` | `AbuseSeverity` Provides a severity level (larger numbers are more severe) in association with a client reporting abusive behavior to the router or the router reporting it to the client
    `class` | `SessionConfig` Defines the information a client must provide to create a session

  - ### Uses of DataStructureImpl in net.i2p.data.i2np

    Subclasses of DataStructureImpl in net.i2p.data.i2np
    Modifier and Type | Class and Description
    --- | ---
    `class` | `DeliveryInstructions` Contains the delivery instructions for garlic cloves.
    `class` | `GarlicClove` Contains one deliverable message encrypted to a router along with instructions and a certificate 'paying for' the delivery.

  - ### Uses of DataStructureImpl in net.i2p.data.router

    Subclasses of DataStructureImpl in net.i2p.data.router
    Modifier and Type | Class and Description
    --- | ---
    `class` | `RouterAddress` Defines a method of communicating with a router For efficiency, the options methods and structures here are unsynchronized.
    `class` | `RouterIdentity` Defines the unique identifier of a router, including any certificate or public key.
    `class` | `RouterInfo` Defines the data that a router either publishes to the global routing table or provides to trusted peers.