public abstract class SocketBase extends Own implements IPollEvents, Pipe.IPipeEvents
Modifier and Type | Class and Description |
---|---|
private static class |
SocketBase.EndpointPipe |
private static class |
SocketBase.SimpleURI |
Modifier and Type | Field and Description |
---|---|
private boolean |
active |
protected java.lang.String |
connectRid |
private java.util.concurrent.atomic.AtomicBoolean |
ctxTerminated |
private java.util.concurrent.atomic.AtomicBoolean |
destroyed |
private MultiMap<java.lang.String,SocketBase.EndpointPipe> |
endpoints |
private java.nio.channels.SocketChannel |
fileDesc |
private Poller.Handle |
handle |
private MultiMap<java.lang.String,Pipe> |
inprocs |
private java.lang.ThreadLocal<java.lang.Boolean> |
isInEventThreadLocal |
private long |
lastTsc |
private IMailbox |
mailbox |
private int |
monitorEvents |
private SocketBase |
monitorSocket |
private java.util.concurrent.locks.ReentrantLock |
monitorSync |
private java.util.Set<Pipe> |
pipes |
private Poller |
poller |
private boolean |
rcvmore |
private Signaler |
reaperSignaler |
private boolean |
threadSafe |
private java.util.concurrent.locks.ReentrantLock |
threadSafeSync |
private int |
ticks |
Modifier | Constructor and Description |
---|---|
protected |
SocketBase(Ctx parent,
int tid,
int sid) |
protected |
SocketBase(Ctx parent,
int tid,
int sid,
boolean threadSafe) |
Modifier and Type | Method and Description |
---|---|
private void |
addEndpoint(java.lang.String addr,
Own endpoint,
Pipe pipe) |
private void |
attachPipe(Pipe pipe,
boolean isLocallyInitiated) |
private void |
attachPipe(Pipe pipe,
boolean subscribe2all,
boolean isLocallyInitiated) |
boolean |
bind(java.lang.String addr) |
void |
cancel(java.util.concurrent.atomic.AtomicBoolean canceled) |
private void |
checkDestroy() |
private NetProtocol |
checkProtocol(java.lang.String protocol) |
void |
close() |
boolean |
connect(java.lang.String addr) |
private boolean |
connectInternal(java.lang.String addr) |
int |
connectPeer(java.lang.String addr) |
protected void |
destroy() |
boolean |
disconnectPeer(int routingId) |
private void |
enterInEvent() |
int |
errno() |
private void |
event(java.lang.String addr,
java.lang.Object arg,
int event) |
void |
eventAccepted(java.lang.String addr,
java.nio.channels.SelectableChannel ch) |
void |
eventAcceptFailed(java.lang.String addr,
int errno) |
void |
eventBindFailed(java.lang.String addr,
int errno) |
void |
eventClosed(java.lang.String addr,
java.nio.channels.SelectableChannel ch) |
void |
eventCloseFailed(java.lang.String addr,
int errno) |
void |
eventConnectDelayed(java.lang.String addr,
int errno) |
void |
eventConnected(java.lang.String addr,
java.nio.channels.SelectableChannel ch) |
void |
eventConnectRetried(java.lang.String addr,
int interval) |
void |
eventDisconnected(java.lang.String addr,
java.nio.channels.SelectableChannel ch) |
void |
eventHandshakeFailedAuth(java.lang.String addr,
int errno) |
void |
eventHandshakeFailedNoDetail(java.lang.String addr,
int errno) |
void |
eventHandshakeFailedProtocol(java.lang.String addr,
int errno) |
void |
eventHandshaken(java.lang.String addr,
int zmtpVersion) |
void |
eventHandshakeSucceeded(java.lang.String addr,
int errno) |
void |
eventListening(java.lang.String addr,
java.nio.channels.SelectableChannel ch) |
private void |
extractFlags(Msg msg) |
protected Blob |
getCredential() |
java.nio.channels.SelectableChannel |
getFD() |
(package private) IMailbox |
getMailbox() |
int |
getSocketOpt(int option) |
java.lang.Object |
getSocketOptx(int option) |
(package private) boolean |
hasIn() |
(package private) boolean |
hasOut() |
void |
hiccuped(Pipe pipe) |
void |
inEvent()
Called by I/O thread when file descriptor is ready for reading.
|
(package private) boolean |
isActive() |
private boolean |
isInEvent() |
boolean |
join(java.lang.String group) |
boolean |
leave(java.lang.String group) |
private void |
leaveInEvent() |
private void |
lock() |
boolean |
monitor(java.lang.String addr,
int events)
Register the address for a monitor.
|
protected void |
monitorEvent(ZMQ.Event event) |
void |
pipeTerminated(Pipe pipe) |
int |
poll(int interest,
int timeout,
java.util.concurrent.atomic.AtomicBoolean canceled) |
protected void |
processBind(Pipe pipe) |
private boolean |
processCommands(int timeout,
boolean throttle,
java.util.concurrent.atomic.AtomicBoolean canceled) |
protected void |
processDestroy() |
protected void |
processStop() |
protected void |
processTerm(int linger) |
void |
readActivated(Pipe pipe) |
Msg |
recv(int flags) |
Msg |
recv(int flags,
java.util.concurrent.atomic.AtomicBoolean canceled) |
boolean |
send(Msg msg,
int flags) |
boolean |
send(Msg msg,
int flags,
java.util.concurrent.atomic.AtomicBoolean canceled) |
boolean |
setSocketOpt(int option,
java.lang.Object optval) |
(package private) void |
startReaping(Poller poller) |
(package private) void |
stop() |
private void |
stopMonitor() |
boolean |
termEndpoint(java.lang.String addr) |
java.lang.String |
toString() |
java.lang.String |
typeString() |
private void |
unlock() |
void |
writeActivated(Pipe pipe) |
protected abstract void |
xattachPipe(Pipe pipe,
boolean subscribe2all,
boolean isLocallyInitiated) |
protected boolean |
xdisconnectPeer(int routingId) |
protected boolean |
xhasIn() |
protected boolean |
xhasOut() |
protected void |
xhiccuped(Pipe pipe) |
protected boolean |
xjoin(java.lang.String group) |
protected boolean |
xleave(java.lang.String group) |
protected abstract void |
xpipeTerminated(Pipe pipe) |
protected void |
xreadActivated(Pipe pipe) |
protected Msg |
xrecv() |
protected boolean |
xsend(Msg msg) |
protected boolean |
xsetsockopt(int option,
java.lang.Object optval) |
protected void |
xwriteActivated(Pipe pipe) |
incSeqnum, isTerminating, launchChild, processOwn, processSeqnum, processTermAck, processTermReq, registerTermAcks, termChild, terminate, unregisterTermAck
chooseIoThread, connectPending, destroySocket, findEndpoint, getCtx, getTid, pendConnection, processActivateRead, processActivateWrite, processAttach, processCancel, processCommand, processHiccup, processPipeTerm, processPipeTermAck, processPlug, processReap, processReapAck, processReaped, registerEndpoint, sendActivateRead, sendActivateWrite, sendAttach, sendAttach, sendBind, sendBind, sendCancel, sendDone, sendHiccup, sendInprocConnected, sendOwn, sendPipeTerm, sendPipeTermAck, sendPlug, sendPlug, sendReap, sendReapAck, sendReaped, sendStop, sendTerm, sendTermAck, sendTermReq, setTid, unregisterEndpoint, unregisterEndpoints
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
acceptEvent, connectEvent, outEvent, timerEvent
private final MultiMap<java.lang.String,SocketBase.EndpointPipe> endpoints
private boolean active
private java.util.concurrent.atomic.AtomicBoolean ctxTerminated
private java.lang.ThreadLocal<java.lang.Boolean> isInEventThreadLocal
private java.util.concurrent.atomic.AtomicBoolean destroyed
private final IMailbox mailbox
private final java.util.Set<Pipe> pipes
private Poller poller
private Poller.Handle handle
private long lastTsc
private int ticks
private boolean rcvmore
private java.nio.channels.SocketChannel fileDesc
private SocketBase monitorSocket
private int monitorEvents
protected java.lang.String connectRid
private final java.util.concurrent.locks.ReentrantLock monitorSync
private final boolean threadSafe
private final java.util.concurrent.locks.ReentrantLock threadSafeSync
private Signaler reaperSignaler
protected SocketBase(Ctx parent, int tid, int sid)
protected SocketBase(Ctx parent, int tid, int sid, boolean threadSafe)
protected abstract void xattachPipe(Pipe pipe, boolean subscribe2all, boolean isLocallyInitiated)
protected abstract void xpipeTerminated(Pipe pipe)
boolean isActive()
final IMailbox getMailbox()
final void stop()
private NetProtocol checkProtocol(java.lang.String protocol)
private void attachPipe(Pipe pipe, boolean isLocallyInitiated)
private void attachPipe(Pipe pipe, boolean subscribe2all, boolean isLocallyInitiated)
public final boolean setSocketOpt(int option, java.lang.Object optval)
public final int getSocketOpt(int option)
public final java.lang.Object getSocketOptx(int option)
public final boolean bind(java.lang.String addr)
public final boolean connect(java.lang.String addr)
public final int connectPeer(java.lang.String addr)
private boolean connectInternal(java.lang.String addr)
public boolean disconnectPeer(int routingId)
public final boolean termEndpoint(java.lang.String addr)
public final boolean send(Msg msg, int flags)
public final boolean send(Msg msg, int flags, java.util.concurrent.atomic.AtomicBoolean canceled)
public final Msg recv(int flags)
public final Msg recv(int flags, java.util.concurrent.atomic.AtomicBoolean canceled)
public final boolean join(java.lang.String group)
public final boolean leave(java.lang.String group)
public final void cancel(java.util.concurrent.atomic.AtomicBoolean canceled)
public final int poll(int interest, int timeout, java.util.concurrent.atomic.AtomicBoolean canceled)
public final void close()
final boolean hasIn()
final boolean hasOut()
final void startReaping(Poller poller)
private boolean isInEvent()
private boolean processCommands(int timeout, boolean throttle, java.util.concurrent.atomic.AtomicBoolean canceled)
protected final void processStop()
processStop
in class ZObject
protected final void processBind(Pipe pipe)
processBind
in class ZObject
protected final void processTerm(int linger)
processTerm
in class Own
protected final void processDestroy()
processDestroy
in class Own
protected boolean xsetsockopt(int option, java.lang.Object optval)
protected boolean xhasOut()
protected boolean xsend(Msg msg)
protected boolean xhasIn()
protected Msg xrecv()
protected Blob getCredential()
protected void xreadActivated(Pipe pipe)
protected void xwriteActivated(Pipe pipe)
protected void xhiccuped(Pipe pipe)
protected boolean xjoin(java.lang.String group)
protected boolean xleave(java.lang.String group)
protected boolean xdisconnectPeer(int routingId)
private void enterInEvent()
private void leaveInEvent()
public final void inEvent()
IPollEvents
inEvent
in interface IPollEvents
private void checkDestroy()
public final void readActivated(Pipe pipe)
readActivated
in interface Pipe.IPipeEvents
public final void writeActivated(Pipe pipe)
writeActivated
in interface Pipe.IPipeEvents
public final void hiccuped(Pipe pipe)
hiccuped
in interface Pipe.IPipeEvents
public final void pipeTerminated(Pipe pipe)
pipeTerminated
in interface Pipe.IPipeEvents
private void extractFlags(Msg msg)
public final boolean monitor(java.lang.String addr, int events)
addr
- or null for unregister.events
- an event mask to monitor.java.lang.IllegalStateException
- if a previous monitor was already
registered.public final void eventHandshaken(java.lang.String addr, int zmtpVersion)
public final void eventConnected(java.lang.String addr, java.nio.channels.SelectableChannel ch)
public final void eventConnectDelayed(java.lang.String addr, int errno)
public final void eventConnectRetried(java.lang.String addr, int interval)
public final void eventListening(java.lang.String addr, java.nio.channels.SelectableChannel ch)
public final void eventBindFailed(java.lang.String addr, int errno)
public final void eventAccepted(java.lang.String addr, java.nio.channels.SelectableChannel ch)
public final void eventAcceptFailed(java.lang.String addr, int errno)
public final void eventClosed(java.lang.String addr, java.nio.channels.SelectableChannel ch)
public final void eventCloseFailed(java.lang.String addr, int errno)
public final void eventDisconnected(java.lang.String addr, java.nio.channels.SelectableChannel ch)
public final void eventHandshakeFailedNoDetail(java.lang.String addr, int errno)
public final void eventHandshakeFailedProtocol(java.lang.String addr, int errno)
public final void eventHandshakeFailedAuth(java.lang.String addr, int errno)
public final void eventHandshakeSucceeded(java.lang.String addr, int errno)
private void event(java.lang.String addr, java.lang.Object arg, int event)
protected final void monitorEvent(ZMQ.Event event)
private void stopMonitor()
public java.lang.String toString()
toString
in class java.lang.Object
public final java.nio.channels.SelectableChannel getFD()
public java.lang.String typeString()
public final int errno()
private void lock()
private void unlock()