Class ChannelMonitorImpl
- java.lang.Object
-
- org.epics.pvaccess.client.impl.remote.BaseRequestImpl
-
- org.epics.pvaccess.client.impl.remote.ChannelMonitorImpl
-
- All Implemented Interfaces:
Lockable
,DataResponse
,ResponseRequest
,SubscriptionRequest
,TransportSender
,org.epics.pvdata.misc.Destroyable
,org.epics.pvdata.monitor.Monitor
public class ChannelMonitorImpl extends BaseRequestImpl implements org.epics.pvdata.monitor.Monitor
PVA monitor request.- Version:
- $Id$
- Author:
- Matej Sekoranja
-
-
Field Summary
Fields Modifier and Type Field Description protected int
ackAny
protected org.epics.pvdata.monitor.MonitorRequester
callback
Response callback listener.protected boolean
pipeline
protected int
queueSize
protected AtomicBoolean
started
-
Fields inherited from class org.epics.pvaccess.client.impl.remote.BaseRequestImpl
channel, channelDestroyed, channelNotConnected, context, destroyed, destroyedStatus, invalidBitSetLengthStatus, invalidPutArrayStatus, invalidPutStructureStatus, ioid, lastRequest, lock, NULL_REQUEST, okStatus, otherRequestPendingStatus, pendingRequest, PURE_CANCEL_REQUEST, PURE_DESTROY_REQUEST, pvRequest, remotelyDestroyed, requester, statusCreate, subscribed
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
ChannelMonitorImpl(ChannelImpl channel, org.epics.pvdata.monitor.MonitorRequester callback, org.epics.pvdata.pv.PVStructure pvRequest)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
activate()
static ChannelMonitorImpl
create(ChannelImpl channel, org.epics.pvdata.monitor.MonitorRequester callback, org.epics.pvdata.pv.PVStructure pvRequest)
org.epics.pvdata.monitor.MonitorElement
poll()
void
release(org.epics.pvdata.monitor.MonitorElement monitorElement)
void
response(Transport transport, byte version, ByteBuffer payloadBuffer)
Notification response.void
resubscribeSubscription(Transport transport)
Resubscribe (e.g.void
send(ByteBuffer buffer, TransportSendControl control)
Called by transport.org.epics.pvdata.pv.Status
start()
org.epics.pvdata.pv.Status
stop()
-
Methods inherited from class org.epics.pvaccess.client.impl.remote.BaseRequestImpl
cancel, createBitSetFor, destroy, destroy, getChannel, getIOID, getPendingRequest, getRequester, lastRequest, lock, reportStatus, reuseOrCreatePVField, startRequest, stopRequest, timeout, unlock, updateSubscription
-
-
-
-
Field Detail
-
callback
protected final org.epics.pvdata.monitor.MonitorRequester callback
Response callback listener.
-
started
protected AtomicBoolean started
-
queueSize
protected final int queueSize
-
pipeline
protected final boolean pipeline
-
ackAny
protected final int ackAny
-
-
Constructor Detail
-
ChannelMonitorImpl
protected ChannelMonitorImpl(ChannelImpl channel, org.epics.pvdata.monitor.MonitorRequester callback, org.epics.pvdata.pv.PVStructure pvRequest)
-
-
Method Detail
-
create
public static ChannelMonitorImpl create(ChannelImpl channel, org.epics.pvdata.monitor.MonitorRequester callback, org.epics.pvdata.pv.PVStructure pvRequest)
-
activate
protected void activate()
- Overrides:
activate
in classBaseRequestImpl
-
resubscribeSubscription
public void resubscribeSubscription(Transport transport)
Description copied from interface:SubscriptionRequest
Resubscribe (e.g. when server was restarted)- Specified by:
resubscribeSubscription
in interfaceSubscriptionRequest
- Overrides:
resubscribeSubscription
in classBaseRequestImpl
- Parameters:
transport
- new transport to be used.
-
send
public void send(ByteBuffer buffer, TransportSendControl control)
Description copied from interface:TransportSender
Called by transport. By this call transport gives callee ownership over the buffer. Calls onTransportSendControl
instance must be made from calling thread. Moreover, ownership is valid only for the time of call of this method. NOTE: these limitations allow efficient implementation.- Specified by:
send
in interfaceTransportSender
- Overrides:
send
in classBaseRequestImpl
- Parameters:
buffer
- buffer to send.control
- transport send control instance.
-
response
public void response(Transport transport, byte version, ByteBuffer payloadBuffer)
Description copied from interface:DataResponse
Notification response.- Specified by:
response
in interfaceDataResponse
- Overrides:
response
in classBaseRequestImpl
- Parameters:
transport
- transport to use.version
- protocol version.payloadBuffer
- the data.
-
start
public org.epics.pvdata.pv.Status start()
- Specified by:
start
in interfaceorg.epics.pvdata.monitor.Monitor
-
stop
public org.epics.pvdata.pv.Status stop()
- Specified by:
stop
in interfaceorg.epics.pvdata.monitor.Monitor
-
poll
public org.epics.pvdata.monitor.MonitorElement poll()
- Specified by:
poll
in interfaceorg.epics.pvdata.monitor.Monitor
-
release
public void release(org.epics.pvdata.monitor.MonitorElement monitorElement)
- Specified by:
release
in interfaceorg.epics.pvdata.monitor.Monitor
-
-