Class SimpleTCP

All Implemented Interfaces:
Lifecycle, DiagnosticsHandler.ProbeHandler

public class SimpleTCP extends TP
Bare-bones thread-per-connection TCP-based transport. Only used to compare with TCP or TCP_NIO2, don't use in production!
Since:
4.0
  • Field Details

    • recv_buf_size

      protected int recv_buf_size
    • send_buf_size

      protected int send_buf_size
    • buffered_input_stream_size

      protected int buffered_input_stream_size
    • buffered_output_stream_size

      protected int buffered_output_stream_size
    • srv_sock

      protected ServerSocket srv_sock
    • acceptor

      protected SimpleTCP.Acceptor acceptor
    • connections

      protected final Map<SocketAddress,SimpleTCP.Connection> connections
    • addr_table

      protected final Map<Address,SocketAddress> addr_table
  • Constructor Details

    • SimpleTCP

      public SimpleTCP()
  • Method Details

    • supportsMulticasting

      public boolean supportsMulticasting()
      Description copied from class: TP
      Whether hardware multicasting is supported
      Specified by:
      supportsMulticasting in class TP
    • printAddressTable

      public String printAddressTable()
    • sendUnicast

      public void sendUnicast(PhysicalAddress dest, byte[] data, int offset, int length) throws Exception
      Description copied from class: TP
      Send a unicast to a member. Note that the destination address is a *physical*, not a logical address
      Specified by:
      sendUnicast in class TP
      Parameters:
      dest - Must be a non-null unicast address
      data - The data to be sent. This is not a copy, so don't modify it
      Throws:
      Exception
    • getInfo

      public String getInfo()
      Specified by:
      getInfo in class TP
    • init

      public void init() throws Exception
      Description copied from class: Protocol
      Called after a protocol has been created and before the protocol is started. Attributes are already set. Other protocols are not yet connected and events cannot yet be sent.
      Specified by:
      init in interface Lifecycle
      Overrides:
      init in class TP
      Throws:
      Exception - Thrown if protocol cannot be initialized successfully. This will cause the ProtocolStack to fail, so the the channel constructor will throw an exception
    • start

      public void start() throws Exception
      Description copied from class: TP
      Creates the unicast and multicast sockets and starts the unicast and multicast receiver threads
      Specified by:
      start in interface Lifecycle
      Overrides:
      start in class TP
      Throws:
      Exception - Thrown if protocol cannot be started successfully. This will cause the ProtocolStack to fail, so JChannel.connect(String) will throw an exception
    • stop

      public void stop()
      Description copied from class: Protocol
      Called on a JChannel.disconnect(); stops work (e.g. by closing multicast socket). Will be called from top to bottom.
      Specified by:
      stop in interface Lifecycle
      Overrides:
      stop in class TP
    • destroy

      public void destroy()
      Description copied from class: Protocol
      This method is called on a JChannel.close(). Does some cleanup; after the call, the VM will terminate
      Specified by:
      destroy in interface Lifecycle
      Overrides:
      destroy in class TP
    • down

      public Object down(Event evt)
      Description copied from class: Protocol
      An event is to be sent down the stack. A protocol may want to examine its type and perform some action on it, depending on the event's type. If the event is a message MSG, then the protocol may need to add a header to it (or do nothing at all) before sending it down the stack using down_prot.down().
      Overrides:
      down in class TP
    • down

      public Object down(Message msg)
      Description copied from class: TP
      A message needs to be sent to a single member or all members
      Overrides:
      down in class TP
    • _down

      protected Object _down(Message msg) throws Exception
      Throws:
      Exception
    • sendTo

      protected void sendTo(Address dest, byte[] buffer, int offset, int length) throws Exception
      Overrides:
      sendTo in class TP
      Throws:
      Exception
    • getConnection

      protected SimpleTCP.Connection getConnection(SocketAddress dest) throws Exception
      Throws:
      Exception
    • addPhysicalAddressToCache

      public boolean addPhysicalAddressToCache(Address logical_addr, PhysicalAddress physical_addr)
      Overrides:
      addPhysicalAddressToCache in class TP
    • getPhysicalAddress

      protected PhysicalAddress getPhysicalAddress()
      Specified by:
      getPhysicalAddress in class TP