3 // ===================================================================
5 * @file ORB_Core_TSS_Resources.h
7 * @author DOC Center - Washington University at St. Louis
8 * @author DOC Laboratory - University of California at Irvine
10 // ===================================================================
12 #ifndef TAO_ORB_CORE_TSS_RESOURCES_H
13 #define TAO_ORB_CORE_TSS_RESOURCES_H
15 #include /**/ "ace/pre.h"
17 #include /**/ "tao/TAO_Export.h"
19 #if !defined (ACE_LACKS_PRAGMA_ONCE)
21 #endif /* ACE_LACKS_PRAGMA_ONCE */
23 #include "tao/orbconf.h"
24 #include "ace/Array_Base.h"
26 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
31 * @class TAO_ORB_Core_TSS_Resources
33 * @brief The TSS resoures of an ORB core.
35 * This class is used by the ORB_Core to store the resources
36 * potentially bound to a thread in TSS storage. The members are public
37 * because only the ORB Core is expected to access them.
39 class TAO_Export TAO_ORB_Core_TSS_Resources
43 TAO_ORB_Core_TSS_Resources ();
46 ~TAO_ORB_Core_TSS_Resources ();
48 /// Cleans TSS resources.
52 /// The ORB Core TSS resources should not be copied
53 TAO_ORB_Core_TSS_Resources (const TAO_ORB_Core_TSS_Resources
&);
54 void operator= (const TAO_ORB_Core_TSS_Resources
&);
59 * The rest of the resources are not currently in use, just a plan
62 /// Counter for how (nested) calls this thread has made to run the
64 int event_loop_thread_
;
66 /// Counter for how many times this thread has become a client
68 int client_leader_thread_
;
70 /// Lane for this thread.
73 /// Generic container for thread-specific objects.
74 ACE_Array_Base
<void *> ts_objects_
;
76 // Set to true by the wait_on_lf_no_nested_upcall wait strategy
77 // @CJC@ maybe we should use allocate_tss_slot_id() instead?
78 bool upcalls_temporarily_suspended_on_this_thread_
;
80 /// Pointer to the ORB core. Needed to get access to the TSS
81 /// cleanup functions for the TSS objects stored in the TSS object
82 /// array in this class.
83 TAO_ORB_Core
*orb_core_
;
86 TAO_END_VERSIONED_NAMESPACE_DECL
88 #include /**/ "ace/post.h"
89 #endif /* TAO_ORB_CORE_H */