com.cosylab.epics.caj.impl.requests
Class AbstractCARequest

java.lang.Object
  extended by com.cosylab.epics.caj.impl.requests.AbstractCARequest
All Implemented Interfaces:
Request
Direct Known Subclasses:
AccessRightsRequest, BeaconRequest, ClearChannelRequest, ClearChannelRequest, CreateChannelFailedRequest, CreateChannelRequest, CreateChannelRequest, EchoRequest, EchoRequest, EventAddRequest, EventAddRequest, EventCancelRequest, EventCancelRequest, EventsOffRequest, EventsOnRequest, ExceptionRequest, HostNameRequest, ReadNotifyRequest, ReadNotifyRequest, RepeaterRegisterRequest, SearchFailedRequest, SearchRequest, SearchRequest, SubscriptionUpdateRequest, UserNameRequest, VersionRequest, WriteNotifyRequest, WriteNotifyRequest, WriteRequest

public abstract class AbstractCARequest
extends Object
implements Request

Version:
$id$
Author:
Matej Sekoranja

Field Summary
protected  ByteBuffer requestMessage
          Request message.
protected  Transport transport
          Transport to be used when sending.
 
Fields inherited from interface com.cosylab.epics.caj.impl.Request
DEFAULT_USER_PRIORITY, MAX_USER_PRIORITY, MIN_USER_PRIORITY, SEND_IMMEDIATELY_PRIORITY
 
Constructor Summary
AbstractCARequest(Transport transport)
           
 
Method Summary
static ByteBuffer alignBuffer(int align, ByteBuffer buffer)
          Fills buffer to become aligned.
static int calculateAlignedSize(int align, int nonAlignedSize)
          Calculates aligned sice.
 ByteBuffer generateRequestMessage()
          Generates (new instance) new request message.
 byte getPriority()
          Return default priority.
 ByteBuffer getRequestMessage()
          Get request message to be sent.
static ByteBuffer insertCAHeader(Transport transport, ByteBuffer buffer, short command, int payloadSize, short dataType, int dataCount, int parameter1, int parameter2)
          Inserts CA header to the buffer.
 void submit()
          Submit request to the corresponding transport.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

requestMessage

protected ByteBuffer requestMessage
Request message.


transport

protected Transport transport
Transport to be used when sending.

Constructor Detail

AbstractCARequest

public AbstractCARequest(Transport transport)
Parameters:
transport - transport to be used when sending.
Method Detail

getPriority

public byte getPriority()
Return default priority.

Specified by:
getPriority in interface Request
Returns:
request priority.
See Also:
Request.getPriority()

getRequestMessage

public ByteBuffer getRequestMessage()
Description copied from interface: Request
Get request message to be sent.

Specified by:
getRequestMessage in interface Request
Returns:
request message to be sent.
See Also:
Request.getRequestMessage()

generateRequestMessage

public ByteBuffer generateRequestMessage()
Generates (new instance) new request message. Used if requestMessage not yet set - lazy message generation.

Returns:
generated request message.
See Also:
Request.getRequestMessage()

submit

public void submit()
            throws IOException
Submit request to the corresponding transport.

Specified by:
submit in interface Request
Throws:
IOException
See Also:
Request.submit()

insertCAHeader

public static ByteBuffer insertCAHeader(Transport transport,
                                        ByteBuffer buffer,
                                        short command,
                                        int payloadSize,
                                        short dataType,
                                        int dataCount,
                                        int parameter1,
                                        int parameter2)
Inserts CA header to the buffer.

Parameters:
transport - transport to be used when sending.
buffer - buffer to be filled, can be null.
Returns:
filled buffer, if given buffer size is less that header size, then new buffer is allocated and returned.

alignBuffer

public static ByteBuffer alignBuffer(int align,
                                     ByteBuffer buffer)
Fills buffer to become aligned. ByteBuffer.position() is aligned.

Parameters:
align - alignment to be used
buffer - buffer to be filled, non-null.
Returns:
filled buffer, if given buffer size is less that aligned size, then new buffer is allocated and returned.

calculateAlignedSize

public static int calculateAlignedSize(int align,
                                       int nonAlignedSize)
Calculates aligned sice.

Parameters:
align - alignment to be used
nonAlignedSize - current non-aligned size
Returns:
aligned size.


Copyright © 2004-2013 Cosylab. All Rights Reserved.