Module 

Class FramingMessageSinkConduit

    • Constructor Detail

      • FramingMessageSinkConduit

        public FramingMessageSinkConduit​(StreamSinkConduit next,
                                         boolean longLengths,
                                         Pooled<java.nio.ByteBuffer> transmitBuffer)
        Construct a new instance.
        Parameters:
        next - the delegate conduit to set
        longLengths - true to use 4-byte lengths, false to use 2-byte lengths
        transmitBuffer - the transmit buffer to use
    • Method Detail

      • send

        public boolean send​(java.nio.ByteBuffer src)
                     throws java.io.IOException
        Description copied from interface: MessageSinkConduit
        Send a complete message.
        Specified by:
        send in interface MessageSinkConduit
        Parameters:
        src - the message to send
        Returns:
        the result of the send operation; true if the message was sent, or false if it would block
        Throws:
        java.io.IOException - if an I/O error occurs
      • send

        public boolean send​(java.nio.ByteBuffer[] srcs,
                            int offs,
                            int len)
                     throws java.io.IOException
        Description copied from interface: MessageSinkConduit
        Send a complete message.
        Specified by:
        send in interface MessageSinkConduit
        Parameters:
        srcs - the buffers holding the message to send
        offs - the offset into the buffer array of the first buffer
        len - the number of buffers that contain data to send
        Returns:
        the result of the send operation; true if the message was sent, or false if it would block
        Throws:
        java.io.IOException - if an I/O error occurs
      • sendFinal

        public boolean sendFinal​(java.nio.ByteBuffer src)
                          throws java.io.IOException
        Description copied from interface: MessageSinkConduit
        Send a complete message. If the message is successfully sent then the sink will have its writes terminated.
        Specified by:
        sendFinal in interface MessageSinkConduit
        Parameters:
        src - the message to send
        Returns:
        the result of the send operation; true if the message was sent, or false if it would block
        Throws:
        java.io.IOException - if an I/O error occurs
      • sendFinal

        public boolean sendFinal​(java.nio.ByteBuffer[] srcs,
                                 int offs,
                                 int len)
                          throws java.io.IOException
        Description copied from interface: MessageSinkConduit
        Send a complete message. If the message is successfully sent then the sink will have its writes terminated.
        Specified by:
        sendFinal in interface MessageSinkConduit
        Parameters:
        srcs - the buffers holding the message to send
        offs - the offset into the buffer array of the first buffer
        len - the number of buffers that contain data to send
        Returns:
        the result of the send operation; true if the message was sent, or false if it would block
        Throws:
        java.io.IOException - if an I/O error occurs
      • flush

        public boolean flush()
                      throws java.io.IOException
        Description copied from interface: SinkConduit
        Flush out any unwritten, buffered output.
        Specified by:
        flush in interface SinkConduit
        Overrides:
        flush in class AbstractSinkConduit<StreamSinkConduit>
        Returns:
        true if everything is flushed, false otherwise
        Throws:
        java.io.IOException - if flush fails
      • truncateWrites

        public void truncateWrites()
                            throws java.io.IOException
        Description copied from interface: SinkConduit
        Terminate writes and discard any outstanding write data. The conduit is terminated and flushed regardless of the outcome of this method.
        Specified by:
        truncateWrites in interface SinkConduit
        Overrides:
        truncateWrites in class AbstractSinkConduit<StreamSinkConduit>
        Throws:
        java.io.IOException - if channel termination failed for some reason