org.apache.tomcat.jni

## Class Poll

- java.lang.Object
- - org.apache.tomcat.jni.Poll

-     public class Poll
      extends Object

  Poll
  Author:
    Mladen Turk

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `APR_NO_DESC` Used in apr_pollfd_t to determine what the apr_descriptor is apr_datatype_e enum
    `static int` | `APR_POLL_FILE` descriptor refers to a socket
    `static int` | `APR_POLL_LASTDESC` descriptor refers to a file
    `static int` | `APR_POLL_SOCKET` nothing here
    `static int` | `APR_POLLERR` Pending error
    `static int` | `APR_POLLHUP` Hangup occurred
    `static int` | `APR_POLLIN` Can read without blocking
    `static int` | `APR_POLLNVAL` Descriptor invalid
    `static int` | `APR_POLLOUT` Can write without blocking
    `static int` | `APR_POLLPRI` Priority data available
    `static int` | `APR_POLLSET_THREADSAFE` Adding or Removing a Descriptor is thread safe

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `Poll()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and 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_POLLERR

          public static final int APR_POLLERR

      Pending error
      See Also:
        Constant Field Values

    - #### APR_POLLHUP

          public static final int APR_POLLHUP

      Hangup occurred
      See Also:
        Constant Field Values

    - #### APR_POLLNVAL

          public static final int APR_POLLNVAL

      Descriptor invalid
      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_SOCKET

          public static final int APR_POLL_SOCKET

      nothing here
      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`

Copyright © 2000-2021 Apache Software Foundation. All Rights Reserved.