Class BroadcastTransport

  • All Implemented Interfaces:
    ReactorHandler, Transport

    public class BroadcastTransport
    extends java.lang.Object
    implements ReactorHandler, Transport
    CA UDP transport implementation. It receives datagrams from BroadcastConnector registered repeater and sends broadcasts datagrams to given addresses.
    • 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:
        handleEvent in interface ReactorHandler
        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.IOException
        Send 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: Transport
        Get remote address.
        Specified by:
        getRemoteAddress in interface Transport
        Returns:
        remote address.
      • getContext

        public ContextImpl getContext()
        Description copied from interface: Transport
        Get context transport is living in.
        Specified by:
        getContext in interface Transport
        Returns:
        context transport is living in.
      • getMinorRevision

        public short getMinorRevision()
        Description copied from interface: Transport
        Transport protocol minor revision.
        Specified by:
        getMinorRevision in interface Transport
        Returns:
        protocol minor revision.
      • acquireSendBuffer

        public java.nio.ByteBuffer acquireSendBuffer​(int requiredSize)
        Specified by:
        acquireSendBuffer in interface Transport
      • releaseSendBuffer

        public void releaseSendBuffer​(boolean ignore,
                                      boolean flush)
        Specified by:
        releaseSendBuffer in interface Transport
      • flush

        public void flush()
        Specified by:
        flush in interface Transport