org.jgroups.protocols

## Class LOOPBACK

- java.lang.Object
- - org.jgroups.stack.Protocol
  - - org.jgroups.protocols.TP
    - - org.jgroups.protocols.LOOPBACK

    public class LOOPBACK
    extends TP

Makes copies of outgoing messages, swaps sender and receiver and sends the message back up the stack.

### Nested Class Summary

### Nested classes/interfaces inherited from class org.jgroups.protocols.TP

`TP.Bundler, TP.DiagnosticsHandler, TP.ProbeHandler, TP.ProtocolAdapter`

### Field Summary

### Fields inherited from class org.jgroups.protocols.TP

`bind_addr, bind_interface_str, bind_port, bundler, bundler_capacity, bundler_type, can_bind_to_mcast_addr, channel_name, connect_count, connectLock, default_thread_factory, diag_handler, diagnostics_addr, diagnostics_port, discard_incompatible_packets, enable_bundling, enable_diagnostics, enable_unicast_bundling, f, global_thread_factory, header, last_discovery_request, LIST, local_addr, log_discard_msgs, logical_addr_cache, logical_addr_cache_expiration, logical_addr_cache_max_size, loopback, max_bundle_size, max_bundle_timeout, members, MULTICAST, num_bytes_received, num_bytes_sent, num_incoming_msgs_received, num_msgs_received, num_msgs_sent, num_oob_msgs_received, OOB, oob_thread_factory, oob_thread_pool, oob_thread_pool_enabled, oob_thread_pool_keep_alive_time, oob_thread_pool_max_threads, oob_thread_pool_min_threads, oob_thread_pool_queue, oob_thread_pool_queue_enabled, oob_thread_pool_queue_max_size, pool_thread_group, port_range, preregistered_probe_handlers, print_function, receive_interfaces, receive_on_all_interfaces, singleton_name, socket_factory, thread_naming_pattern, thread_pool, thread_pool_enabled, thread_pool_keep_alive_time, thread_pool_max_threads, thread_pool_min_threads, thread_pool_queue, thread_pool_queue_enabled, thread_pool_queue_max_size, thread_pool_rejection_policy, tick_time, timer, timer_keep_alive_time, timer_max_threads, timer_min_threads, timer_queue_max_size, timer_thread_factory, timer_type, up_prots, wheel_size, who_has_cache`

### Fields inherited from class org.jgroups.stack.Protocol

`down_prot, ergonomics, id, log, name, stack, stats, up_prot`

### Constructor Summary

Constructors
Constructor and Description
`LOOPBACK()`

### Method Summary

Methods
`java.lang.Object` `down(Event evt)` Caller by the layer above this layer.
`java.lang.String` `getInfo()`
`protected PhysicalAddress` `getPhysicalAddress()`
`void` `sendMulticast(byte[] data, int offset, int length)` Send to all members in the group.
`void` `sendUnicast(PhysicalAddress dest, byte[] data, int offset, int length)` Send a unicast to 1 member.
`boolean` `supportsMulticasting()` Whether or not hardware multicasting is supported
`java.lang.String` `toString()`

### Methods inherited from class org.jgroups.protocols.TP

