diff options
Diffstat (limited to 'examples/Timer_Queue')
-rw-r--r-- | examples/Timer_Queue/Async_Timer_Queue_Test.cpp | 308 | ||||
-rw-r--r-- | examples/Timer_Queue/Async_Timer_Queue_Test.dsp | 104 | ||||
-rw-r--r-- | examples/Timer_Queue/Async_Timer_Queue_Test.h | 118 | ||||
-rw-r--r-- | examples/Timer_Queue/Driver.cpp | 155 | ||||
-rw-r--r-- | examples/Timer_Queue/Driver.h | 135 | ||||
-rw-r--r-- | examples/Timer_Queue/Makefile | 965 | ||||
-rw-r--r-- | examples/Timer_Queue/README | 26 | ||||
-rw-r--r-- | examples/Timer_Queue/Reactor_Timer_Queue_Test.cpp | 230 | ||||
-rw-r--r-- | examples/Timer_Queue/Reactor_Timer_Queue_Test.dsp | 95 | ||||
-rw-r--r-- | examples/Timer_Queue/Reactor_Timer_Queue_Test.h | 148 | ||||
-rw-r--r-- | examples/Timer_Queue/Thread_Timer_Queue_Test.cpp | 312 | ||||
-rw-r--r-- | examples/Timer_Queue/Thread_Timer_Queue_Test.dsp | 96 | ||||
-rw-r--r-- | examples/Timer_Queue/Thread_Timer_Queue_Test.h | 155 | ||||
-rw-r--r-- | examples/Timer_Queue/Timer_Queue.dsw | 41 | ||||
-rw-r--r-- | examples/Timer_Queue/main_async.cpp | 53 | ||||
-rw-r--r-- | examples/Timer_Queue/main_reactor.cpp | 57 | ||||
-rw-r--r-- | examples/Timer_Queue/main_thread.cpp | 52 |
17 files changed, 0 insertions, 3050 deletions
diff --git a/examples/Timer_Queue/Async_Timer_Queue_Test.cpp b/examples/Timer_Queue/Async_Timer_Queue_Test.cpp deleted file mode 100644 index 054dc3d2191..00000000000 --- a/examples/Timer_Queue/Async_Timer_Queue_Test.cpp +++ /dev/null @@ -1,308 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// examples -// -// = FILENAME -// Async_Timer_Queue_Test.cpp -// -// = DESCRIPTION -// This test exercises the <ACE_Asynch_Timer_Queue_Adapter> -// using an <ACE_Timer_Heap>. -// -// = AUTHORS -// Douglas C. Schmidt <schmidt@cs.wustl.edu> and -// Sergio Flores-Gaitan <sergio@cs.wustl.edu> -// -// ============================================================================ - -#include "ace/Signal.h" -#include "ace/Timer_Heap.h" -#include "ace/Timer_Queue_Adapters.h" - -#include "Async_Timer_Queue_Test.h" - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) -template class ACE_Async_Timer_Queue_Adapter<ACE_Timer_Heap>; -template class Command<Async_Timer_Queue, Async_Timer_Queue::ACTION>; -template class Timer_Queue_Test_Driver<Async_Timer_Queue *, Async_Timer_Queue, Async_Timer_Queue::ACTION>; -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) -#pragma instantiate ACE_Async_Timer_Queue_Adapter<ACE_Timer_Heap> -#pragma instantiate Command<Async_Timer_Queue, Async_Timer_Queue::ACTION> -#pragma instantiate Timer_Queue_Test_Driver<Async_Timer_Queue *, Async_Timer_Queue, Async_Timer_Queue::ACTION> -#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ - -ACE_RCSID(Timer_Queue, Async_Timer_Queue_Test, "$Id$") - -// Hook method that is called to handle the expiration of a timer. -int -Async_Timer_Handler::handle_timeout (const ACE_Time_Value &tv, - const void *arg) -{ - // Print some information here (note that this is not strictly - // signal-safe since the ACE logging mechanism uses functions that - // aren't guaranteed to work in all signal handlers). - ACE_DEBUG ((LM_DEBUG, - "handle_timeout() = (%d, %d) %d\n", - tv.sec (), - tv.usec (), - arg)); - - // Commit suicide! - delete this; - return 0; -} - -// Initialize the Singleton pointer. -Async_Timer_Queue *Async_Timer_Queue::instance_ = 0; - -// Implement the Singleton logic. -Async_Timer_Queue * -Async_Timer_Queue::instance (void) -{ - if (Async_Timer_Queue::instance_ == 0) - { - // Initialize with all signals enabled. - ACE_Sig_Set ss (1); - - // But, don't block out SIGQUIT since we always want that - // signal to interrupt the program. - ss.sig_del (SIGQUIT); - - ACE_NEW_RETURN (Async_Timer_Queue::instance_, - Async_Timer_Queue (&ss), - 0); - } - return Async_Timer_Queue::instance_; -} - -// Sets the signal set to mask, for the timer queue. - -Async_Timer_Queue::Async_Timer_Queue (ACE_Sig_Set *ss) - : tq_ (ss) -{ -} - -// Dump the contents of the queue when we receive ^C. - -void -Async_Timer_Queue::dump (void) -{ - ACE_DEBUG ((LM_DEBUG, "begin dumping timer queue\n")); - - // This iterator is implicitly protected since SIGINT and SIGALRM - // signals cannot occur while it is running. - - for (ACE_Timer_Heap_Iterator iter (this->tq_.timer_queue ()); - iter.item () != 0; - iter.next ()) - iter.item ()->dump (); - - ACE_DEBUG ((LM_DEBUG, - "end dumping timer queue\n")); -} - -// Schedule a timer. - -void -Async_Timer_Queue::schedule (u_int microsecs) -{ - ACE_Time_Value tv (0, microsecs); - - // Create a new Event_Handler for our timer. - - ACE_Event_Handler *eh; - ACE_NEW (eh, - Async_Timer_Handler); - - // Schedule the timer to run in the future. - long tid = this->tq_.schedule - (eh, - 0, // Note that our "magic cookie" ACT is always NULL. - ACE_OS::gettimeofday () + tv); - - if (tid == -1) - ACE_ERROR ((LM_ERROR, - "%p\n", - "schedule_timer")); -} - -// Cancel a timer. - -void -Async_Timer_Queue::cancel (long timer_id) -{ - ACE_DEBUG ((LM_DEBUG, - "canceling %d\n", - timer_id)); - - const void *act = 0; - - if (this->tq_.cancel (timer_id, &act) == -1) - ACE_ERROR ((LM_ERROR, - "%p\n", - "cancel_timer")); - - // In this case, the act will be 0, but it could be a real pointer - // in other cases. - delete (ACE_Event_Handler *) act; -} - -// Schedule timer hook method. This method is called from the driver. - -int -Async_Timer_Queue::schedule_timer (void *argument) -{ - u_long useconds = *(int *)argument; - - // Schedule a timer. - Async_Timer_Queue::instance ()->schedule (useconds); - - return 0; -} - -// Cancel timer hook method. Is called from the driver class. - -int -Async_Timer_Queue::cancel_timer (void *argument) -{ - u_long id = *(int *)argument; - - // Cancel a timer. - Async_Timer_Queue::instance ()->cancel (id); - - return 0; -} - -// Dummy list timer hook method. The listing of timers is done from a -// signal handler using SIGINT, not from the driver. - -int -Async_Timer_Queue::list_timer (void *) -{ - // Display an error message. - ACE_ERROR_RETURN ((LM_ERROR, - "invalid input\n"), 0); -} - -// Dummy shutdown timer hook method. The shutdown of the timer queue -// is done with a signal handler using SIGQUIT, not from the driver. - -int -Async_Timer_Queue::shutdown_timer (void *) -{ - // Display an error message. - ACE_ERROR_RETURN ((LM_ERROR, - "invalid input\n"), - 0); -} - -// Handler for the SIGINT and SIGQUIT signals. - -static void -signal_handler (int signum) -{ - ACE_DEBUG ((LM_DEBUG, - "handling signal %S\n", - signum)); - - switch (signum) - { - case SIGINT: - Async_Timer_Queue::instance ()->dump (); - break; - /* NOTREACHED */ - - case SIGQUIT: - ACE_ERROR ((LM_ERROR, - "shutting down on SIGQUIT%a\n", - 1)); - /* NOTREACHED */ - break; - } -} - -// Register the signal handlers for SIGQUIT and SIGINT. We must -// ensure that the SIGINT handler isn't interrupted by SIGALRM. -// However, SIGQUIT is never blocked... - -static void -register_signal_handlers (void) -{ - // Register SIGQUIT (never blocked). - ACE_Sig_Action sigquit ((ACE_SignalHandler) signal_handler, - SIGQUIT); - ACE_UNUSED_ARG (sigquit); - - // Don't let the SIGALRM interrupt the SIGINT handler! - ACE_Sig_Set ss; - ss.sig_add (SIGALRM); - - // Register SIGINT (note that system calls will be restarted - // automatically). - ACE_Sig_Action sigint ((ACE_SignalHandler) signal_handler, - SIGINT, - ss, - SA_RESTART); - ACE_UNUSED_ARG (sigint); -} - -// constructor - -Async_Timer_Queue_Test_Driver::Async_Timer_Queue_Test_Driver (void) -{ -} - -// displays the menu of options. - -int -Async_Timer_Queue_Test_Driver::display_menu (void) -{ - // The menu of options provided to the user. - static char menu[] = - "****\n" - "1) schedule timer <usecs> \n" - "2) cancel timer <timer_id>\n" - "^C list timers\n" - "^\\ exit program\n"; - - ACE_DEBUG ((LM_DEBUG, - "%s", - menu)); - return 0; -} - -// Initializes the test driver. - -int -Async_Timer_Queue_Test_Driver::init (void) -{ - typedef Command<Async_Timer_Queue, Async_Timer_Queue::ACTION> CMD; - - // Initialize <Command> objects with their corresponding <Input_Task> methods. - ACE_NEW_RETURN (schedule_cmd_, - CMD (*Async_Timer_Queue::instance (), - &Async_Timer_Queue::schedule_timer), - -1); - - ACE_NEW_RETURN (cancel_cmd_, - CMD (*Async_Timer_Queue::instance (), - &Async_Timer_Queue::cancel_timer), - -1); - - ACE_NEW_RETURN (list_cmd_, - CMD (*Async_Timer_Queue::instance (), - &Async_Timer_Queue::list_timer), - -1); - - ACE_NEW_RETURN (shutdown_cmd_, - CMD (*Async_Timer_Queue::instance (), - &Async_Timer_Queue::shutdown_timer), - -1); - - register_signal_handlers (); - - return 0; -} diff --git a/examples/Timer_Queue/Async_Timer_Queue_Test.dsp b/examples/Timer_Queue/Async_Timer_Queue_Test.dsp deleted file mode 100644 index fd9c3ff06b8..00000000000 --- a/examples/Timer_Queue/Async_Timer_Queue_Test.dsp +++ /dev/null @@ -1,104 +0,0 @@ -# Microsoft Developer Studio Project File - Name="Async_Timer_Queue_Test" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=Async_Timer_Queue_Test - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "Async_Timer_Queue_Test.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "Async_Timer_Queue_Test.mak"\
- CFG="Async_Timer_Queue_Test - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "Async_Timer_Queue_Test - Win32 Release" (based on\
- "Win32 (x86) Console Application")
-!MESSAGE "Async_Timer_Queue_Test - Win32 Debug" (based on\
- "Win32 (x86) Console Application")
-!MESSAGE
-
-# Begin Project
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "Async_Timer_Queue_Test - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-
-!ELSEIF "$(CFG)" == "Async_Timer_Queue_Test - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Async_Ti"
-# PROP BASE Intermediate_Dir "Async_Ti"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir ""
-# PROP Intermediate_Dir "Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\.." /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 aced.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\ace"
-
-!ENDIF
-
-# Begin Target
-
-# Name "Async_Timer_Queue_Test - Win32 Release"
-# Name "Async_Timer_Queue_Test - Win32 Debug"
-# Begin Source File
-
-SOURCE=.\Async_Timer_Queue_Test.cpp
-
-!IF "$(CFG)" == "Async_Timer_Queue_Test - Win32 Release"
-
-!ELSEIF "$(CFG)" == "Async_Timer_Queue_Test - Win32 Debug"
-
-# ADD CPP /I "..\.."
-
-!ENDIF
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\main_async.cpp
-# End Source File
-# End Target
-# End Project
diff --git a/examples/Timer_Queue/Async_Timer_Queue_Test.h b/examples/Timer_Queue/Async_Timer_Queue_Test.h deleted file mode 100644 index 92977a58684..00000000000 --- a/examples/Timer_Queue/Async_Timer_Queue_Test.h +++ /dev/null @@ -1,118 +0,0 @@ -/* -*- C++ -*- */ - -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// examples -// -// = FILENAME -// Async_Timer_Queue_Test.h -// -// = DESCRIPTION -// This test exercises the <ACE_Asynch_Timer_Queue_Adapter> -// using an <ACE_Timer_Heap>. -// -// = AUTHORS -// Douglas C. Schmidt and -// Sergio Flores-Gaitan -// ============================================================================ - -#ifndef _ASYNC_TIMER_QUEUE_TEST_H_ -#define _ASYNC_TIMER_QUEUE_TEST_H_ - -#include "ace/Signal.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "ace/Timer_Heap.h" -#include "ace/Timer_Queue_Adapters.h" - -#include "Driver.h" - -class Async_Timer_Handler : public ACE_Event_Handler -{ - // = TITLE - // Target of the asynchronous timeout operation. -public: - virtual int handle_timeout (const ACE_Time_Value &tv, - const void *arg); - // Callback hook invoked by the <Timer_Queue>. -}; - -class Async_Timer_Queue -{ - // = TITLE - // Asynchronous Timer Queue Singleton. - // - // = DESCRIPTION - // We use this class to avoid global variables and to - // consolidate all the Timer Queue processing in one central - // place. -public: - typedef int (Async_Timer_Queue::*ACTION) (void *); - - static Async_Timer_Queue *instance (void); - // Singleton access point. - - void schedule (u_int microsecs); - // Schedule a timer to expire <microsecs> in the future. - - void cancel (long timer_id); - // Cancel a timer with <timer_id>. - - void dump (void); - // Dump the contents of the queue. - - int schedule_timer (void *argument); - // hook method to schedule a timer. Called from - // <Timer_Queue_Test_Driver> - - int cancel_timer (void *argument); - // hook method to cancel a timer. Called from - // <Timer_Queue_Test_Driver> - - int list_timer (void *argument); - // hook method to list timers. Called from - // <Timer_Queue_Test_Driver> - - int shutdown_timer (void *argument); - // hook method to exit the timer queue. Called from - // <Timer_Queue_Test_Driver> - -private: - Async_Timer_Queue (ACE_Sig_Set *); - // Private constructor enforces the Singleton. - - static Async_Timer_Queue *instance_; - // Pointer to the timer queue. - - ACE_Async_Timer_Queue_Adapter<ACE_Timer_Heap> tq_; - // The adapter is instantiated by an <ACE_Timer_Heap>. -}; - -class Async_Timer_Queue_Test_Driver : public Timer_Queue_Test_Driver <Async_Timer_Queue *, Async_Timer_Queue, Async_Timer_Queue::ACTION> -{ - // = TITLE - // Async_Timer_Queue_Test_Driver - // - // = DESCRIPTION - // This class implements a test driver for the - // <Async_Timer_Queue>. Implements a display_menu() method that - // prints the options for a user. and init() which initializes - // the driver. The rest of the common functionality is in the - // parent class <Timer_Queue_Test_Driver>. -public: - Async_Timer_Queue_Test_Driver (void); - - virtual int display_menu (void); - // Print menu of options. - - virtual int init (void); - // Initializes the driver's internal variables inherited from the parent -}; - -#endif /* _ASYNC_TIMER_QUEUE_TEST_H_ */ diff --git a/examples/Timer_Queue/Driver.cpp b/examples/Timer_Queue/Driver.cpp deleted file mode 100644 index fdb567143a5..00000000000 --- a/examples/Timer_Queue/Driver.cpp +++ /dev/null @@ -1,155 +0,0 @@ -// $Id$ - -// ============================================================================ -// = LIBRARY -// examples -// -// = FILENAME -// Driver.cpp -// -// = DESCRIPTION -// This code builds an abstraction to factor out common code for -// the different implementations of the Timer_Queue. -// -// = AUTHOR -// Douglas Schmidt <schmidt@cs.wustl.edu> && -// Sergio Flores-Gaitan <sergio@cs.wustl.edu> -// -// ============================================================================ - -#if !defined (_DRIVER_CPP_) -#define _DRIVER_CPP_ - -#include "ace/Auto_Ptr.h" -#include "Driver.h" - -ACE_RCSID(Timer_Queue, Driver, "$Id$") - -// constructor - -template <class RECEIVER, class ACTION> -Command<RECEIVER, ACTION>::Command (RECEIVER &recvr, - ACTION action) - : receiver_ (recvr), - action_ (action) -{ -} - -// invokes an operation. - -template <class RECEIVER, class ACTION> int -Command<RECEIVER, ACTION>::execute (void *arg) -{ - return (receiver_.*action_) (arg); -} - -// gets the next request from the user input. - -template <class TQ, class RECEIVER, class ACTION> -Timer_Queue_Test_Driver<TQ, RECEIVER, ACTION>::~Timer_Queue_Test_Driver (void) -{ -} - -template <class TQ, class RECEIVER, class ACTION> int -Timer_Queue_Test_Driver<TQ, RECEIVER, ACTION>::get_next_request (void) -{ - char buf[BUFSIZ]; - - this->display_menu (); - - ACE_OS::printf ("please enter your choice: "); - ACE_OS::fflush (stdout); - - // reads input from the user - if (this->read_input (buf, sizeof buf) <= 0) - return -1; - - // Parse and run the command. - return this->parse_commands (buf); -} - -// Runs the test. - -template <class TQ, class RECEIVER, class ACTION> int -Timer_Queue_Test_Driver<TQ, RECEIVER, ACTION>::run_test (void) -{ - this->init (); - - for (;;) - if (this->get_next_request () == -1) - return -1; - - ACE_NOTREACHED (return 0); -} - -// Reads input from the user from ACE_STDIN into the buffer specified. - -template <class TQ, class RECEIVER, class ACTION> ssize_t -Timer_Queue_Test_Driver<TQ, RECEIVER, ACTION>::read_input (char *buf, size_t bufsiz) -{ - ACE_OS::memset (buf, 0, bufsiz); - - // Wait for user to type commands. This call is automatically - // restarted when SIGINT or SIGALRM signals occur. - return ACE_OS::read (ACE_STDIN, buf, bufsiz); -} - -// Parse the input and executes the corresponding operation - -template <class TQ, class RECEIVER, class ACTION> int -Timer_Queue_Test_Driver<TQ, RECEIVER, ACTION>::parse_commands (const char *buf) -{ - int option; - - if (::sscanf (buf, "%d", &option) <= 0) - // If there was an error reading the option simply try on the next line. - return 0; - - switch (option) - { - case 1: // Schedule a new timer. - { - u_long useconds; - // We just reread the option, this simplies parsing (since - // sscanf can do it for us.) - if (::sscanf (buf, "%d %lu", &option, &useconds) < 2) - return 0; - - if (schedule_cmd_->execute ((void *) &useconds) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "%t %p\n", "new timer failed"), -1); - } - break; // Cancel an existing timer. - /* NOTREACHED */ - case 2: - { - u_long id; - // We just reread the option, this simplies parsing (since - // sscanf can do it for us.) - if (::sscanf (buf, "%d %lu", &option, &id) < 2) - return 0; - - if (cancel_cmd_->execute ((void *) &id) == -1) - ACE_DEBUG ((LM_DEBUG, "Timer #%d is not valid\n", id)); - - } - break; - /* NOTREACHED */ - - case 3: // Dump the existing timers. - return list_cmd_->execute (NULL); - /* NOTREACHED */ - - case 4: // Exit the program. - return shutdown_cmd_->execute (NULL); - /* NOTREACHED */ - - default: - // Display an error message. - ACE_ERROR_RETURN ((LM_ERROR, "invalid input %s\n", buf), 0); - ACE_NOTREACHED (break); - /* NOTREACHED */ - } - return 0; -} - -#endif /* _DRIVER_CPP_ */ diff --git a/examples/Timer_Queue/Driver.h b/examples/Timer_Queue/Driver.h deleted file mode 100644 index 135272de0f4..00000000000 --- a/examples/Timer_Queue/Driver.h +++ /dev/null @@ -1,135 +0,0 @@ -/* -*- C++ -*- */ - -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// examples -// -// = FILENAME -// Driver.h -// -// = DESCRIPTION -// This code builds an abstraction to factor out common code for -// the different implementations of the Timer_Queue. -// -// = AUTHORS -// Sergio Flores-Gaitan <sergio@cs.wustl.edu> -// -// ============================================================================ - -#ifndef _DRIVER_H_ -#define _DRIVER_H_ - -#include "ace/Task.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "ace/Timer_Heap_T.h" -#include "ace/Timer_Queue_Adapters.h" - -template <class RECEIVER, class ACTION> -class Command -{ - // = TITLE - // Defines an abstract class that allows us to invoke commands - // without knowing anything about the implementation. This class - // is used in the <Timer_Queue_Test_Driver> to invoke operations - // of the driver. - // - // = DESCRIPTION - // This class declares an interface to execute operations, - // binding a RECEIVER object with an ACTION. The RECEIVER knows - // how to implement the operation. A class can invoke operations - // without knowing anything about it, or how it was implemented. -public: - Command (RECEIVER &recvr, ACTION action); - // Sets the <receiver_> of the Command to recvr, and the - // <action_> of the Command to <action>. - - virtual int execute (void *arg); - // Invokes the method <action_> from the object <receiver_>. - -private: - RECEIVER &receiver_; - // object where the method resides. - - ACTION action_; - // method that is going to be invoked. -}; - -template <class TQ, class RECEIVER, class ACTION> -class Timer_Queue_Test_Driver -{ - // = TITLE - // Defines a class that provides a simmple implementation for - // a test driver for timer queues. - // - // = DESCRIPTION - // This is the place where the common code to test the different - // implementations of the timer queue resides. This class has - // the logic for the parse_commands() method, the run_test(), - // read_input() and the get_next_request(). Subclasses can - // override these methods if there is some logic that is specific - // to that implementation. -public: - virtual ~Timer_Queue_Test_Driver (void); - // Default destructor - - virtual int parse_commands (const char *buf); - // Breaks up the input string buffer into pieces and executes - // the appropriate method to handle that operation. - - virtual int run_test (void); - // This is the main entry point to the test driver. The user - // of the class should normally invoke this method. - // Returns 0 when successful, or 0 otherwise. - - virtual int get_next_request (void); - // This internal method gets the next request from the user. - // Returns -1 when user wants to exit. Returns 0 otherwise. - - virtual ssize_t read_input (char *buf, size_t bufsiz); - // Reads input from the user into the buffer <buf> with a maximum - // of <bufsiz> bytes. Returns the amount of bytes actually read - // Otherwise, a -1 is returned and errno is set to indicate the error. - - // = Template Methods. - - virtual int display_menu (void)=0; - // Prints the user interface for the driver to STDOUT. - - virtual int init (void)=0; - // Initializes values and operations for the driver. - -protected: - TQ timer_queue_; - // timer queue - - // = Set of <Command>s to be executed. - - Command<RECEIVER, ACTION> *schedule_cmd_; - // schedule timer command - - Command<RECEIVER, ACTION> *cancel_cmd_; - // cancel timer command. - - Command<RECEIVER, ACTION> *list_cmd_; - // list timers command. - - Command<RECEIVER, ACTION> *shutdown_cmd_; - // shutdown the driver. -}; - -#if defined (ACE_TEMPLATES_REQUIRE_SOURCE) -#include "Driver.cpp" -#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */ - -#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA) -#pragma implementation ("Driver.cpp") -#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */ - -#endif /* _DRIVER_H_ */ diff --git a/examples/Timer_Queue/Makefile b/examples/Timer_Queue/Makefile deleted file mode 100644 index 4d2f103d0d5..00000000000 --- a/examples/Timer_Queue/Makefile +++ /dev/null @@ -1,965 +0,0 @@ -#---------------------------------------------------------------------------- -# $Id$ -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -INFO = README - -LIB = libTQTD.a -SHLIB = libTQTD.$(SOEXT) - -BIN = main_async \ - main_reactor \ - main_thread - -PSRC = $(addsuffix .cpp,$(BIN)) - -LSRC = Async_Timer_Queue_Test.cpp \ - Reactor_Timer_Queue_Test.cpp \ - Thread_Timer_Queue_Test.cpp \ - Driver.cpp - -LDLIBS = -lTQTD - -LIBS += $(ACELIB) - -BUILD = $(VLIB) $(VSHLIB) $(SHLIBA) $(VBIN) - -#---------------------------------------------------------------------------- -# Include macros and targets -#---------------------------------------------------------------------------- - -include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU -include $(ACE_ROOT)/include/makeinclude/macros.GNU -include $(ACE_ROOT)/include/makeinclude/rules.common.GNU -include $(ACE_ROOT)/include/makeinclude/rules.nonested.GNU -include $(ACE_ROOT)/include/makeinclude/rules.lib.GNU -include $(ACE_ROOT)/include/makeinclude/rules.bin.GNU -include $(ACE_ROOT)/include/makeinclude/rules.local.GNU - -#---------------------------------------------------------------------------- -# Local targets -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Dependencies -#---------------------------------------------------------------------------- - -# DO NOT DELETE THIS LINE -- g++dep uses it. -# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY. - -.obj/Async_Timer_Queue_Test.o .obj/Async_Timer_Queue_Test.so .shobj/Async_Timer_Queue_Test.o .shobj/Async_Timer_Queue_Test.so: Async_Timer_Queue_Test.cpp \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Atomic_Op.i \ - $(ACE_ROOT)/ace/Synch_T.cpp \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Malloc_Base.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Containers_T.h \ - $(ACE_ROOT)/ace/Containers_T.i \ - $(ACE_ROOT)/ace/Containers_T.cpp \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ - $(ACE_ROOT)/ace/Free_List.cpp \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Malloc_T.cpp \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Object_Manager.h \ - $(ACE_ROOT)/ace/Object_Manager.i \ - $(ACE_ROOT)/ace/Managed_Object.h \ - $(ACE_ROOT)/ace/Managed_Object.i \ - $(ACE_ROOT)/ace/Managed_Object.cpp \ - $(ACE_ROOT)/ace/Timer_Heap.h \ - $(ACE_ROOT)/ace/Timer_Heap_T.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.i \ - $(ACE_ROOT)/ace/Timer_Queue_T.cpp \ - $(ACE_ROOT)/ace/Timer_Heap_T.cpp \ - $(ACE_ROOT)/ace/Timer_Queue_Adapters.h \ - $(ACE_ROOT)/ace/Task.h \ - $(ACE_ROOT)/ace/Service_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.i \ - $(ACE_ROOT)/ace/Service_Object.i \ - $(ACE_ROOT)/ace/Thread_Manager.h \ - $(ACE_ROOT)/ace/Thread_Manager.i \ - $(ACE_ROOT)/ace/Task.i \ - $(ACE_ROOT)/ace/Task_T.h \ - $(ACE_ROOT)/ace/Message_Queue.h \ - $(ACE_ROOT)/ace/Message_Block.h \ - $(ACE_ROOT)/ace/Message_Block.i \ - $(ACE_ROOT)/ace/Message_Block_T.h \ - $(ACE_ROOT)/ace/Message_Block_T.i \ - $(ACE_ROOT)/ace/Message_Block_T.cpp \ - $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ - $(ACE_ROOT)/ace/Message_Queue_T.h \ - $(ACE_ROOT)/ace/Message_Queue_T.i \ - $(ACE_ROOT)/ace/Message_Queue_T.cpp \ - $(ACE_ROOT)/ace/Strategies.h \ - $(ACE_ROOT)/ace/Strategies_T.h \ - $(ACE_ROOT)/ace/Service_Config.h \ - $(ACE_ROOT)/ace/SString.h \ - $(ACE_ROOT)/ace/SString.i \ - $(ACE_ROOT)/ace/Service_Config.i \ - $(ACE_ROOT)/ace/Reactor.h \ - $(ACE_ROOT)/ace/Handle_Set.h \ - $(ACE_ROOT)/ace/Handle_Set.i \ - $(ACE_ROOT)/ace/Timer_Queue.h \ - $(ACE_ROOT)/ace/Reactor.i \ - $(ACE_ROOT)/ace/Reactor_Impl.h \ - $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ - $(ACE_ROOT)/ace/Synch_Options.h \ - $(ACE_ROOT)/ace/Synch_Options.i \ - $(ACE_ROOT)/ace/Hash_Map_Manager.h \ - $(ACE_ROOT)/ace/Functor.h \ - $(ACE_ROOT)/ace/Functor.i \ - $(ACE_ROOT)/ace/Functor_T.h \ - $(ACE_ROOT)/ace/Functor_T.i \ - $(ACE_ROOT)/ace/Functor_T.cpp \ - $(ACE_ROOT)/ace/Hash_Map_Manager.i \ - $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \ - $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \ - $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \ - $(ACE_ROOT)/ace/Strategies_T.i \ - $(ACE_ROOT)/ace/Strategies_T.cpp \ - $(ACE_ROOT)/ace/Service_Repository.h \ - $(ACE_ROOT)/ace/Service_Types.h \ - $(ACE_ROOT)/ace/Service_Types.i \ - $(ACE_ROOT)/ace/Service_Repository.i \ - $(ACE_ROOT)/ace/WFMO_Reactor.h \ - $(ACE_ROOT)/ace/WFMO_Reactor.i \ - $(ACE_ROOT)/ace/Strategies.i \ - $(ACE_ROOT)/ace/Message_Queue.i \ - $(ACE_ROOT)/ace/Task_T.i \ - $(ACE_ROOT)/ace/Task_T.cpp \ - $(ACE_ROOT)/ace/Module.h \ - $(ACE_ROOT)/ace/Module.i \ - $(ACE_ROOT)/ace/Module.cpp \ - $(ACE_ROOT)/ace/Stream_Modules.h \ - $(ACE_ROOT)/ace/Stream_Modules.i \ - $(ACE_ROOT)/ace/Stream_Modules.cpp \ - $(ACE_ROOT)/ace/Timer_Queue_Adapters.i \ - $(ACE_ROOT)/ace/Timer_Queue_Adapters.cpp \ - Async_Timer_Queue_Test.h Driver.h Driver.cpp \ - $(ACE_ROOT)/ace/Auto_Ptr.h \ - $(ACE_ROOT)/ace/Auto_Ptr.i \ - $(ACE_ROOT)/ace/Auto_Ptr.cpp -.obj/Reactor_Timer_Queue_Test.o .obj/Reactor_Timer_Queue_Test.so .shobj/Reactor_Timer_Queue_Test.o .shobj/Reactor_Timer_Queue_Test.so: Reactor_Timer_Queue_Test.cpp \ - $(ACE_ROOT)/ace/Thread_Manager.h \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Atomic_Op.i \ - $(ACE_ROOT)/ace/Synch_T.cpp \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Malloc_Base.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Containers_T.h \ - $(ACE_ROOT)/ace/Containers_T.i \ - $(ACE_ROOT)/ace/Containers_T.cpp \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ - $(ACE_ROOT)/ace/Free_List.cpp \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Malloc_T.cpp \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Object_Manager.h \ - $(ACE_ROOT)/ace/Object_Manager.i \ - $(ACE_ROOT)/ace/Managed_Object.h \ - $(ACE_ROOT)/ace/Managed_Object.i \ - $(ACE_ROOT)/ace/Managed_Object.cpp \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/Thread_Manager.i \ - $(ACE_ROOT)/ace/Select_Reactor.h \ - $(ACE_ROOT)/ace/Select_Reactor_T.h \ - $(ACE_ROOT)/ace/Select_Reactor_Base.h \ - $(ACE_ROOT)/ace/Timer_Queue.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.i \ - $(ACE_ROOT)/ace/Timer_Queue_T.cpp \ - $(ACE_ROOT)/ace/Handle_Set.h \ - $(ACE_ROOT)/ace/Handle_Set.i \ - $(ACE_ROOT)/ace/Token.h \ - $(ACE_ROOT)/ace/Token.i \ - $(ACE_ROOT)/ace/Pipe.h \ - $(ACE_ROOT)/ace/Pipe.i \ - $(ACE_ROOT)/ace/Reactor_Impl.h \ - $(ACE_ROOT)/ace/Select_Reactor_Base.i \ - $(ACE_ROOT)/ace/Reactor.h \ - $(ACE_ROOT)/ace/Reactor.i \ - $(ACE_ROOT)/ace/Select_Reactor_T.cpp \ - $(ACE_ROOT)/ace/Timer_Heap.h \ - $(ACE_ROOT)/ace/Timer_Heap_T.h \ - $(ACE_ROOT)/ace/Timer_Heap_T.cpp \ - $(ACE_ROOT)/ace/Select_Reactor_T.i \ - $(ACE_ROOT)/ace/Select_Reactor.i \ - Driver.h \ - $(ACE_ROOT)/ace/Task.h \ - $(ACE_ROOT)/ace/Service_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.i \ - $(ACE_ROOT)/ace/Service_Object.i \ - $(ACE_ROOT)/ace/Task.i \ - $(ACE_ROOT)/ace/Task_T.h \ - $(ACE_ROOT)/ace/Message_Queue.h \ - $(ACE_ROOT)/ace/Message_Block.h \ - $(ACE_ROOT)/ace/Message_Block.i \ - $(ACE_ROOT)/ace/Message_Block_T.h \ - $(ACE_ROOT)/ace/Message_Block_T.i \ - $(ACE_ROOT)/ace/Message_Block_T.cpp \ - $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ - $(ACE_ROOT)/ace/Message_Queue_T.h \ - $(ACE_ROOT)/ace/Message_Queue_T.i \ - $(ACE_ROOT)/ace/Message_Queue_T.cpp \ - $(ACE_ROOT)/ace/Strategies.h \ - $(ACE_ROOT)/ace/Strategies_T.h \ - $(ACE_ROOT)/ace/Service_Config.h \ - $(ACE_ROOT)/ace/SString.h \ - $(ACE_ROOT)/ace/SString.i \ - $(ACE_ROOT)/ace/Service_Config.i \ - $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ - $(ACE_ROOT)/ace/Synch_Options.h \ - $(ACE_ROOT)/ace/Synch_Options.i \ - $(ACE_ROOT)/ace/Hash_Map_Manager.h \ - $(ACE_ROOT)/ace/Functor.h \ - $(ACE_ROOT)/ace/Functor.i \ - $(ACE_ROOT)/ace/Functor_T.h \ - $(ACE_ROOT)/ace/Functor_T.i \ - $(ACE_ROOT)/ace/Functor_T.cpp \ - $(ACE_ROOT)/ace/Hash_Map_Manager.i \ - $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \ - $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \ - $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \ - $(ACE_ROOT)/ace/Strategies_T.i \ - $(ACE_ROOT)/ace/Strategies_T.cpp \ - $(ACE_ROOT)/ace/Service_Repository.h \ - $(ACE_ROOT)/ace/Service_Types.h \ - $(ACE_ROOT)/ace/Service_Types.i \ - $(ACE_ROOT)/ace/Service_Repository.i \ - $(ACE_ROOT)/ace/WFMO_Reactor.h \ - $(ACE_ROOT)/ace/WFMO_Reactor.i \ - $(ACE_ROOT)/ace/Strategies.i \ - $(ACE_ROOT)/ace/Message_Queue.i \ - $(ACE_ROOT)/ace/Task_T.i \ - $(ACE_ROOT)/ace/Task_T.cpp \ - $(ACE_ROOT)/ace/Module.h \ - $(ACE_ROOT)/ace/Module.i \ - $(ACE_ROOT)/ace/Module.cpp \ - $(ACE_ROOT)/ace/Stream_Modules.h \ - $(ACE_ROOT)/ace/Stream_Modules.i \ - $(ACE_ROOT)/ace/Stream_Modules.cpp \ - $(ACE_ROOT)/ace/Timer_Queue_Adapters.h \ - $(ACE_ROOT)/ace/Timer_Queue_Adapters.i \ - $(ACE_ROOT)/ace/Timer_Queue_Adapters.cpp \ - Driver.cpp \ - $(ACE_ROOT)/ace/Auto_Ptr.h \ - $(ACE_ROOT)/ace/Auto_Ptr.i \ - $(ACE_ROOT)/ace/Auto_Ptr.cpp \ - Reactor_Timer_Queue_Test.h -.obj/Thread_Timer_Queue_Test.o .obj/Thread_Timer_Queue_Test.so .shobj/Thread_Timer_Queue_Test.o .shobj/Thread_Timer_Queue_Test.so: Thread_Timer_Queue_Test.cpp \ - $(ACE_ROOT)/ace/Task.h \ - $(ACE_ROOT)/ace/Service_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Shared_Object.i \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Service_Object.i \ - $(ACE_ROOT)/ace/Thread_Manager.h \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Atomic_Op.i \ - $(ACE_ROOT)/ace/Synch_T.cpp \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Malloc_Base.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Containers_T.h \ - $(ACE_ROOT)/ace/Containers_T.i \ - $(ACE_ROOT)/ace/Containers_T.cpp \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ - $(ACE_ROOT)/ace/Free_List.cpp \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Malloc_T.cpp \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Object_Manager.h \ - $(ACE_ROOT)/ace/Object_Manager.i \ - $(ACE_ROOT)/ace/Managed_Object.h \ - $(ACE_ROOT)/ace/Managed_Object.i \ - $(ACE_ROOT)/ace/Managed_Object.cpp \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/Thread_Manager.i \ - $(ACE_ROOT)/ace/Task.i \ - $(ACE_ROOT)/ace/Task_T.h \ - $(ACE_ROOT)/ace/Message_Queue.h \ - $(ACE_ROOT)/ace/Message_Block.h \ - $(ACE_ROOT)/ace/Message_Block.i \ - $(ACE_ROOT)/ace/Message_Block_T.h \ - $(ACE_ROOT)/ace/Message_Block_T.i \ - $(ACE_ROOT)/ace/Message_Block_T.cpp \ - $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ - $(ACE_ROOT)/ace/Message_Queue_T.h \ - $(ACE_ROOT)/ace/Message_Queue_T.i \ - $(ACE_ROOT)/ace/Message_Queue_T.cpp \ - $(ACE_ROOT)/ace/Strategies.h \ - $(ACE_ROOT)/ace/Strategies_T.h \ - $(ACE_ROOT)/ace/Service_Config.h \ - $(ACE_ROOT)/ace/SString.h \ - $(ACE_ROOT)/ace/SString.i \ - $(ACE_ROOT)/ace/Service_Config.i \ - $(ACE_ROOT)/ace/Reactor.h \ - $(ACE_ROOT)/ace/Handle_Set.h \ - $(ACE_ROOT)/ace/Handle_Set.i \ - $(ACE_ROOT)/ace/Timer_Queue.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.i \ - $(ACE_ROOT)/ace/Timer_Queue_T.cpp \ - $(ACE_ROOT)/ace/Reactor.i \ - $(ACE_ROOT)/ace/Reactor_Impl.h \ - $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ - $(ACE_ROOT)/ace/Synch_Options.h \ - $(ACE_ROOT)/ace/Synch_Options.i \ - $(ACE_ROOT)/ace/Hash_Map_Manager.h \ - $(ACE_ROOT)/ace/Functor.h \ - $(ACE_ROOT)/ace/Functor.i \ - $(ACE_ROOT)/ace/Functor_T.h \ - $(ACE_ROOT)/ace/Functor_T.i \ - $(ACE_ROOT)/ace/Functor_T.cpp \ - $(ACE_ROOT)/ace/Hash_Map_Manager.i \ - $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \ - $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \ - $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \ - $(ACE_ROOT)/ace/Strategies_T.i \ - $(ACE_ROOT)/ace/Strategies_T.cpp \ - $(ACE_ROOT)/ace/Service_Repository.h \ - $(ACE_ROOT)/ace/Service_Types.h \ - $(ACE_ROOT)/ace/Service_Types.i \ - $(ACE_ROOT)/ace/Service_Repository.i \ - $(ACE_ROOT)/ace/WFMO_Reactor.h \ - $(ACE_ROOT)/ace/WFMO_Reactor.i \ - $(ACE_ROOT)/ace/Strategies.i \ - $(ACE_ROOT)/ace/Message_Queue.i \ - $(ACE_ROOT)/ace/Task_T.i \ - $(ACE_ROOT)/ace/Task_T.cpp \ - $(ACE_ROOT)/ace/Module.h \ - $(ACE_ROOT)/ace/Module.i \ - $(ACE_ROOT)/ace/Module.cpp \ - $(ACE_ROOT)/ace/Stream_Modules.h \ - $(ACE_ROOT)/ace/Stream_Modules.i \ - $(ACE_ROOT)/ace/Stream_Modules.cpp \ - $(ACE_ROOT)/ace/Timer_Heap_T.h \ - $(ACE_ROOT)/ace/Timer_Heap_T.cpp \ - $(ACE_ROOT)/ace/Timer_Queue_Adapters.h \ - $(ACE_ROOT)/ace/Timer_Queue_Adapters.i \ - $(ACE_ROOT)/ace/Timer_Queue_Adapters.cpp \ - Thread_Timer_Queue_Test.h Driver.h Driver.cpp \ - $(ACE_ROOT)/ace/Auto_Ptr.h \ - $(ACE_ROOT)/ace/Auto_Ptr.i \ - $(ACE_ROOT)/ace/Auto_Ptr.cpp -.obj/Driver.o .obj/Driver.so .shobj/Driver.o .shobj/Driver.so: Driver.cpp \ - $(ACE_ROOT)/ace/Auto_Ptr.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Auto_Ptr.i \ - $(ACE_ROOT)/ace/Auto_Ptr.cpp \ - Driver.h \ - $(ACE_ROOT)/ace/Task.h \ - $(ACE_ROOT)/ace/Service_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.i \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Service_Object.i \ - $(ACE_ROOT)/ace/Thread_Manager.h \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Atomic_Op.i \ - $(ACE_ROOT)/ace/Synch_T.cpp \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Malloc_Base.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Containers_T.h \ - $(ACE_ROOT)/ace/Containers_T.i \ - $(ACE_ROOT)/ace/Containers_T.cpp \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ - $(ACE_ROOT)/ace/Free_List.cpp \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Malloc_T.cpp \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Object_Manager.h \ - $(ACE_ROOT)/ace/Object_Manager.i \ - $(ACE_ROOT)/ace/Managed_Object.h \ - $(ACE_ROOT)/ace/Managed_Object.i \ - $(ACE_ROOT)/ace/Managed_Object.cpp \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/Thread_Manager.i \ - $(ACE_ROOT)/ace/Task.i \ - $(ACE_ROOT)/ace/Task_T.h \ - $(ACE_ROOT)/ace/Message_Queue.h \ - $(ACE_ROOT)/ace/Message_Block.h \ - $(ACE_ROOT)/ace/Message_Block.i \ - $(ACE_ROOT)/ace/Message_Block_T.h \ - $(ACE_ROOT)/ace/Message_Block_T.i \ - $(ACE_ROOT)/ace/Message_Block_T.cpp \ - $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ - $(ACE_ROOT)/ace/Message_Queue_T.h \ - $(ACE_ROOT)/ace/Message_Queue_T.i \ - $(ACE_ROOT)/ace/Message_Queue_T.cpp \ - $(ACE_ROOT)/ace/Strategies.h \ - $(ACE_ROOT)/ace/Strategies_T.h \ - $(ACE_ROOT)/ace/Service_Config.h \ - $(ACE_ROOT)/ace/SString.h \ - $(ACE_ROOT)/ace/SString.i \ - $(ACE_ROOT)/ace/Service_Config.i \ - $(ACE_ROOT)/ace/Reactor.h \ - $(ACE_ROOT)/ace/Handle_Set.h \ - $(ACE_ROOT)/ace/Handle_Set.i \ - $(ACE_ROOT)/ace/Timer_Queue.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.i \ - $(ACE_ROOT)/ace/Timer_Queue_T.cpp \ - $(ACE_ROOT)/ace/Reactor.i \ - $(ACE_ROOT)/ace/Reactor_Impl.h \ - $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ - $(ACE_ROOT)/ace/Synch_Options.h \ - $(ACE_ROOT)/ace/Synch_Options.i \ - $(ACE_ROOT)/ace/Hash_Map_Manager.h \ - $(ACE_ROOT)/ace/Functor.h \ - $(ACE_ROOT)/ace/Functor.i \ - $(ACE_ROOT)/ace/Functor_T.h \ - $(ACE_ROOT)/ace/Functor_T.i \ - $(ACE_ROOT)/ace/Functor_T.cpp \ - $(ACE_ROOT)/ace/Hash_Map_Manager.i \ - $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \ - $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \ - $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \ - $(ACE_ROOT)/ace/Strategies_T.i \ - $(ACE_ROOT)/ace/Strategies_T.cpp \ - $(ACE_ROOT)/ace/Service_Repository.h \ - $(ACE_ROOT)/ace/Service_Types.h \ - $(ACE_ROOT)/ace/Service_Types.i \ - $(ACE_ROOT)/ace/Service_Repository.i \ - $(ACE_ROOT)/ace/WFMO_Reactor.h \ - $(ACE_ROOT)/ace/WFMO_Reactor.i \ - $(ACE_ROOT)/ace/Strategies.i \ - $(ACE_ROOT)/ace/Message_Queue.i \ - $(ACE_ROOT)/ace/Task_T.i \ - $(ACE_ROOT)/ace/Task_T.cpp \ - $(ACE_ROOT)/ace/Module.h \ - $(ACE_ROOT)/ace/Module.i \ - $(ACE_ROOT)/ace/Module.cpp \ - $(ACE_ROOT)/ace/Stream_Modules.h \ - $(ACE_ROOT)/ace/Stream_Modules.i \ - $(ACE_ROOT)/ace/Stream_Modules.cpp \ - $(ACE_ROOT)/ace/Timer_Heap_T.h \ - $(ACE_ROOT)/ace/Timer_Heap_T.cpp \ - $(ACE_ROOT)/ace/Timer_Queue_Adapters.h \ - $(ACE_ROOT)/ace/Timer_Queue_Adapters.i \ - $(ACE_ROOT)/ace/Timer_Queue_Adapters.cpp \ - Driver.cpp -.obj/main_async.o .obj/main_async.so .shobj/main_async.o .shobj/main_async.so: main_async.cpp \ - $(ACE_ROOT)/ace/Auto_Ptr.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Auto_Ptr.i \ - $(ACE_ROOT)/ace/Auto_Ptr.cpp \ - Driver.h \ - $(ACE_ROOT)/ace/Task.h \ - $(ACE_ROOT)/ace/Service_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.i \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Service_Object.i \ - $(ACE_ROOT)/ace/Thread_Manager.h \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Atomic_Op.i \ - $(ACE_ROOT)/ace/Synch_T.cpp \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Malloc_Base.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Containers_T.h \ - $(ACE_ROOT)/ace/Containers_T.i \ - $(ACE_ROOT)/ace/Containers_T.cpp \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ - $(ACE_ROOT)/ace/Free_List.cpp \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Malloc_T.cpp \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Object_Manager.h \ - $(ACE_ROOT)/ace/Object_Manager.i \ - $(ACE_ROOT)/ace/Managed_Object.h \ - $(ACE_ROOT)/ace/Managed_Object.i \ - $(ACE_ROOT)/ace/Managed_Object.cpp \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/Thread_Manager.i \ - $(ACE_ROOT)/ace/Task.i \ - $(ACE_ROOT)/ace/Task_T.h \ - $(ACE_ROOT)/ace/Message_Queue.h \ - $(ACE_ROOT)/ace/Message_Block.h \ - $(ACE_ROOT)/ace/Message_Block.i \ - $(ACE_ROOT)/ace/Message_Block_T.h \ - $(ACE_ROOT)/ace/Message_Block_T.i \ - $(ACE_ROOT)/ace/Message_Block_T.cpp \ - $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ - $(ACE_ROOT)/ace/Message_Queue_T.h \ - $(ACE_ROOT)/ace/Message_Queue_T.i \ - $(ACE_ROOT)/ace/Message_Queue_T.cpp \ - $(ACE_ROOT)/ace/Strategies.h \ - $(ACE_ROOT)/ace/Strategies_T.h \ - $(ACE_ROOT)/ace/Service_Config.h \ - $(ACE_ROOT)/ace/SString.h \ - $(ACE_ROOT)/ace/SString.i \ - $(ACE_ROOT)/ace/Service_Config.i \ - $(ACE_ROOT)/ace/Reactor.h \ - $(ACE_ROOT)/ace/Handle_Set.h \ - $(ACE_ROOT)/ace/Handle_Set.i \ - $(ACE_ROOT)/ace/Timer_Queue.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.i \ - $(ACE_ROOT)/ace/Timer_Queue_T.cpp \ - $(ACE_ROOT)/ace/Reactor.i \ - $(ACE_ROOT)/ace/Reactor_Impl.h \ - $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ - $(ACE_ROOT)/ace/Synch_Options.h \ - $(ACE_ROOT)/ace/Synch_Options.i \ - $(ACE_ROOT)/ace/Hash_Map_Manager.h \ - $(ACE_ROOT)/ace/Functor.h \ - $(ACE_ROOT)/ace/Functor.i \ - $(ACE_ROOT)/ace/Functor_T.h \ - $(ACE_ROOT)/ace/Functor_T.i \ - $(ACE_ROOT)/ace/Functor_T.cpp \ - $(ACE_ROOT)/ace/Hash_Map_Manager.i \ - $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \ - $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \ - $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \ - $(ACE_ROOT)/ace/Strategies_T.i \ - $(ACE_ROOT)/ace/Strategies_T.cpp \ - $(ACE_ROOT)/ace/Service_Repository.h \ - $(ACE_ROOT)/ace/Service_Types.h \ - $(ACE_ROOT)/ace/Service_Types.i \ - $(ACE_ROOT)/ace/Service_Repository.i \ - $(ACE_ROOT)/ace/WFMO_Reactor.h \ - $(ACE_ROOT)/ace/WFMO_Reactor.i \ - $(ACE_ROOT)/ace/Strategies.i \ - $(ACE_ROOT)/ace/Message_Queue.i \ - $(ACE_ROOT)/ace/Task_T.i \ - $(ACE_ROOT)/ace/Task_T.cpp \ - $(ACE_ROOT)/ace/Module.h \ - $(ACE_ROOT)/ace/Module.i \ - $(ACE_ROOT)/ace/Module.cpp \ - $(ACE_ROOT)/ace/Stream_Modules.h \ - $(ACE_ROOT)/ace/Stream_Modules.i \ - $(ACE_ROOT)/ace/Stream_Modules.cpp \ - $(ACE_ROOT)/ace/Timer_Heap_T.h \ - $(ACE_ROOT)/ace/Timer_Heap_T.cpp \ - $(ACE_ROOT)/ace/Timer_Queue_Adapters.h \ - $(ACE_ROOT)/ace/Timer_Queue_Adapters.i \ - $(ACE_ROOT)/ace/Timer_Queue_Adapters.cpp \ - Driver.cpp Async_Timer_Queue_Test.h \ - $(ACE_ROOT)/ace/Timer_Heap.h -.obj/main_reactor.o .obj/main_reactor.so .shobj/main_reactor.o .shobj/main_reactor.so: main_reactor.cpp \ - $(ACE_ROOT)/ace/Auto_Ptr.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Auto_Ptr.i \ - $(ACE_ROOT)/ace/Auto_Ptr.cpp \ - Driver.h \ - $(ACE_ROOT)/ace/Task.h \ - $(ACE_ROOT)/ace/Service_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.i \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Service_Object.i \ - $(ACE_ROOT)/ace/Thread_Manager.h \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Atomic_Op.i \ - $(ACE_ROOT)/ace/Synch_T.cpp \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Malloc_Base.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Containers_T.h \ - $(ACE_ROOT)/ace/Containers_T.i \ - $(ACE_ROOT)/ace/Containers_T.cpp \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ - $(ACE_ROOT)/ace/Free_List.cpp \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Malloc_T.cpp \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Object_Manager.h \ - $(ACE_ROOT)/ace/Object_Manager.i \ - $(ACE_ROOT)/ace/Managed_Object.h \ - $(ACE_ROOT)/ace/Managed_Object.i \ - $(ACE_ROOT)/ace/Managed_Object.cpp \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/Thread_Manager.i \ - $(ACE_ROOT)/ace/Task.i \ - $(ACE_ROOT)/ace/Task_T.h \ - $(ACE_ROOT)/ace/Message_Queue.h \ - $(ACE_ROOT)/ace/Message_Block.h \ - $(ACE_ROOT)/ace/Message_Block.i \ - $(ACE_ROOT)/ace/Message_Block_T.h \ - $(ACE_ROOT)/ace/Message_Block_T.i \ - $(ACE_ROOT)/ace/Message_Block_T.cpp \ - $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ - $(ACE_ROOT)/ace/Message_Queue_T.h \ - $(ACE_ROOT)/ace/Message_Queue_T.i \ - $(ACE_ROOT)/ace/Message_Queue_T.cpp \ - $(ACE_ROOT)/ace/Strategies.h \ - $(ACE_ROOT)/ace/Strategies_T.h \ - $(ACE_ROOT)/ace/Service_Config.h \ - $(ACE_ROOT)/ace/SString.h \ - $(ACE_ROOT)/ace/SString.i \ - $(ACE_ROOT)/ace/Service_Config.i \ - $(ACE_ROOT)/ace/Reactor.h \ - $(ACE_ROOT)/ace/Handle_Set.h \ - $(ACE_ROOT)/ace/Handle_Set.i \ - $(ACE_ROOT)/ace/Timer_Queue.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.i \ - $(ACE_ROOT)/ace/Timer_Queue_T.cpp \ - $(ACE_ROOT)/ace/Reactor.i \ - $(ACE_ROOT)/ace/Reactor_Impl.h \ - $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ - $(ACE_ROOT)/ace/Synch_Options.h \ - $(ACE_ROOT)/ace/Synch_Options.i \ - $(ACE_ROOT)/ace/Hash_Map_Manager.h \ - $(ACE_ROOT)/ace/Functor.h \ - $(ACE_ROOT)/ace/Functor.i \ - $(ACE_ROOT)/ace/Functor_T.h \ - $(ACE_ROOT)/ace/Functor_T.i \ - $(ACE_ROOT)/ace/Functor_T.cpp \ - $(ACE_ROOT)/ace/Hash_Map_Manager.i \ - $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \ - $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \ - $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \ - $(ACE_ROOT)/ace/Strategies_T.i \ - $(ACE_ROOT)/ace/Strategies_T.cpp \ - $(ACE_ROOT)/ace/Service_Repository.h \ - $(ACE_ROOT)/ace/Service_Types.h \ - $(ACE_ROOT)/ace/Service_Types.i \ - $(ACE_ROOT)/ace/Service_Repository.i \ - $(ACE_ROOT)/ace/WFMO_Reactor.h \ - $(ACE_ROOT)/ace/WFMO_Reactor.i \ - $(ACE_ROOT)/ace/Strategies.i \ - $(ACE_ROOT)/ace/Message_Queue.i \ - $(ACE_ROOT)/ace/Task_T.i \ - $(ACE_ROOT)/ace/Task_T.cpp \ - $(ACE_ROOT)/ace/Module.h \ - $(ACE_ROOT)/ace/Module.i \ - $(ACE_ROOT)/ace/Module.cpp \ - $(ACE_ROOT)/ace/Stream_Modules.h \ - $(ACE_ROOT)/ace/Stream_Modules.i \ - $(ACE_ROOT)/ace/Stream_Modules.cpp \ - $(ACE_ROOT)/ace/Timer_Heap_T.h \ - $(ACE_ROOT)/ace/Timer_Heap_T.cpp \ - $(ACE_ROOT)/ace/Timer_Queue_Adapters.h \ - $(ACE_ROOT)/ace/Timer_Queue_Adapters.i \ - $(ACE_ROOT)/ace/Timer_Queue_Adapters.cpp \ - Driver.cpp Reactor_Timer_Queue_Test.h \ - $(ACE_ROOT)/ace/Timer_Heap.h -.obj/main_thread.o .obj/main_thread.so .shobj/main_thread.o .shobj/main_thread.so: main_thread.cpp \ - $(ACE_ROOT)/ace/Auto_Ptr.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Auto_Ptr.i \ - $(ACE_ROOT)/ace/Auto_Ptr.cpp \ - Driver.h \ - $(ACE_ROOT)/ace/Task.h \ - $(ACE_ROOT)/ace/Service_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.i \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Service_Object.i \ - $(ACE_ROOT)/ace/Thread_Manager.h \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Atomic_Op.i \ - $(ACE_ROOT)/ace/Synch_T.cpp \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Malloc_Base.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Containers_T.h \ - $(ACE_ROOT)/ace/Containers_T.i \ - $(ACE_ROOT)/ace/Containers_T.cpp \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ - $(ACE_ROOT)/ace/Free_List.cpp \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Malloc_T.cpp \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Object_Manager.h \ - $(ACE_ROOT)/ace/Object_Manager.i \ - $(ACE_ROOT)/ace/Managed_Object.h \ - $(ACE_ROOT)/ace/Managed_Object.i \ - $(ACE_ROOT)/ace/Managed_Object.cpp \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/Thread_Manager.i \ - $(ACE_ROOT)/ace/Task.i \ - $(ACE_ROOT)/ace/Task_T.h \ - $(ACE_ROOT)/ace/Message_Queue.h \ - $(ACE_ROOT)/ace/Message_Block.h \ - $(ACE_ROOT)/ace/Message_Block.i \ - $(ACE_ROOT)/ace/Message_Block_T.h \ - $(ACE_ROOT)/ace/Message_Block_T.i \ - $(ACE_ROOT)/ace/Message_Block_T.cpp \ - $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ - $(ACE_ROOT)/ace/Message_Queue_T.h \ - $(ACE_ROOT)/ace/Message_Queue_T.i \ - $(ACE_ROOT)/ace/Message_Queue_T.cpp \ - $(ACE_ROOT)/ace/Strategies.h \ - $(ACE_ROOT)/ace/Strategies_T.h \ - $(ACE_ROOT)/ace/Service_Config.h \ - $(ACE_ROOT)/ace/SString.h \ - $(ACE_ROOT)/ace/SString.i \ - $(ACE_ROOT)/ace/Service_Config.i \ - $(ACE_ROOT)/ace/Reactor.h \ - $(ACE_ROOT)/ace/Handle_Set.h \ - $(ACE_ROOT)/ace/Handle_Set.i \ - $(ACE_ROOT)/ace/Timer_Queue.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.i \ - $(ACE_ROOT)/ace/Timer_Queue_T.cpp \ - $(ACE_ROOT)/ace/Reactor.i \ - $(ACE_ROOT)/ace/Reactor_Impl.h \ - $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ - $(ACE_ROOT)/ace/Synch_Options.h \ - $(ACE_ROOT)/ace/Synch_Options.i \ - $(ACE_ROOT)/ace/Hash_Map_Manager.h \ - $(ACE_ROOT)/ace/Functor.h \ - $(ACE_ROOT)/ace/Functor.i \ - $(ACE_ROOT)/ace/Functor_T.h \ - $(ACE_ROOT)/ace/Functor_T.i \ - $(ACE_ROOT)/ace/Functor_T.cpp \ - $(ACE_ROOT)/ace/Hash_Map_Manager.i \ - $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \ - $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \ - $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \ - $(ACE_ROOT)/ace/Strategies_T.i \ - $(ACE_ROOT)/ace/Strategies_T.cpp \ - $(ACE_ROOT)/ace/Service_Repository.h \ - $(ACE_ROOT)/ace/Service_Types.h \ - $(ACE_ROOT)/ace/Service_Types.i \ - $(ACE_ROOT)/ace/Service_Repository.i \ - $(ACE_ROOT)/ace/WFMO_Reactor.h \ - $(ACE_ROOT)/ace/WFMO_Reactor.i \ - $(ACE_ROOT)/ace/Strategies.i \ - $(ACE_ROOT)/ace/Message_Queue.i \ - $(ACE_ROOT)/ace/Task_T.i \ - $(ACE_ROOT)/ace/Task_T.cpp \ - $(ACE_ROOT)/ace/Module.h \ - $(ACE_ROOT)/ace/Module.i \ - $(ACE_ROOT)/ace/Module.cpp \ - $(ACE_ROOT)/ace/Stream_Modules.h \ - $(ACE_ROOT)/ace/Stream_Modules.i \ - $(ACE_ROOT)/ace/Stream_Modules.cpp \ - $(ACE_ROOT)/ace/Timer_Heap_T.h \ - $(ACE_ROOT)/ace/Timer_Heap_T.cpp \ - $(ACE_ROOT)/ace/Timer_Queue_Adapters.h \ - $(ACE_ROOT)/ace/Timer_Queue_Adapters.i \ - $(ACE_ROOT)/ace/Timer_Queue_Adapters.cpp \ - Driver.cpp Thread_Timer_Queue_Test.h - -# IF YOU PUT ANYTHING HERE IT WILL GO AWAY diff --git a/examples/Timer_Queue/README b/examples/Timer_Queue/README deleted file mode 100644 index 3cf6ec1b75b..00000000000 --- a/examples/Timer_Queue/README +++ /dev/null @@ -1,26 +0,0 @@ -This directory contains several examples that illustrate how to use -various concurrency mechanisms to schedule and handle timer-based -events. All programs are interactive and utilize a common timer queue -test framework. You can schedule or cancel time events and list all -the timers that are waiting to be triggered. - -The tests include: - -Reactor_Timer_Queue_Test: -------------------------- - -This example shows how to use ACE_Reactor as the timer queue -management mechanism. - -Thread_Timer_Queue_Test: ------------------------- - -This example shows how to use threads as the mechanism to generate -timer queue events. - -Async_Timer_Queue_Test: ------------------------ - -This example shows how to use singals as the mechanism to generate -timer queue events. It doesn't work on NT because of NT's limited -signal mechanism, i.e., no support for SIGALRM. diff --git a/examples/Timer_Queue/Reactor_Timer_Queue_Test.cpp b/examples/Timer_Queue/Reactor_Timer_Queue_Test.cpp deleted file mode 100644 index 06d3a643091..00000000000 --- a/examples/Timer_Queue/Reactor_Timer_Queue_Test.cpp +++ /dev/null @@ -1,230 +0,0 @@ -// $Id$ - -// ============================================================================ -// = LIBRARY -// examples -// -// = FILENAME -// Reactor_Timer_Queue_Test -// -// = DESCRIPTION -// This example tests the timer queue mechanism of ACE_Reactor. -// -// = AUTHOR -// Nanbor Wang <nw1@cs.wustl.edu> and -// Sergio Flores-Gaitan <sergio@cs.wustl.edu> -// -// ============================================================================ - -#include "ace/Thread_Manager.h" -#include "ace/Select_Reactor.h" -#include "ace/Reactor.h" -#include "ace/Timer_Heap.h" - -#include "Driver.h" -#include "Reactor_Timer_Queue_Test.h" - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) -template class Timer_Queue_Test_Driver <ACE_Timer_Heap, Input_Handler, Input_Handler::ACTION>; -template class Command<Input_Handler, Input_Handler::ACTION>; -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) -#pragma instantiate Timer_Queue_Test_Driver <ACE_Timer_Heap, Input_Handler, Input_Handler::ACTION> -#pragma instantiate Command<Input_Handler, Input_Handler::ACTION> -#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ - -ACE_RCSID(Timer_Queue, Reactor_Timer_Queue_Test, "$Id$") - -void -Reactor_Timer_Handler::set_timer_id (long tid) -{ - this->tid_ = tid; -} - -int -Reactor_Timer_Handler::handle_timeout (const ACE_Time_Value &tv, - const void *) -{ - // Macro to avoid "warning: unused parameter" type warning. - ACE_UNUSED_ARG (tv); - - ACE_Time_Value txv = ACE_OS::gettimeofday (); - ACE_DEBUG ((LM_DEBUG, - "\nTimer #%d fired at %d.%06d (%T)!\n", - this->tid_, - txv.sec (), - txv.usec ())); - delete this; - - return 0; -} - -Input_Handler::Input_Handler (ACE_Timer_Queue *tq, - Reactor_Timer_Queue_Test_Driver &timer_queue_driver) - : done_ (0), - driver_ (timer_queue_driver) -{ - this->tq_ = tq; -} - -int -Input_Handler::done (void) -{ - return this->done_; -} - -int -Input_Handler::schedule_timer (void *argument) -{ - int delay = *(int *) argument; - Reactor_Timer_Handler *th; - long tid; - - th = new Reactor_Timer_Handler; - if (th != 0) - { - tid = this->reactor ()->schedule_timer (th, - 0, - ACE_Time_Value (0, delay)); - if (tid == -1) - ACE_DEBUG ((LM_DEBUG, - "Unable to schedule timer\n")); - else - { - ACE_DEBUG ((LM_DEBUG, - "Timer #%d schedule to fire after %d usec from now.\n", - tid, - delay)); - th->set_timer_id (tid); - } - } - else - ACE_ERROR_RETURN ((LM_ERROR, - "not enough memory?\n"), - -1); - return tid; -} - -int -Input_Handler::cancel_timer (void *argument) -{ - int id = *(int *) argument; - return this->reactor ()->cancel_timer (id); -} - -int -Input_Handler::shutdown_timer (void *argument) -{ - // Macro to avoid "warning: unused parameter" type warning. - ACE_UNUSED_ARG (argument); - - this->done_ = 1; - ACE_DEBUG ((LM_DEBUG, - "Shutting down event loop\n")); - return -1; -} - -int -Input_Handler::list_timer (void *argument) -{ - // Macro to avoid "warning: unused parameter" type warning. - ACE_UNUSED_ARG (argument); - - ACE_Timer_Queue_Iterator &iter = this->tq_->iter (); - ACE_DEBUG ((LM_DEBUG, - "\n\nTimers in queue:\n")); - - for (; !iter.isdone (); iter.next ()) - { - ACE_Timer_Node *tn = iter.item (); - ACE_DEBUG ((LM_DEBUG, "Timer #%d: %d.%06d\n", - tn->get_timer_id (), - tn->get_timer_value ().sec (), - tn->get_timer_value ().usec ())); - } - return 0; -} - -int -Input_Handler::handle_input (ACE_HANDLE) -{ - return driver_.get_next_request (); -} - -Reactor_Timer_Queue_Test_Driver::Reactor_Timer_Queue_Test_Driver (void) - : thandler_ (&timer_queue_, *this) -{ -} - -Reactor_Timer_Queue_Test_Driver::~Reactor_Timer_Queue_Test_Driver (void) -{ -} - -int -Reactor_Timer_Queue_Test_Driver::display_menu (void) -{ - static char menu[] = - "\n*****\n" - "1) Schedule timer <usec>\n" - "2) Cancel timer <id>\n" - "3) List all timers\n" - "4) Shutdown program\n" - "Enter selection:"; - - ACE_DEBUG ((LM_DEBUG, - "%s", - menu)); - return 0; -} - -int -Reactor_Timer_Queue_Test_Driver::init (void) -{ - typedef Command<Input_Handler, Input_Handler::ACTION> CMD; - - // initialize <Command>s with their corresponding <Input_Handler> methods. - ACE_NEW_RETURN (schedule_cmd_, - CMD (thandler_, &Input_Handler::schedule_timer), - -1); - - ACE_NEW_RETURN (cancel_cmd_, - CMD (thandler_, &Input_Handler::cancel_timer), - -1); - - ACE_NEW_RETURN (list_cmd_, - CMD (thandler_, &Input_Handler::list_timer), - -1); - - ACE_NEW_RETURN (shutdown_cmd_, - CMD (thandler_, &Input_Handler::shutdown_timer), - -1); - - ACE_Reactor::instance ()->set_timer_queue (&timer_queue_); - - ACE_Event_Handler::register_stdin_handler (&thandler_, - ACE_Reactor::instance (), - ACE_Thread_Manager::instance ()); - - // print the menu of options. - this->display_menu (); - - return 0; -} - -// run test was overrun due to the reactive way of handling input. - -int -Reactor_Timer_Queue_Test_Driver::run_test (void) -{ - ACE_DEBUG ((LM_DEBUG, - "TIMER TEST STARTED\n")); - - this->init (); - - // Run until we say stop. - while (thandler_.done () == 0) - ACE_Reactor::instance ()->handle_events (); - - ACE_DEBUG ((LM_DEBUG, - "TIMER TEST ENDED\n")); - return 0; -} diff --git a/examples/Timer_Queue/Reactor_Timer_Queue_Test.dsp b/examples/Timer_Queue/Reactor_Timer_Queue_Test.dsp deleted file mode 100644 index b3d17953d34..00000000000 --- a/examples/Timer_Queue/Reactor_Timer_Queue_Test.dsp +++ /dev/null @@ -1,95 +0,0 @@ -# Microsoft Developer Studio Project File - Name="Reactor_Timer_Queue_Test" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=Reactor_Timer_Queue_Test - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "Reactor_Timer_Queue_Test.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "Reactor_Timer_Queue_Test.mak"\
- CFG="Reactor_Timer_Queue_Test - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "Reactor_Timer_Queue_Test - Win32 Release" (based on\
- "Win32 (x86) Console Application")
-!MESSAGE "Reactor_Timer_Queue_Test - Win32 Debug" (based on\
- "Win32 (x86) Console Application")
-!MESSAGE
-
-# Begin Project
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "Reactor_Timer_Queue_Test - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir ""
-# PROP Intermediate_Dir "Release"
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\.." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 ace.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 /libpath:"..\..\ace"
-
-!ELSEIF "$(CFG)" == "Reactor_Timer_Queue_Test - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir ""
-# PROP Intermediate_Dir "Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\.." /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 aced.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\ace"
-
-!ENDIF
-
-# Begin Target
-
-# Name "Reactor_Timer_Queue_Test - Win32 Release"
-# Name "Reactor_Timer_Queue_Test - Win32 Debug"
-# Begin Source File
-
-SOURCE=.\main_reactor.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Reactor_Timer_Queue_Test.cpp
-# End Source File
-# End Target
-# End Project
diff --git a/examples/Timer_Queue/Reactor_Timer_Queue_Test.h b/examples/Timer_Queue/Reactor_Timer_Queue_Test.h deleted file mode 100644 index f80b067d8b1..00000000000 --- a/examples/Timer_Queue/Reactor_Timer_Queue_Test.h +++ /dev/null @@ -1,148 +0,0 @@ -/* -*- C++ -*- */ - -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// examples -// -// = FILENAME -// Reactor_Timer_Queue_Test.h -// -// = DESCRIPTION -// This code is an implementation of a test driver for a reactor based -// timer queue. -// -// = AUTHORS -// Nanbor Wang <nw1@cs.wustl.edu> and -// Sergio Flores-Gaitan <sergio@cs.wustl.edu> -// -// ============================================================================ - -#ifndef _REACTOR_TIMER_QUEUE_TEST_H_ -#define _REACTOR_TIMER_QUEUE_TEST_H_ - -#include "ace/Timer_Heap.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "Driver.h" - -class Reactor_Timer_Queue_Test_Driver; - -class Input_Handler : public ACE_Event_Handler -{ - // = TITLE - // Implements the handler to be called for input events. Also has - // the logic to handle the different timer queue operations (i.e., - // schedule, cancel, list, shutdown). - // - // = DESCRIPTION - // This class handles the reading of user input from stdin. Also - // has the logic to handle the commands that are to be invoked in - // response to the user input. -public: - typedef int (Input_Handler::*ACTION) (void *); - - Input_Handler (ACE_Timer_Queue *tq, - Reactor_Timer_Queue_Test_Driver &timer_queue_driver); - // Sets <done_> flag to 0, <driver_> to <timer_queue_driver> and - // timer queue <tq_> to <tq> - - int handle_input (ACE_HANDLE); - // Hook method for the <ACE_Reactor> to call whenever there is input - // ready to be read. - - int done (void); - // returns the value for <done_> that indicates whether we are - // exiting the program.A value of 0 indicates that we are NOT done, - // 1 otherwise. - - // = Hook methods to be called from <Reactor_Timer_Queue_Test_Driver> - - int schedule_timer (void *argument); - // Schedule a timer. The (void *) will be mapped to the delay - // parameter for the timer queue schedule method. - - int cancel_timer (void *argument); - // Cancel a timer. The (void *) will be mapped to the ID of the - // timer beiing cancelled. - - int list_timer (void *argument); - // Dump the timers in the queue. The argument is ignored. - - int shutdown_timer (void *argument); - // Processes the request to exit the timer queue application. - // argument is ignored. - -private: - ACE_Timer_Queue *tq_; - // Keep a pointer to the timer queue we are using so we can traverse - // the queue. - - int done_; - // Flag used to close down program. - - Reactor_Timer_Queue_Test_Driver &driver_; - // Test driver. Used to call hook methods that are common code for - // all drivers. -}; - -class Reactor_Timer_Queue_Test_Driver : public Timer_Queue_Test_Driver <ACE_Timer_Heap, Input_Handler, Input_Handler::ACTION> -{ - // = TITLE - // Implements a test driver for a reactive timer queue using - // <ACE_Reactor>. - // - // = DESCRIPTION - // This class implements the logic to test the reactor - // implementation of timer queue, using an <ACE_Timer_Heap>. -public: - Reactor_Timer_Queue_Test_Driver (void); - // Sets the input handler <thandler_> with <timer_queue_> from the - // <Timer_Queue_Test_Driver> class and a reference to "this", so the - // input handler can call hook methods from the driver. Such - // methods are the common factored out code from other - // implementations of timer queues. - - virtual ~Reactor_Timer_Queue_Test_Driver (void); - // Default destructor - - virtual int display_menu (void); - // Prints the menu of options. - - virtual int init (void); - // Sets the timer queue that the REACTOR will use; registers the - // stdin input handler with the REACTOR and sets the <Command>s that - // the <Timer_Queue_Test_Driver> will execute(). - - virtual int run_test (void); - // Main entry point to the test driver implementation. - -private: - Input_Handler thandler_; - // This is the stdin handler. -}; - -class Reactor_Timer_Handler : public ACE_Event_Handler -{ - // = TITLE - // Target of the reactive timeout operation. -public: - virtual int handle_timeout (const ACE_Time_Value &tv, - const void *); - // Hook method that is called by the reactor when a timer expires. - // It prints the timer ID and the time it expired. - - void set_timer_id (long tid); - // Sets the timer id for this handler <tid_> to <tid> - -private: - long tid_; - // timer ID. -}; - -#endif /* _REACTOR_TIMER_QUEUE_TEST_H_ */ diff --git a/examples/Timer_Queue/Thread_Timer_Queue_Test.cpp b/examples/Timer_Queue/Thread_Timer_Queue_Test.cpp deleted file mode 100644 index 93aef7b8b87..00000000000 --- a/examples/Timer_Queue/Thread_Timer_Queue_Test.cpp +++ /dev/null @@ -1,312 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// examples -// -// = FILENAME -// Thread_Timer_Queue_Test.cpp -// -// = DESCRIPTION -// This test exercises the <ACE_Thread_Timer_Queue_Adapter> -// using an <ACE_Timer_Heap>. -// -// = AUTHORS -// Carlos O'Ryan <coryan@cs.wustl.edu> and -// Douglas C. Schmidt <schmidt@cs.wustl.edu> -// -// ============================================================================ - -#include "ace/Task.h" -#include "ace/Timer_Heap_T.h" -#include "ace/Timer_Queue_Adapters.h" - -#include "Thread_Timer_Queue_Test.h" - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) -template class ACE_Thread_Timer_Queue_Adapter<Timer_Heap>; -template class Timer_Queue_Test_Driver<Thread_Timer_Queue, - Input_Task, - Input_Task::ACTION>; -template class Command<Input_Task, Input_Task::ACTION>; -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) -#pragma instantiate ACE_Thread_Timer_Queue_Adapter<Timer_Heap> -#pragma instantiate Timer_Queue_Test_Driver<Thread_Timer_Queue, \ - Input_Task, \ - Input_Task::ACTION> -#pragma instantiate Command<Input_Task, Input_Task::ACTION> -#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ - -#if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0) -// These templates will specialized in libACE.* if the platforms does -// not define ACE_MT_SAFE. - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) -template class ACE_Thread_Condition<ACE_Thread_Mutex>; -template class ACE_Condition<ACE_Thread_Mutex>; -template class ACE_Event_Handler_Handle_Timeout_Upcall<ACE_Null_Mutex>; -template class ACE_Timer_Queue_T<ACE_Event_Handler *, ACE_Event_Handler_Handle_Timeout_Upcall<ACE_Null_Mutex>, ACE_Null_Mutex>; -template class ACE_Timer_Heap_T<ACE_Event_Handler *, ACE_Event_Handler_Handle_Timeout_Upcall<ACE_Null_Mutex>, ACE_Null_Mutex>; -template class ACE_Timer_Heap_Iterator_T<ACE_Event_Handler *, ACE_Event_Handler_Handle_Timeout_Upcall<ACE_Null_Mutex>, ACE_Null_Mutex>; -template class ACE_Timer_Queue_Iterator_T<ACE_Event_Handler *, ACE_Event_Handler_Handle_Timeout_Upcall<ACE_Null_Mutex>, ACE_Null_Mutex>; -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) -#pragma instantiate ACE_Thread_Condition<ACE_Thread_Mutex> -#pragma instantiate ACE_Condition<ACE_Thread_Mutex> -#pragma instantiate ACE_Event_Handler_Handle_Timeout_Upcall<ACE_Null_Mutex> -#pragma instantiate ACE_Timer_Queue_T<ACE_Event_Handler *, ACE_Event_Handler_Handle_Timeout_Upcall<ACE_Null_Mutex>, ACE_Null_Mutex> -#pragma instantiate ACE_Timer_Heap_T<ACE_Event_Handler *, ACE_Event_Handler_Handle_Timeout_Upcall<ACE_Null_Mutex>, ACE_Null_Mutex> -#pragma instantiate ACE_Timer_Heap_Iterator_T<ACE_Event_Handler *, ACE_Event_Handler_Handle_Timeout_Upcall<ACE_Null_Mutex>, ACE_Null_Mutex> -#pragma instantiate ACE_Timer_Queue_Iterator_T<ACE_Event_Handler *, ACE_Event_Handler_Handle_Timeout_Upcall<ACE_Null_Mutex>, ACE_Null_Mutex> -#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ -#endif /* ACE_MT_SAFE */ - -ACE_RCSID(Timer_Queue, Thread_Timer_Queue_Test, "$Id$") - -// Administrivia methods... -Handler::Handler(const ACE_Time_Value &expiration_time) - : expires_ (expiration_time), - id_ (0) -{ -} - -Handler::~Handler (void) -{ -} - -void -Handler::set_id (int id) -{ - this->id_ = id; -} - -// This is the method invoked when the Timer expires. - -int -Handler::handle_timeout (const ACE_Time_Value ¤t_time, - const void *) -{ - ACE_Time_Value delay = current_time - this->expires_; - - // No need to protect this printf is always called from a Async safe - // point. - ACE_OS::printf ("\nexpiring timer %d at %u.%07.7u secs\n" - "\tthere was a %u.%07.7u secs delay\n", - this->id_, - current_time.sec (), - current_time.usec (), - delay.sec (), - delay.usec ()); - // Notice this delete is protected. - delete this; - return 0; -} - -// The handler was cancelled, so we must delete this. - -int -Handler::cancelled (void) -{ - delete this; - return 0; -} - -Input_Task::Input_Task (Thread_Timer_Queue *queue, - Thread_Timer_Queue_Test_Driver &timer_queue_driver) - : ACE_Task_Base (ACE_Thread_Manager::instance ()), - queue_ (queue), - usecs_ (ACE_ONE_SECOND_IN_USECS), - driver_ (timer_queue_driver) -{ -} - -// Svc method is called from the thread library to read input from the -// user. - -int -Input_Task::svc (void) -{ - for (;;) - // call back to the driver's implementation on how to read and - // parse input. - if (this->driver_.get_next_request () == -1) - break; - - // we are done. - this->queue_->deactivate (); - ACE_DEBUG ((LM_DEBUG, - "terminating input thread\n")); - return 0; -} - -// schedule a new timer. This method will be called from inside the -// <Timer_Queue_Test_Driver> class. (see Command pattern) - -int -Input_Task::add_timer (void *argument) -{ - u_long useconds = *ACE_reinterpret_cast (int *, argument); - ACE_Time_Value interval (useconds / usecs_, - useconds % usecs_); - ACE_Time_Value expire_at = ACE_OS::gettimeofday () + interval; - - Handler *h; - - ACE_NEW_RETURN (h, - Handler (expire_at), - -1); - - int id = queue_->schedule (h, 0, expire_at); - - if (id == -1) - ACE_ERROR_RETURN ((LM_ERROR, - "schedule failed"), - -1); - - // We store the id into the handler, this is only used to produce - // nicer messages. - h->set_id (id); - - ACE_OS::printf ("scheduling timer %d\n", - id); - return 0; -} - -// Cancel a timer. This method will be called from inside the -// <Timer_Queue_Test_Driver> class. (see Command pattern) - -int -Input_Task::cancel_timer (void *argument) -{ - return this->queue_->cancel (*ACE_reinterpret_cast (int *, - argument)); -} - -// Lists the timers in the queue. Ignores the argument. This method -// will be called from inside the <Timer_Queue_Test_Driver> class. -// (see Command pattern) - -int -Input_Task::list_timer (void *argument) -{ - // Macro to avoid "warning: unused parameter" type warning. - ACE_UNUSED_ARG (argument); - - // Dump the timer queue contents. - this->dump (); - - return 0; -} - -// Shutdown the timer queue. Return -1 indicates to the -// <Timer_Queue_Test_Driver> class that we are done. - -int -Input_Task::shutdown_timer (void *argument) -{ - // Macro to avoid "warning: unused parameter" type warning. - ACE_UNUSED_ARG (argument); - -#if defined (ACE_LACKS_PTHREAD_CANCEL) - // Cancel the thread timer queue task "voluntarily." - this->queue_->deactivate (); -#else - // Cancel the thread timer queue task "preemptively." - if (ACE_Thread::cancel (this->queue_->thr_id ()) == -1) - ACE_ERROR ((LM_ERROR, - "%p\n", - "cancel")); -#endif /* ACE_LACKS_PTHREAD_CANCEL */ - - // -1 indicates we are shutting down the application. - return -1; -} - -void -Input_Task::dump (void) -{ - ACE_GUARD (ACE_SYNCH_MUTEX, ace_mon, this->queue_->mutex ()); - - ACE_DEBUG ((LM_DEBUG, - "begin dumping timer queue\n")); - - for (Timer_Heap_Iterator i (this->queue_->timer_queue ()); - i.item () != 0; - i.next ()) - i.item ()->dump (); - - ACE_DEBUG ((LM_DEBUG, - "end dumping timer queue\n")); -} - -// constructor - -Thread_Timer_Queue_Test_Driver::Thread_Timer_Queue_Test_Driver (void) - : input_task_ (&timer_queue_, *this) -{ -} - -Thread_Timer_Queue_Test_Driver::~Thread_Timer_Queue_Test_Driver (void) -{ -} - -int -Thread_Timer_Queue_Test_Driver::run_test (void) -{ - this->init (); - return 0; -} - -int -Thread_Timer_Queue_Test_Driver::display_menu (void) -{ - static char menu[] = - "Usage:\n" - "1 <microseconds>: setups a new timer\n" - "2 <timerid>: removes a timer\n" - "3 : prints timer queue\n" - "4 : exit\n"; - - ACE_DEBUG ((LM_DEBUG, - "%s", - menu)); - return 0; -} - -int -Thread_Timer_Queue_Test_Driver::init (void) -{ - typedef Command<Input_Task, Input_Task::ACTION> CMD; - - // initialize the <Command> objects with their corresponding - // methods from <Input_Task> - ACE_NEW_RETURN (schedule_cmd_, - CMD (input_task_, &Input_Task::add_timer), - -1); - - ACE_NEW_RETURN (cancel_cmd_, - CMD (input_task_, &Input_Task::cancel_timer), - -1); - - ACE_NEW_RETURN (list_cmd_, - CMD (input_task_, &Input_Task::list_timer), - -1); - - ACE_NEW_RETURN (shutdown_cmd_, - CMD (input_task_, &Input_Task::shutdown_timer), - -1); - - if (this->input_task_.activate () == -1) - ACE_ERROR_RETURN ((LM_ERROR, - "cannot activate input task"), - -1); - else if (this->timer_queue_.activate () == -1) - ACE_ERROR_RETURN ((LM_ERROR, - "cannot activate timer queue"), - -1); - else if (ACE_Thread_Manager::instance ()->wait () == -1) - ACE_ERROR_RETURN ((LM_ERROR, - "wait on Thread_Manager failed"), - -1); - return 0; -} diff --git a/examples/Timer_Queue/Thread_Timer_Queue_Test.dsp b/examples/Timer_Queue/Thread_Timer_Queue_Test.dsp deleted file mode 100644 index 2908183f97c..00000000000 --- a/examples/Timer_Queue/Thread_Timer_Queue_Test.dsp +++ /dev/null @@ -1,96 +0,0 @@ -# Microsoft Developer Studio Project File - Name="Thread_Timer_Queue_Test" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=Thread_Timer_Queue_Test - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "Thread_Timer_Queue_Test.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "Thread_Timer_Queue_Test.mak"\
- CFG="Thread_Timer_Queue_Test - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "Thread_Timer_Queue_Test - Win32 Release" (based on\
- "Win32 (x86) Console Application")
-!MESSAGE "Thread_Timer_Queue_Test - Win32 Debug" (based on\
- "Win32 (x86) Console Application")
-!MESSAGE
-
-# Begin Project
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "Thread_Timer_Queue_Test - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir ""
-# PROP Intermediate_Dir "Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\\" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 ace.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 /libpath:"..\..\ace\\"
-
-!ELSEIF "$(CFG)" == "Thread_Timer_Queue_Test - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir ""
-# PROP Intermediate_Dir "Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\.." /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 aced.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\ace\\"
-
-!ENDIF
-
-# Begin Target
-
-# Name "Thread_Timer_Queue_Test - Win32 Release"
-# Name "Thread_Timer_Queue_Test - Win32 Debug"
-# Begin Source File
-
-SOURCE=.\main_thread.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Thread_Timer_Queue_Test.cpp
-# End Source File
-# End Target
-# End Project
diff --git a/examples/Timer_Queue/Thread_Timer_Queue_Test.h b/examples/Timer_Queue/Thread_Timer_Queue_Test.h deleted file mode 100644 index 710b133b1e9..00000000000 --- a/examples/Timer_Queue/Thread_Timer_Queue_Test.h +++ /dev/null @@ -1,155 +0,0 @@ -/* -*- C++ -*- */ - -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// examples -// -// = FILENAME -// Thread_Timer_Queue_Test.h -// -// = DESCRIPTION -// This code exercises the <ACE_Thread_Timer_Queue_Adapter> using -// an <ACE_Timer_Heap_T>. -// -// = AUTHORS -// Carlos O'Ryan <coryan@cs.wustl.edu> and -// Sergio Flores-Gaitan <sergio@cs.wustl.edu> -// -// ============================================================================ - -#ifndef _THREAD_TIMER_QUEUE_TEST_H_ -#define _THREAD_TIMER_QUEUE_TEST_H_ - -#include "ace/Task.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "ace/Timer_Heap_T.h" -#include "ace/Timer_Queue_Adapters.h" -#include "Driver.h" - -// These typedefs ensure that we use the minimal amount of locking -// necessary. -typedef ACE_Event_Handler_Handle_Timeout_Upcall<ACE_Null_Mutex> - Upcall; -typedef ACE_Timer_Heap_T<ACE_Event_Handler *, - Upcall, - ACE_Null_Mutex> - Timer_Heap; -typedef ACE_Timer_Heap_Iterator_T<ACE_Event_Handler *, - Upcall, - ACE_Null_Mutex> - Timer_Heap_Iterator; -typedef ACE_Thread_Timer_Queue_Adapter<Timer_Heap> - Thread_Timer_Queue; - -// Forward declaration. -class Thread_Timer_Queue_Test_Driver; - -class Input_Task : public ACE_Task_Base -{ - // = TITLE - // Read user actions on the Timer_Queue from stdin. - // - // = DESCRIPTION - // This class reads user input from stdin; those commands permit - // the control of a Timer_Queue, which is dispatched by another - // thread. -public: - typedef int (Input_Task::*ACTION) (void *); - - Input_Task (Thread_Timer_Queue *queue, - Thread_Timer_Queue_Test_Driver &timer_queue_driver); - - virtual int svc (void); - // This method runs the event loop in the new thread. - - // = Some helper methods. - - int add_timer (void *); - // Add a new timer to expire in <seconds> more. - - int cancel_timer (void *); - // Cancel timer <id>. - - int list_timer (void *); - // List the current scheduled timers. - - int shutdown_timer (void *); - // Shutdown task. - - void dump (void); - // Dump the state of the timer queue. - -private: - Thread_Timer_Queue *queue_; - // The timer queue implementation. - - const int usecs_; - // How many micro seconds are in a second. - - Thread_Timer_Queue_Test_Driver &driver_; - // The thread timer queue test driver. -}; - -class Thread_Timer_Queue_Test_Driver : public Timer_Queue_Test_Driver <Thread_Timer_Queue, Input_Task, Input_Task::ACTION> -{ - // = TITLE - // Implements an example application that exercises - // <Thread_Timer_Queue> timer queue. - // - // = DESCRIPTION - // This class implements a simple test driver for the - // <Thread_Timer_Queue>. The <display_menu> hook method is - // called from the base class to print a menu specific to the - // thread implementation of the timer queue. -public: - Thread_Timer_Queue_Test_Driver (void); - ~Thread_Timer_Queue_Test_Driver (void); - - virtual int display_menu (void); - virtual int init (void); - virtual int run_test (void); - -private: - Input_Task input_task_; - // Subclassed from ACE_Task. -}; - -class Handler : public ACE_Event_Handler -{ - // = TITLE - // Event handler for the timer queue timeout events. - // - // = DESCRIPTION - // The <handle_timeout> hook method prints out the current time, - // prints the time when this timer expired and deletes "this". -public: - Handler (const ACE_Time_Value &expiration_time); - ~Handler (void); - - void set_id (int id); - // Store an "id" for the Handler, which is only use to print better - // messages. - - virtual int handle_timeout (const ACE_Time_Value ¤t_time, - const void *arg); - // Call back hook. - virtual int cancelled (void); - -private: - ACE_Time_Value expires_; - // Store the expected time of expiration, it is used to print a nice - // message saying how much delay was at the actual expiration time. - - int id_; - // Store an "id" for the Handler, which is only use to print better - // messages. -}; - -#endif /* _THREAD_TIMER_QUEUE_TEST_H_ */ diff --git a/examples/Timer_Queue/Timer_Queue.dsw b/examples/Timer_Queue/Timer_Queue.dsw deleted file mode 100644 index 4e46db747d4..00000000000 --- a/examples/Timer_Queue/Timer_Queue.dsw +++ /dev/null @@ -1,41 +0,0 @@ -Microsoft Developer Studio Workspace File, Format Version 6.00
-# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
-
-###############################################################################
-
-Project: "Reactor_Timer_Queue_Test"=.\Reactor_Timer_Queue_Test.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "Thread_Timer_Queue_Test"=.\Thread_Timer_Queue_Test.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Global:
-
-Package=<5>
-{{{
-}}}
-
-Package=<3>
-{{{
-}}}
-
-###############################################################################
-
diff --git a/examples/Timer_Queue/main_async.cpp b/examples/Timer_Queue/main_async.cpp deleted file mode 100644 index eb9c33881e9..00000000000 --- a/examples/Timer_Queue/main_async.cpp +++ /dev/null @@ -1,53 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// examples -// -// = FILENAME -// main_async.cpp -// -// = DESCRIPTION -// Implements an asynchronous timer queue. -// This code exercises the Timer_Queue_Test_Driver class using -// signals as an asynchronous mechanism to dispatch events. -// -// = AUTHORS -// Douglas Schmidt <schmidt@cs.wustl.edu> && -// Sergio Flores-Gaitan <sergio@cs.wustl.edu> -// -// ============================================================================ - -#include "ace/Auto_Ptr.h" -#include "Driver.h" -#include "Async_Timer_Queue_Test.h" - -ACE_RCSID(Timer_Queue, main_async, "$Id$") - -typedef Timer_Queue_Test_Driver<Async_Timer_Queue *, - Async_Timer_Queue, - Async_Timer_Queue::ACTION> - ASYNC_TIMER_QUEUE_TEST_DRIVER; - -int -main (int, char *[]) -{ - ASYNC_TIMER_QUEUE_TEST_DRIVER *tqtd; - ACE_NEW_RETURN (tqtd, Async_Timer_Queue_Test_Driver, -1); - // Auto ptr ensures that the driver memory is released - // automatically. - auto_ptr <ASYNC_TIMER_QUEUE_TEST_DRIVER> driver (tqtd); - - return driver->run_test (); -} - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) -template class auto_ptr <ASYNC_TIMER_QUEUE_TEST_DRIVER>; -template class ACE_Auto_Basic_Ptr <ASYNC_TIMER_QUEUE_TEST_DRIVER>; -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) -#pragma instantiate auto_ptr <ASYNC_TIMER_QUEUE_TEST_DRIVER> -#pragma instantiate ACE_Auto_Basic_Ptr <ASYNC_TIMER_QUEUE_TEST_DRIVER> -#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ - - diff --git a/examples/Timer_Queue/main_reactor.cpp b/examples/Timer_Queue/main_reactor.cpp deleted file mode 100644 index 2c351900a8b..00000000000 --- a/examples/Timer_Queue/main_reactor.cpp +++ /dev/null @@ -1,57 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// examples -// -// = FILENAME -// main_reactor.cpp -// -// = DESCRIPTION -// Implements an reactive timer queue. -// This code exercises the Timer_Queue_Test_Driver class using -// a reactor. -// -// = AUTHORS -// Douglas Schmidt <schmidt@cs.wustl.edu> && -// Sergio Flores-Gaitan <sergio@cs.wustl.edu> -// -// ============================================================================ - -#include "ace/Auto_Ptr.h" -#include "Driver.h" -#include "Reactor_Timer_Queue_Test.h" - -ACE_RCSID(Timer_Queue, main_reactor, "$Id$") - -typedef Timer_Queue_Test_Driver <ACE_Timer_Heap, - Input_Handler, - Input_Handler::ACTION> - REACTOR_TIMER_QUEUE_TEST_DRIVER; - -int -main (int, char *[]) -{ - REACTOR_TIMER_QUEUE_TEST_DRIVER *tqtd; - ACE_NEW_RETURN (tqtd, Reactor_Timer_Queue_Test_Driver, -1); - // Auto ptr ensures that the driver memory is released - // automatically. - auto_ptr <REACTOR_TIMER_QUEUE_TEST_DRIVER> driver (tqtd); - - return driver->run_test (); -} - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) -template class auto_ptr <REACTOR_TIMER_QUEUE_TEST_DRIVER>; -template class ACE_Auto_Basic_Ptr <REACTOR_TIMER_QUEUE_TEST_DRIVER>; -template class Timer_Queue_Test_Driver<ACE_Timer_Heap *, - Input_Handler, - Input_Handler::ACTION>; -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) -#pragma instantiate auto_ptr <REACTOR_TIMER_QUEUE_TEST_DRIVER> -#pragma instantiate ACE_Auto_Basic_Ptr <REACTOR_TIMER_QUEUE_TEST_DRIVER> -#pragma instantiate Timer_Queue_Test_Driver<ACE_Timer_Heap *, \ - Input_Handler, \ - Input_Handler::ACTION> -#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/examples/Timer_Queue/main_thread.cpp b/examples/Timer_Queue/main_thread.cpp deleted file mode 100644 index f83db59169e..00000000000 --- a/examples/Timer_Queue/main_thread.cpp +++ /dev/null @@ -1,52 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// examples -// -// = FILENAME -// main_thread.cpp -// -// = DESCRIPTION -// Implements an threaded timer queue. -// This code exercises the Timer_Queue_Test_Driver class using -// threads. -// -// = AUTHORS -// Douglas Schmidt <schmidt@cs.wustl.edu> && -// Sergio Flores-Gaitan <sergio@cs.wustl.edu> -// -// ============================================================================ - -#include "ace/Auto_Ptr.h" -#include "Driver.h" -#include "Thread_Timer_Queue_Test.h" - -ACE_RCSID(Timer_Queue, main_thread, "$Id$") - -typedef Timer_Queue_Test_Driver<Thread_Timer_Queue, - Input_Task, - Input_Task::ACTION> - THREAD_TIMER_QUEUE_TEST_DRIVER; - -int -main (int, char *[]) -{ - // Auto ptr ensures that the driver memory is released - // automatically. - THREAD_TIMER_QUEUE_TEST_DRIVER *tqtd; - ACE_NEW_RETURN (tqtd, Thread_Timer_Queue_Test_Driver, -1); - - auto_ptr <THREAD_TIMER_QUEUE_TEST_DRIVER> driver (tqtd); - - return driver->run_test (); -} - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) -template class auto_ptr <THREAD_TIMER_QUEUE_TEST_DRIVER>; -template class ACE_Auto_Basic_Ptr <THREAD_TIMER_QUEUE_TEST_DRIVER>; -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) -#pragma instantiate auto_ptr <THREAD_TIMER_QUEUE_TEST_DRIVER> -#pragma instantiate ACE_Auto_Basic_Ptr <THREAD_TIMER_QUEUE_TEST_DRIVER> -#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ |