Class Poll


  • public class Poll
    extends java.lang.Object
    Poll
    Author:
    Mladen Turk
    • Constructor Summary

      Constructors 
      Constructor Description
      Poll()  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static int add​(long pollset, long sock, int reqevents)
      Add a socket to a pollset with the default timeout.
      static int addWithTimeout​(long pollset, long sock, int reqevents, long timeout)
      Add a socket to a pollset with a specific timeout.
      static long create​(int size, long p, int flags, long ttl)
      Setup a pollset object.
      static int destroy​(long pollset)
      Destroy a pollset object
      static long getTtl​(long pollset)
      Get the socket time to live.
      static int interrupt​(long pollset)
      Make poll() return.
      static int maintain​(long pollset, long[] descriptors, boolean remove)
      Maintain on the descriptor(s) in a pollset
      static int poll​(long pollset, long timeout, long[] descriptors, boolean remove)
      Block for activity on the descriptor(s) in a pollset
      static int pollset​(long pollset, long[] descriptors)
      Return all descriptor(s) in a pollset
      static int remove​(long pollset, long sock)
      Remove a descriptor from a pollset
      static void setTtl​(long pollset, long ttl)
      Set the socket time to live.
      static boolean wakeable​(long pollset)
      Check if interrupt() is allowed.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • APR_POLLIN

        public static final int APR_POLLIN
        Can read without blocking
        See Also:
        Constant Field Values
      • APR_POLLPRI

        public static final int APR_POLLPRI
        Priority data available
        See Also:
        Constant Field Values
      • APR_POLLOUT

        public static final int APR_POLLOUT
        Can write without blocking
        See Also:
        Constant Field Values
      • APR_POLLSET_THREADSAFE

        public static final int APR_POLLSET_THREADSAFE
        Adding or Removing a Descriptor is thread safe
        See Also:
        Constant Field Values
      • APR_NO_DESC

        public static final int APR_NO_DESC
        Used in apr_pollfd_t to determine what the apr_descriptor is apr_datatype_e enum
        See Also:
        Constant Field Values
      • APR_POLL_FILE

        public static final int APR_POLL_FILE
        descriptor refers to a socket
        See Also:
        Constant Field Values
      • APR_POLL_LASTDESC

        public static final int APR_POLL_LASTDESC
        descriptor refers to a file
        See Also:
        Constant Field Values
    • Constructor Detail

      • Poll

        public Poll()
    • Method Detail

      • create

        public static long create​(int size,
                                  long p,
                                  int flags,
                                  long ttl)
                           throws Error
        Setup a pollset object. If flags equals APR_POLLSET_THREADSAFE, then a pollset is created on which it is safe to make concurrent calls to apr_pollset_add(), apr_pollset_remove() and apr_pollset_poll() from separate threads. This feature is only supported on some platforms; the apr_pollset_create() call will fail with APR_ENOTIMPL on platforms where it is not supported.
        Parameters:
        size - The maximum number of descriptors that this pollset can hold
        p - The pool from which to allocate the pollset
        flags - Optional flags to modify the operation of the pollset.
        ttl - Maximum time to live for a particular socket.
        Returns:
        The pointer in which to return the newly created object
        Throws:
        Error - Pollset creation failed
      • destroy

        public static int destroy​(long pollset)
        Destroy a pollset object
        Parameters:
        pollset - The pollset to destroy
        Returns:
        the operation status
      • add

        public static int add​(long pollset,
                              long sock,
                              int reqevents)
        Add a socket to a pollset with the default timeout.
        Parameters:
        pollset - The pollset to which to add the socket
        sock - The sockets to add
        reqevents - requested events
        Returns:
        the operation status
      • addWithTimeout

        public static int addWithTimeout​(long pollset,
                                         long sock,
                                         int reqevents,
                                         long timeout)
        Add a socket to a pollset with a specific timeout.
        Parameters:
        pollset - The pollset to which to add the socket
        sock - The sockets to add
        reqevents - requested events
        timeout - requested timeout in microseconds (-1 for infinite)
        Returns:
        the operation status
      • remove

        public static int remove​(long pollset,
                                 long sock)
        Remove a descriptor from a pollset
        Parameters:
        pollset - The pollset from which to remove the descriptor
        sock - The socket to remove
        Returns:
        the operation status
      • poll

        public static int poll​(long pollset,
                               long timeout,
                               long[] descriptors,
                               boolean remove)
        Block for activity on the descriptor(s) in a pollset
        Parameters:
        pollset - The pollset to use
        timeout - Timeout in microseconds
        descriptors - Array of signaled descriptors (output parameter) The descriptor array must be two times the size of pollset. and are populated as follows:
         descriptors[2n + 0] -> returned events
         descriptors[2n + 1] -> socket
         
        remove - Remove signaled descriptors from pollset
        Returns:
        Number of signaled descriptors (output parameter) or negative APR error code.
      • maintain

        public static int maintain​(long pollset,
                                   long[] descriptors,
                                   boolean remove)
        Maintain on the descriptor(s) in a pollset
        Parameters:
        pollset - The pollset to use
        descriptors - Array of signaled descriptors (output parameter) The descriptor array must be the size of pollset. and are populated as follows:
         descriptors[n] -> socket
         
        remove - Remove signaled descriptors from pollset
        Returns:
        Number of signaled descriptors (output parameter) or negative APR error code.
      • setTtl

        public static void setTtl​(long pollset,
                                  long ttl)
        Set the socket time to live.
        Parameters:
        pollset - The pollset to use
        ttl - Timeout in microseconds
      • getTtl

        public static long getTtl​(long pollset)
        Get the socket time to live.
        Parameters:
        pollset - The pollset to use
        Returns:
        Timeout in microseconds
      • pollset

        public static int pollset​(long pollset,
                                  long[] descriptors)
        Return all descriptor(s) in a pollset
        Parameters:
        pollset - The pollset to use
        descriptors - Array of descriptors (output parameter) The descriptor array must be two times the size of pollset. and are populated as follows:
         descriptors[2n + 0] -> returned events
         descriptors[2n + 1] -> socket
         
        Returns:
        Number of descriptors (output parameter) in the Poll or negative APR error code.
      • interrupt

        public static int interrupt​(long pollset)
        Make poll() return.
        Parameters:
        pollset - The pollset to use
        Returns:
        Negative APR error code
      • wakeable

        public static boolean wakeable​(long pollset)
        Check if interrupt() is allowed.
        Parameters:
        pollset - The pollset to use
        Returns:
        true if interrupt(long) is allowed, else false