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 AtomicBoolean
private static final int
private static final int
private final PacketHandlers
<D, P> private final org.slf4j.Logger
private final AsyncPacketReader
<D> private final AsynchronousSocketChannel
private int
private final Queue
<ByteBuffer> private AtomicBoolean
-
Constructor Summary
ConstructorsConstructorDescriptionAsyncDirectTcpTransport
(int soTimeout, PacketHandlers<D, P> handlers, AsynchronousChannelGroup group) -
Method Summary
Modifier and TypeMethodDescriptionvoid
connect
(InetSocketAddress remoteAddress) Connect to the remote sidevoid
Disconnect from the remote sideboolean
Checks if the transport layer is currently connected.private ByteBuffer
prepareBufferToSend
(P packet) void
setSoTimeout
(int soTimeout) private void
void
Write the packet to the transport.private void
writeOrEnqueue
(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:TransportLayer
Write the packet to the transport.- Specified by:
write
in interfaceTransportLayer<D extends PacketData<?>>
- Parameters:
packet
- The packet to write.- Throws:
TransportException
-
writeOrEnqueue
-
connect
Description copied from interface:TransportLayer
Connect to the remote side- Specified by:
connect
in interfaceTransportLayer<D extends PacketData<?>>
- Parameters:
remoteAddress
- The remote address to connect to- Throws:
IOException
-
disconnect
Description copied from interface:TransportLayer
Disconnect from the remote side- Specified by:
disconnect
in interfaceTransportLayer<D extends PacketData<?>>
- Throws:
IOException
-
isConnected
public boolean isConnected()Description copied from interface:TransportLayer
Checks if the transport layer is currently connected.- Specified by:
isConnected
in interfaceTransportLayer<D extends PacketData<?>>
-
setSoTimeout
public void setSoTimeout(int soTimeout) -
startAsyncWrite
private void startAsyncWrite() -
prepareBufferToSend
-