Class SHARED_LOOPBACK

All Implemented Interfaces:
Lifecycle, DiagnosticsHandler.ProbeHandler

public class SHARED_LOOPBACK extends TP
Loopback transport shared by all channels within the same VM. Property for testing is that no messages are lost. Allows us to test various protocols at maximum speed.
  • Field Details

    • port

      protected short port
    • physical_addr

      protected PhysicalAddress physical_addr
    • curr_view

      protected volatile View curr_view
    • is_server

      protected volatile boolean is_server
    • is_coord

      protected volatile boolean is_coord
    • routing_table

      protected static final Map<AsciiString,Map<Address,SHARED_LOOPBACK>> routing_table
      Map of cluster names and address-protocol mappings. Used for routing messages to all or single members
    • FUNC

      protected static final Function<AsciiString,Map<Address,SHARED_LOOPBACK>> FUNC
  • Constructor Details

    • SHARED_LOOPBACK

      public SHARED_LOOPBACK()
  • Method Details

    • supportsMulticasting

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

      public View getView()
    • isServer

      public boolean isServer()
    • isCoord

      public boolean isCoord()
    • coord

      public SHARED_LOOPBACK coord(boolean b)
    • toString

      public String toString()
      Overrides:
      toString in class TP
    • dumpRoutingTable

      public static String dumpRoutingTable()
    • sendToAll

      public void sendToAll(byte[] data, int offset, int length) throws Exception
      Description copied from class: TP
      Fetches the physical addrs for all mbrs and sends the msg to each physical address. Asks discovery for missing members' physical addresses if needed
      Overrides:
      sendToAll in class TP
      Throws:
      Exception
    • 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
    • sendTo

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

      public static List<PingData> getDiscoveryResponsesFor(String cluster_name)
    • getInfo

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

      protected PhysicalAddress getPhysicalAddress()
      Specified by:
      getPhysicalAddress 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
    • 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
    • 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
    • handleViewChange

      protected void handleViewChange(View v)
    • register

      protected static void register(AsciiString cluster, Address local_addr, SHARED_LOOPBACK shared_loopback)
    • unregister

      protected static void unregister(AsciiString cluster, Address local_addr)