Package org.apache.http.impl.nio.reactor
Class SessionRequestImpl
- java.lang.Object
-
- org.apache.http.impl.nio.reactor.SessionRequestImpl
-
- All Implemented Interfaces:
SessionRequest
@Contract(threading=SAFE_CONDITIONAL) public class SessionRequestImpl extends java.lang.Object implements SessionRequest
Default implementation ofSessionRequest
.- Since:
- 4.0
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static class
SessionRequestImpl.SessionRequestState
-
Field Summary
Fields Modifier and Type Field Description private java.lang.Object
attachment
private SessionRequestCallback
callback
private int
connectTimeout
private java.io.IOException
exception
private java.nio.channels.SelectionKey
key
private java.net.SocketAddress
localAddress
private java.net.SocketAddress
remoteAddress
private IOSession
session
private java.util.concurrent.atomic.AtomicReference<SessionRequestImpl.SessionRequestState>
state
-
Constructor Summary
Constructors Constructor Description SessionRequestImpl(java.net.SocketAddress remoteAddress, java.net.SocketAddress localAddress, java.lang.Object attachment, SessionRequestCallback callback)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
cancel()
Cancels the request.void
completed(IOSession session)
void
failed(java.io.IOException exception)
java.lang.Object
getAttachment()
Returns attachment object will be added to the session's context upon initialization.int
getConnectTimeout()
Returns connect timeout value in milliseconds.java.io.IOException
getException()
ReturnsIOException
instance if the request could not be successfully executed due to an I/O error ornull
if no error occurred to this point.java.net.SocketAddress
getLocalAddress()
Returns local socket address.java.net.SocketAddress
getRemoteAddress()
Returns socket address of the remote host.IOSession
getSession()
ReturnsIOSession
instance created as a result of this request ornull
if the request is still pending.boolean
isCompleted()
Determines whether the request has been completed (either successfully or unsuccessfully).(package private) boolean
isTerminated()
void
setConnectTimeout(int timeout)
Sets connect timeout value in milliseconds.protected void
setKey(java.nio.channels.SelectionKey key)
void
timeout()
void
waitFor()
Waits for completion of this session request.
-
-
-
Field Detail
-
remoteAddress
private final java.net.SocketAddress remoteAddress
-
localAddress
private final java.net.SocketAddress localAddress
-
attachment
private final java.lang.Object attachment
-
callback
private final SessionRequestCallback callback
-
state
private final java.util.concurrent.atomic.AtomicReference<SessionRequestImpl.SessionRequestState> state
-
key
private volatile java.nio.channels.SelectionKey key
-
connectTimeout
private volatile int connectTimeout
-
session
private volatile IOSession session
-
exception
private volatile java.io.IOException exception
-
-
Constructor Detail
-
SessionRequestImpl
public SessionRequestImpl(java.net.SocketAddress remoteAddress, java.net.SocketAddress localAddress, java.lang.Object attachment, SessionRequestCallback callback)
-
-
Method Detail
-
getRemoteAddress
public java.net.SocketAddress getRemoteAddress()
Description copied from interface:SessionRequest
Returns socket address of the remote host.- Specified by:
getRemoteAddress
in interfaceSessionRequest
- Returns:
- socket address of the remote host
-
getLocalAddress
public java.net.SocketAddress getLocalAddress()
Description copied from interface:SessionRequest
Returns local socket address.- Specified by:
getLocalAddress
in interfaceSessionRequest
- Returns:
- local socket address.
-
getAttachment
public java.lang.Object getAttachment()
Description copied from interface:SessionRequest
Returns attachment object will be added to the session's context upon initialization. This object can be used to pass an initial processing state to the protocol handler.- Specified by:
getAttachment
in interfaceSessionRequest
- Returns:
- attachment object.
-
isCompleted
public boolean isCompleted()
Description copied from interface:SessionRequest
Determines whether the request has been completed (either successfully or unsuccessfully).- Specified by:
isCompleted
in interfaceSessionRequest
- Returns:
true
if the request has been completed,false
if still pending.
-
isTerminated
boolean isTerminated()
-
setKey
protected void setKey(java.nio.channels.SelectionKey key)
-
waitFor
public void waitFor() throws java.lang.InterruptedException
Description copied from interface:SessionRequest
Waits for completion of this session request.- Specified by:
waitFor
in interfaceSessionRequest
- Throws:
java.lang.InterruptedException
- in case the execution process was interrupted.
-
getSession
public IOSession getSession()
Description copied from interface:SessionRequest
ReturnsIOSession
instance created as a result of this request ornull
if the request is still pending.- Specified by:
getSession
in interfaceSessionRequest
- Returns:
- I/O session or
null
if the request is still pending.
-
getException
public java.io.IOException getException()
Description copied from interface:SessionRequest
ReturnsIOException
instance if the request could not be successfully executed due to an I/O error ornull
if no error occurred to this point.- Specified by:
getException
in interfaceSessionRequest
- Returns:
- I/O exception or
null
if no error occurred to this point.
-
completed
public void completed(IOSession session)
-
failed
public void failed(java.io.IOException exception)
-
timeout
public void timeout()
-
getConnectTimeout
public int getConnectTimeout()
Description copied from interface:SessionRequest
Returns connect timeout value in milliseconds.- Specified by:
getConnectTimeout
in interfaceSessionRequest
- Returns:
- connect timeout value in milliseconds.
-
setConnectTimeout
public void setConnectTimeout(int timeout)
Description copied from interface:SessionRequest
Sets connect timeout value in milliseconds.- Specified by:
setConnectTimeout
in interfaceSessionRequest
- Parameters:
timeout
- connect timeout value in milliseconds.
-
cancel
public void cancel()
Description copied from interface:SessionRequest
Cancels the request. Invocation of this method will set the status of the request to completed and will unblock threads blocked in the {SessionRequest.waitFor()
} method.- Specified by:
cancel
in interfaceSessionRequest
-
-