RT_Thread_Lane_Resources_Manager.h

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 
00003 //=============================================================================
00004 /**
00005  *  @file    RT_Thread_Lane_Resources_Manager.h
00006  *
00007  *  $Id: RT_Thread_Lane_Resources_Manager.h 78627 2007-06-28 08:50:01Z johnnyw $
00008  *
00009  *  @author  Irfan Pyarali
00010  */
00011 // ===================================================================
00012 
00013 #ifndef TAO_RT_THREAD_LANE_RESOURCES_MANAGER_H
00014 #define TAO_RT_THREAD_LANE_RESOURCES_MANAGER_H
00015 
00016 #include /**/ "ace/pre.h"
00017 #include "tao/orbconf.h"
00018 
00019 #if defined (TAO_HAS_CORBA_MESSAGING) && TAO_HAS_CORBA_MESSAGING != 0
00020 
00021 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00022 # pragma once
00023 #endif /* ACE_LACKS_PRAGMA_ONCE */
00024 
00025 #include "tao/RTCORBA/rtcorba_export.h"
00026 #include "tao/Thread_Lane_Resources_Manager.h"
00027 #include "ace/Service_Config.h"
00028 
00029 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00030 
00031 class TAO_Thread_Pool_Manager;
00032 
00033 /**
00034  * @class TAO_RT_Thread_Lane_Resources_Manager
00035  *
00036  * @brief Manager for thread lane resources.
00037  *
00038  * \nosubgrouping
00039  *
00040  **/
00041 class TAO_RTCORBA_Export TAO_RT_Thread_Lane_Resources_Manager :
00042   public TAO_Thread_Lane_Resources_Manager
00043 {
00044 public:
00045 
00046   /// Constructor.
00047   TAO_RT_Thread_Lane_Resources_Manager (TAO_ORB_Core &orb_core);
00048 
00049   /// Destructor.
00050   ~TAO_RT_Thread_Lane_Resources_Manager (void);
00051 
00052   /// Finalize resources.
00053   void finalize (void);
00054 
00055   /// Open default resources.
00056   int open_default_resources (void);
00057 
00058   /// Shutdown reactor.
00059   void shutdown_reactor (void);
00060 
00061   /// Certain ORB policies such as dropping replies on shutdown with
00062   /// RW connection handlers would need cleanup of transports to wake
00063   /// threads up.
00064   void cleanup_rw_transports (void);
00065 
00066   /// Does @a mprofile belong to us?
00067   int is_collocated (const TAO_MProfile &mprofile);
00068 
00069   /// @name Accessors
00070   // @{
00071 
00072   TAO_Thread_Lane_Resources &lane_resources (void);
00073 
00074   TAO_Thread_Lane_Resources &default_lane_resources (void);
00075 
00076   TAO_Thread_Pool_Manager &tp_manager (void);
00077 
00078   // @}
00079 
00080 protected:
00081 
00082   /// Default lane resources.
00083   TAO_Thread_Lane_Resources *default_lane_resources_;
00084 
00085   /// Thread Pool Manager.
00086   TAO_Thread_Pool_Manager *tp_manager_;
00087 };
00088 
00089 /**
00090  * @class TAO_RT_Thread_Lane_Resources_Manager_Factory
00091  *
00092  * @brief This class is a factory for managers of thread resources.
00093  *
00094  * \nosubgrouping
00095  *
00096  **/
00097 class TAO_RTCORBA_Export TAO_RT_Thread_Lane_Resources_Manager_Factory
00098   : public TAO_Thread_Lane_Resources_Manager_Factory
00099 {
00100 public:
00101 
00102   /// Factory method.
00103   TAO_Thread_Lane_Resources_Manager *create_thread_lane_resources_manager (TAO_ORB_Core &core);
00104 
00105 };
00106 
00107 TAO_END_VERSIONED_NAMESPACE_DECL
00108 
00109 ACE_STATIC_SVC_DECLARE_EXPORT (TAO_RTCORBA, TAO_RT_Thread_Lane_Resources_Manager_Factory)
00110 ACE_FACTORY_DECLARE (TAO_RTCORBA, TAO_RT_Thread_Lane_Resources_Manager_Factory)
00111 
00112 #endif /* TAO_HAS_CORBA_MESSAGING && TAO_HAS_CORBA_MESSAGING != 0 */
00113 
00114 #include /**/ "ace/post.h"
00115 
00116 #endif /* TAO_RT_THREAD_LANE_RESOURCES_MANAGER_H */

Generated on Tue Feb 2 17:42:49 2010 for TAO_RTCORBA by  doxygen 1.4.7