Class BeaconEmitter
- java.lang.Object
-
- org.epics.pvaccess.server.impl.remote.BeaconEmitter
-
- All Implemented Interfaces:
Lockable,TransportSender,org.epics.pvdata.misc.Timer.TimerCallback
public class BeaconEmitter extends Object implements org.epics.pvdata.misc.Timer.TimerCallback, TransportSender
Beacon emitter.- Version:
- $Id$
- Author:
- Matej Sekoranja
-
-
Field Summary
Fields Modifier and Type Field Description protected shortbeaconCountLimitLimit on number of beacons issued.protected bytebeaconSequenceIDBeacon sequence ID.protected static floatEPICS_PVA_MIN_BEACON_COUNT_LIMITMinimal PVA beacon count limit.protected static floatEPICS_PVA_MIN_BEACON_PERIODMinimal (initial) PVA beacon period (in seconds).protected doublefastBeaconPeriodFast (at startup) beacon period (in sec).protected byte[]guidServer GUID.protected LoggerloggerLogger.protected StringprotocolProtocol.protected InetAddressserverAddressServer address.protected intserverPortServer port.protected doubleslowBeaconPeriodSlow (after beaconCountLimit is reached) beacon period (in sec).protected org.epics.pvdata.misc.TimertimerTimer.protected TransporttransportTransport.
-
Constructor Summary
Constructors Constructor Description BeaconEmitter(String protocol, Transport transport, ServerContextImpl context)Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidcallback()voiddestroy()Destroy emitter.voidlock()protected voidreschedule()Reschedule timer.voidsend(ByteBuffer buffer, TransportSendControl control)Called by transport.protected voidstart()Start emitting.voidtimerStopped()voidunlock()
-
-
-
Field Detail
-
EPICS_PVA_MIN_BEACON_PERIOD
protected static final float EPICS_PVA_MIN_BEACON_PERIOD
Minimal (initial) PVA beacon period (in seconds).- See Also:
- Constant Field Values
-
EPICS_PVA_MIN_BEACON_COUNT_LIMIT
protected static final float EPICS_PVA_MIN_BEACON_COUNT_LIMIT
Minimal PVA beacon count limit.- See Also:
- Constant Field Values
-
timer
protected final org.epics.pvdata.misc.Timer timer
Timer.
-
logger
protected final Logger logger
Logger.
-
protocol
protected final String protocol
Protocol.
-
transport
protected final Transport transport
Transport.
-
beaconSequenceID
protected byte beaconSequenceID
Beacon sequence ID.
-
fastBeaconPeriod
protected final double fastBeaconPeriod
Fast (at startup) beacon period (in sec).
-
slowBeaconPeriod
protected final double slowBeaconPeriod
Slow (after beaconCountLimit is reached) beacon period (in sec).
-
beaconCountLimit
protected final short beaconCountLimit
Limit on number of beacons issued.
-
guid
protected final byte[] guid
Server GUID.
-
serverAddress
protected final InetAddress serverAddress
Server address.
-
serverPort
protected final int serverPort
Server port.
-
-
Constructor Detail
-
BeaconEmitter
public BeaconEmitter(String protocol, Transport transport, ServerContextImpl context)
Constructor.- Parameters:
protocol- what protocol to "beacon".transport- transport to be used to send beacons.context- PVA context.
-
-
Method Detail
-
start
protected void start()
Start emitting.
-
reschedule
protected void reschedule()
Reschedule timer.
-
callback
public void callback()
- Specified by:
callbackin interfaceorg.epics.pvdata.misc.Timer.TimerCallback
-
send
public void send(ByteBuffer buffer, TransportSendControl control)
Description copied from interface:TransportSenderCalled by transport. By this call transport gives callee ownership over the buffer. Calls onTransportSendControlinstance 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:
sendin interfaceTransportSender- Parameters:
buffer- buffer to send.control- transport send control instance.
-
timerStopped
public void timerStopped()
- Specified by:
timerStoppedin interfaceorg.epics.pvdata.misc.Timer.TimerCallback
-
destroy
public void destroy()
Destroy emitter.
-
-