org.apache.tomcat.jni
Class Poll

java.lang.Object
  extended by org.apache.tomcat.jni.Poll

public class Poll
extends java.lang.Object

Poll

Version:
$Revision: 515 $, $Date: 2008-03-17 22:02:23 +0100 (Mon, 17 Mar 2008) $
Author:
Mladen Turk

Field Summary
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
          Can write without blocking
static int APR_POLLHUP
          Pending error
static int APR_POLLIN
          Poll options
static int APR_POLLNVAL
          Hangup occurred
static int APR_POLLOUT
          Priority data available
static int APR_POLLPRI
          Can read without blocking
static int APR_POLLSET_THREADSAFE
          Adding or Removing a Descriptor is thread safe
 
Constructor Summary
Poll()
           
 
Method Summary
static int add(long pollset, long sock, int reqevents)
          Add a socket or to a pollset If you set client_data in the descriptor, that value will be returned in the client_data field whenever this descriptor is signalled in apr_pollset_poll().
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 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.
 
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
Poll options

See Also:
Constant Field Values

APR_POLLPRI

public static final int APR_POLLPRI
Can read without blocking

See Also:
Constant Field Values

APR_POLLOUT

public static final int APR_POLLOUT
Priority data available

See Also:
Constant Field Values

APR_POLLERR

public static final int APR_POLLERR
Can write without blocking

See Also:
Constant Field Values

APR_POLLHUP

public static final int APR_POLLHUP
Pending error

See Also:
Constant Field Values

APR_POLLNVAL

public static final int APR_POLLNVAL
Hangup occurred

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

destroy

public static int destroy(long pollset)
Destroy a pollset object

Parameters:
pollset - The pollset to destroy

add

public static int add(long pollset,
                      long sock,
                      int reqevents)
Add a socket or to a pollset If you set client_data in the descriptor, that value will be returned in the client_data field whenever this descriptor is signalled in apr_pollset_poll().

Parameters:
pollset - The pollset to which to add the descriptor
sock - The sockets to add
data - Client data to add
reqevents - requested events

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

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 signalled descriptors (output parameter) The desctiptor array must be two times the size of pollset. and are populated as follows:
 descriptors[n + 0] -> returned events
 descriptors[n + 1] -> socket
 
remove - Remove signaled descriptors from pollset
Returns:
Number of signalled 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 signalled descriptors (output parameter) The desctiptor array must be the size of pollset. and are populated as follows:
 descriptors[n] -> socket
 
remove - Remove signaled descriptors from pollset
Returns:
Number of signalled 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 desctiptor array must be two times the size of pollset. and are populated as follows:
 descriptors[n + 0] -> returned events
 descriptors[n + 1] -> socket
 
Returns:
Number of descriptors (output parameter) in the Poll or negative APR error code.


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