Use =default for skeleton copy constructor
[ACE_TAO.git] / ACE / examples / Reactor / WFMO_Reactor / Prerun_State_Changes.cpp
blob998f71ca6c161bbd2f79daf0cdddff011d619f95
1 //=============================================================================
2 /**
3 * @file Prerun_State_Changes.cpp
5 * Tests the Reactor's ability to handle state changes before
6 * getting a chance to run.
8 * @author Irfan Pyarali
9 */
10 //=============================================================================
13 #include "ace/Reactor.h"
14 #include "ace/OS_main.h"
15 #include "ace/OS_NS_sys_socket.h"
16 #include "ace/Log_Msg.h"
19 /**
20 * @class Event_Handler
22 * @brief Generic Event Handler.
24 class Event_Handler : public ACE_Event_Handler
26 public:
27 virtual int handle_close (ACE_HANDLE handle, ACE_Reactor_Mask mask)
29 ACE_UNUSED_ARG(mask);
30 ACE_DEBUG ((LM_DEBUG,
31 "event handler %d closed.\n",
32 (size_t) handle));
33 delete this;
34 return 0;
38 int
39 ACE_TMAIN (int, ACE_TCHAR *[])
41 ACE_HANDLE handle = ACE_OS::socket (PF_INET, SOCK_STREAM, 0);
43 Event_Handler *event_handler = new Event_Handler;
45 int result = ACE_Reactor::instance ()->register_handler (handle,
46 event_handler,
47 ACE_Event_Handler::READ_MASK);
48 ACE_TEST_ASSERT (result == 0);
50 result = ACE_Reactor::instance ()->register_handler (handle,
51 event_handler,
52 ACE_Event_Handler::WRITE_MASK | ACE_Event_Handler::QOS_MASK);
53 ACE_TEST_ASSERT (result == 0);
55 result = ACE_Reactor::instance ()->remove_handler (handle,
56 ACE_Event_Handler::READ_MASK | ACE_Event_Handler::DONT_CALL);
57 ACE_TEST_ASSERT (result == 0);
59 return 0;