Class AbstractCARequest
- java.lang.Object
-
- 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
Fields Modifier and Type Field Description protected ByteBufferrequestMessageRequest message.protected TransporttransportTransport 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
Constructors Constructor Description AbstractCARequest(Transport transport)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static ByteBufferalignBuffer(int align, ByteBuffer buffer)Fills buffer to become aligned.static intcalculateAlignedSize(int align, int nonAlignedSize)Calculates aligned sice.ByteBuffergenerateRequestMessage()Generates (new instance) new request message.bytegetPriority()Return default priority.ByteBuffergetRequestMessage()Get request message to be sent.static ByteBufferinsertCAHeader(Transport transport, ByteBuffer buffer, short command, int payloadSize, short dataType, int dataCount, int parameter1, int parameter2)Inserts CA header to the buffer.voidsubmit()Submit request to the corresponding transport.
-
-
-
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:
getPriorityin interfaceRequest- Returns:
- request priority.
- See Also:
Request.getPriority()
-
getRequestMessage
public ByteBuffer getRequestMessage()
Description copied from interface:RequestGet request message to be sent.- Specified by:
getRequestMessagein interfaceRequest- Returns:
- request message to be sent.
- See Also:
Request.getRequestMessage()
-
generateRequestMessage
public ByteBuffer generateRequestMessage()
Generates (new instance) new request message. Used ifrequestMessagenot yet set - lazy message generation.- Returns:
- generated request message.
- See Also:
Request.getRequestMessage()
-
submit
public void submit() throws IOExceptionSubmit request to the corresponding transport.- Specified by:
submitin interfaceRequest- 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 benull.- 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 usedbuffer- 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 usednonAlignedSize- current non-aligned size- Returns:
- aligned size.
-
-