public class AprSocket
extends java.lang.Object
implements java.lang.Runnable
| Modifier and Type | Field and Description |
|---|---|
(package private) static int |
ACCEPTED |
(package private) static int |
CLOSED |
(package private) static int |
CONNECTED |
(package private) static int |
CONNECTING |
private AprSocketContext |
context |
(package private) static int |
ERROR |
(package private) AprSocketContext.BlockingPollHandler |
handler |
private HostInfo |
hostInfo |
private static java.util.logging.Logger |
log |
private static byte[][] |
NO_CERTS |
(package private) static int |
POLL |
(package private) AprSocketContext.AprPoller |
poller |
(package private) static int |
POLLIN |
(package private) static int |
POLLIN_ACTIVE |
(package private) static int |
POLLOUT |
(package private) static int |
POLLOUT_ACTIVE |
(package private) static int |
READING |
(package private) long |
socket |
(package private) static int |
SSL_ATTACHED |
private int |
status |
(package private) static int |
WRITING |
| Constructor and Description |
|---|
AprSocket(AprSocketContext context) |
| Modifier and Type | Method and Description |
|---|---|
(package private) void |
afterConnect() |
void |
blockingStartTLS()
This is a blocking call ! ( can be made non-blocking, but too complex )
Will be called automatically after connect() or accept if 'secure' is
true.
|
(package private) boolean |
checkBitAndSocket(int bit) |
(package private) boolean |
checkPreConnect(int bit) |
(package private) void |
clearStatus(int bit) |
void |
close() |
void |
connect() |
java.lang.String |
getCipherSuite() |
AprSocketContext |
getContext() |
AprSocketContext.BlockingPollHandler |
getHandler() |
HostInfo |
getHost() |
long |
getIOTimeout() |
int |
getKeySize() |
java.lang.String |
getLocalAddress() |
java.lang.String |
getLocalHostname() |
int |
getLocalPort() |
byte[][] |
getPeerCert(boolean check) |
java.security.cert.X509Certificate[] |
getPeerX509Cert() |
java.lang.String |
getRemoteAddress() |
java.lang.String |
getRemoteHostname() |
int |
getRemotePort() |
private void |
handshakeDone() |
boolean |
isBlocking() |
boolean |
isClosed() |
boolean |
isError() |
boolean |
isPolling()
Check if the socket is currently registered with a poller.
|
(package private) void |
maybeDestroy() |
private void |
notifyConnected(boolean server) |
(package private) void |
notifyError(java.lang.Throwable err,
boolean needsThread) |
(package private) void |
notifyIO() |
private int |
processReadResult(byte[] data,
int off,
int len,
int read) |
int |
read(byte[] data,
int off,
int len) |
int |
read(byte[] data,
int off,
int len,
long to) |
int |
readNB(byte[] data,
int off,
int len) |
void |
recycle() |
(package private) int |
requestedPolling() |
void |
reset()
Close input and output, potentially sending RST, than close the socket.
|
void |
run() |
void |
setHandler(AprSocketContext.BlockingPollHandler l) |
(package private) AprSocket |
setHost(HostInfo hi) |
private void |
setNonBlocking() |
(package private) boolean |
setStatus(int bit) |
java.lang.String |
toString() |
private void |
updatePolling() |
int |
write(byte[] data,
int off,
int len) |
int |
write(byte[] data,
int off,
int len,
long to)
Write as much data as possible to the socket.
|
private int |
writeInternal(byte[] data,
int off,
int len) |
private static final java.util.logging.Logger log
private static final byte[][] NO_CERTS
static final int CONNECTING
static final int CONNECTED
static final int POLLIN_ACTIVE
static final int POLLOUT_ACTIVE
static final int POLL
static final int SSL_ATTACHED
static final int POLLIN
static final int POLLOUT
static final int ACCEPTED
static final int ERROR
static final int CLOSED
static final int READING
static final int WRITING
private final AprSocketContext context
AprSocketContext.BlockingPollHandler handler
AprSocketContext.AprPoller poller
private int status
long socket
private HostInfo hostInfo
AprSocket(AprSocketContext context)
public void recycle()
public java.lang.String toString()
toString in class java.lang.Objectpublic void setHandler(AprSocketContext.BlockingPollHandler l)
private void setNonBlocking()
public boolean isPolling()
public AprSocketContext.BlockingPollHandler getHandler()
public AprSocketContext getContext()
public void connect()
throws java.io.IOException
java.io.IOExceptionvoid afterConnect()
throws java.io.IOException
java.io.IOExceptionpublic HostInfo getHost()
public int write(byte[] data,
int off,
int len,
long to)
throws java.io.IOException
data - off - len - java.io.IOExceptionpublic int write(byte[] data,
int off,
int len)
throws java.io.IOException
java.io.IOExceptionprivate int writeInternal(byte[] data,
int off,
int len)
throws java.io.IOException
java.io.IOExceptionpublic int read(byte[] data,
int off,
int len,
long to)
throws java.io.IOException
java.io.IOExceptionpublic int read(byte[] data,
int off,
int len)
throws java.io.IOException
java.io.IOExceptionprivate int processReadResult(byte[] data,
int off,
int len,
int read)
throws java.io.IOException
java.io.IOExceptionpublic int readNB(byte[] data,
int off,
int len)
throws java.io.IOException
java.io.IOExceptionpublic void close()
void maybeDestroy()
public void reset()
public boolean isClosed()
public long getIOTimeout()
throws java.io.IOException
java.io.IOExceptionpublic byte[][] getPeerCert(boolean check)
throws java.io.IOException
java.io.IOExceptionpublic java.security.cert.X509Certificate[] getPeerX509Cert()
throws java.io.IOException
java.io.IOExceptionpublic java.lang.String getCipherSuite()
throws java.io.IOException
java.io.IOExceptionpublic int getKeySize()
throws java.io.IOException
java.io.IOExceptionpublic int getRemotePort()
throws java.io.IOException
java.io.IOExceptionpublic java.lang.String getRemoteAddress()
throws java.io.IOException
java.io.IOExceptionpublic java.lang.String getRemoteHostname()
throws java.io.IOException
java.io.IOExceptionpublic int getLocalPort()
throws java.io.IOException
java.io.IOExceptionpublic java.lang.String getLocalAddress()
throws java.io.IOException
java.io.IOExceptionpublic java.lang.String getLocalHostname()
throws java.io.IOException
java.io.IOExceptionpublic boolean isBlocking()
public boolean isError()
void notifyError(java.lang.Throwable err,
boolean needsThread)
void notifyIO()
throws java.io.IOException
java.io.IOExceptionprivate void notifyConnected(boolean server)
throws java.io.IOException
java.io.IOExceptionprivate void updatePolling()
throws java.io.IOException
java.io.IOExceptionpublic void run()
run in interface java.lang.Runnablepublic void blockingStartTLS()
throws java.io.IOException
java.io.IOExceptionprivate void handshakeDone()
throws java.io.IOException
java.io.IOExceptionint requestedPolling()
boolean checkBitAndSocket(int bit)
boolean checkPreConnect(int bit)
void clearStatus(int bit)
boolean setStatus(int bit)