Class NetworkConnectionImpl.bogusTransport
- java.lang.Object
-
- com.biglybt.core.networkmanager.impl.NetworkConnectionImpl.bogusTransport
-
- All Implemented Interfaces:
Transport
,TransportBase
- Enclosing class:
- NetworkConnectionImpl
protected static class NetworkConnectionImpl.bogusTransport extends java.lang.Object implements Transport
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface com.biglybt.core.networkmanager.Transport
Transport.ConnectListener
-
-
Field Summary
Fields Modifier and Type Field Description private Transport
transport
-
Fields inherited from interface com.biglybt.core.networkmanager.Transport
TRANSPORT_MODE_FAST, TRANSPORT_MODE_NORMAL, TRANSPORT_MODE_TURBO
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
bogusTransport(Transport _transport)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
bindConnection(NetworkConnection connection)
void
close(java.lang.String reason)
Close the transport connection.void
connectedInbound()
Indicate that inbound connection is completevoid
connectOutbound(java.nio.ByteBuffer initial_data, Transport.ConnectListener listener, int priority)
Kick off an outbound connectionjava.lang.String
getDescription()
Get a textual description for this transport.java.lang.String
getEncryption(boolean verbose)
Return a textual description of the encryption for this transportint
getMssSize()
java.lang.String
getProtocol()
TransportEndpoint
getTransportEndpoint()
Get the socket channel used by the transport.int
getTransportMode()
Get the transport's speed mode.TransportStartpoint
getTransportStartpoint()
java.lang.Object
getUserData(java.lang.Object key)
boolean
isEncrypted()
long
isReadyForRead(EventWaiter waiter)
Is the transport ready to read, i.e.boolean
isReadyForWrite(EventWaiter waiter)
Is the transport ready to write, i.e.boolean
isSOCKS()
boolean
isTCP()
long
read(java.nio.ByteBuffer[] buffers, int array_offset, int length)
Read data from the transport into the given buffers.void
setAlreadyRead(java.nio.ByteBuffer bytes_already_read)
Inject the given already-read data back into the read stream.void
setReadyForRead()
fake a wakeup so that a read cycle is attemptedvoid
setTrace(boolean on)
void
setTransportMode(int mode)
Set the transport to the given speed mode.void
setUserData(java.lang.Object key, java.lang.Object value)
void
unbindConnection(NetworkConnection connection)
long
write(java.nio.ByteBuffer[] buffers, int array_offset, int length)
Write data to the transport from the given buffers.
-
-
-
Field Detail
-
transport
private final Transport transport
-
-
Constructor Detail
-
bogusTransport
protected bogusTransport(Transport _transport)
-
-
Method Detail
-
isReadyForWrite
public boolean isReadyForWrite(EventWaiter waiter)
Description copied from interface:TransportBase
Is the transport ready to write, i.e. will a write request result in >0 bytes written.- Specified by:
isReadyForWrite
in interfaceTransportBase
- Returns:
- true if the transport is write ready, false if not yet ready
-
isReadyForRead
public long isReadyForRead(EventWaiter waiter)
Description copied from interface:TransportBase
Is the transport ready to read, i.e. will a read request result in >0 bytes read.- Specified by:
isReadyForRead
in interfaceTransportBase
- Returns:
- 0 if the transport is read ready, ms since last ready or created if never ready
-
isTCP
public boolean isTCP()
- Specified by:
isTCP
in interfaceTransportBase
-
getDescription
public java.lang.String getDescription()
Description copied from interface:TransportBase
Get a textual description for this transport.- Specified by:
getDescription
in interfaceTransportBase
- Returns:
- description
-
getMssSize
public int getMssSize()
- Specified by:
getMssSize
in interfaceTransport
-
setAlreadyRead
public void setAlreadyRead(java.nio.ByteBuffer bytes_already_read)
Description copied from interface:Transport
Inject the given already-read data back into the read stream.- Specified by:
setAlreadyRead
in interfaceTransport
- Parameters:
bytes_already_read
- data
-
getTransportEndpoint
public TransportEndpoint getTransportEndpoint()
Description copied from interface:Transport
Get the socket channel used by the transport.- Specified by:
getTransportEndpoint
in interfaceTransport
- Returns:
- the socket channel
-
getTransportStartpoint
public TransportStartpoint getTransportStartpoint()
- Specified by:
getTransportStartpoint
in interfaceTransport
-
isEncrypted
public boolean isEncrypted()
- Specified by:
isEncrypted
in interfaceTransport
-
getEncryption
public java.lang.String getEncryption(boolean verbose)
Description copied from interface:Transport
Return a textual description of the encryption for this transport- Specified by:
getEncryption
in interfaceTransport
- Returns:
-
getProtocol
public java.lang.String getProtocol()
- Specified by:
getProtocol
in interfaceTransport
-
setReadyForRead
public void setReadyForRead()
Description copied from interface:Transport
fake a wakeup so that a read cycle is attempted- Specified by:
setReadyForRead
in interfaceTransport
-
write
public long write(java.nio.ByteBuffer[] buffers, int array_offset, int length) throws java.io.IOException
Description copied from interface:Transport
Write data to the transport from the given buffers. NOTE: Works like GatheringByteChannel.- Specified by:
write
in interfaceTransport
- Parameters:
buffers
- from which bytes are to be retrievedarray_offset
- offset within the buffer array of the first buffer from which bytes are to be retrievedlength
- maximum number of buffers to be accessed- Returns:
- number of bytes written
- Throws:
java.io.IOException
- on write error
-
read
public long read(java.nio.ByteBuffer[] buffers, int array_offset, int length) throws java.io.IOException
Description copied from interface:Transport
Read data from the transport into the given buffers. NOTE: Works like ScatteringByteChannel.- Specified by:
read
in interfaceTransport
- Parameters:
buffers
- into which bytes are to be placedarray_offset
- offset within the buffer array of the first buffer into which bytes are to be placedlength
- maximum number of buffers to be accessed- Returns:
- number of bytes read
- Throws:
java.io.IOException
- on read error
-
setTransportMode
public void setTransportMode(int mode)
Description copied from interface:Transport
Set the transport to the given speed mode.- Specified by:
setTransportMode
in interfaceTransport
- Parameters:
mode
- to change to
-
getTransportMode
public int getTransportMode()
Description copied from interface:Transport
Get the transport's speed mode.- Specified by:
getTransportMode
in interfaceTransport
- Returns:
- current mode
-
connectOutbound
public void connectOutbound(java.nio.ByteBuffer initial_data, Transport.ConnectListener listener, int priority)
Description copied from interface:Transport
Kick off an outbound connection- Specified by:
connectOutbound
in interfaceTransport
-
connectedInbound
public void connectedInbound()
Description copied from interface:Transport
Indicate that inbound connection is complete- Specified by:
connectedInbound
in interfaceTransport
-
close
public void close(java.lang.String reason)
Description copied from interface:Transport
Close the transport connection.
-
bindConnection
public void bindConnection(NetworkConnection connection)
- Specified by:
bindConnection
in interfaceTransport
-
unbindConnection
public void unbindConnection(NetworkConnection connection)
- Specified by:
unbindConnection
in interfaceTransport
-
getUserData
public java.lang.Object getUserData(java.lang.Object key)
- Specified by:
getUserData
in interfaceTransport
-
setUserData
public void setUserData(java.lang.Object key, java.lang.Object value)
- Specified by:
setUserData
in interfaceTransport
-
-