summaryrefslogtreecommitdiff
path: root/examples/APG/Active_Objects/AO.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'examples/APG/Active_Objects/AO.cpp')
-rw-r--r--examples/APG/Active_Objects/AO.cpp206
1 files changed, 0 insertions, 206 deletions
diff --git a/examples/APG/Active_Objects/AO.cpp b/examples/APG/Active_Objects/AO.cpp
deleted file mode 100644
index 8a50e491162..00000000000
--- a/examples/APG/Active_Objects/AO.cpp
+++ /dev/null
@@ -1,206 +0,0 @@
-// $Id$
-
-#include "ace/config-lite.h"
-#if defined (ACE_HAS_THREADS)
-
-#include "ace/OS_NS_unistd.h"
-#include "ace/Activation_Queue.h"
-#include "ace/Method_Request.h"
-#include "ace/Task.h"
-#include "ace/Future.h"
-#include "ace/Auto_Ptr.h"
-// Listing 1 code/ch15
-class HA_ControllerAgent
-{
- // Proxy to the HA_Controller that is on the network.
-public:
- HA_ControllerAgent ()
- {
- ACE_TRACE
- (ACE_TEXT ("HA_ControllerAgent::HA_ControllerAgent"));
- status_result_ = 1;
- }
-
- int status_update (void)
- {
- ACE_TRACE (ACE_TEXT ("HA_ControllerAgent::status_update"));
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("Obtaining a status_update in %t ")
- ACE_TEXT ("thread of control\n")));
- // Simulate time to send message and get status.
- ACE_OS::sleep (2);
- return next_result_id ();
- }
-
-private:
- int next_result_id (void)
- {
- ACE_TRACE (ACE_TEXT ("HA_ControllerAgent::next_cmd_id"));
- return status_result_++;
- }
-
- int status_result_;
-};
-// Listing 1
-// Listing 2 code/ch15
-class StatusUpdate : public ACE_Method_Request
-{
-public:
- StatusUpdate (HA_ControllerAgent& controller,
- ACE_Future<int>& returnVal)
- : controller_(controller), returnVal_(returnVal)
- {
- ACE_TRACE (ACE_TEXT ("StatusUpdate::StatusUpdate"));
- }
-
- virtual int call (void)
- {
- ACE_TRACE (ACE_TEXT ("StatusUpdate::call"));
-
- // status_update with the controller.
- this->returnVal_.set (this->controller_.status_update ());
- return 0;
- }
-
-private:
- HA_ControllerAgent& controller_;
- ACE_Future<int> returnVal_;
-};
-// Listing 2
-// Listing 3 code/ch15
-class ExitMethod : public ACE_Method_Request
-{
-public:
- virtual int call (void)
- {
- // Cause exit.
- return -1;
- }
-};
-// Listing 3
-// Listing 4 code/ch15
-class Scheduler : public ACE_Task_Base
-{
-public:
- Scheduler ()
- {
- ACE_TRACE (ACE_TEXT ("Scheduler::Scheduler"));
- this->activate ();
- }
-
- virtual int svc (void)
- {
- ACE_TRACE (ACE_TEXT ("Scheduler::svc"));
-
- while (1)
- {
- // Dequeue the next method object
- auto_ptr<ACE_Method_Request>
- request (this->activation_queue_.dequeue ());
-
- // Invoke the method request.
- if (request->call () == -1)
- break;
- }
-
- return 0;
- }
-
- int enqueue (ACE_Method_Request *request)
- {
- ACE_TRACE (ACE_TEXT ("Scheduler::enqueue"));
- return this->activation_queue_.enqueue (request);
- }
-
-private:
- ACE_Activation_Queue activation_queue_;
-};
-// Listing 4
-// Listing 5 code/ch15
-class HA_ControllerAgentProxy
-{
- // This acts as a Proxy to the controller impl object.
-public:
- ACE_Future<int> status_update (void)
- {
- ACE_TRACE
- (ACE_TEXT ("HA_ControllerAgentProxy::status_update"));
- ACE_Future<int> result;
-
- // Create and enqueue a method request on the scheduler.
- this->scheduler_.enqueue
- (new StatusUpdate (this->controller_, result));
-
- // Return Future to the client.
- return result;
- }
-
- void exit (void)
- {
- ACE_TRACE (ACE_TEXT ("HA_ControllerAgentProxy::exit"));
- this->scheduler_.enqueue (new ExitMethod);
- }
-
-private:
- Scheduler scheduler_;
- HA_ControllerAgent controller_;
-};
-// Listing 5
-// Listing 6 code/ch15
-int ACE_TMAIN (int, ACE_TCHAR *[])
-{
- HA_ControllerAgentProxy controller;
- ACE_Future<int> results[10];
-
- for (int i = 0 ; i < 10; i++)
- results[i] = controller.status_update ();
-
- ACE_OS::sleep (5); // Do other work.
-
- // Get results...
- for (int j = 0; j < 10; j++)
- {
- int result = 0;
- results[j].get (result);
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("New status_update %d\n"), result));
- }
-
- // Cause the status_updater threads to exit.
- controller.exit ();
- ACE_Thread_Manager::instance ()->wait ();
- return 0;
-}
-// Listing 6
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Future<int>;
-template class ACE_Future_Rep<int>;
-template class ACE_Future_Observer<int>;
-template class ACE_Unbounded_Set<ACE_Future_Observer<int> *>;
-template class ACE_Node<ACE_Future_Observer<int> *>;
-template class ACE_Unbounded_Set_Iterator<ACE_Future_Observer<int> *>;
-template class ACE_Atomic_Op<ACE_Null_Mutex, unsigned int>;
-template class ACE_Atomic_Op_Ex<ACE_Null_Mutex, unsigned int>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Future<int>
-#pragma instantiate ACE_Future_Rep<int>
-#pragma instantiate ACE_Future_Observer<int>
-#pragma instantiate ACE_Unbounded_Set<ACE_Future_Observer<int> *>
-#pragma instantiate ACE_Node<ACE_Future_Observer<int> *>
-#pragma instantiate ACE_Unbounded_Set_Iterator<ACE_Future_Observer<int> *>
-#pragma instantiate ACE_Atomic_Op<ACE_Null_Mutex, unsigned int>
-#pragma instantiate ACE_Atomic_Op_Ex<ACE_Null_Mutex, unsigned int>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
-
-#else
-#include "ace/OS_main.h"
-#include "ace/OS_NS_stdio.h"
-
-int ACE_TMAIN (int, ACE_TCHAR *[])
-{
- ACE_OS::puts (ACE_TEXT ("This example requires threads."));
- return 0;
-}
-
-#endif /* ACE_HAS_THREADS */