Package org.epics.ca.impl
Class BroadcastTransport
- java.lang.Object
-
- org.epics.ca.impl.BroadcastTransport
-
- All Implemented Interfaces:
ReactorHandler,Transport
public class BroadcastTransport extends java.lang.Object implements ReactorHandler, Transport
CA UDP transport implementation. It receives datagrams fromBroadcastConnectorregistered repeater and sends broadcasts datagrams to given addresses.
-
-
Field Summary
Fields Modifier and Type Field Description protected ResponseHandlers.ResponseHandlerresponseHandlerResponse handler.
-
Constructor Summary
Constructors Constructor Description BroadcastTransport(ContextImpl context, ResponseHandlers.ResponseHandler responseHandler, java.nio.channels.DatagramChannel channel, java.net.InetSocketAddress connectAddress, java.net.InetSocketAddress[] broadcastAddresses)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.nio.ByteBufferacquireSendBuffer(int requiredSize)voidclose()Close transport.voidflush()ContextImplgetContext()Get context transport is living in.shortgetMinorRevision()Transport protocol minor revision.intgetPriority()java.net.InetSocketAddressgetRemoteAddress()Get remote address.voidhandleEvent(java.nio.channels.SelectionKey key)Handle IO event.protected voidprocessRead()Process input (read) IO event.protected voidprocessWrite()Process output (write) IO event.voidreleaseSendBuffer(boolean ignore, boolean flush)voidsend(java.nio.ByteBuffer buffer)Send a buffer through the transport.voidsend(java.nio.ByteBuffer buffer, java.net.InetSocketAddress address)Send a buffer through the transport immediately.
-
-
-
Field Detail
-
responseHandler
protected final ResponseHandlers.ResponseHandler responseHandler
Response handler.
-
-
Constructor Detail
-
BroadcastTransport
public BroadcastTransport(ContextImpl context, ResponseHandlers.ResponseHandler responseHandler, java.nio.channels.DatagramChannel channel, java.net.InetSocketAddress connectAddress, java.net.InetSocketAddress[] broadcastAddresses)
- Parameters:
context- the context.responseHandler- the response handler.channel- the channel.connectAddress- the connect address.broadcastAddresses- array of broadcast addresses.
-
-
Method Detail
-
close
public void close()
Close transport.
-
handleEvent
public void handleEvent(java.nio.channels.SelectionKey key)
Handle IO event.- Specified by:
handleEventin interfaceReactorHandler- Parameters:
key- key to be processed.
-
processRead
protected void processRead()
Process input (read) IO event.
-
processWrite
protected void processWrite()
Process output (write) IO event.
-
send
public void send(java.nio.ByteBuffer buffer)
Send a buffer through the transport.- Parameters:
buffer- buffer to send.
-
send
public void send(java.nio.ByteBuffer buffer, java.net.InetSocketAddress address) throws java.io.IOExceptionSend a buffer through the transport immediately.- Parameters:
buffer- buffer to send.address- send address.- Throws:
java.io.IOException- if attempts to write to the channel fail.
-
getRemoteAddress
public java.net.InetSocketAddress getRemoteAddress()
Description copied from interface:TransportGet remote address.- Specified by:
getRemoteAddressin interfaceTransport- Returns:
- remote address.
-
getContext
public ContextImpl getContext()
Description copied from interface:TransportGet context transport is living in.- Specified by:
getContextin interfaceTransport- Returns:
- context transport is living in.
-
getMinorRevision
public short getMinorRevision()
Description copied from interface:TransportTransport protocol minor revision.- Specified by:
getMinorRevisionin interfaceTransport- Returns:
- protocol minor revision.
-
getPriority
public int getPriority()
- Specified by:
getPriorityin interfaceTransport
-
acquireSendBuffer
public java.nio.ByteBuffer acquireSendBuffer(int requiredSize)
- Specified by:
acquireSendBufferin interfaceTransport
-
releaseSendBuffer
public void releaseSendBuffer(boolean ignore, boolean flush)- Specified by:
releaseSendBufferin interfaceTransport
-
-