summaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorschmidt <douglascraigschmidt@users.noreply.github.com>1997-10-20 07:03:55 +0000
committerschmidt <douglascraigschmidt@users.noreply.github.com>1997-10-20 07:03:55 +0000
commit7cf3dc27bad9ee61cfd0b8033131ec79ad61b8bf (patch)
treeae44fd5d1b0866deb43c6fea923ab7695573d714 /examples
parentbda1cbc47e2955016a3b3437a5d5418fb40d3f6d (diff)
downloadATCD-7cf3dc27bad9ee61cfd0b8033131ec79ad61b8bf.tar.gz
*** empty log message ***
Diffstat (limited to 'examples')
-rw-r--r--examples/Makefile4
-rw-r--r--examples/Timer_Queue/Async_Timer_Queue_Test.cpp18
-rw-r--r--examples/Timer_Queue/Async_Timer_Queue_Test.h21
-rw-r--r--examples/Timer_Queue/Driver.cpp30
-rw-r--r--examples/Timer_Queue/Driver.h66
-rw-r--r--examples/Timer_Queue/Makefile76
-rw-r--r--examples/Timer_Queue/Reactor_Timer_Queue_Test.cpp14
-rw-r--r--examples/Timer_Queue/Reactor_Timer_Queue_Test.h46
-rw-r--r--examples/Timer_Queue/Thread_Timer_Queue_Test.cpp13
-rw-r--r--examples/Timer_Queue/Thread_Timer_Queue_Test.h31
-rw-r--r--examples/Timer_Queue/main_async.cpp4
-rw-r--r--examples/Timer_Queue/main_reactor.cpp4
-rw-r--r--examples/Timer_Queue/main_thread.cpp4
13 files changed, 213 insertions, 118 deletions
diff --git a/examples/Makefile b/examples/Makefile
index 73c7088a98c..29714ca2e18 100644
--- a/examples/Makefile
+++ b/examples/Makefile
@@ -23,10 +23,10 @@ DIRS = ASX \
Shared_Malloc \
Shared_Memory \
System_V_IPC \
- Timer_Queue \
- Threads
+ Threads
# Makefiles TBD:
+# Timer_Queue
# ttcp
# CORBA
diff --git a/examples/Timer_Queue/Async_Timer_Queue_Test.cpp b/examples/Timer_Queue/Async_Timer_Queue_Test.cpp
index 2367316da24..1a325f05c03 100644
--- a/examples/Timer_Queue/Async_Timer_Queue_Test.cpp
+++ b/examples/Timer_Queue/Async_Timer_Queue_Test.cpp
@@ -247,25 +247,27 @@ Async_Timer_Queue_Test_Driver::display_menu (void)
int
Async_Timer_Queue_Test_Driver::init (void)
{
+ typedef Command<Async_Timer_Queue, Async_Timer_Queue::ACTION> COMMAND;
+
// initialize <Command> objects with their corresponding <Input_Task> methods.
ACE_NEW_RETURN (schedule_cmd_,
- Command<Async_Timer_Queue> (*Async_Timer_Queue::instance (),
- Async_Timer_Queue::instance ()->schedule_timer),
+ COMMAND (*Async_Timer_Queue::instance (),
+ &Async_Timer_Queue::schedule_timer),
-1);
ACE_NEW_RETURN (cancel_cmd_,
- Command<Async_Timer_Queue> (*Async_Timer_Queue::instance (),
- Async_Timer_Queue::instance ()->cancel_timer),
+ COMMAND (*Async_Timer_Queue::instance (),
+ &Async_Timer_Queue::cancel_timer),
-1);
ACE_NEW_RETURN (list_cmd_,
- Command<Async_Timer_Queue> (*Async_Timer_Queue::instance (),
- Async_Timer_Queue::instance ()->list_timer),
+ COMMAND (*Async_Timer_Queue::instance (),
+ &Async_Timer_Queue::list_timer),
-1);
ACE_NEW_RETURN (shutdown_cmd_,
- Command<Async_Timer_Queue> (*Async_Timer_Queue::instance (),
- Async_Timer_Queue::instance ()->shutdown_timer),
+ COMMAND (*Async_Timer_Queue::instance (),
+ &Async_Timer_Queue::shutdown_timer),
-1);
register_signal_handlers ();
diff --git a/examples/Timer_Queue/Async_Timer_Queue_Test.h b/examples/Timer_Queue/Async_Timer_Queue_Test.h
index 1705d8d3bf5..95dd6def6c9 100644
--- a/examples/Timer_Queue/Async_Timer_Queue_Test.h
+++ b/examples/Timer_Queue/Async_Timer_Queue_Test.h
@@ -48,6 +48,8 @@ class Async_Timer_Queue
// place.
{
public:
+ typedef int (Async_Timer_Queue::*ACTION) (void *);
+
static Async_Timer_Queue *instance (void);
// Singleton access point.
@@ -83,15 +85,16 @@ private:
// 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>
-// = 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>.
+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);
diff --git a/examples/Timer_Queue/Driver.cpp b/examples/Timer_Queue/Driver.cpp
index b6d719c7bf4..621424d3b3f 100644
--- a/examples/Timer_Queue/Driver.cpp
+++ b/examples/Timer_Queue/Driver.cpp
@@ -20,17 +20,17 @@
// constructor
-template <class Receiver>
-Command<Receiver>::Command (Receiver &recvr,
- Action action)
- : receiver_(recvr),
- action_(action)
+template <class RECEIVER, class ACTION>
+Command<RECEIVER, ACTION>::Command (RECEIVER &recvr,
+ ACTION action)
+ : receiver_ (recvr),
+ action_ (action)
{}
// invokes an operation.
-template <class Receiver> int
-Command<Receiver>::execute (void *arg)
+template <class RECEIVER, class ACTION> int
+Command<RECEIVER, ACTION>::execute (void *arg)
{
return (receiver_.*action_) (arg);
}
@@ -38,8 +38,8 @@ Command<Receiver>::execute (void *arg)
// gets the next request from the user input.
-template <class TQ, class Receiver> int
-Timer_Queue_Test_Driver<TQ, Receiver>::get_next_request (void)
+template <class TQ, class RECEIVER, class ACTION> int
+Timer_Queue_Test_Driver<TQ, RECEIVER, ACTION>::get_next_request (void)
{
char buf[BUFSIZ];
@@ -58,8 +58,8 @@ Timer_Queue_Test_Driver<TQ, Receiver>::get_next_request (void)
// Runs the test.
-template <class TQ, class Receiver> int
-Timer_Queue_Test_Driver<TQ, Receiver>::run_test (void)
+template <class TQ, class RECEIVER, class ACTION> int
+Timer_Queue_Test_Driver<TQ, RECEIVER, ACTION>::run_test (void)
{
this->init ();
@@ -72,8 +72,8 @@ Timer_Queue_Test_Driver<TQ, Receiver>::run_test (void)
// Reads input from the user from ACE_STDIN into the buffer specified.
-template <class TQ, class Receiver> ssize_t
-Timer_Queue_Test_Driver<TQ, Receiver>::read_input (char *buf, size_t bufsiz)
+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);
@@ -84,8 +84,8 @@ Timer_Queue_Test_Driver<TQ, Receiver>::read_input (char *buf, size_t bufsiz)
// Parse the input and executes the corresponding operation
-template <class TQ, class Receiver> int
-Timer_Queue_Test_Driver<TQ, Receiver>::parse_commands (const char *buf)
+template <class TQ, class RECEIVER, class ACTION> int
+Timer_Queue_Test_Driver<TQ, RECEIVER, ACTION>::parse_commands (const char *buf)
{
int option;
diff --git a/examples/Timer_Queue/Driver.h b/examples/Timer_Queue/Driver.h
index b6e9d25a196..f59a42cf406 100644
--- a/examples/Timer_Queue/Driver.h
+++ b/examples/Timer_Queue/Driver.h
@@ -39,47 +39,50 @@ typedef ACE_Timer_Heap_Iterator_T<ACE_Event_Handler *,
typedef ACE_Thread_Timer_Queue_Adapter<Timer_Heap>
Thread_Timer_Queue;
-template <class Receiver>
+template <class RECEIVER, class ACTION>
class Command
-// = TITLE
-// Command
-//
-// = 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.ue_Test_Driver>.
+ // = TITLE
+ // @@ Please add a more descriptive title here...
+ // Command
+ //
+ // = 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:
- typedef int (Receiver::*Action) (void *);
-
- Command (Receiver &recvr, Action action);
+ Command (RECEIVER &recvr, ACTION action);
+ // @@ Please add a comment.
virtual int execute (void *arg);
+ // @@ Please add a comment.
private:
- Receiver &receiver_;
+ RECEIVER &receiver_;
// object where the method resides.
- Action action_;
+ ACTION action_;
// method that is going to be invoked.
};
-template <class TQ, class Receiver>
+template <class TQ, class RECEIVER, class ACTION>
class Timer_Queue_Test_Driver
-// = TITLE
-// Timer_Queue_Test_Driver
-//
-// = DESCRIPTION
-// This class implements a test driver for timer queues.
-// 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.
+ // = TITLE
+ // @@ Please add a more descriptive title here...
+ // Timer_Queue_Test_Driver
+ //
+ // = DESCRIPTION
+ // This class implements a test driver for timer queues. 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:
+ // @@ Please comment all of these methods.
virtual int parse_commands (const char *buf);
virtual int run_test (void);
@@ -98,20 +101,19 @@ protected:
TQ timer_queue_;
// timer queue
- // Set of <Command>s to be executed.
+ // = Set of <Command>s to be executed.
- Command<Receiver> *schedule_cmd_;
+ Command<RECEIVER, ACTION> *schedule_cmd_;
// schedule timer command
- Command<Receiver> *cancel_cmd_;
+ Command<RECEIVER, ACTION> *cancel_cmd_;
// cancel timer command.
- Command<Receiver> *list_cmd_;
+ Command<RECEIVER, ACTION> *list_cmd_;
// list timers command.
- Command<Receiver> *shutdown_cmd_;
+ Command<RECEIVER, ACTION> *shutdown_cmd_;
// shutdown the driver.
-
};
#endif /* _DRIVER_H_ */
diff --git a/examples/Timer_Queue/Makefile b/examples/Timer_Queue/Makefile
index f29de0447ed..559d85298d1 100644
--- a/examples/Timer_Queue/Makefile
+++ b/examples/Timer_Queue/Makefile
@@ -52,3 +52,79 @@ include $(ACE_ROOT)/include/makeinclude/rules.local.GNU
# DO NOT DELETE THIS LINE -- g++dep uses it.
# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.
+.obj/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/config.h \
+ $(ACE_ROOT)/ace/stdcpp.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/Trace.h \
+ $(ACE_ROOT)/ace/Log_Msg.h \
+ $(ACE_ROOT)/ace/Log_Record.h \
+ $(ACE_ROOT)/ace/Log_Priority.h \
+ $(ACE_ROOT)/ace/Log_Record.i \
+ $(ACE_ROOT)/ace/Version.h \
+ $(ACE_ROOT)/ace/ACE.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/Containers.h \
+ $(ACE_ROOT)/ace/Containers.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/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/Malloc_T.i \
+ $(ACE_ROOT)/ace/Memory_Pool.h \
+ $(ACE_ROOT)/ace/Signal.h \
+ $(ACE_ROOT)/ace/Signal.i \
+ $(ACE_ROOT)/ace/Mem_Map.h \
+ $(ACE_ROOT)/ace/Mem_Map.i \
+ $(ACE_ROOT)/ace/Memory_Pool.i \
+ $(ACE_ROOT)/ace/Message_Block.i \
+ $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
+ $(ACE_ROOT)/ace/Strategies.h \
+ $(ACE_ROOT)/ace/Strategies_T.h \
+ $(ACE_ROOT)/ace/Service_Config.h \
+ $(ACE_ROOT)/ace/Service_Config.i \
+ $(ACE_ROOT)/ace/Reactor.h \
+ $(ACE_ROOT)/ace/Timer_Queue.h \
+ $(ACE_ROOT)/ace/Timer_Queue_T.h \
+ $(ACE_ROOT)/ace/Timer_Queue_T.i \
+ $(ACE_ROOT)/ace/Reactor.i \
+ $(ACE_ROOT)/ace/Reactor_Impl.h \
+ $(ACE_ROOT)/ace/Handle_Set.h \
+ $(ACE_ROOT)/ace/Handle_Set.i \
+ $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
+ $(ACE_ROOT)/ace/Synch_Options.h \
+ $(ACE_ROOT)/ace/Hash_Map_Manager.h \
+ $(ACE_ROOT)/ace/Message_Queue.i \
+ $(ACE_ROOT)/ace/Task_T.i \
+ $(ACE_ROOT)/ace/Timer_Heap_T.h \
+ $(ACE_ROOT)/ace/Timer_Queue_Adapters.h \
+ $(ACE_ROOT)/ace/Timer_Queue_Adapters.i \
+ Thread_Timer_Queue_Test.h Driver.h
+
+# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/examples/Timer_Queue/Reactor_Timer_Queue_Test.cpp b/examples/Timer_Queue/Reactor_Timer_Queue_Test.cpp
index 0e5819cfd74..74f3ca49ce5 100644
--- a/examples/Timer_Queue/Reactor_Timer_Queue_Test.cpp
+++ b/examples/Timer_Queue/Reactor_Timer_Queue_Test.cpp
@@ -156,25 +156,23 @@ Reactor_Timer_Queue_Test_Driver::display_menu (void)
int
Reactor_Timer_Queue_Test_Driver::init (void)
{
+ typedef Command<Input_Handler, Input_Handler::ACTION> COMMAND;
+
// initialize <Command>s with their corresponding <Input_Handler> methods.
ACE_NEW_RETURN (schedule_cmd_,
- Command<Input_Handler> (thandler,
- thandler.schedule_timer),
+ COMMAND (thandler, &Input_Handler::schedule_timer),
-1);
ACE_NEW_RETURN (cancel_cmd_,
- Command<Input_Handler> (thandler,
- thandler.cancel_timer),
+ COMMAND (thandler, &Input_Handler::cancel_timer),
-1);
ACE_NEW_RETURN (list_cmd_,
- Command<Input_Handler> (thandler,
- thandler.list_timer),
+ COMMAND (thandler, &Input_Handler::list_timer),
-1);
ACE_NEW_RETURN (shutdown_cmd_,
- Command<Input_Handler> (thandler,
- thandler.shutdown_timer),
+ COMMAND (thandler, &Input_Handler::shutdown_timer),
-1);
REACTOR->set_timer_queue (&timer_queue_);
diff --git a/examples/Timer_Queue/Reactor_Timer_Queue_Test.h b/examples/Timer_Queue/Reactor_Timer_Queue_Test.h
index 7447fe3255c..153c22509b6 100644
--- a/examples/Timer_Queue/Reactor_Timer_Queue_Test.h
+++ b/examples/Timer_Queue/Reactor_Timer_Queue_Test.h
@@ -29,16 +29,20 @@
class Reactor_Timer_Queue_Test_Driver;
class Input_Handler : public ACE_Event_Handler
-// = TITLE
-// Input_Handler
-//
-// = 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.
+ // = TITLE
+ // Input_Handler
+ //
+ // = 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:
- Input_Handler (ACE_Timer_Queue *tq, Reactor_Timer_Queue_Test_Driver &timer_queue_driver);
+public:
+ typedef int (Input_Handler::*ACTION) (void *);
+
+ // @@ Please comment all these methods.
+ Input_Handler (ACE_Timer_Queue *tq,
+ Reactor_Timer_Queue_Test_Driver &timer_queue_driver);
int handle_input (ACE_HANDLE);
int done (void);
@@ -47,7 +51,7 @@ class Input_Handler : public ACE_Event_Handler
int list_timer (void *argument);
int shutdown_timer (void *argument);
- private:
+private:
ACE_Timer_Queue *tq_;
// Keep a pointer to the timer queue we are using so we can
// traverse the queue.
@@ -59,15 +63,16 @@ class Input_Handler : public ACE_Event_Handler
// Test driver.
};
-class Reactor_Timer_Queue_Test_Driver : public Timer_Queue_Test_Driver <ACE_Timer_Heap, Input_Handler>
-// = TITLE
-// Reactor_Timer_Queue_Test_Driver
-//
-// = DESCRIPTION
-// This class implements the logic to test the reactor implementation of
-// timer queue, using an <ACE_Timer_Heap>.
+class Reactor_Timer_Queue_Test_Driver : public Timer_Queue_Test_Driver <ACE_Timer_Heap, Input_Handler, Input_Handler::ACTION>
+ // = TITLE
+ // Reactor_Timer_Queue_Test_Driver
+ //
+ // = DESCRIPTION
+ // This class implements the logic to test the reactor
+ // implementation of timer queue, using an <ACE_Timer_Heap>.
{
- public:
+public:
+ // Please comment all these methods.
Reactor_Timer_Queue_Test_Driver (void);
virtual int display_menu (void);
@@ -80,10 +85,11 @@ private:
};
class Reactor_Timer_Handler : public ACE_Event_Handler
-// = TITLE
-// Target of the reactive timeout operation.
+ // = TITLE
+ // Target of the reactive timeout operation.
{
public:
+ // @@ Please comment all these methods.
Reactor_Timer_Handler (void);
virtual int handle_timeout (const ACE_Time_Value &tv,
diff --git a/examples/Timer_Queue/Thread_Timer_Queue_Test.cpp b/examples/Timer_Queue/Thread_Timer_Queue_Test.cpp
index c3c277af147..11425f66a32 100644
--- a/examples/Timer_Queue/Thread_Timer_Queue_Test.cpp
+++ b/examples/Timer_Queue/Thread_Timer_Queue_Test.cpp
@@ -197,27 +197,24 @@ Thread_Timer_Queue_Test_Driver::display_menu (void)
int
Thread_Timer_Queue_Test_Driver::init (void)
{
+ typedef Command<Input_Task, Input_Task::ACTION> COMMAND;
// initialize the <Command> objects with their corresponding
// methods from <Input_Task>
ACE_NEW_RETURN (schedule_cmd_,
- Command<Input_Task> (input_task,
- input_task.add_timer),
+ COMMAND (input_task, &Input_Task::add_timer),
-1);
ACE_NEW_RETURN (cancel_cmd_,
- Command<Input_Task> (input_task,
- input_task.cancel_timer),
+ COMMAND (input_task, &Input_Task::cancel_timer),
-1);
ACE_NEW_RETURN (list_cmd_,
- Command<Input_Task> (input_task,
- input_task.list_timer),
+ COMMAND (input_task, &Input_Task::list_timer),
-1);
ACE_NEW_RETURN (shutdown_cmd_,
- Command<Input_Task> (input_task,
- input_task.shutdown_timer),
+ COMMAND (input_task, &Input_Task::shutdown_timer),
-1);
if (input_task.activate () == -1)
diff --git a/examples/Timer_Queue/Thread_Timer_Queue_Test.h b/examples/Timer_Queue/Thread_Timer_Queue_Test.h
index c4f8178c022..fa28bd9e18e 100644
--- a/examples/Timer_Queue/Thread_Timer_Queue_Test.h
+++ b/examples/Timer_Queue/Thread_Timer_Queue_Test.h
@@ -51,15 +51,18 @@ class Input_Task : public ACE_Task<ACE_SYNCH>
// 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.
+ // 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);
- // The method run on the new thread.
+ // This method runs the event loop in the new thread.
// = Some helper methods.
@@ -85,18 +88,19 @@ private:
const int usecs_;
// How many micro seconds are in a second.
- Timer_Queue_Test_Driver<Thread_Timer_Queue, Input_Task> &driver_;
+ Timer_Queue_Test_Driver<Thread_Timer_Queue, Input_Task, Input_Task::ACTION> &driver_;
// The thread timer queue test driver
};
-class Thread_Timer_Queue_Test_Driver : public Timer_Queue_Test_Driver <Thread_Timer_Queue, Input_Task>
-// = TITLE
-// Thread_Timer_Queue_Test_Driver
-// = 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.
-//
+class Thread_Timer_Queue_Test_Driver : public Timer_Queue_Test_Driver <Thread_Timer_Queue, Input_Task, Input_Task::ACTION>
+ // = TITLE
+ // Thread_Timer_Queue_Test_Driver
+ //
+ // = 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);
@@ -107,6 +111,7 @@ public:
private:
Input_Task input_task;
+ // @@ Please fix this by putting a trailing '_'...
};
class Handler : public ACE_Event_Handler
@@ -116,7 +121,7 @@ class Handler : public ACE_Event_Handler
// = DESCRIPTION
// The <handle_timeout> hook method justs printouts the current
// time, delete this and prints the delay on the twhen it is
- // expired.
+ // expired.
{
public:
Handler (const ACE_Time_Value &expiration_time);
diff --git a/examples/Timer_Queue/main_async.cpp b/examples/Timer_Queue/main_async.cpp
index 7a23947ace6..1447257e2de 100644
--- a/examples/Timer_Queue/main_async.cpp
+++ b/examples/Timer_Queue/main_async.cpp
@@ -23,7 +23,9 @@
#include "Driver.h"
#include "Async_Timer_Queue_Test.h"
-typedef Timer_Queue_Test_Driver<Async_Timer_Queue*, Async_Timer_Queue>
+typedef Timer_Queue_Test_Driver<Async_Timer_Queue*,
+ Async_Timer_Queue,
+ Async_Timer_Queue::ACTION>
ASYNC_TIMER_QUEUE_TEST_DRIVER;
int
diff --git a/examples/Timer_Queue/main_reactor.cpp b/examples/Timer_Queue/main_reactor.cpp
index 000235a988c..724a5da52a1 100644
--- a/examples/Timer_Queue/main_reactor.cpp
+++ b/examples/Timer_Queue/main_reactor.cpp
@@ -23,7 +23,9 @@
#include "Driver.h"
#include "Reactor_Timer_Queue_Test.h"
-typedef Timer_Queue_Test_Driver <ACE_Timer_Heap, Input_Handler>
+typedef Timer_Queue_Test_Driver <ACE_Timer_Heap,
+ Input_Handler,
+ Input_Handler::ACTION>
REACTOR_TIMER_QUEUE_TEST_DRIVER;
int
diff --git a/examples/Timer_Queue/main_thread.cpp b/examples/Timer_Queue/main_thread.cpp
index 3b15fb8c178..9d16c6cebd8 100644
--- a/examples/Timer_Queue/main_thread.cpp
+++ b/examples/Timer_Queue/main_thread.cpp
@@ -23,7 +23,9 @@
#include "Driver.h"
#include "Thread_Timer_Queue_Test.h"
-typedef Timer_Queue_Test_Driver<Thread_Timer_Queue, Input_Task>
+typedef Timer_Queue_Test_Driver<Thread_Timer_Queue,
+ Input_Task,
+ Input_Task::ACTION>
THREAD_TIMER_QUEUE_TEST_DRIVER;
int