Merge pull request #2309 from mitza-oci/warnings
[ACE_TAO.git] / TAO / tao / RTCORBA / RT_Thread_Lane_Resources_Manager.h
blob5e7a0efae60eb9f317cac24135da227c9b15baad
1 // -*- C++ -*-
3 //=============================================================================
4 /**
5 * @file RT_Thread_Lane_Resources_Manager.h
7 * @author Irfan Pyarali
8 */
9 // ===================================================================
11 #ifndef TAO_RT_THREAD_LANE_RESOURCES_MANAGER_H
12 #define TAO_RT_THREAD_LANE_RESOURCES_MANAGER_H
14 #include /**/ "ace/pre.h"
15 #include "tao/orbconf.h"
17 #if defined (TAO_HAS_CORBA_MESSAGING) && TAO_HAS_CORBA_MESSAGING != 0
19 #if !defined (ACE_LACKS_PRAGMA_ONCE)
20 # pragma once
21 #endif /* ACE_LACKS_PRAGMA_ONCE */
23 #include "tao/RTCORBA/rtcorba_export.h"
24 #include "tao/Thread_Lane_Resources_Manager.h"
25 #include "ace/Service_Config.h"
27 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
29 class TAO_Thread_Pool_Manager;
31 /**
32 * @class TAO_RT_Thread_Lane_Resources_Manager
34 * @brief Manager for thread lane resources.
36 * \nosubgrouping
38 **/
39 class TAO_RTCORBA_Export TAO_RT_Thread_Lane_Resources_Manager :
40 public TAO_Thread_Lane_Resources_Manager
42 public:
43 /// Constructor.
44 TAO_RT_Thread_Lane_Resources_Manager (TAO_ORB_Core &orb_core);
46 /// Destructor.
47 ~TAO_RT_Thread_Lane_Resources_Manager ();
49 /// Finalize resources.
50 void finalize ();
52 /// Open default resources.
53 int open_default_resources ();
55 /// Shutdown reactor.
56 void shutdown_reactor ();
58 /// Certain ORB policies such as dropping replies on shutdown
59 /// would need cleanup of transports to wake threads up.
60 void close_all_transports ();
62 /// Does @a mprofile belong to us?
63 int is_collocated (const TAO_MProfile &mprofile);
65 /// @name Accessors
66 // @{
67 TAO_Thread_Lane_Resources &lane_resources ();
69 TAO_Thread_Lane_Resources &default_lane_resources ();
71 TAO_Thread_Pool_Manager &tp_manager ();
73 // @}
75 private:
76 void operator= (const TAO_RT_Thread_Lane_Resources_Manager &);
77 TAO_RT_Thread_Lane_Resources_Manager (const TAO_RT_Thread_Lane_Resources_Manager &);
79 protected:
80 /// Default lane resources.
81 TAO_Thread_Lane_Resources *default_lane_resources_;
83 /// Thread Pool Manager.
84 TAO_Thread_Pool_Manager *tp_manager_;
87 /**
88 * @class TAO_RT_Thread_Lane_Resources_Manager_Factory
90 * @brief This class is a factory for managers of thread resources.
92 * \nosubgrouping
94 **/
95 class TAO_RTCORBA_Export TAO_RT_Thread_Lane_Resources_Manager_Factory
96 : public TAO_Thread_Lane_Resources_Manager_Factory
98 public:
99 /// Factory method.
100 TAO_Thread_Lane_Resources_Manager *create_thread_lane_resources_manager (TAO_ORB_Core &core);
104 ACE_STATIC_SVC_DECLARE_EXPORT (TAO_RTCORBA, TAO_RT_Thread_Lane_Resources_Manager_Factory)
105 ACE_FACTORY_DECLARE (TAO_RTCORBA, TAO_RT_Thread_Lane_Resources_Manager_Factory)
107 TAO_END_VERSIONED_NAMESPACE_DECL
109 #endif /* TAO_HAS_CORBA_MESSAGING && TAO_HAS_CORBA_MESSAGING != 0 */
111 #include /**/ "ace/post.h"
113 #endif /* TAO_RT_THREAD_LANE_RESOURCES_MANAGER_H */