Package org.apache.hc.core5.testing.nio
Class LoggingIOSession
- java.lang.Object
-
- org.apache.hc.core5.testing.nio.LoggingIOSession
-
- All Implemented Interfaces:
java.io.Closeable,java.lang.AutoCloseable,java.nio.channels.ByteChannel,java.nio.channels.Channel,java.nio.channels.ReadableByteChannel,java.nio.channels.WritableByteChannel,SocketModalCloseable,ModalCloseable,IOSession,Identifiable
@Internal public class LoggingIOSession extends java.lang.Object implements IOSession
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.apache.hc.core5.reactor.IOSession
IOSession.Status
-
-
Constructor Summary
Constructors Constructor Description LoggingIOSession(IOSession session, org.slf4j.Logger log, org.slf4j.Logger wireLog)LoggingIOSession(ProtocolIOSession session, org.slf4j.Logger log)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description java.nio.channels.ByteChannelchannel()Returns the underlying I/O channel associated with this session.voidclearEvent(int op)Clears interest in a particular I/O event type by updating the event mask associated with the session.voidclose()Terminates the session gracefully and closes the underlying I/O channel.voidclose(CloseMode closeMode)Closes this process or endpoint and releases any system resources associated with it.voidenqueue(Command command, Command.Priority priority)InsertsCommandat the end of the command queue.private static java.lang.StringformatOps(int ops)intgetEventMask()Returns mask of I/O evens this session declared interest in.IOEventHandlergetHandler()Returns event handler associated with the session.java.lang.StringgetId()longgetLastEventTime()Returns timestamp of the last I/O event including socket timeout reset.longgetLastReadTime()Returns timestamp of the last read event.longgetLastWriteTime()Returns timestamp of the last write event.java.net.SocketAddressgetLocalAddress()Returns local address.java.util.concurrent.locks.LockgetLock()Returns session lock that should be used by I/O event handlers to synchronize access to the session.java.net.SocketAddressgetRemoteAddress()Returns address of the remote peer.TimeoutgetSocketTimeout()Returns value of the socket timeout in milliseconds.IOSession.StatusgetStatus()Returns status of the session:booleanhasCommands()Tests if there enqueued commands pending execution.booleanisOpen()private voidlogData(java.nio.ByteBuffer data, java.lang.String prefix)Commandpoll()Removes firstCommandfrom the command queue if available.intread(java.nio.ByteBuffer dst)voidsetEvent(int op)Declares interest in a particular I/O event type by updating the event mask associated with the session.voidsetEventMask(int ops)Declares interest in I/O event notifications by setting the event mask associated with the sessionvoidsetSocketTimeout(Timeout timeout)Sets value of the socket timeout in milliseconds.java.lang.StringtoString()voidupdateReadTime()Updates the timestamp of the last read eventvoidupdateWriteTime()Updates the timestamp of the last write eventvoidupgrade(IOEventHandler handler)Upgrades event handler associated with the session.intwrite(java.nio.ByteBuffer src)
-
-
-
Field Detail
-
log
private final org.slf4j.Logger log
-
wireLog
private final org.slf4j.Logger wireLog
-
session
private final IOSession session
-
-
Constructor Detail
-
LoggingIOSession
public LoggingIOSession(IOSession session, org.slf4j.Logger log, org.slf4j.Logger wireLog)
-
LoggingIOSession
public LoggingIOSession(ProtocolIOSession session, org.slf4j.Logger log)
-
-
Method Detail
-
getId
public java.lang.String getId()
- Specified by:
getIdin interfaceIdentifiable
-
getLock
public java.util.concurrent.locks.Lock getLock()
Description copied from interface:IOSessionReturns session lock that should be used by I/O event handlers to synchronize access to the session.
-
enqueue
public void enqueue(Command command, Command.Priority priority)
Description copied from interface:IOSessionInsertsCommandat the end of the command queue.
-
hasCommands
public boolean hasCommands()
Description copied from interface:IOSessionTests if there enqueued commands pending execution.- Specified by:
hasCommandsin interfaceIOSession
-
poll
public Command poll()
Description copied from interface:IOSessionRemoves firstCommandfrom the command queue if available.
-
channel
public java.nio.channels.ByteChannel channel()
Description copied from interface:IOSessionReturns the underlying I/O channel associated with this session.
-
getLocalAddress
public java.net.SocketAddress getLocalAddress()
Description copied from interface:IOSessionReturns local address.- Specified by:
getLocalAddressin interfaceIOSession- Returns:
- socket address.
-
getRemoteAddress
public java.net.SocketAddress getRemoteAddress()
Description copied from interface:IOSessionReturns address of the remote peer.- Specified by:
getRemoteAddressin interfaceIOSession- Returns:
- socket address.
-
getEventMask
public int getEventMask()
Description copied from interface:IOSessionReturns mask of I/O evens this session declared interest in.- Specified by:
getEventMaskin interfaceIOSession- Returns:
- I/O event mask.
-
formatOps
private static java.lang.String formatOps(int ops)
-
setEventMask
public void setEventMask(int ops)
Description copied from interface:IOSessionDeclares interest in I/O event notifications by setting the event mask associated with the session- Specified by:
setEventMaskin interfaceIOSession- Parameters:
ops- new I/O event mask.
-
setEvent
public void setEvent(int op)
Description copied from interface:IOSessionDeclares interest in a particular I/O event type by updating the event mask associated with the session.
-
clearEvent
public void clearEvent(int op)
Description copied from interface:IOSessionClears interest in a particular I/O event type by updating the event mask associated with the session.- Specified by:
clearEventin interfaceIOSession- Parameters:
op- I/O event type.
-
close
public void close()
Description copied from interface:IOSessionTerminates the session gracefully and closes the underlying I/O channel. This method ensures that session termination handshake, such as the one used by the SSL/TLS protocol, is correctly carried out.
-
getStatus
public IOSession.Status getStatus()
Description copied from interface:IOSessionReturns status of the session:IOSession.Status.ACTIVE: session is active.IOSession.Status.CLOSING: session is being closed.IOSession.Status.CLOSED: session has been terminated.
-
isOpen
public boolean isOpen()
- Specified by:
isOpenin interfacejava.nio.channels.Channel
-
close
public void close(CloseMode closeMode)
Description copied from interface:ModalCloseableCloses this process or endpoint and releases any system resources associated with it. If the endpoint or the process is already closed then invoking this method has no effect.- Specified by:
closein interfaceModalCloseable- Parameters:
closeMode- How to close the receiver.
-
getSocketTimeout
public Timeout getSocketTimeout()
Description copied from interface:IOSessionReturns value of the socket timeout in milliseconds. The value of0signifies the session cannot time out.- Specified by:
getSocketTimeoutin interfaceIOSession- Specified by:
getSocketTimeoutin interfaceSocketModalCloseable- Returns:
- socket timeout.
-
setSocketTimeout
public void setSocketTimeout(Timeout timeout)
Description copied from interface:IOSessionSets value of the socket timeout in milliseconds. The value of0signifies the session cannot time out.Please note this operation may affect the last event time.
- Specified by:
setSocketTimeoutin interfaceIOSession- Specified by:
setSocketTimeoutin interfaceSocketModalCloseable- Parameters:
timeout- socket timeout.- See Also:
IOSession.getLastEventTime()
-
read
public int read(java.nio.ByteBuffer dst) throws java.io.IOException- Specified by:
readin interfacejava.nio.channels.ReadableByteChannel- Throws:
java.io.IOException
-
write
public int write(java.nio.ByteBuffer src) throws java.io.IOException- Specified by:
writein interfacejava.nio.channels.WritableByteChannel- Throws:
java.io.IOException
-
logData
private void logData(java.nio.ByteBuffer data, java.lang.String prefix) throws java.io.IOException- Throws:
java.io.IOException
-
updateReadTime
public void updateReadTime()
Description copied from interface:IOSessionUpdates the timestamp of the last read event- Specified by:
updateReadTimein interfaceIOSession
-
updateWriteTime
public void updateWriteTime()
Description copied from interface:IOSessionUpdates the timestamp of the last write event- Specified by:
updateWriteTimein interfaceIOSession
-
getLastReadTime
public long getLastReadTime()
Description copied from interface:IOSessionReturns timestamp of the last read event.- Specified by:
getLastReadTimein interfaceIOSession- Returns:
- timestamp.
-
getLastWriteTime
public long getLastWriteTime()
Description copied from interface:IOSessionReturns timestamp of the last write event.- Specified by:
getLastWriteTimein interfaceIOSession- Returns:
- timestamp.
-
getLastEventTime
public long getLastEventTime()
Description copied from interface:IOSessionReturns timestamp of the last I/O event including socket timeout reset.- Specified by:
getLastEventTimein interfaceIOSession- Returns:
- timestamp.
- See Also:
IOSession.getSocketTimeout()
-
getHandler
public IOEventHandler getHandler()
Description copied from interface:IOSessionReturns event handler associated with the session.- Specified by:
getHandlerin interfaceIOSession
-
upgrade
public void upgrade(IOEventHandler handler)
Description copied from interface:IOSessionUpgrades event handler associated with the session.
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
-