| 
 | ||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||

public interface INonBlockingConnection
A connection which accesses the underlying channel in a non-blocking manner. 
| Nested Class Summary | 
|---|
| Nested classes/interfaces inherited from interface org.xsocket.connection.IConnection | 
|---|
| IConnection.FlushMode | 
| Field Summary | |
|---|---|
| static int | UNLIMITED | 
| Fields inherited from interface org.xsocket.connection.IConnection | 
|---|
| DEFAULT_AUTOFLUSH, DEFAULT_CONNECTION_TIMEOUT_MILLIS, DEFAULT_FLUSH_MODE, DEFAULT_IDLE_TIMEOUT_MILLIS, INITIAL_DEFAULT_ENCODING, MAX_TIMEOUT_MILLIS, SO_KEEPALIVE, SO_LINGER, SO_RCVBUF, SO_REUSEADDR, SO_SNDBUF, SO_TIMEOUT, TCP_NODELAY | 
| Method Summary | |
|---|---|
|  void | activateSecuredMode()ad hoc activation of a secured mode (SSL). | 
|  int | available()get the number of available bytes to read | 
|  void | deactivateSecuredMode()ad hoc deactivation of a secured mode (SSL). | 
|  void | flush()flush the send buffer. | 
|  String | getEncoding()gets the encoding (used by string related methods like write(String) ...) | 
|  IConnection.FlushMode | getFlushmode()return the flush mode | 
|  IHandler | getHandler()gets the connection handler | 
|  int | getMaxReadBufferThreshold()get the max app read buffer size. | 
|  int | getPendingWriteDataSize()returns the size of the data which have already been written, but not yet transferred to the underlying socket. | 
|  int | getReadBufferVersion()get the version of read buffer. | 
|  Executor | getWorkerpool()return the worker pool which is used to process the call back methods | 
|  int | getWriteTransferRate()gets the send delay time. | 
|  int | indexOf(String str)Returns the index of the first occurrence of the given string. | 
|  int | indexOf(String str,
        String encoding)Returns the index of the first occurrence of the given string. | 
|  boolean | isAutoflush()get autoflush | 
|  boolean | isOpen()return if the data source is open. | 
|  boolean | isReceivingSuspended()returns true if receiving is suspended | 
|  boolean | isSecure()returns if the connection is in secured mode | 
|  boolean | isSecuredModeActivateable()returns if secured mode is activateable | 
|  void | markReadPosition()Marks the read position in the connection. | 
|  void | markWritePosition()Marks the write position in the connection. | 
|  ByteBuffer[] | readByteBufferByDelimiter(String delimiter,
                          String encoding)read a ByteBuffer by using a delimiter. | 
|  ByteBuffer[] | readByteBufferByDelimiter(String delimiter,
                          String encoding,
                          int maxLength)read a ByteBuffer by using a delimiter For performance reasons, the ByteBuffer readByteBuffer method is generally preferable to get bytes | 
|  byte[] | readBytesByDelimiter(String delimiter,
                     String encoding)read a byte array by using a delimiter For performance reasons, the ByteBuffer readByteBuffer method is generally preferable to get bytes | 
|  byte[] | readBytesByDelimiter(String delimiter,
                     String encoding,
                     int maxLength)read a byte array by using a delimiter For performance reasons, the ByteBuffer readByteBuffer method is generally preferable to get bytes | 
|  String | readStringByDelimiter(String delimiter,
                      String encoding)read a string by using a delimiter | 
|  String | readStringByDelimiter(String delimiter,
                      String encoding,
                      int maxLength)read a string by using a delimiter | 
|  String | readStringByLength(int length,
                   String encoding)read a string by using a length definition | 
|  void | removeReadMark()remove the read mark | 
|  void | removeWriteMark()remove the write mark | 
|  boolean | resetToReadMark()Resets to the marked read position. | 
|  boolean | resetToWriteMark()Resets to the marked write position. | 
|  void | resumeReceiving()resume receiving data from the underlying subsystem | 
|  void | setAutoflush(boolean autoflush)set autoflush. | 
|  void | setEncoding(String encoding)sets the encoding (used by string related methods like write(String) ...) | 
|  void | setFlushmode(IConnection.FlushMode flushMode)sets the flush mode. | 
|  void | setHandler(IHandler handler)set the connection handler. | 
|  void | setMaxReadBufferThreshold(int size)set the max app read buffer threshold | 
|  void | setWorkerpool(Executor workerpool)sets the worker pool which is used to process the call back methods | 
|  void | setWriteTransferRate(int bytesPerSecond)set the send delay time. | 
|  void | suspendReceiving()suspend receiving data from the underlying subsystem | 
|  long | transferFrom(FileChannel source)transfer the data of the file channel to this data sink | 
|  void | unread(byte[] bytes)returns the bytes to the top of the read queue. | 
|  void | unread(ByteBuffer buffer)returns the ByteBuffer to the top of the read queue. | 
|  void | unread(ByteBuffer[] buffers)returns the ByteBuffers to the top of the read queue. | 
|  void | unread(String text)returns the text to the top of the read queue. | 
|  void | write(byte[] bytes,
      int offset,
      int length,
      IWriteCompletionHandler writeCompletionHandler)writes bytes to the data sink. | 
