summaryrefslogtreecommitdiff
path: root/ace/POSIX_Proactor.h
diff options
context:
space:
mode:
authorSteve Huston <shuston@riverace.com>2002-04-25 19:50:17 +0000
committerSteve Huston <shuston@riverace.com>2002-04-25 19:50:17 +0000
commit9433b8603adb8b148277c2023f85ad3854334410 (patch)
tree23892818bb314bea6233b2cf61449e8777f800fa /ace/POSIX_Proactor.h
parenta23705afe1174824e9076287f629d5be28dfe591 (diff)
downloadATCD-9433b8603adb8b148277c2023f85ad3854334410.tar.gz
ChangeLogTag:Thu Apr 25 15:46:39 2002 Steve Huston <shuston@riverace.com>
Diffstat (limited to 'ace/POSIX_Proactor.h')
-rw-r--r--ace/POSIX_Proactor.h26
1 files changed, 22 insertions, 4 deletions
diff --git a/ace/POSIX_Proactor.h b/ace/POSIX_Proactor.h
index 8781218633f..e44ea545612 100644
--- a/ace/POSIX_Proactor.h
+++ b/ace/POSIX_Proactor.h
@@ -55,12 +55,14 @@ class ACE_Export ACE_POSIX_Proactor : public ACE_Proactor_Impl
public:
enum Proactor_Type
{
- PROACTOR_POSIX = 0, // base class type
- PROACTOR_AIOCB = 1,
- PROACTOR_SIG = 2,
- PROACTOR_SUN = 3
+ PROACTOR_POSIX = 0, // base class type
+ PROACTOR_AIOCB = 1, // aio_suspend() based
+ PROACTOR_SIG = 2, // signals notifications
+ PROACTOR_SUN = 3, // SUN specific aiowait()
+ PROACTOR_CB = 4 // callback notifications
};
+
enum SystemType // open for future extention
{
OS_UNDEFINED= 0x0000,
@@ -281,6 +283,9 @@ public:
/// Destructor.
virtual ~ACE_POSIX_AIOCB_Proactor (void);
+ /// Close down the Proactor.
+ virtual int close (void);
+
/**
* Dispatch a single set of events. If <wait_time> elapses before
* any events occur, return 0. Return 1 on success i.e., when a
@@ -342,10 +347,23 @@ protected:
ACE_POSIX_AIOCB_Proactor (size_t nmaxop,
ACE_POSIX_Proactor::Proactor_Type ptype);
+ /// Check AIO for completion, error and result status
+ /// Return: 1 - AIO completed , 0 - not completed yet
+ virtual int get_result_status ( ACE_POSIX_Asynch_Result* asynch_result,
+ int & error_status,
+ int & return_status );
/// Task to process pseudo-asynchronous operations
ACE_Asynch_Pseudo_Task & get_asynch_pseudo_task();
+ /// Create aiocb list
+ int create_result_aiocb_list (void);
+
+ /// Call this method from derived class when virtual table is
+ /// built.
+ int delete_result_aiocb_list (void);
+
+
/// Call these methods from derived class when virtual table is
/// built.
void create_notify_manager (void);