Package org.simpleframework.transport
Class SocketWrapper
- java.lang.Object
-
- org.simpleframework.transport.SocketWrapper
-
- All Implemented Interfaces:
Socket
public class SocketWrapper extends java.lang.Object implements Socket
This is aSocketWrapper
objects that represents a TCP socket connections. This contains a map that allows attributes to be associated with the client connection. Attributes such as security certificates or other transport related details can be exposed to theRequest
using the socket attribute map.This provides the connected
SocketChannel
that can be used to receive and response to HTTP requests. The socket channel must be selectable and in non-blocking mode. If the socket is not in a non-blocking state the connection will not be processed.- Author:
- Niall Gallagher
-
-
Constructor Summary
Constructors Constructor Description SocketWrapper(java.nio.channels.SocketChannel channel, Trace trace)
This creates aSocketWrapper
from a socket channel.SocketWrapper(java.nio.channels.SocketChannel channel, Trace trace, javax.net.ssl.SSLEngine engine)
This creates aSecureSocket
from a socket channel.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.util.Map
getAttributes()
This method is used to get theMap
of attributes by this socket.java.nio.channels.SocketChannel
getChannel()
This method is used to acquire theSocketChannel
for the connection.javax.net.ssl.SSLEngine
getEngine()
This is used to acquire the SSL engine used for HTTPS.Trace
getTrace()
This is used to acquire the trace object that is associated with the socket.
-
-
-
Constructor Detail
-
SocketWrapper
public SocketWrapper(java.nio.channels.SocketChannel channel, Trace trace)
This creates aSocketWrapper
from a socket channel. Any implementations of the object may use this constructor to ensure that all the data is initialized.- Parameters:
channel
- the socket channel that is used as the transporttrace
- used to trace specific events for the socket
-
SocketWrapper
public SocketWrapper(java.nio.channels.SocketChannel channel, Trace trace, javax.net.ssl.SSLEngine engine)
This creates aSecureSocket
from a socket channel. Any implementations of the object may use this constructor to ensure that all the data is initialized.- Parameters:
channel
- the socket channel that is used as the transporttrace
- used to trace specific events for the socketengine
- this is the SSL engine used for secure transport
-
-
Method Detail
-
getTrace
public Trace getTrace()
This is used to acquire the trace object that is associated with the socket. A trace object is used to collection details on what operations are being performed on the socket. For instance it may contain information relating to I/O events or more application specific events such as errors.
-
getEngine
public javax.net.ssl.SSLEngine getEngine()
This is used to acquire the SSL engine used for HTTPS. If the socket is connected to an SSL transport this returns an SSL engine which can be used to establish the secure connection and send and receive content over that connection. If this is null then the socket represents a normal transport.
-
getChannel
public java.nio.channels.SocketChannel getChannel()
This method is used to acquire theSocketChannel
for the connection. This allows the server to acquire the input and output streams with which to communicate. It can also be used to configure the connection and perform various network operations that could otherwise not be performed.- Specified by:
getChannel
in interfaceSocket
- Returns:
- this returns the socket used by this HTTP socket
-
getAttributes
public java.util.Map getAttributes()
This method is used to get theMap
of attributes by this socket. The attributes map is used to maintain details about the connection. Information such as security credentials to client details can be placed within the attribute map.- Specified by:
getAttributes
in interfaceSocket
- Returns:
- this returns the map of attributes for this socket
-
-