Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright 2014 - 2015 Real Logic Ltd.
   *
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   *
   * http://www.apache.org/licenses/LICENSE-2.0
   *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
 package uk.co.real_logic.aeron.logbuffer;
 
 
Represents the header of the data frame for accessing meta data fields.
 
 public class Header
 {
     private int positionBitsToShift;
     private int initialTermId;
     private int offset = 0;
     private UnsafeBuffer buffer;

    
Default constructor to enable inheritance.
 
     protected Header()
     {
     }

    
Construct a header that references a buffer for the log.

Parameters:
initialTermId this stream started at.
termCapacity for each term in the log buffer.
 
     public Header(final int initialTermIdfinal int termCapacity)
     {
         this.initialTermId = initialTermId;
         this.positionBitsToShift = Integer.numberOfTrailingZeros(termCapacity);
     }

    
Get the current position to which the image has advanced on reading this message.

Returns:
the current position to which the image has advanced on reading this message.
 
     public final long position()
     {
         return LogBufferDescriptor.computePosition(termId(), termOffset() + frameLength(), positionBitsToShift, initialTermId);
     }

    
Get the number of bits the number of terms need to be shifted to get the position.

Returns:
the number of bits the number of terms need to be shifted to get the position.
 
     public final int positionBitsToShift()
     {
         return positionBitsToShift;
     }

    
Set the number of bits the number of terms need to be shifted to get the position.

Parameters:
positionBitsToShift the number of bits the number of terms need to be shifted to get the position.
 
     public final void positionBitsToShift(final int positionBitsToShift)
     {
         this.positionBitsToShift = positionBitsToShift;
     }

    
Get the initial term id this stream started at.

Returns:
the initial term id this stream started at.
 
     public final int initialTermId()
     {
         return initialTermId;
     }

    
Set the initial term id this stream started at.

Parameters:
initialTermId this stream started at.
 
     public final void initialTermId(final int initialTermId)
     {
         this.initialTermId = initialTermId;
    }

    
Set the offset at which the header begins in the log.

Parameters:
offset at which the header begins in the log.
    public final void offset(final int offset)
    {
        this.offset = offset;
    }

    
The offset at which the frame begins.

Returns:
offset at which the frame begins.
    public final int offset()
    {
        return offset;
    }

    
    public final UnsafeBuffer buffer()
    {
        return buffer;
    }

    
The uk.co.real_logic.agrona.concurrent.UnsafeBuffer containing the header.

Parameters:
buffer uk.co.real_logic.agrona.concurrent.UnsafeBuffer containing the header.
    public final void buffer(final UnsafeBuffer buffer)
    {
        this.buffer = buffer;
    }

    
The total length of the frame including the header.

Returns:
the total length of the frame including the header.
    public int frameLength()
    {
        return buffer.getInt(offset, ByteOrder.LITTLE_ENDIAN);
    }

    
The session ID to which the frame belongs.

Returns:
the session ID to which the frame belongs.
    public final int sessionId()
    {
        return buffer.getInt(offset + DataHeaderFlyweight.SESSION_ID_FIELD_OFFSET, ByteOrder.LITTLE_ENDIAN);
    }

    
The stream ID to which the frame belongs.

Returns:
the stream ID to which the frame belongs.
    public final int streamId()
    {
        return buffer.getInt(offset + DataHeaderFlyweight.STREAM_ID_FIELD_OFFSET, ByteOrder.LITTLE_ENDIAN);
    }

    
The term ID to which the frame belongs.

Returns:
the term ID to which the frame belongs.
    public final int termId()
    {
        return buffer.getInt(offset + DataHeaderFlyweight.TERM_ID_FIELD_OFFSET, ByteOrder.LITTLE_ENDIAN);
    }

    
The offset in the term at which the frame begins. This will be the same as offset()

Returns:
the offset in the term at which the frame begins.
    public int termOffset()
    {
        return offset;
    }

    
The type of the the frame which should always be uk.co.real_logic.aeron.protocol.HeaderFlyweight.HDR_TYPE_DATA

Returns:
type of the the frame which should always be uk.co.real_logic.aeron.protocol.HeaderFlyweight.HDR_TYPE_DATA
    public final int type()
    {
        return buffer.getShort(offset + DataHeaderFlyweight.TYPE_FIELD_OFFSET, ByteOrder.LITTLE_ENDIAN) & 0xFFFF;
    }

    
The flags for this frame. Valid flags are uk.co.real_logic.aeron.protocol.DataHeaderFlyweight.BEGIN_FLAG and uk.co.real_logic.aeron.protocol.DataHeaderFlyweight.END_FLAG. A convenience flag uk.co.real_logic.aeron.protocol.DataHeaderFlyweight.BEGIN_AND_END_FLAGS can be used for both flags.

Returns:
the flags for this frame.
    public byte flags()
    {
        return buffer.getByte(offset + DataHeaderFlyweight.FLAGS_FIELD_OFFSET);
    }
New to GrepCode? Check out our FAQ X