|  void | write(byte[] bytes,
      IWriteCompletionHandler writeCompletionHandler)writes bytes to the data sink. | 
|  void | write(ByteBuffer[] srcs,
      int offset,
      int length,
      IWriteCompletionHandler writeCompletionHandler)writes a byte buffer array. | 
|  void | write(ByteBuffer[] buffers,
      IWriteCompletionHandler writeCompletionHandler)writes a byte buffer array. | 
|  void | write(ByteBuffer buffer,
      IWriteCompletionHandler writeCompletionHandler)writes a byte buffer. | 
|  void | write(List<ByteBuffer> buffers,
      IWriteCompletionHandler writeCompletionHandler)writes a list of bytes to the data sink. | 
|  int | write(String message,
      String encoding)write a message | 
|  void | write(String message,
      String encoding,
      IWriteCompletionHandler writeCompletionHandler)writes a message. | 
| Methods inherited from interface org.xsocket.connection.IConnection | 
|---|
| getAttachment, getConnectionTimeoutMillis, getId, getIdleTimeoutMillis, getLocalAddress, getLocalPort, getOption, getOptions, getRemainingMillisToConnectionTimeout, getRemainingMillisToIdleTimeout, getRemoteAddress, getRemotePort, isServerSide, setAttachment, setConnectionTimeoutMillis, setIdleTimeoutMillis, setOption | 
| Methods inherited from interface org.xsocket.IDataSource | 
|---|
| read, readByte, readByteBufferByDelimiter, readByteBufferByDelimiter, readByteBufferByLength, readBytesByDelimiter, readBytesByDelimiter, readBytesByLength, readDouble, readInt, readLong, readShort, readStringByDelimiter, readStringByDelimiter, readStringByLength, transferTo | 
| Methods inherited from interface org.xsocket.IDataSink | 
|---|
| transferFrom, transferFrom, write, write, write, write, write, write, write, write, write, write, write, write | 
| Methods inherited from interface java.nio.channels.GatheringByteChannel | 
|---|
| write, write | 
| Methods inherited from interface java.nio.channels.WritableByteChannel | 
|---|
| write | 
| Methods inherited from interface java.nio.channels.ReadableByteChannel | 
|---|
| read | 
| Field Detail | 
|---|
static final int UNLIMITED
| Method Detail | 
|---|
void setHandler(IHandler handler)
                throws IOException
handler - the handler
IOException - If some other I/O error occursIHandler getHandler()
String getEncoding()
void setEncoding(String encoding)
encoding - the encodingvoid setAutoflush(boolean autoflush)
autoflush - true if autoflush should be activatedboolean isAutoflush()
void flush()
           throws ClosedChannelException,
                  IOException,
                  SocketTimeoutException
flush in interface FlushableIOException - If some other I/O error occurs
SocketTimeoutException - If the timeout has been reached
ClosedChannelException - if the underlying channel is closedboolean isSecuredModeActivateable()
void activateSecuredMode()
                         throws IOException
IOException - If some other I/O error occurs
void deactivateSecuredMode()
                           throws IOException
IOException - If some other I/O error occursboolean isSecure()
int getPendingWriteDataSize()
void suspendReceiving()
                      throws IOException
IOException - If some other I/O error occurs
void resumeReceiving()
                     throws IOException
IOException - If some other I/O error occursboolean isReceivingSuspended()
int write(String message,
          String encoding)
          throws IOException,
                 BufferOverflowException
message - the message to writeencoding - the encoding which should be used th encode the chars into byte (e.g. `US-ASCII` or `UTF-8`)
BufferOverflowException - If the no enough space is available
IOException - If some other I/O error occurs
void write(ByteBuffer[] buffers,
           IWriteCompletionHandler writeCompletionHandler)
           throws IOException
