Merge pull request #2301 from sonndinh/remove-dup-reactor-functions
[ACE_TAO.git] / TAO / orbsvcs / LoadBalancer / Push_Handler.h
blobcb4e34f81d18d90d2ccb53a166dd486bfb198dfe
1 // -*- C++ -*-
3 //=======================================================================
4 /**
5 * @file Push_Handler.h
7 * @author Ossama Othman <ossama@uci.edu>
8 */
9 //=======================================================================
12 #ifndef TAO_LB_PUSH_HANDLER_H
13 #define TAO_LB_PUSH_HANDLER_H
15 #include /**/ "ace/pre.h"
17 #include "ace/config-all.h"
19 #if !defined (ACE_LACKS_PRAGMA_ONCE)
20 # pragma once
21 #endif /* ACE_LACKS_PRAGMA_ONCE */
23 #include "orbsvcs/CosLoadBalancingC.h"
25 #include "ace/Event_Handler.h"
28 /**
29 * @class TAO_LB_Push_Handler
31 * @brief Event handler used when the "push" monitoring style is
32 * configured.
34 * An event handler designed to push loads to the LoadManager.
36 class TAO_LB_Push_Handler : public ACE_Event_Handler
38 public:
39 /// Constructor
40 TAO_LB_Push_Handler (CosLoadBalancing::LoadMonitor_ptr monitor,
41 const PortableGroup::Location & location,
42 CosLoadBalancing::LoadManager_ptr manager);
44 /// Receive the timeout event.
45 virtual int handle_timeout (const ACE_Time_Value &current_time,
46 const void *arg);
48 private:
49 /// Reference to the LoadMonitor.
50 CosLoadBalancing::LoadMonitor_var monitor_;
52 /// Location where the LoadMonitor resides.
53 const PortableGroup::Location location_;
55 /// Reference to the LoadManager.
56 CosLoadBalancing::LoadManager_var manager_;
59 #include /**/ "ace/post.h"
61 #endif /* TAO_LB_PUSH_HANDLER_H */