Package org.epics.ca.impl.repeater
Class CARepeater
- java.lang.Object
-
- org.epics.ca.impl.repeater.CARepeater
-
- All Implemented Interfaces:
java.lang.Runnable
public class CARepeater extends java.lang.Object implements java.lang.RunnableCA repeater.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classCARepeater.JNIRepeater
-
Field Summary
Fields Modifier and Type Field Description static java.lang.StringCA_DISABLE_REPEATERSystem JVM property key to disable CA repeater.static java.lang.StringCA_FORCE_NATIVE_REPEATERSystem JVM property key to force native repeater.protected java.util.List<org.epics.ca.impl.repeater.CARepeater.Client>clientsList of registered clients.protected java.net.DatagramSocketlocalDatagramSocketLocal unbounded DatagramSocket.protected intrepeaterPortRepeater port.
-
Constructor Summary
Constructors Constructor Description CARepeater()Constructor.CARepeater(int repeaterPort)Constructor.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected static java.net.DatagramSocketcreateDatagramSocket()Constructs an unbound datagram socket.protected static java.net.DatagramSocketcreateDatagramSocket(int port, boolean reuseAddress)Constructs a atagram socket bound to the wildcard address on defined port.protected voidfanOut(java.net.InetSocketAddress fromAddress, java.nio.ByteBuffer buffer)protected static booleanisRepeaterRunning(int repeaterPort)Check if repeater is running.static voidmain(java.lang.String[] argv)Main entry-point.protected voidprocess()Process UDP requests.protected voidregisterNewClient(java.net.InetSocketAddress clientAddress)voidrun()static voidstartRepeater(int repeaterPort)Start repeater as detached process.protected voidverifyClients()Verify all the clients.
-
-
-
Field Detail
-
CA_FORCE_NATIVE_REPEATER
public static final java.lang.String CA_FORCE_NATIVE_REPEATER
System JVM property key to force native repeater.- See Also:
- Constant Field Values
-
CA_DISABLE_REPEATER
public static final java.lang.String CA_DISABLE_REPEATER
System JVM property key to disable CA repeater.- See Also:
- Constant Field Values
-
repeaterPort
protected int repeaterPort
Repeater port.
-
localDatagramSocket
protected java.net.DatagramSocket localDatagramSocket
Local unbounded DatagramSocket.
-
clients
protected java.util.List<org.epics.ca.impl.repeater.CARepeater.Client> clients
List of registered clients.
-
-
Method Detail
-
run
public void run()
- Specified by:
runin interfacejava.lang.Runnable- See Also:
Runnable.run()
-
registerNewClient
protected void registerNewClient(java.net.InetSocketAddress clientAddress)
-
fanOut
protected void fanOut(java.net.InetSocketAddress fromAddress, java.nio.ByteBuffer buffer)
-
verifyClients
protected void verifyClients()
Verify all the clients.
-
process
protected void process()
Process UDP requests.
-
createDatagramSocket
protected static java.net.DatagramSocket createDatagramSocket() throws java.net.SocketExceptionConstructs an unbound datagram socket.- Returns:
- default unbound datagram socket.
- Throws:
java.net.SocketException- socket exception
-
createDatagramSocket
protected static java.net.DatagramSocket createDatagramSocket(int port, boolean reuseAddress) throws java.net.SocketExceptionConstructs a atagram socket bound to the wildcard address on defined port.- Parameters:
port- portreuseAddress- reuse address- Returns:
- default bounded datagram socket.
- Throws:
java.net.SocketException- socket exception
-
isRepeaterRunning
protected static boolean isRepeaterRunning(int repeaterPort)
Check if repeater is running.- Parameters:
repeaterPort- repeater port.- Returns:
trueif repeater is already running,falseotherwise
-
startRepeater
public static void startRepeater(int repeaterPort) throws java.lang.ThrowableStart repeater as detached process. First checks if repeater is already running, if not other JVM process is run.- Parameters:
repeaterPort- repeater port.- Throws:
java.lang.Throwable- throwable
-
main
public static void main(java.lang.String[] argv)
Main entry-point.- Parameters:
argv- arguments.
-
-