buffers - the buffers to writewriteCompletionHandler - the completionHandler
IOException - If some I/O error occurs
void write(ByteBuffer buffer,
           IWriteCompletionHandler writeCompletionHandler)
           throws IOException
buffer - the buffer to writewriteCompletionHandler - the completionHandler
IOException - If some I/O error occurs
void write(ByteBuffer[] srcs,
           int offset,
           int length,
           IWriteCompletionHandler writeCompletionHandler)
           throws IOException
srcs - the buffersoffset - the offsetlength - the lengthwriteCompletionHandler - the completionHandler
IOException - If some I/O error occurs
void write(List<ByteBuffer> buffers,
           IWriteCompletionHandler writeCompletionHandler)
           throws IOException
buffers - the bytes to writewriteCompletionHandler - the completionHandler
BufferOverflowException - If the no enough space is available
IOException - If some other I/O error occurs
void write(byte[] bytes,
           IWriteCompletionHandler writeCompletionHandler)
           throws IOException
bytes - the bytes to writewriteCompletionHandler - the completion handler
BufferOverflowException - If the no enough space is available
IOException - If some other I/O error occurs
void write(byte[] bytes,
           int offset,
           int length,
           IWriteCompletionHandler writeCompletionHandler)
           throws IOException
bytes - the bytes to writeoffset - the offset of the sub array to be used; must be non-negative and no larger than array.length. The new buffer`s position will be set to this value.length - the length of the sub array to be used; must be non-negative and no larger than array.length - offset. The new buffer`s limit will be set to offset + length.writeCompletionHandler - the completion handler
BufferOverflowException - If the no enough space is available
IOException - If some other I/O error occurs
void write(String message,
           String encoding,
           IWriteCompletionHandler writeCompletionHandler)
           throws IOException
message - the message to writeencoding - the encoding which should be used th encode the chars into byte (e.g. `US-ASCII` or `UTF-8`)writeCompletionHandler - the completion handler
BufferOverflowException - If the no enough space is available
IOException - If some other I/O error occurs
void unread(ByteBuffer[] buffers)
            throws IOException
buffers - the buffers to return
IOException - if an exception occurs
void unread(ByteBuffer buffer)
            throws IOException
buffer - the buffer to return
IOException - if an exception occurs
void unread(byte[] bytes)
            throws IOException
bytes - the bytes to return
IOException - if an exception occurs
void unread(String text)
            throws IOException
text - the text to return
IOException - if an exception occurs
ByteBuffer[] readByteBufferByDelimiter(String delimiter,
                                       String encoding)
                                       throws IOException,
                                              BufferUnderflowException
delimiter - the delimiterencoding - the encoding to use
BufferUnderflowException - If not enough data is available
IOException - If some other I/O error occurs
ByteBuffer[] readByteBufferByDelimiter(String delimiter,
                                       String encoding,
                                       int maxLength)
                                       throws IOException,
                                              BufferUnderflowException,
                                              MaxReadSizeExceededException
delimiter - the delimiterencoding - the encoding of the delimitermaxLength - the max length of bytes that should be read. If the limit is exceeded a MaxReadSizeExceededException will been thrown
BufferUnderflowException - If not enough data is available
MaxReadSizeExceededException - If the max read length has been exceeded and the delimiter hasn�t been found
IOException - If some other I/O error occurs
byte[] readBytesByDelimiter(String delimiter,
                            String encoding)
                            throws IOException,
                                   BufferUnderflowException
delimiter - the delimiterencoding - the encoding to use
BufferUnderflowException - If not enough data is available
IOException - If some other I/O error occurs
byte[] readBytesByDelimiter(String delimiter,
                            String encoding,
                            int maxLength)
                            throws IOException,
                                   BufferUnderflowException,
                                   MaxReadSizeExceededException
delimiter - the delimiterencoding - the encoding to usemaxLength - the max length of bytes that should be read. If the limit is exceeded a MaxReadSizeExceededException will been thrown
BufferUnderflowException - If not enough data is available
MaxReadSizeExceededException - If the max read length has been exceeded and the delimiter hasn�t been found
IOException - If some other I/O error occurs
String readStringByDelimiter(String delimiter,
                             String encoding)
                             throws IOException,
                                    BufferUnderflowException,
                                    UnsupportedEncodingException,
                                    MaxReadSizeExceededException
