diff options
author | irfan <irfan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2001-09-13 00:32:20 +0000 |
---|---|---|
committer | irfan <irfan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2001-09-13 00:32:20 +0000 |
commit | 4c76ed621be9063c99c8e9be1a2cfee00dcd0ebf (patch) | |
tree | 714c1845a75010173147e153a132fc1589bfc1ce /TAO/tao/Thread_Lane_Resources.h | |
parent | d39a3356c546085b61d4c0a83d24fa50b8ffc69c (diff) | |
download | ATCD-4c76ed621be9063c99c8e9be1a2cfee00dcd0ebf.tar.gz |
New branch Thread_Pool_stage_3 (very close to x.1.20 release)
Diffstat (limited to 'TAO/tao/Thread_Lane_Resources.h')
-rw-r--r-- | TAO/tao/Thread_Lane_Resources.h | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/TAO/tao/Thread_Lane_Resources.h b/TAO/tao/Thread_Lane_Resources.h new file mode 100644 index 00000000000..9635b8d0293 --- /dev/null +++ b/TAO/tao/Thread_Lane_Resources.h @@ -0,0 +1,103 @@ +//============================================================================= +/** + * @file Thread_Lane_Resources.h + * + * $Id$ + * + * @author Irfan Pyarali + */ +// =================================================================== + +#ifndef TAO_THREAD_LANE_RESOURCES_H +#define TAO_THREAD_LANE_RESOURCES_H + +#include "ace/pre.h" +#include "tao/orbconf.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "tao/corbafwd.h" + +class TAO_ORB_Core; +class TAO_Acceptor_Registry; +class TAO_Transport_Cache_Manager; +class TAO_Leader_Follower; +class TAO_MProfile; +class TAO_New_Leader_Generator; + +/** + * @class TAO_Thread_Lane_Resources + * + * @brief Class representing a thread lane's resources. + * + * \nosubgrouping + * + **/ +class TAO_Export TAO_Thread_Lane_Resources +{ +public: + /// Constructor. + TAO_Thread_Lane_Resources (TAO_ORB_Core &orb_core, + TAO_New_Leader_Generator *new_leader_generator = 0); + + /// Destructor. + ~TAO_Thread_Lane_Resources (void); + + // Does <mprofile> belong to us? + int is_collocated (const TAO_MProfile &mprofile); + + /// Open the acceptor registry. + int open_acceptor_registry (int ignore_address, + CORBA::Environment &ACE_TRY_ENV); + + /// Finalize resources. + void finalize (void); + + /// Shutdown the reactor. + void shutdown_reactor (void); + + /// @name Accessors + // @{ + + TAO_Acceptor_Registry &acceptor_registry (void); + + TAO_Transport_Cache_Manager &transport_cache (void); + + TAO_Leader_Follower &leader_follower (void); + + // @} + +private: + + /// Checks if the acceptor registry has been created. + int has_acceptor_registry_been_created (void) const; + + /// ORB_Core related to this thread lane. + TAO_ORB_Core &orb_core_; + + /// The registry which maintains a list of acceptor factories for + /// each loaded protocol. + TAO_Acceptor_Registry *acceptor_registry_; + + /// Transport cache. + TAO_Transport_Cache_Manager *transport_cache_; + + /// The leader/followers management class for this lane. + TAO_Leader_Follower *leader_follower_; + + /// Synchronization. + TAO_SYNCH_MUTEX lock_; + + /// Generator of new leader threads. + TAO_New_Leader_Generator *new_leader_generator_; +}; + +#if defined (__ACE_INLINE__) +# include "tao/Thread_Lane_Resources.i" +#endif /* __ACE_INLINE__ */ + +#include "ace/post.h" + +#endif /* TAO_THREAD_LANE_RESOURCES_H */ |