## Uses of Interface
org.jgroups.util.Streamable

Packages that use Streamable
Package | Description
--- | ---
org.jgroups | Provides top-level public JGroups classes such as Channel, Message, etc.
org.jgroups.auth |
org.jgroups.blocks | Provides building blocks that are layered on top of channels.
org.jgroups.blocks.executor |
org.jgroups.blocks.locking |
org.jgroups.blocks.mux |
org.jgroups.demos | Provides demonstrations of JGroups functionality.
org.jgroups.mux |
org.jgroups.protocols | Provides implementations of transport protocols which are responsible for sending and receiving messages to/from the network.
org.jgroups.protocols.pbcast | Supports probabilistic broadcasts.
org.jgroups.stack | Support for managing protocol stacks.
org.jgroups.util | Provides useful functionality which cannot be assigned to any particular other package.

### Uses of Streamable in org.jgroups

Subinterfaces of Streamable in org.jgroups
Modifier and Type | Interface and Description
--- | ---
`interface` | `Address` Abstract address.
`interface` | `PhysicalAddress` Represents a physical (as opposed to logical) address

Classes in org.jgroups that implement Streamable
Modifier and Type | Class and Description
--- | ---
`class` | `Header` Abstract base class for all headers to be added to a Message.
`class` | `MergeView` A view that is sent as a result of a merge.
`class` | `Message` A Message encapsulates data sent to members of a group.
`class` | `View` A view is a local representation of the current membership of a group.
`class` | `ViewId` ViewIds are used for ordering views (each view has a ViewId and a list of members).

### Uses of Streamable in org.jgroups.auth

Classes in org.jgroups.auth that implement Streamable
Modifier and Type | Class and Description
--- | ---
`class` | `AuthToken` Abstract AuthToken class used by implementations of AUTH, e.g.
`class` | `FixedMembershipToken` The FixedMemberShipToken object predefines a list of IP addresses and ports that can join the group.
`class` | `MD5Token` This is an example of using a preshared token that is encrypted using an MD5/SHA hash for authentication purposes.
`class` | `RegexMembership` Matches the IP address or logical name of a joiner against a regular expression and accepts or rejects based on pattern matching
`class` | `SimpleToken` This is an example of using a preshared token for authentication purposes.
`class` | `X509Token` This is an example of using a preshared token that is encrypted using an X509 certificate for authentication purposes.

### Uses of Streamable in org.jgroups.blocks

Classes in org.jgroups.blocks that implement Streamable
Modifier and Type | Class and Description
--- | ---
`static class` | `GridFile.Metadata`
`static class` | `PullPushAdapter.PullHeader` Deprecated.
`static class` | `RequestCorrelator.Header` The header for `RequestCorrelator` messages
`static class` | `RequestCorrelator.MultiDestinationHeader`

### Uses of Streamable in org.jgroups.blocks.executor

Classes in org.jgroups.blocks.executor that implement Streamable
Modifier and Type | Class and Description
--- | ---
`protected static class` | `Executions.StreamableCallable`
`protected static class` | `ExecutionService.RunnableAdapter<T>` This is copied from `Executors` class which contains RunnableAdapter.

### Uses of Streamable in org.jgroups.blocks.locking

Classes in org.jgroups.blocks.locking that implement Streamable
Modifier and Type | Class and Description
--- | ---
`class` | `Owner` Represents the owner of a lock.

### Uses of Streamable in org.jgroups.blocks.mux

Classes in org.jgroups.blocks.mux that implement Streamable
Modifier and Type | Class and Description
--- | ---
`class` | `MuxHeader` Header that identifies the target handler for multiplexed dispatches.

### Uses of Streamable in org.jgroups.demos

Classes in org.jgroups.demos that implement Streamable
Modifier and Type | Class and Description
--- | ---
`class` | `DrawCommand` Encapsulates information about a draw command.
`static class` | `ExecutionServiceDemo.SortingByteCallable`
`static class` | `ExecutionServiceDemo.SortingTwoByteCallable` Sorts 2 byte arrys into a larger byte array

### Uses of Streamable in org.jgroups.mux

Classes in org.jgroups.mux that implement Streamable
Modifier and Type | Class and Description
--- | ---
`class` | `ServiceInfo` Class used for service state communication between Multiplexers

### Uses of Streamable in org.jgroups.protocols

