/usr/include/tao/Thread_Lane_Resources.h is in libtao-dev 6.0.1-3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 | // -*- C++ -*-
//=============================================================================
/**
* @file Thread_Lane_Resources.h
*
* $Id: Thread_Lane_Resources.h 87953 2009-12-07 09:48:57Z mcorino $
*
* @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 "ace/Thread_Mutex.h"
#include /**/ "tao/TAO_Export.h"
#include "tao/params.h"
#include "tao/Transport_Cache_Manager.h"
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
class ACE_Allocator;
ACE_END_VERSIONED_NAMESPACE_DECL
TAO_BEGIN_VERSIONED_NAMESPACE_DECL
class TAO_ORB_Core;
class TAO_Acceptor_Registry;
class TAO_Leader_Follower;
class TAO_MProfile;
class TAO_New_Leader_Generator;
class TAO_Connector_Registry;
class TAO_Resource_Factory;
/**
* @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 @a mprofile belong to us?
int is_collocated (const TAO_MProfile &mprofile);
/// Open the acceptor registry.
int open_acceptor_registry (const TAO_EndpointSet &endpoint_set,
bool ignore_address);
/// Finalize resources.
void finalize (void);
/// Shutdown the reactor.
void shutdown_reactor (void);
/// Certain ORB policies such as dropping replies on shutdown
/// would need cleanup of transports to wake threads up.
void close_all_transports (void);
/// @name Accessors
//@{
TAO_Acceptor_Registry &acceptor_registry (void);
/*
* @note Returning a pointer helps to return 0 in case of
* exceptions.
*/
TAO_Connector_Registry *connector_registry (void);
/// Get the transport cache
TAO::Transport_Cache_Manager &transport_cache (void);
TAO_Leader_Follower &leader_follower (void);
/* Allocator is intended for allocating the ACE_Data_Blocks used in
* incoming CDR streams. This allocator has locks.
*/
ACE_Allocator *input_cdr_dblock_allocator (void);
/* Allocator is intended for allocating the buffers in the incoming
* CDR streams. This allocator has locks.
*/
ACE_Allocator *input_cdr_buffer_allocator (void);
/* Allocator is intended for allocating the ACE_Message_Blocks used
* in incoming CDR streams. This allocator is global, and has locks.
*/
ACE_Allocator *input_cdr_msgblock_allocator (void);
/* Allocator is intended for allocating the buffers used in the
* Transport object. This allocator has locks.
*/
ACE_Allocator *transport_message_buffer_allocator (void);
/* Allocator is intended for allocating the ACE_Data_Blocks used in
* outgoing CDR streams. This allocator has locks.
*/
ACE_Allocator *output_cdr_dblock_allocator (void);
/* Allocator is intended for allocating the buffers in the outgoing
* CDR streams. This allocator has locks.
*/
ACE_Allocator *output_cdr_buffer_allocator (void);
/* Allocator is intended for allocating the ACE_Message_Blocks used
* in the outgoing CDR streams. This allocator is global, and has
* locks.
*/
ACE_Allocator *output_cdr_msgblock_allocator (void);
/* Allocator is intended for allocating the AMH response handlers
* This allocator is global.
*/
ACE_Allocator *amh_response_handler_allocator (void);
/* Allocator is intended for allocating the AMI response handlers
* This allocator is global.
*/
ACE_Allocator *ami_response_handler_allocator (void);
//@}
private:
/// Checks if the acceptor registry has been created.
int has_acceptor_registry_been_created (void) const;
/// Helper to get the resource factory in the ORB_Core
TAO_Resource_Factory *resource_factory (void);
private:
/// 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_;
/// The connector registry which all active connectors must register
/// themselves with.
TAO_Connector_Registry *connector_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_;
/// @name The allocators for the input CDR streams.
//@{
ACE_Allocator *input_cdr_dblock_allocator_;
ACE_Allocator *input_cdr_buffer_allocator_;
ACE_Allocator *input_cdr_msgblock_allocator_;
//@}
/// @name The allocators for the buffering messages in the transport.
//@{
ACE_Allocator *transport_message_buffer_allocator_;
//@}
/// @name The allocators for the output CDR streams.
//@{
ACE_Allocator *output_cdr_dblock_allocator_;
ACE_Allocator *output_cdr_buffer_allocator_;
ACE_Allocator *output_cdr_msgblock_allocator_;
//@}
/// @name The allocators for AMH.
//@{
ACE_Allocator *amh_response_handler_allocator_;
//@}
/// @name The allocators for AMI.
//@{
ACE_Allocator *ami_response_handler_allocator_;
//@}
};
TAO_END_VERSIONED_NAMESPACE_DECL
#include /**/ "ace/post.h"
#endif /* TAO_THREAD_LANE_RESOURCES_H */
|