public class Protocol extends Object
The Protocol object is multithread safe.
Constructor and Description |
---|
Protocol(InputStream in,
PrintStream out,
Properties props,
boolean debug)
Constructor for debugging.
|
Protocol(String host,
int port,
Properties props,
String prefix,
boolean isSSL,
MailLogger logger)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
void |
addResponseHandler(ResponseHandler h)
Adds a response handler.
|
Response[] |
command(String command,
Argument args)
Send a command to the server.
|
SocketChannel |
getChannel()
Return the SocketChannel associated with this connection, if any.
|
InetAddress |
getInetAddress()
Return the address the socket connected to.
|
long |
getTimestamp()
Returns the timestamp.
|
void |
handleResult(Response response)
Convenience routine to handle OK, NO, BAD and BYE responses.
|
boolean |
hasResponse()
Is another response available in our buffer?
|
boolean |
isSSL()
Is this connection using an SSL socket?
|
void |
notifyResponseHandlers(Response[] responses)
Notify response handlers
|
Response |
readResponse() |
void |
removeResponseHandler(ResponseHandler h)
Removed the specified response handler.
|
void |
simpleCommand(String cmd,
Argument args)
Convenience routine to handle simple IAP commands
that do not have responses specific to that command.
|
void |
startCompression(String cmd)
Start compression on the current connection.
|
void |
startTLS(String cmd)
Start TLS on the current connection.
|
boolean |
supportsUtf8()
Does the server support UTF-8?
This implementation returns false.
|
String |
writeCommand(String command,
Argument args) |
public Protocol(String host, int port, Properties props, String prefix, boolean isSSL, MailLogger logger) throws IOException, ProtocolException
Opens a connection to the given host at given port.
host
- host to connect toport
- portnumber to connect toprops
- Properties object used by this protocolprefix
- Prefix to prepend to property keysisSSL
- use SSL?logger
- log messages hereIOException
- for I/O errorsProtocolException
- for protocol failurespublic Protocol(InputStream in, PrintStream out, Properties props, boolean debug) throws IOException
in
- the InputStream to read fromout
- the PrintStream to write toprops
- Properties object used by this protocoldebug
- true to enable debugging outputIOException
- for I/O errorspublic long getTimestamp()
public void addResponseHandler(ResponseHandler h)
h
- the response handlerpublic void removeResponseHandler(ResponseHandler h)
h
- the response handlerpublic void notifyResponseHandlers(Response[] responses)
responses
- the responsespublic Response readResponse() throws IOException, ProtocolException
IOException
ProtocolException
public boolean hasResponse()
public String writeCommand(String command, Argument args) throws IOException, ProtocolException
IOException
ProtocolException
public Response[] command(String command, Argument args)
command
- the commandargs
- the argumentspublic void handleResult(Response response) throws ProtocolException
response
- the responseProtocolException
- for protocol failurespublic void simpleCommand(String cmd, Argument args) throws ProtocolException
cmd
- the commandargs
- the argumentsProtocolException
- for protocol failurespublic void startTLS(String cmd) throws IOException, ProtocolException
cmd
is the command to issue to start TLS negotiation.
If the command succeeds, we begin TLS negotiation.
If the socket is already an SSLSocket this is a nop and the command
is not issued.cmd
- the command to issueIOException
- for I/O errorsProtocolException
- for protocol failurespublic void startCompression(String cmd) throws IOException, ProtocolException
cmd
is the command to issue to start compression.
If the command succeeds, we begin compression.cmd
- the command to issueIOException
- for I/O errorsProtocolException
- for protocol failurespublic boolean isSSL()
public InetAddress getInetAddress()
public SocketChannel getChannel()
public boolean supportsUtf8()
Copyright © 2010 - 2020 Adobe. All Rights Reserved