Package org.jgroups.protocols
Class BasicTCP
- java.lang.Object
-
- org.jgroups.stack.Protocol
-
- org.jgroups.protocols.TP
-
- org.jgroups.protocols.BasicTCP
-
- All Implemented Interfaces:
Receiver
,AdditionalJmxObjects
,DiagnosticsHandler.ProbeHandler
public abstract class BasicTCP extends TP implements Receiver
Shared base class for TCP protocols- Author:
- Scott Marlow, Bela Ban
-
-
Field Summary
Fields Modifier and Type Field Description protected java.net.InetAddress
client_bind_addr
protected int
client_bind_port
protected long
conn_expire_time
protected boolean
defer_client_bind_addr
protected int
linger
protected int
max_length
protected int
peer_addr_read_timeout
protected long
reaper_interval
protected int
recv_buf_size
protected int
send_buf_size
protected int
sock_conn_timeout
protected boolean
tcp_nodelay
-
Fields inherited from class org.jgroups.protocols.TP
avg_batch_size, bind_addr, bind_port, bundler, bundler_capacity, bundler_num_spins, bundler_type, bundler_wait_strategy, cluster_name, connectLock, diag_enable_tcp, diag_enable_udp, diag_handler, diagnostics_addr, diagnostics_bind_addr, diagnostics_bind_interfaces, diagnostics_passcode, diagnostics_port, diagnostics_port_range, diagnostics_ttl, drop_when_full, enable_diagnostics, external_addr, external_port, header, internal_pool, internal_thread_factory, is_trace, last_discovery_request, LIST, local_addr, local_physical_addr, log_discard_msgs, log_discard_msgs_version, logical_addr_cache, logical_addr_cache_expiration, logical_addr_cache_max_size, logical_addr_cache_reaper, logical_addr_cache_reaper_interval, loopback_copy, loopback_separate_thread, max_bundle_size, members, message_processing_policy, MIN_WAIT_BETWEEN_DISCOVERIES, MSG_OVERHEAD, msg_processing_max_buffer_size, msg_processing_policy, msg_stats, MULTICAST, port_range, preregistered_probe_handlers, print_function, receive_interfaces, receive_on_all_interfaces, socket_factory, spawn_thread_on_full_pool, suppress_log_different_cluster, suppress_log_different_version, suppress_time_different_cluster_warnings, suppress_time_different_version_warnings, thread_dump_path, thread_dumps, thread_dumps_threshold, thread_factory, thread_naming_pattern, thread_pool, thread_pool_enabled, thread_pool_keep_alive_time, thread_pool_max_threads, thread_pool_min_threads, time_service, time_service_interval, timer, timer_handle_non_blocking_tasks, use_common_fork_join_pool, use_fibers, use_fork_join_pool, use_ip_addrs, view, who_has_cache, who_has_cache_timeout
-
Fields inherited from class org.jgroups.stack.Protocol
after_creation_hook, down_prot, ergonomics, id, log, stack, stats, up_prot
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
BasicTCP()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description boolean
deferClientBindAddr()
BasicTCP
deferClientBindAddr(boolean d)
java.lang.Object
down(Event evt)
An event is to be sent down the stack.java.net.InetAddress
getClientBindAddr()
int
getClientBindPort()
long
getConnExpireTime()
java.lang.String
getInfo()
int
getLinger()
int
getMaxLength()
int
getPeerAddrReadTimeout()
long
getReaperInterval()
int
getRecvBufSize()
int
getSendBufSize()
int
getSockConnTimeout()
void
init()
Called after instance has been created (null constructor) and before protocol is started.abstract java.lang.String
printConnections()
BasicTCP
reaperInterval(long interval)
void
receive(Address sender, java.nio.ByteBuffer buf)
Delivers a message from a given sender to the applicationabstract void
retainAll(java.util.Collection<Address> members)
abstract void
send(Address dest, byte[] data, int offset, int length)
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.BasicTCP
setClientBindAddr(java.net.InetAddress c)
BasicTCP
setClientBindPort(int c)
BasicTCP
setConnExpireTime(long time)
BasicTCP
setLinger(int l)
BasicTCP
setMaxLength(int len)
BasicTCP
setPeerAddrReadTimeout(int p)
BasicTCP
setReaperInterval(long interval)
BasicTCP
setRecvBufSize(int r)
BasicTCP
setSendBufSize(int s)
BasicTCP
setSockConnTimeout(int s)
boolean
supportsMulticasting()
Whether or not hardware multicasting is supportedboolean
tcpNodelay()
BasicTCP
tcpNodelay(boolean t)
-
Methods inherited from class org.jgroups.protocols.TP
_send, addPhysicalAddressToCache, addPhysicalAddressToCache, avgBatchSize, bundler, bundlerNumSpins, bundlerNumSpins, bundlerStats, bundlerStatsReset, bundlerWaitStrategy, bundlerWaitStrategy, clearDifferentClusterCache, clearDifferentVersionCache, clearLogicalAddressCache, createBundler, createDiagnosticsHandler, createThreadPool, destroy, diagEnableTcp, diagEnableUdp, diagTcpEnabled, disableDiagnostics, doSend, down, dumpTimerTasks, enableBlockingTimerTasks, enableDiagnostics, evictLogicalAddressCache, evictLogicalAddressCache, fetchLocalAddresses, fetchPhysicalAddrs, fetchResponsesFromDiscoveryProtocol, getAllPhysicalAddressesFromCache, getAvgBatchSize, getBindAddress, getBindPort, getBundler, getBundlerBufferSize, getBundlerCapacity, getBundlerClass, getClusterName, getClusterNameAscii, getDiagnosticsHandler, getDifferentClusterMessages, getDifferentVersionMessages, getDropWhenFull, getInternalThreadPool, getInternalThreadPoolSize, getInternalThreadPoolSizeLargest, getInternalThreadPoolThreadFactory, getJmxObjects, getLocalAddress, getLocalPhysicalAddress, getLogDiscardMessages, getLogDiscardMessagesVersion, getMaxBundleSize, getMessageProcessingMaxBufferSize, getMessageStats, getNumberOfThreadDumps, getNumMessagesSent, getNumThreads, getNumTimerTasks, getPhysicalAddress, getPhysicalAddressFromCache, getPortRange, getReceiveInterfaces, getSocketFactory, getThreadDumpsThreshold, getThreadFactory, getThreadNamingPattern, getThreadPool, getThreadPoolKeepAliveTime, getThreadPoolMaxThreads, getThreadPoolMinThreads, getThreadPoolSize, getThreadPoolSizeActive, getThreadPoolSizeLargest, getThreadPoolThreadFactory, getTimer, getTimerClass, getTimerThreads, getTimeService, getUseIpAddresses, handleConnect, handleDisconnect, handleMessageBatch, handleProbe, handleSingleMessage, incrBatchesSent, incrNumSingleMsgsSent, isDiagnosticsEnabled, isDiagnosticsRunning, isDiagUdEnabled, isLogicalAddressCacheReaperRunning, isMulticastCapable, isReceiveOnAllInterfaces, localAddress, loggerType, loopback, passBatchUp, passMessageUp, printLogicalAddressCache, printWhoHasCache, processBatch, receive, receive, registerLocalAddress, registerProbeHandler, removeCancelledTimerTasks, removeLogicalAddressFromCache, resetStats, resetThreadDumps, runInNewThread, send, sendToMembers, sendToSingleMember, setBindAddress, setBindPort, setBindToAllInterfaces, setBundler, setBundlerCapacity, setDiagnosticsEnabled, setDiagnosticsHandler, setDropWhenFull, setInAllThreadFactories, setInternalThreadPool, setInternalThreadPoolThreadFactory, setLevel, setLogDiscardMessages, setLogDiscardMessagesVersion, setMaxBundleSize, setMessageProcessingPolicy, setPortRange, setSocketFactory, setSourceAddress, setThreadDumpsThreshold, setThreadFactory, setThreadNames, setThreadPool, setThreadPoolKeepAliveTime, setThreadPoolMaxThreads, setThreadPoolMinThreads, setThreadPoolThreadFactory, setTimer, setTimeService, shutdownThreadPool, start, startDiagnostics, stop, stopDiagnostics, submitToThreadPool, submitToThreadPool, supportedKeys, timestamp, toString, unicastDestMismatch, unregisterProbeHandler, unsetThreadNames, useFibers, versionMatch, view
-
Methods inherited from class org.jgroups.stack.Protocol
accept, afterCreationHook, enableStats, getConfigurableObjects, getDownProtocol, getDownServices, getId, getIdsAbove, getLevel, getLog, getName, getProtocolStack, getTransport, getUpProtocol, getUpServices, getValue, isErgonomics, level, parse, providedDownServices, providedUpServices, requiredDownServices, requiredUpServices, resetStatistics, setDownProtocol, setErgonomics, setId, setProtocolStack, setUpProtocol, setValue, statsEnabled, up, up, up
-
-
-
-
Field Detail
-
reaper_interval
protected long reaper_interval
-
conn_expire_time
protected long conn_expire_time
-
recv_buf_size
protected int recv_buf_size
-
send_buf_size
protected int send_buf_size
-
sock_conn_timeout
protected int sock_conn_timeout
-
peer_addr_read_timeout
protected int peer_addr_read_timeout
-
max_length
protected int max_length
-
tcp_nodelay
protected boolean tcp_nodelay
-
linger
protected int linger
-
client_bind_addr
protected java.net.InetAddress client_bind_addr
-
client_bind_port
protected int client_bind_port
-
defer_client_bind_addr
protected boolean defer_client_bind_addr
-
-
Method Detail
-
supportsMulticasting
public boolean supportsMulticasting()
Description copied from class:TP
Whether or not hardware multicasting is supported- Specified by:
supportsMulticasting
in classTP
-
getReaperInterval
public long getReaperInterval()
-
setReaperInterval
public BasicTCP setReaperInterval(long interval)
-
reaperInterval
public BasicTCP reaperInterval(long interval)
-
getConnExpireTime
public long getConnExpireTime()
-
setConnExpireTime
public BasicTCP setConnExpireTime(long time)
-
getRecvBufSize
public int getRecvBufSize()
-
setRecvBufSize
public BasicTCP setRecvBufSize(int r)
-
getSendBufSize
public int getSendBufSize()
-
setSendBufSize
public BasicTCP setSendBufSize(int s)
-
getSockConnTimeout
public int getSockConnTimeout()
-
setSockConnTimeout
public BasicTCP setSockConnTimeout(int s)
-
getMaxLength
public int getMaxLength()
-
setMaxLength
public BasicTCP setMaxLength(int len)
-
getPeerAddrReadTimeout
public int getPeerAddrReadTimeout()
-
setPeerAddrReadTimeout
public BasicTCP setPeerAddrReadTimeout(int p)
-
tcpNodelay
public boolean tcpNodelay()
-
tcpNodelay
public BasicTCP tcpNodelay(boolean t)
-
getLinger
public int getLinger()
-
setLinger
public BasicTCP setLinger(int l)
-
getClientBindAddr
public java.net.InetAddress getClientBindAddr()
-
setClientBindAddr
public BasicTCP setClientBindAddr(java.net.InetAddress c)
-
getClientBindPort
public int getClientBindPort()
-
setClientBindPort
public BasicTCP setClientBindPort(int c)
-
deferClientBindAddr
public boolean deferClientBindAddr()
-
deferClientBindAddr
public BasicTCP deferClientBindAddr(boolean d)
-
init
public void init() throws java.lang.Exception
Description copied from class:Protocol
Called after instance has been created (null constructor) and before protocol is started. Properties are already set. Other protocols are not yet connected and events cannot yet be sent.
-
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 classTP
- 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 classTP
- Parameters:
dest
- Must be a non-null unicast addressdata
- The data to be sent. This is not a copy, so don't modify it- Throws:
java.lang.Exception
-
printConnections
public abstract java.lang.String printConnections()
-
send
public abstract void send(Address dest, byte[] data, int offset, int length) throws java.lang.Exception
- Throws:
java.lang.Exception
-
retainAll
public abstract void retainAll(java.util.Collection<Address> members)
-
receive
public void receive(Address sender, java.nio.ByteBuffer buf)
Description copied from interface:Receiver
Delivers a message from a given sender to the application- Specified by:
receive
in interfaceReceiver
- Parameters:
sender
- The sender of the messagebuf
- The buffer. An application typically de-serializes data from the buffer into objects used by the application. Note that when receive() returns, it is not safe to use the buffer any longer; if an application needs to use a buffer after this callback returns, it must make a copy. Note that buf could be a direct ByteBuffer.
-
down
public java.lang.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 usingdown_prot.down()
.
-
-