delimiter - the delimiterencoding - the encoding to use
MaxReadSizeExceededException - If the max read length has been exceeded and the delimiter hasn�t been found
IOException - If some other I/O error occurs
BufferUnderflowException - If not enough data is available
UnsupportedEncodingException - if the given encoding is not supported
String readStringByDelimiter(String delimiter,
                             String encoding,
                             int maxLength)
                             throws IOException,
                                    BufferUnderflowException,
                                    UnsupportedEncodingException,
                                    MaxReadSizeExceededException
delimiter - the delimiterencoding - the encoding to usemaxLength - the max length of bytes that should be read. If the limit is exceeded a MaxReadSizeExceededException will been thrown
BufferUnderflowException - If not enough data is available
MaxReadSizeExceededException - If the max read length has been exceeded and the delimiter hasn�t been found
IOException - If some other I/O error occurs
UnsupportedEncodingException - If the given encoding is not supported
String readStringByLength(int length,
                          String encoding)
                          throws IOException,
                                 BufferUnderflowException,
                                 UnsupportedEncodingException
length - the amount of bytes to read.encoding - the encoding to use
IOException - If some other I/O error occurs
BufferUnderflowException - If not enough data is available
UnsupportedEncodingException - if the given encoding is not supported
IllegalArgumentException, - if the length parameter is negative
long transferFrom(FileChannel source)
                  throws IOException,
                         BufferOverflowException
transferFrom in interface IDataSinksource - the source channel
BufferOverflowException - If the no enough space is available
IOException - If some other I/O error occurs
int indexOf(String str)
            throws IOException
str - any string
IOException - If some other I/O error occurs
int indexOf(String str,
            String encoding)
            throws IOException
str - any stringencoding - the encoding to use
IOException - If some other I/O error occurs
MaxReadSizeExceededException - If the max read length has been exceeded and the delimiter hasn�t been found
void setWriteTransferRate(int bytesPerSecond)
                          throws ClosedChannelException,
                                 IOException
INonBlockingConnection#setFlushmode(org.xsocket.connection.IConnection.FlushMode))
bytesPerSecond - the transfer rate of the outgoing data
ClosedChannelException - If the underlying socket is already closed
IOException - If some other I/O error occurs
int getWriteTransferRate()
                         throws ClosedChannelException,
                                IOException
ClosedChannelException - If the underlying socket is already closed
IOException - If some other I/O error occurs
int available()
              throws IOException
IOException
int getReadBufferVersion()
                         throws IOException
IOException - If some other I/O error occursboolean isOpen()
isOpen in interface ChannelisOpen in interface IConnectionExecutor getWorkerpool()
void setWorkerpool(Executor workerpool)
workerpool - the workerpoolboolean resetToWriteMark()
boolean resetToReadMark()
void markWritePosition()
void markReadPosition()
void removeReadMark()
void removeWriteMark()
int getMaxReadBufferThreshold()
void setMaxReadBufferThreshold(int size)
maxSize - the max read buffer thresholdvoid setFlushmode(IConnection.FlushMode flushMode)
WritableByteChannel interface methods write(ByteBuffer) and
  write(ByteBuffer[]) some restriction exits. Calling such a write method in mode 
  ASYNC causes that the byte buffer will be read asynchronously by the internal I/O thread. 
  If the byte buffer will be accessed (reused) after calling the write method, race 
  conditions will occur. The write(ByteBuffer) and write(ByteBuffer[]) should only 
  called in ASNC mode, if the byte buffer will not be accessed (reused) 
  after the write operation. E.g.
 
 
 
   File file = new File(filename);
   RandomAccessFile raf = new RandomAccessFile(file, "r");
   ReadableByteChannel fc = raf.getChannel();
  
   INonBlockingConnection connection = new NonBlockingConnection(host, port);
   // using a copy buffer (which will be reused for the read operations) 
   // requires FlushMode SYNC which is default (for writing)!  
   ByteBuffer copyBuffer = ByteBuffer.allocate(4096); 
   
   int read = 0;
   while (read >= 0) {
      // read channel
      read = fc.read(copyBuffer);
      copyBuffer.flip();
      
      if (read > 0) {
         // write channel
         connection.write(copyBuffer);
         if (copyBuffer.hasRemaining()) {
            copyBuffer.compact();
         } else {
            copyBuffer.clear();
         }
      }
   }
 
flushMode - FlushMode#ASYNC if flush should be performed asynchronous,
                  FlushMode#SYNC if flush should be perform synchronousIConnection.FlushMode getFlushmode()
| 
 | ||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||