3 //=============================================================================
5 * @file Thread_Lane_Resources_Manager.h
7 * @author Irfan Pyarali
9 // ============================================================================
11 #ifndef TAO_THREAD_LANE_RESOURCES_MANAGER_H
12 #define TAO_THREAD_LANE_RESOURCES_MANAGER_H
14 #include /**/ "ace/pre.h"
15 #include "ace/Service_Object.h"
17 #if !defined (ACE_LACKS_PRAGMA_ONCE)
19 #endif /* ACE_LACKS_PRAGMA_ONCE */
21 #include /**/ "tao/TAO_Export.h"
22 #include /**/ "tao/Versioned_Namespace.h"
24 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
27 class TAO_Thread_Lane_Resources
;
28 class TAO_LF_Strategy
;
32 * @class TAO_Thread_Lane_Resources_Manager
34 * @brief This class is a manager for thread resources.
39 class TAO_Export TAO_Thread_Lane_Resources_Manager
43 TAO_Thread_Lane_Resources_Manager (TAO_ORB_Core
&orb_core
);
46 virtual ~TAO_Thread_Lane_Resources_Manager ();
48 /// Finalize resources.
49 virtual void finalize () = 0;
51 /// Open default resources.
52 virtual int open_default_resources () = 0;
55 virtual void shutdown_reactor () = 0;
57 /// Cleanup transports to wake threads up waiting on those sockets.
58 virtual void close_all_transports () = 0;
60 /// Does @a mprofile belong to us?
61 virtual int is_collocated (const TAO_MProfile
& mprofile
) = 0;
65 virtual TAO_Thread_Lane_Resources
&lane_resources () = 0;
67 virtual TAO_Thread_Lane_Resources
&default_lane_resources () = 0;
69 TAO_LF_Strategy
&lf_strategy ();
73 void operator= (const TAO_Thread_Lane_Resources_Manager
&);
74 TAO_Thread_Lane_Resources_Manager (const TAO_Thread_Lane_Resources_Manager
&);
78 TAO_ORB_Core
* const orb_core_
;
80 /// The leader follower strategy
81 TAO_LF_Strategy
*lf_strategy_
;
85 * @class TAO_Thread_Lane_Resources_Manager_Factory
87 * @brief This class is a factory for managers of thread resources.
92 class TAO_Export TAO_Thread_Lane_Resources_Manager_Factory
93 : public ACE_Service_Object
96 /// Virtual destructor.
97 virtual ~TAO_Thread_Lane_Resources_Manager_Factory ();
100 virtual TAO_Thread_Lane_Resources_Manager
*
101 create_thread_lane_resources_manager (TAO_ORB_Core
&core
) = 0;
104 TAO_END_VERSIONED_NAMESPACE_DECL
107 #include /**/ "ace/post.h"
109 #endif /* TAO_THREAD_LANE_RESOURCES_MANAGER_H */