summaryrefslogtreecommitdiff
path: root/examples/Reactor/WFMO_Reactor/test_prerun_state_changes.cpp
diff options
context:
space:
mode:
authornobody <nobody@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2002-07-20 14:32:29 +0000
committernobody <nobody@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2002-07-20 14:32:29 +0000
commit313d763c57f0116ae8a4d516a339356e20578e19 (patch)
tree2f3d376496d8634487d22da4494ba47b13cedee8 /examples/Reactor/WFMO_Reactor/test_prerun_state_changes.cpp
parent5cb0ff6546c403f37cca5ec8228c1c4c6b08b300 (diff)
downloadATCD-OS-h_refactor.tar.gz
This commit was manufactured by cvs2svn to create branchOS-h_refactor
'OS-h_refactor'.
Diffstat (limited to 'examples/Reactor/WFMO_Reactor/test_prerun_state_changes.cpp')
-rw-r--r--examples/Reactor/WFMO_Reactor/test_prerun_state_changes.cpp64
1 files changed, 64 insertions, 0 deletions
diff --git a/examples/Reactor/WFMO_Reactor/test_prerun_state_changes.cpp b/examples/Reactor/WFMO_Reactor/test_prerun_state_changes.cpp
new file mode 100644
index 00000000000..fb880b8c8ee
--- /dev/null
+++ b/examples/Reactor/WFMO_Reactor/test_prerun_state_changes.cpp
@@ -0,0 +1,64 @@
+// $Id$
+//
+// ============================================================================
+//
+// = LIBRARY
+// examples
+//
+// = FILENAME
+// test_prerun_state_changes.cpp
+//
+// = DESCRIPTION
+//
+// Tests the Reactor's ability to handle state changes before
+// getting a chance to run.
+//
+// = AUTHOR
+//
+// Irfan Pyarali
+//
+// ============================================================================
+
+#include "ace/Reactor.h"
+
+ACE_RCSID(WFMO_Reactor, test_prerun_state_changes, "$Id$")
+
+class Event_Handler : public ACE_Event_Handler
+// = TITLE
+// Generic Event Handler.
+//
+{
+public:
+ virtual int handle_close (ACE_HANDLE handle, ACE_Reactor_Mask mask)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ "event handler %d closed.\n",
+ (int) handle));
+ delete this;
+ return 0;
+ }
+};
+
+int
+main (int argc, char *argv[])
+{
+ ACE_HANDLE handle = (ACE_HANDLE) ::socket (PF_INET, SOCK_STREAM, 0);
+
+ Event_Handler *event_handler = new Event_Handler;
+
+ int result = ACE_Reactor::instance ()->register_handler (handle,
+ event_handler,
+ ACE_Event_Handler::READ_MASK);
+ ACE_ASSERT (result == 0);
+
+ result = ACE_Reactor::instance ()->register_handler (handle,
+ event_handler,
+ ACE_Event_Handler::WRITE_MASK | ACE_Event_Handler::QOS_MASK);
+ ACE_ASSERT (result == 0);
+
+ result = ACE_Reactor::instance ()->remove_handler (handle,
+ ACE_Event_Handler::READ_MASK | ACE_Event_Handler::DONT_CALL);
+ ACE_ASSERT (result == 0);
+
+ return 0;
+}