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
44 TAO_ORB_Core_TSS_Resources ();
47 ~TAO_ORB_Core_TSS_Resources ();
49 /// Cleans TSS resources.
54 /// The ORB Core TSS resources should not be copied
55 TAO_ORB_Core_TSS_Resources (const TAO_ORB_Core_TSS_Resources
&);
56 void operator= (const TAO_ORB_Core_TSS_Resources
&);
62 * The rest of the resources are not currently in use, just a plan
65 /// Counter for how (nested) calls this thread has made to run the
67 int event_loop_thread_
;
69 /// Counter for how many times this thread has become a client
71 int client_leader_thread_
;
73 /// Lane for this thread.
76 /// Generic container for thread-specific objects.
77 ACE_Array_Base
<void *> ts_objects_
;
79 // Set to true by the wait_on_lf_no_nested_upcall wait strategy
80 // @CJC@ maybe we should use allocate_tss_slot_id() instead?
81 bool upcalls_temporarily_suspended_on_this_thread_
;
83 /// Pointer to the ORB core. Needed to get access to the TSS
84 /// cleanup functions for the TSS objects stored in the TSS object
85 /// array in this class.
86 TAO_ORB_Core
*orb_core_
;
89 TAO_END_VERSIONED_NAMESPACE_DECL
91 #include /**/ "ace/post.h"
92 #endif /* TAO_ORB_CORE_H */