org.jgroups.protocols

## Class TCP_NIO

- java.lang.Object
- - org.jgroups.stack.Protocol
  - - org.jgroups.protocols.TP
    - - org.jgroups.protocols.BasicTCP
      - - org.jgroups.protocols.TCP_NIO

All Implemented Interfaces:
  BasicConnectionTable.Receiver

    public class TCP_NIO
    extends BasicTCP
    implements BasicConnectionTable.Receiver

Transport using NIO

Author:
  Scott Marlow, Alex Fu, Bela Ban

### 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.BasicTCP

`conn_expire_time, reaper_interval`

### 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
`TCP_NIO()`

### Method Summary

Methods
`protected ConnectionTableNIO` `getConnectionTable(long ri, long cet, java.net.InetAddress b_addr, java.net.InetAddress bc_addr, int s_port, int e_port)`
`int` `getOpenConnections()`
`protected PhysicalAddress` `getPhysicalAddress()`
`long` `getProcessorKeepAliveTime()`
`int` `getProcessorMaxThreads()`
`int` `getProcessorMinThreads()`
`int` `getProcessorQueueSize()`
`int` `getProcessorThreads()`
`int` `getReaderThreads()`
`int` `getWriterThreads()`
`java.lang.String` `printConnections()`
`void` `retainAll(java.util.Collection<Address> members)`
`void` `send(Address dest, byte[] data, int offset, int length)`
`void` `start()` Creates the unicast and multicast sockets and starts the unicast and multicast receiver threads
`void` `stop()` This method is called on a `Channel.disconnect()`.

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

`getConnExpireTime, getInfo, getReaperInterval, handleDownEvent, init, receive, sendMulticast, sendUnicast, setConnExpireTime, setReaperInterval, supportsMulticasting`

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

`addPhysicalAddressToCache, clearLogicalAddressCache, createThreadPool, destroy, dispatchToThreadPool, doSend, down, 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, isDefaulThreadPoolEnabled, isDiscardIncompatiblePackets, isEnableBundling, isEnableUnicastBundling, isLoopback, isOOBThreadPoolEnabled, isReceiveOnAllInterfaces, isSendOnAllInterfaces, isSingleton, isUseIncomingPacketHandler, parseRejectionPolicy, passMessageUp, passToAllUpProtocols, printLogicalAddressCache, readMessage, readMessageList, 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, toString, 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`

### Methods inherited from interface org.jgroups.blocks.BasicConnectionTable.Receiver

`receive`

### Constructor Detail

#### TCP_NIO

    public TCP_NIO()

### Method Detail

#### getConnectionTable

    protected ConnectionTableNIO getConnectionTable(long ri,
                                        long cet,
                                        java.net.InetAddress b_addr,
                                        java.net.InetAddress bc_addr,
                                        int s_port,
                                        int e_port)
                                             throws java.lang.Exception

Throws:
  `java.lang.Exception`

#### printConnections

    public java.lang.String printConnections()

Specified by:
  `printConnections` in class `BasicTCP`

#### getPhysicalAddress

    protected PhysicalAddress getPhysicalAddress()

Specified by:
  `getPhysicalAddress` in class `TP`

#### send

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

Specified by:
  `send` in class `BasicTCP`
Throws:
  `java.lang.Exception`

#### start

    public void start()
               throws java.lang.Exception

Description copied from class: `TP`
Creates the unicast and multicast sockets and starts the unicast and multicast receiver threads

Overrides:
  `start` in class `TP`
Throws:
  `java.lang.Exception` - Thrown if protocol cannot be started successfully. This will cause the ProtocolStack to fail, so `Channel.connect(String)` will throw an exception

#### retainAll

    public void retainAll(java.util.Collection<Address> members)

Specified by:
  `retainAll` in class `BasicTCP`

#### stop

    public void stop()

Description copied from class: `Protocol`
This method is called on a `Channel.disconnect()`. Stops work (e.g. by closing multicast socket). Will be called from top to bottom. This means that at the time of the method invocation the neighbor protocol below is still working. This method will replace the STOP, STOP_OK, CLEANUP and CLEANUP_OK events. The ProtocolStack guarantees that when this method is called all messages in the down queue will have been flushed

Overrides:
  `stop` in class `TP`

#### getReaderThreads

    public int getReaderThreads()

#### getWriterThreads

    public int getWriterThreads()

#### getProcessorThreads

    public int getProcessorThreads()

#### getProcessorMinThreads

    public int getProcessorMinThreads()

#### getProcessorMaxThreads

    public int getProcessorMaxThreads()

#### getProcessorQueueSize

    public int getProcessorQueueSize()

#### getProcessorKeepAliveTime

    public long getProcessorKeepAliveTime()

#### getOpenConnections

    public int getOpenConnections()