/usr/include/tao/PI/ORBInitInfo.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 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 | // -*- C++ -*-
// ===================================================================
/**
* @file ORBInitInfo.h
*
* $Id: ORBInitInfo.h 83309 2008-10-17 13:57:39Z johnnyw $
*
* @author Ossama Othman <ossama@dre.vanderbilt.edu>
*/
// ===================================================================
#ifndef TAO_ORB_INIT_INFO_H
#define TAO_ORB_INIT_INFO_H
#include /**/ "ace/pre.h"
#include "tao/PI/pi_export.h"
#if !defined (ACE_LACKS_PRAGMA_ONCE)
# pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
#include "tao/PI/PI_includeC.h"
#include "tao/LocalObject.h"
// This is to remove "inherits via dominance" warnings from MSVC.
// MSVC is being a little too paranoid.
#if defined(_MSC_VER)
#pragma warning(push)
#pragma warning(disable:4250)
#endif /* _MSC_VER */
TAO_BEGIN_VERSIONED_NAMESPACE_DECL
class TAO_ORB_Core;
class TAO_ORBInitInfo;
typedef TAO_ORBInitInfo *TAO_ORBInitInfo_ptr;
typedef TAO_Objref_Var_T<TAO_ORBInitInfo>
TAO_ORBInitInfo_var;
typedef TAO_Objref_Out_T<TAO_ORBInitInfo>
TAO_ORBInitInfo_out;
/**
* @class TAO_ORBInitInfo
*
* @brief An implementation of the PortableInterceptor::ORBInitInfo_3_1
* interface.
*
* This class encapsulates the data passed to ORBInitializers during
* ORB initialization.
*/
class TAO_PI_Export TAO_ORBInitInfo
: public virtual PortableInterceptor::ORBInitInfo_3_1,
public virtual ::CORBA::LocalObject
{
public:
/// Constructor.
TAO_ORBInitInfo (TAO_ORB_Core *orb_core,
int argc,
char *argv[],
PortableInterceptor::SlotId slotid);
/**
* @name PortableInterceptor::ORBInitInfo Methods
*
* These methods are exported by the
* PortableInterceptor::ORBInitInfo interface.
*/
//@{
/// Return the argument vector for the ORB currently being
/// initialized as a string sequence.
virtual CORBA::StringSeq * arguments (void);
/// Return the ORBid for the ORB currently being initialized.
virtual char * orb_id (void);
/// Return the CodecFactory for the ORB currently being
/// initialized.
virtual IOP::CodecFactory_ptr codec_factory (void);
/// Register a mapping between a string and a corresponding object
/// reference with the ORB being initialized.
/**
* This method is particularly useful for registering references to
* local (locality constrained) objects. Note that this method
* should be called in ORBInitializer::pre_init() so that the
* registered reference will be available to the
* resolve_initial_references() that may be called in the
* ORBInitializer::post_init() call.
*/
virtual void register_initial_reference (const char * id, CORBA::Object_ptr obj);
/// Obtain a reference to an object that may not yet be available
/// via the usual CORBA::ORB::resolve_initial_references() mechanism
/// since the ORB may not be fully initialized yet.
virtual CORBA::Object_ptr resolve_initial_references (const char * id);
/// Register a client request interceptor with the ORB currently
/// being initialized.
virtual void add_client_request_interceptor (
PortableInterceptor::ClientRequestInterceptor_ptr interceptor);
/// Register a server request interceptor with the ORB currently
/// being initialized.
virtual void add_server_request_interceptor (
PortableInterceptor::ServerRequestInterceptor_ptr interceptor);
/// Register an IOR interceptor with the ORB currently being
/// initialized.
virtual void add_ior_interceptor (
PortableInterceptor::IORInterceptor_ptr interceptor);
/// Register a client request interceptor with the ORB currently
/// being initialized, along with a list of policies.
virtual void add_client_request_interceptor_with_policy (
PortableInterceptor::ClientRequestInterceptor_ptr interceptor,
const CORBA::PolicyList& policies);
/// Register a server request interceptor with the ORB currently
/// being initialized, along with a list of policies.
virtual void add_server_request_interceptor_with_policy (
PortableInterceptor::ServerRequestInterceptor_ptr interceptor,
const CORBA::PolicyList& policies);
/// Register an IOR interceptor with the ORB currently being
/// initialized, along with a list of policies.
virtual void add_ior_interceptor_with_policy (
PortableInterceptor::IORInterceptor_ptr interceptor,
const CORBA::PolicyList& policies);
/// Reserve a slot in table found within the
/// PortableInterceptor::Current object.
virtual PortableInterceptor::SlotId allocate_slot_id (void);
/// Register a policy factory of the given policy type with the ORB
/// currently being initialized.
virtual void register_policy_factory (
CORBA::PolicyType type,
PortableInterceptor::PolicyFactory_ptr policy_factory);
virtual CORBA::ORB_ptr _get_orb (void);
//@}
/**
* @name TAO Extensions
*
* These methods are not part of the PortableInterceptor
* specification, and are TAO-specific extensions.
*/
//@{
/// Allocate a slot in the ORB's TSS resources.
/**
* TAO uses a single TSS key for these resources, so it is useful to
* place TSS objects in TAO's TSS resources on platforms where the
* number of TSS keys is low. The returned SlotId can be used to
* index into the array stored in ORB's TSS resources structure.
* @par
* An accompanying cleanup function (e.g. a TSS destructor) can also
* be registered.
*/
size_t allocate_tss_slot_id (ACE_CLEANUP_FUNC cleanup);
/// Return a pointer to the ORB Core associated with the ORB being
/// initialized.
/**
* The ORB Core is essentialy fully initialized by the time
* ORBInitializer::post_init() is invoked. As such, it is generally
* best if this method is used in that method.
*
* @note Only use this method if you know what you are doing.
*/
TAO_ORB_Core *orb_core (void) const;
/// Invalidate this ORBInitInfo instance.
/**
* @note This method is only meant to be called by the
* CORBA::ORB_init() function.
*/
void invalidate (void);
/// Return the number of allocated slots in for the PICurrent
/// object.
PortableInterceptor::SlotId slot_count (void) const;
//@}
/**
* @name Reference Related Methods
*
* TAO_ORBInitInfo-specific methods and types.
*/
//@{
typedef TAO_ORBInitInfo_ptr _ptr_type;
typedef TAO_ORBInitInfo_var _var_type;
static TAO_ORBInitInfo_ptr _duplicate (TAO_ORBInitInfo_ptr obj);
static TAO_ORBInitInfo_ptr _narrow (CORBA::Object_ptr obj);
static TAO_ORBInitInfo_ptr _unchecked_narrow (CORBA::Object_ptr obj);
static TAO_ORBInitInfo_ptr _nil (void)
{
return (TAO_ORBInitInfo_ptr)0;
}
//@}
virtual const char* _interface_repository_id (void) const;
protected:
/// Destructor is protected to enforce proper memory management
/// through the reference counting mechanism.
~TAO_ORBInitInfo (void);
/// Check if this ORBInitInfo instance is valid. Once post_init()
/// has been called on each of the ORBInitializers, this ORBInitInfo
/// is no longer valid. Throw an exception in that case.
void check_validity (void);
private:
/// Prevent copying through the copy constructor and the assignment
/// operator.
TAO_ORBInitInfo (const TAO_ORBInitInfo &);
void operator= (const TAO_ORBInitInfo &);
private:
/// Reference to the ORB Core.
TAO_ORB_Core *orb_core_;
/// The number of arguments in the argument vector passed to
/// CORBA::ORB_init().
int argc_;
/// The argument vector passed to CORBA::ORB_init().
char **argv_;
/// Reference to the CodecFactory returned by
/// ORBInitInfo::codec_factory().
IOP::CodecFactory_var codec_factory_;
/// The number of allocated slots.
PortableInterceptor::SlotId slot_count_;
};
// Traits specializations.
namespace TAO
{
// Hand crafted. Not forward declared, but used by PortableServer.
template<>
struct TAO_PI_Export Objref_Traits<TAO_ORBInitInfo>
{
static TAO_ORBInitInfo_ptr duplicate (TAO_ORBInitInfo_ptr);
static void release (TAO_ORBInitInfo_ptr);
static TAO_ORBInitInfo_ptr nil (void);
static CORBA::Boolean marshal (TAO_ORBInitInfo_ptr p, TAO_OutputCDR & cdr);
};
}
TAO_END_VERSIONED_NAMESPACE_DECL
#if defined (__ACE_INLINE__)
#include "tao/PI/ORBInitInfo.inl"
#endif /* __ACE_INLINE__ */
#if defined(_MSC_VER)
#pragma warning(pop)
#endif /* _MSC_VER */
#include /**/ "ace/post.h"
#endif /* TAO_ORB_INIT_INFO_H */
|