Class EmptyUnsigned16BitIntegerBuf

java.lang.Object
edu.rit.mp.Buf
edu.rit.mp.Unsigned16BitIntegerBuf
edu.rit.mp.buf.EmptyUnsigned16BitIntegerBuf

public class EmptyUnsigned16BitIntegerBuf extends Unsigned16BitIntegerBuf
Class EmptyUnsigned16BitIntegerBuf provides an unsigned 16-bit integer buffer that contains no items for messages using the Message Protocol (MP). When a message is sent from an EmptyUnsigned16BitIntegerBuf, the message item type is unsigned 16-bit int and the message length is 0. When a message is received into an EmptyUnsigned16BitIntegerBuf, the message item type must be unsigned 16-bit int, but all items in the message are discarded.
Version:
19-Nov-2007
Author:
Alan Kaminsky
  • Constructor Details

    • EmptyUnsigned16BitIntegerBuf

      public EmptyUnsigned16BitIntegerBuf()
      Construct a new empty unsigned 16-bit integer buffer.
  • Method Details

    • get

      public int get(int i)
      Obtain the given item from this buffer.

      The get() method must not block the calling thread; if it does, all message I/O in MP will be blocked. Obtain the given item from this buffer.

      The get() method must not block the calling thread; if it does, all message I/O in MP will be blocked.

      Specified by:
      get in class Unsigned16BitIntegerBuf
      Parameters:
      i - Item index in the range 0 .. length()-1.
      Returns:
      Item at index i.
    • put

      public void put(int i, int item)
      Store the given item in this buffer.

      The put() method must not block the calling thread; if it does, all message I/O in MP will be blocked. Store the given item in this buffer.

      The put() method must not block the calling thread; if it does, all message I/O in MP will be blocked.

      Specified by:
      put in class Unsigned16BitIntegerBuf
      Parameters:
      i - Item index in the range 0 .. length()-1.
      item - Item to be stored at index i.
    • copy

      public void copy(Buf theSrc)
      Copy items from the given buffer to this buffer. The number of items copied is this buffer's length or theSrc's length, whichever is smaller. If theSrc is this buffer, the copy() method does nothing. Copy items from the given buffer to this buffer. The number of items copied is this buffer's length or theSrc's length, whichever is smaller. If theSrc is this buffer, the copy() method does nothing.

      The default implementation of the copy() method calls the defaultCopy() method. A subclass can override the copy() method to use a more efficient algorithm. Copy items from the given buffer to this buffer. The number of items copied is this buffer's length or theSrc's length, whichever is smaller. If theSrc is this buffer, the copy() method does nothing.

      Overrides:
      copy in class Unsigned16BitIntegerBuf
      Parameters:
      theSrc - Source of items to copy into this buffer.
      Throws:
      ClassCastException - (unchecked exception) Thrown if theSrc's item data type is not the same as this buffer's item data type.
    • getReductionBuf

      public Buf getReductionBuf(Op op)
      Create a buffer for performing parallel reduction using the given binary operation. The results of the reduction are placed into this buffer.

      Operations performed on the returned reduction buffer have the same effect as operations performed on this buffer, except whenever a source item S is put into a destination item D in this buffer, D is set to D op S, that is, the reduction of D and S using the given binary operation (rather than just setting D to S). Create a buffer for performing parallel reduction using the given binary operation. The results of the reduction are placed into this buffer.

      Operations performed on the returned reduction buffer have the same effect as operations performed on this buffer, except whenever a source item S is put into a destination item D in this buffer, D is set to D op S, that is, the reduction of D and S using the given binary operation (rather than just setting D to S).

      Specified by:
      getReductionBuf in class Buf
      Parameters:
      op - Binary operation.
      Returns:
      a Buf object.
      Throws:
      ClassCastException - (unchecked exception) Thrown if this buffer's element data type and the given binary operation's argument data type are not the same.
    • sendItems

      protected int sendItems(int i, ByteBuffer buffer)
      Send as many items as possible from this buffer to the given byte buffer.

      The sendItems() method must not block the calling thread; if it does, all message I/O in MP will be blocked. Send as many items as possible from this buffer to the given byte buffer.

      The sendItems() method must not block the calling thread; if it does, all message I/O in MP will be blocked.

      Specified by:
      sendItems in class Buf
      Parameters:
      i - Index of first item to send, in the range 0 .. length-1.
      buffer - Byte buffer.
      Returns:
      Number of items sent.
    • receiveItems

      protected int receiveItems(int i, int num, ByteBuffer buffer)
      Receive as many items as possible from the given byte buffer to this buffer.

      The receiveItems() method must not block the calling thread; if it does, all message I/O in MP will be blocked. Receive as many items as possible from the given byte buffer to this buffer.

      The receiveItems() method must not block the calling thread; if it does, all message I/O in MP will be blocked.

      Specified by:
      receiveItems in class Buf
      Parameters:
      i - Index of first item to receive, in the range 0 .. length-1.
      num - Maximum number of items to receive.
      buffer - Byte buffer.
      Returns:
      Number of items received.