Module 

Class SynchronizedMessageSinkConduit

All Implemented Interfaces:
Conduit, MessageSinkConduit, SinkConduit

public final class SynchronizedMessageSinkConduit extends AbstractSynchronizedSinkConduit<MessageSinkConduit> implements MessageSinkConduit
A synchronized message sink conduit. All conduit operations are wrapped in synchronization blocks for simplified thread safety.
Author:
David M. Lloyd
  • Constructor Details

    • SynchronizedMessageSinkConduit

      public SynchronizedMessageSinkConduit(MessageSinkConduit next)
      Construct a new instance. A new lock object is created.
      Parameters:
      next - the next conduit in the chain
    • SynchronizedMessageSinkConduit

      public SynchronizedMessageSinkConduit(MessageSinkConduit next, Object lock)
      Construct a new instance.
      Parameters:
      next - the next conduit in the chain
      lock - the lock object to use
  • Method Details

    • send

      public boolean send(ByteBuffer src) throws 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:
      IOException - if an I/O error occurs
    • send

      public boolean send(ByteBuffer[] srcs, int offs, int len) throws 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:
      IOException - if an I/O error occurs
    • sendFinal

      public boolean sendFinal(ByteBuffer src) throws 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:
      IOException - if an I/O error occurs
    • sendFinal

      public boolean sendFinal(ByteBuffer[] srcs, int offs, int len) throws 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:
      IOException - if an I/O error occurs