Class AsyncDirectTcpTransport<D extends PacketData<?>, P extends Packet<?>>
java.lang.Object
com.hierynomus.smbj.transport.tcp.async.AsyncDirectTcpTransport<D,P>
- All Implemented Interfaces:
TransportLayer<P>
public class AsyncDirectTcpTransport<D extends PacketData<?>, P extends Packet<?>>
extends Object
implements TransportLayer<P>
A transport layer over Direct TCP/IP that uses asynchronous I/O.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final AtomicBooleanprivate static final intprivate static final intprivate final PacketHandlers<D, P> private final org.slf4j.Loggerprivate final AsyncPacketReader<D> private final AsynchronousSocketChannelprivate intprivate final Queue<ByteBuffer> private AtomicBoolean -
Constructor Summary
ConstructorsConstructorDescriptionAsyncDirectTcpTransport(int soTimeout, PacketHandlers<D, P> handlers, AsynchronousChannelGroup group) -
Method Summary
Modifier and TypeMethodDescriptionvoidconnect(InetSocketAddress remoteAddress) Connect to the remote sidevoidDisconnect from the remote sidebooleanChecks if the transport layer is currently connected.private ByteBufferprepareBufferToSend(P packet) voidsetSoTimeout(int soTimeout) private voidvoidWrite the packet to the transport.private voidwriteOrEnqueue(ByteBuffer buffer)
-
Field Details
-
DEFAULT_CONNECT_TIMEOUT
private static final int DEFAULT_CONNECT_TIMEOUT- See Also:
-
DIRECT_HEADER_SIZE
private static final int DIRECT_HEADER_SIZE- See Also:
-
logger
private final org.slf4j.Logger logger -
handlers
-
socketChannel
-
packetReader
-
connected
-
soTimeout
private int soTimeout -
writeQueue
-
writingNow
-
-
Constructor Details
-
AsyncDirectTcpTransport
public AsyncDirectTcpTransport(int soTimeout, PacketHandlers<D, P> handlers, AsynchronousChannelGroup group) throws IOException- Throws:
IOException
-
-
Method Details
-
write
Description copied from interface:TransportLayerWrite the packet to the transport.- Specified by:
writein interfaceTransportLayer<D extends PacketData<?>>- Parameters:
packet- The packet to write.- Throws:
TransportException
-
writeOrEnqueue
-
connect
Description copied from interface:TransportLayerConnect to the remote side- Specified by:
connectin interfaceTransportLayer<D extends PacketData<?>>- Parameters:
remoteAddress- The remote address to connect to- Throws:
IOException
-
disconnect
Description copied from interface:TransportLayerDisconnect from the remote side- Specified by:
disconnectin interfaceTransportLayer<D extends PacketData<?>>- Throws:
IOException
-
isConnected
public boolean isConnected()Description copied from interface:TransportLayerChecks if the transport layer is currently connected.- Specified by:
isConnectedin interfaceTransportLayer<D extends PacketData<?>>
-
setSoTimeout
public void setSoTimeout(int soTimeout) -
startAsyncWrite
private void startAsyncWrite() -
prepareBufferToSend
-