org.jgroups.protocols.pbcast

## Class GMS.GmsHeader

- java.lang.Object
- - org.jgroups.Header
  - - org.jgroups.protocols.pbcast.GMS.GmsHeader

All Implemented Interfaces:
  Streamable

Enclosing class:
  GMS

    public static class GMS.GmsHeader
    extends Header

### Field Summary

Fields
`static byte` `CANCEL_MERGE`
`static byte` `GET_DIGEST_REQ`
`static byte` `GET_DIGEST_RSP`
`static byte` `INSTALL_DIGEST`
`static byte` `INSTALL_MERGE_VIEW`
`static byte` `INSTALL_MERGE_VIEW_OK`
`static byte` `JOIN_REQ`
`static byte` `JOIN_REQ_WITH_STATE_TRANSFER`
`static byte` `JOIN_RSP`
`static byte` `LEAVE_REQ`
`static byte` `LEAVE_RSP`
`static byte` `MERGE_REQ`
`static byte` `MERGE_RSP`
`static byte` `VIEW`
`static byte` `VIEW_ACK`

### Constructor Summary

Constructors
Constructor and Description
`GMS.GmsHeader()`
`GMS.GmsHeader(byte type)`
`GMS.GmsHeader(byte type, Address mbr)`
`GMS.GmsHeader(byte type, Address mbr, boolean useFlushIfPresent)` Used for JOIN_REQ or LEAVE_REQ header
`GMS.GmsHeader(byte type, java.util.Collection<Address> mbrs)`
`GMS.GmsHeader(byte type, JoinRsp join_rsp)` Used for JOIN_RSP header
`GMS.GmsHeader(byte type, View view)` Used for VIEW header

### Method Summary

Methods
`Address` `getMember()`
`MergeId` `getMergeId()`
`byte` `getType()`
`boolean` `isMergeRejected()`
`void` `readFrom(java.io.DataInputStream in)` Read the state of the current object (including superclasses) from instream Note that the input stream must not be closed
`void` `setMergeId(MergeId merge_id)`
`void` `setMergeRejected(boolean merge_rejected)`
`int` `size()` To be implemented by subclasses.
`java.lang.String` `toString()`
`static java.lang.String` `type2String(int type)`
`void` `writeTo(java.io.DataOutputStream out)` Write the entire state of the current object (including superclasses) to outstream.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Field Detail

#### JOIN_REQ

    public static final byte JOIN_REQ

See Also:
  Constant Field Values

#### JOIN_RSP

    public static final byte JOIN_RSP

See Also:
  Constant Field Values

#### LEAVE_REQ

    public static final byte LEAVE_REQ

See Also:
  Constant Field Values

#### LEAVE_RSP

    public static final byte LEAVE_RSP

See Also:
  Constant Field Values

#### VIEW

    public static final byte VIEW

See Also:
  Constant Field Values

#### MERGE_REQ

    public static final byte MERGE_REQ

See Also:
  Constant Field Values

#### MERGE_RSP

    public static final byte MERGE_RSP

See Also:
  Constant Field Values

#### INSTALL_MERGE_VIEW

    public static final byte INSTALL_MERGE_VIEW

See Also:
  Constant Field Values

#### CANCEL_MERGE

    public static final byte CANCEL_MERGE

See Also:
  Constant Field Values

#### VIEW_ACK

    public static final byte VIEW_ACK

See Also:
  Constant Field Values

#### JOIN_REQ_WITH_STATE_TRANSFER

    public static final byte JOIN_REQ_WITH_STATE_TRANSFER

See Also:
  Constant Field Values

#### INSTALL_MERGE_VIEW_OK

    public static final byte INSTALL_MERGE_VIEW_OK

See Also:
  Constant Field Values

#### GET_DIGEST_REQ

    public static final byte GET_DIGEST_REQ

See Also:
  Constant Field Values

#### GET_DIGEST_RSP

    public static final byte GET_DIGEST_RSP

See Also:
  Constant Field Values

#### INSTALL_DIGEST

    public static final byte INSTALL_DIGEST

See Also:
  Constant Field Values

### Constructor Detail

#### GMS.GmsHeader

    public GMS.GmsHeader()

#### GMS.GmsHeader

    public GMS.GmsHeader(byte type)

#### GMS.GmsHeader

    public GMS.GmsHeader(byte type,
                 View view)

Used for VIEW header

#### GMS.GmsHeader

    public GMS.GmsHeader(byte type,
                 Address mbr,
                 boolean useFlushIfPresent)

Used for JOIN_REQ or LEAVE_REQ header

#### GMS.GmsHeader

    public GMS.GmsHeader(byte type,
                 Address mbr)

#### GMS.GmsHeader

    public GMS.GmsHeader(byte type,
                 java.util.Collection<Address> mbrs)

#### GMS.GmsHeader

    public GMS.GmsHeader(byte type,
                 JoinRsp join_rsp)

Used for JOIN_RSP header

### Method Detail

#### getType

    public byte getType()

#### getMember

    public Address getMember()

#### getMergeId

    public MergeId getMergeId()

#### setMergeId

    public void setMergeId(MergeId merge_id)

#### isMergeRejected

    public boolean isMergeRejected()

#### setMergeRejected

    public void setMergeRejected(boolean merge_rejected)

#### toString

    public java.lang.String toString()

Overrides:
  `toString` in class `Header`

#### type2String

    public static java.lang.String type2String(int type)

#### writeTo

    public void writeTo(java.io.DataOutputStream out)
                 throws java.io.IOException

Description copied from interface: `Streamable`
Write the entire state of the current object (including superclasses) to outstream. Note that the output stream must not be closed

Throws:
  `java.io.IOException`

#### readFrom

    public void readFrom(java.io.DataInputStream in)
                  throws java.io.IOException,
                         java.lang.IllegalAccessException,
                         java.lang.InstantiationException

Description copied from interface: `Streamable`
Read the state of the current object (including superclasses) from instream Note that the input stream must not be closed

Throws:
  `java.io.IOException`
  `java.lang.IllegalAccessException`
  `java.lang.InstantiationException`

#### size

    public int size()

Description copied from class: `Header`
To be implemented by subclasses. Return the size of this object for the serialized version of it. I.e. how many bytes this object takes when flattened into a buffer. This may be different for each instance, or can be the same. This may also just be an estimation. E.g. FRAG uses it on Message to determine whether or not to fragment the message. Fragmentation itself will be accurate, because the entire message will actually be serialized into a byte buffer, so we can determine the exact size.

Specified by:
  `size` in class `Header`