summaryrefslogtreecommitdiff
path: root/ace/SUN_Proactor.h
diff options
context:
space:
mode:
Diffstat (limited to 'ace/SUN_Proactor.h')
-rw-r--r--ace/SUN_Proactor.h111
1 files changed, 0 insertions, 111 deletions
diff --git a/ace/SUN_Proactor.h b/ace/SUN_Proactor.h
deleted file mode 100644
index 148b27e23ae..00000000000
--- a/ace/SUN_Proactor.h
+++ /dev/null
@@ -1,111 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ace
-//
-// = FILENAME
-// SUN_Proactor.h
-//
-// = AUTHOR
-// Alexander Libman <alibman@baltimore.com>
-//
-// ============================================================================
-
-#ifndef ACE_SUN_PROACTOR_H
-#define ACE_SUN_PROACTOR_H
-
-#include "ace/POSIX_Proactor.h"
-
-#if defined (ACE_HAS_AIO_CALLS) && defined(sun)
-
-#include "sys/asynch.h" // Sun native aio calls
-
-class ACE_Export ACE_SUN_Proactor : public ACE_POSIX_AIOCB_Proactor
-{
- // = TITLE
- // Implementation of the fast and reliable Proactor
- // for SunOS 5.6, 5.7, etc.
- //
- // = DESCRIPTION
- // This proactor, based on ACE_POSIX_AIOCB_Proactor,
- // works with Sun native interface for aio calls.
- // POSIX_API Native SUN_API
- // aio_read aioread
- // aio_write aiowrite
- // aio_suspend aiowait
- // aio_error aio_result_t.errno
- // aio_return aio_result_t.return
- //
- // On Solaris, the Sun aio*() native implementation is more
- // reliable and efficient than POSIX aio_*() implementation.
- // There is a problem of lost RT signals with POSIX, if we start
- // more than SIGQUEUEMAX asynchronous operations at the same
- // time.
- //
- // The Sun aiocb it is not standard aiocb, instead, it has the
- // following structure:
- //
- // typedef struct aiocb
- // {
- // int aio_fildes; File descriptor
- // void *aio_buf; buffer location
- // size_t aio_nbytes; length of transfer
- // off_t aio_offset; file offset
- // int aio_reqprio; request priority offset
- // sigevent aio_sigevent; signal number and offset
- // int aio_lio_opcode; listio operation
- // aio_result_t aio_resultp; results
- // int aio_state; state flag for List I/O
- // int aio__pad[1]; extension padding
- // };
-
-public:
- virtual Proactor_Type get_impl_type (void);
-
- virtual ~ACE_SUN_Proactor (void);
- // Destructor.
-
- // @@ Alex, this shouldn't be a magic number, i.e., it should be a
- // constant, such as ACE_MAX_AIO_OPERATIONS.
- ACE_SUN_Proactor (size_t max_aio_operations = 512);
- // Constructor defines max number asynchronous operations that can
- // be started at the same time.
-
-protected:
- virtual int handle_events (ACE_Time_Value &wait_time);
- // Dispatch a single set of events. If <wait_time> elapses before
- // any events occur, return 0. Return 1 on success i.e., when a
- // completion is dispatched, non-zero (-1) on errors and errno is
- // set accordingly.
-
- virtual int handle_events (u_long milli_seconds);
- // Dispatch a single set of events. If <milli_seconds> elapses
- // before any events occur, return 0. Return 1 if a completion is
- // dispatched. Return -1 on errors.
-
- virtual int handle_events (void);
- // Block indefinitely until at least one event is dispatched.
- // Dispatch a single set of events. If <wait_time> elapses before
- // any events occur, return 0. Return 1 on success i.e., when a
- // completion is dispatched, non-zero (-1) on errors and errno is
- // set accordingly.
-
- virtual int start_aio (ACE_POSIX_Asynch_Result *result, int op);
- // From ACE_POSIX_AIOCB_Proactor.
-
- ACE_POSIX_Asynch_Result *find_completed_aio (aio_result_t *result,
- int &error_status,
- int &return_status);
- // Extract the results of aio.
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/SUN_Proactor.i"
-#endif /* __ACE_INLINE__ */
-
-#endif /* ACE_HAS_AIO_CALLS && sun */
-#endif /* ACE_SUN_PROACTOR_H*/
-//======================================================================