`addPhysicalAddressToCache, clearLogicalAddressCache, createThreadPool, destroy, dispatchToThreadPool, doSend, dumpTimerTasks, evictLogicalAddressCache, fetchLocalAddresses, getBindAddress, getBindAddressAsInetAddress, getBindPort, getBindToAllInterfaces, getBundlerBufferSize, getDefaultThreadPool, getDefaultThreadPoolThreadFactory, getLogDiscardMessages, getMaxBundleSize, getMaxBundleTimeout, getNumBytesReceived, getNumBytesSent, getNumMessagesReceived, getNumMessagesSent, getNumTimerTasks, getOOBMaxQueueSize, getOOBMessages, getOOBPoolSize, getOOBQueueSize, getOOBThreadPool, getOOBThreadPoolKeepAliveTime, getOOBThreadPoolMaxThreads, getOOBThreadPoolMinThreads, getOOBThreadPoolThreadFactory, getPhysicalAddressFromCache, getPoolThreadGroup, getPortRange, getReceiveInterfaces, getRegularMaxQueueSize, getRegularMessages, getRegularPoolSize, getRegularQueueSize, getSendInterfaces, getSingletonName, getSocketFactory, getThreadFactory, getThreadNamingPattern, getThreadPoolKeepAliveTime, getThreadPoolMaxThreads, getThreadPoolMinThreads, getTimer, getTimerClass, getTimerKeepAliveTime, getTimerMaxThreads, getTimerMinThreads, getTimerQueueSize, getTimerThreadFactory, getTimerThreads, getUpProtocols, handleConnect, handleDisconnect, handleDownEvent, init, isDefaulThreadPoolEnabled, isDiscardIncompatiblePackets, isEnableBundling, isEnableUnicastBundling, isLoopback, isOOBThreadPoolEnabled, isReceiveOnAllInterfaces, isSendOnAllInterfaces, isSingleton, isUseIncomingPacketHandler, parseRejectionPolicy, passMessageUp, passToAllUpProtocols, printLogicalAddressCache, readMessage, readMessageList, receive, registerLocalAddress, registerProbeHandler, removeLogicalAddressFromCache, resetStats, send, sendToAllPhysicalAddresses, sendToSingleMember, setBindAddress, setBindPort, setBindToAllInterfaces, setDefaultThreadPool, setDefaultThreadPoolThreadFactory, setDiscardIncompatiblePackets, setEnableBundling, setEnableUnicastBundling, setInAllThreadFactories, setLogDiscardMessages, setLoopback, setMaxBundleSize, setMaxBundleTimeout, setOOBRejectionPolicy, setOOBThreadPool, setOOBThreadPoolKeepAliveTime, setOOBThreadPoolMaxThreads, setOOBThreadPoolMinThreads, setOOBThreadPoolThreadFactory, setPortRange, setRegularRejectionPolicy, setSocketFactory, setSourceAddress, setThreadFactory, setThreadNames, setThreadPoolKeepAliveTime, setThreadPoolMaxThreads, setThreadPoolMinThreads, setThreadPoolQueueEnabled, setTimerKeepAliveTime, setTimerMaxThreads, setTimerMinThreads, setTimerThreadFactory, setUseConcurrentStack, shutdownThreadPool, start, stop, unregisterProbeHandler, unsetThreadNames, up, verifyRejectionPolicy, writeMessage, writeMessageList`

### Methods inherited from class org.jgroups.stack.Protocol

`downThreadEnabled, dumpStats, enableStats, getConfigurableObjects, getDownProtocol, getId, getLevel, getName, getProperties, getProtocolStack, getTransport, getUpProtocol, getValue, isErgonomics, printStats, providedDownServices, providedUpServices, requiredDownServices, requiredUpServices, setDownProtocol, setErgonomics, setId, setLevel, setProperties, setPropertiesInternal, setProperty, setProtocolStack, setUpProtocol, setValue, setValues, statsEnabled, upThreadEnabled`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Constructor Detail

#### LOOPBACK

    public LOOPBACK()

### Method Detail

#### supportsMulticasting

    public boolean supportsMulticasting()

Description copied from class: `TP`
Whether or not hardware multicasting is supported

Specified by:
  `supportsMulticasting` in class `TP`

#### toString

    public java.lang.String toString()

Overrides:
  `toString` in class `TP`

#### sendMulticast

    public void sendMulticast(byte[] data,
                     int offset,
                     int length)
                       throws java.lang.Exception

Description copied from class: `TP`
Send to all members in the group. UDP would use an IP multicast message, whereas TCP would send N messages, one for each member

Specified by:
  `sendMulticast` in class `TP`
Parameters:
  `data` - The data to be sent. This is not a copy, so don't modify it
Throws:
  `java.lang.Exception`

#### sendUnicast

    public void sendUnicast(PhysicalAddress dest,
                   byte[] data,
                   int offset,
                   int length)
                     throws java.lang.Exception

Description copied from class: `TP`
Send a unicast to 1 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:
  `java.lang.Exception`

#### getInfo

    public java.lang.String getInfo()

Specified by:
  `getInfo` in class `TP`

#### getPhysicalAddress

    protected PhysicalAddress getPhysicalAddress()

Specified by:
  `getPhysicalAddress` in class `TP`

#### down

    public java.lang.Object down(Event evt)

Caller by the layer above this layer. Usually we just put this Message into the send queue and let one or more worker threads handle it. A worker thread then removes the Message from the send queue, performs a conversion and adds the modified Message to the send queue of the layer below it, by calling Down).

Overrides:
  `down` in class `TP`