Classes in org.jgroups.protocols that implement Streamable
Modifier and Type | Class and Description
--- | ---
`class` | `AuthHeader` AuthHeader is a holder object for the token that is passed from the joiner to the coordinator
`static class` | `COMPRESS.CompressHeader`
`static class` | `DAISYCHAIN.DaisyHeader`
`static class` | `DISCARD.DiscardHeader`
`static class` | `ENCRYPT.EncryptHeader`
`static class` | `Executing.ExecutorHeader`
`protected static class` | `Executing.Request`
`class` | `FcHeader` Header used by various flow control protocols
`static class` | `FD_ALL.HeartbeatHeader`
`static class` | `FD_SIMPLE.FdHeader`
`static class` | `FD_SOCK.FdHeader`
`static class` | `FD.FdHeader`
`class` | `FragHeader`
`static class` | `HTOTAL.HTotalHeader`
`static class` | `Locking.LockingHeader`
`protected static class` | `Locking.Request`
`static class` | `MERGE3.CoordAnnouncement`
`static class` | `MERGEFAST.MergefastHeader`
`class` | `PingData` Encapsulates information about a cluster node, e.g.
`class` | `PingHeader`

`class`

`PrioHeader`
This Header class is used in conjunction with the PRIO protocol to prioritize message sending/receiving Priority values are from 0 to 255 where 0 is the highest priority Example of setting a message priority: `// Create a message to send to everyone Message message = new Message( null, null, messagePayload ); // Add the priority protocol header PrioHeader header = new PrioHeader( 1 ); short protocolId = ClassConfigurator.getProtocolId(PRIO.class); message.putHeader( protocolId, header);`

`static class` | `RELAY.RelayHeader`
`protected static class` | `RELAY.ViewData` Contains local and remote views, and UUID information
`static class` | `SCOPE.ScopeHeader`
`static class` | `SEQUENCER.SequencerHeader`
`static class` | `SFC.Header` Deprecated.
`static class` | `SMACK.SmackHeader`
`static class` | `STOMP.StompHeader`
`class` | `TpHeader` Generic transport header, used by TP.
`static class` | `UNICAST.UnicastHeader` The following types and fields are serialized:
`static class` | `UNICAST2.Unicast2Header` The following types and fields are serialized:
`static class` | `VERIFY_SUSPECT.VerifyHeader`
`static class` | `VIEW_SYNC.ViewSyncHeader`

### Uses of Streamable in org.jgroups.protocols.pbcast

Classes in org.jgroups.protocols.pbcast that implement Streamable
Modifier and Type | Class and Description
--- | ---
`static class` | `FLUSH.FlushHeader`
`static class` | `GMS.GmsHeader`
`class` | `JoinRsp` Result of a JOIN request (sent by the GMS client).
`class` | `NakAckHeader`
`static class` | `STABLE.StableHeader`
`static class` | `STATE_TRANSFER.StateHeader` Wraps data for a state request/response.
`static class` | `STREAMING_STATE_TRANSFER.StateHeader`

### Uses of Streamable in org.jgroups.stack

Classes in org.jgroups.stack that implement Streamable
Modifier and Type | Class and Description
--- | ---
`class` | `GossipData` Encapsulates data sent between GossipRouter and GossipClient
`class` | `IpAddress` Network-dependent address (Internet).

### Uses of Streamable in org.jgroups.util

Classes in org.jgroups.util that implement Streamable
Modifier and Type | Class and Description
--- | ---
`class` | `AdditionalDataUUID` Subclass of `UUID` which adds a string as payload.
`class` | `Digest` A message digest, which is used by the PBCAST layer for gossiping (also used by NAKACK for keeping track of current seqnos for all members).
`static class` | `Digest.Entry` Class keeping track of the lowest and highest sequence numbers delivered, and the highest sequence numbers received, per member.
`class` | `MergeId` ID to uniquely identify a merge
`class` | `MutableDigest` A mutable version of Digest (which is immutable
`class` | `PayloadUUID` Subclass of `UUID` which adds a string as payload.
`class` | `Range`
`class` | `SingletonAddress` Address with a cluster name.
`class` | `TopologyUUID` Subclass of `UUID` which adds 3 strings (siteId, rackId and machineId)as payload.
`class` | `UUID` Logical address which is unique over space and time.

Methods in org.jgroups.util that return Streamable
Modifier and Type | Method and Description
--- | ---
`static Streamable` | Util.`readGenericStreamable(java.io.DataInputStream in)`
`static Streamable` | Util.`readStreamable(java.lang.Class clazz, java.io.DataInputStream in)`
`static Streamable` | Util.`streamableFromByteBuffer(java.lang.Class cl, byte[] buffer)`
`static Streamable` | Util.`streamableFromByteBuffer(java.lang.Class cl, byte[] buffer, int offset, int length)`

Methods in org.jgroups.util with parameters of type Streamable
Modifier and Type | Method and Description
--- | ---
`static int` | Util.`sizeOf(Streamable inst)`
`static byte[]` | Util.`streamableToByteBuffer(Streamable obj)`
`static void` | Util.`writeGenericStreamable(Streamable obj, java.io.DataOutputStream out)`
`static void` | Util.`writeStreamable(Streamable obj, java.io.DataOutputStream out)`