/usr/include/tao/target_specification.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 | // -*- C++ -*-
//=============================================================================
/**
* @file target_specification.h
*
* $Id: target_specification.h 81429 2008-04-24 18:49:54Z johnnyw $
*
* A class that encapsulates the target identification details.
*
* @author Balachandran Natarajan <bala@cs.wustl.edu>
*/
//=============================================================================
#ifndef TAO_TARGET_SPECIFICATION_H
#define TAO_TARGET_SPECIFICATION_H
#include /**/ "ace/pre.h"
#include /**/ "tao/TAO_Export.h"
#if !defined (ACE_LACKS_PRAGMA_ONCE)
# pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
#include "tao/Basic_Types.h"
#if !defined (ACE_LACKS_PRAGMA_ONCE)
# pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
#if defined (HPUX) && defined (IOR)
/* HP-UX 11.11 defines IOR in /usr/include/pa/inline.h
and we don't want that definition. See IOP_IORC.h. */
# undef IOR
#endif /* HPUX && IOR */
TAO_BEGIN_VERSIONED_NAMESPACE_DECL
namespace IOP
{
struct IOR;
struct TaggedProfile;
}
namespace TAO
{
class ObjectKey;
}
/**
* @class TAO_Target_Specification
*
* @brief A class to encapsulate all the ways of specifying targets.
*
*/
class TAO_Export TAO_Target_Specification
{
public:
/// Ctor
TAO_Target_Specification (void);
enum TAO_Target_Address
{
// Note that this could be extended for other protocols
Key_Addr = 0,
Profile_Addr,
Reference_Addr
};
/// Set the target specification by giving the object key.
/// @note Please do not pass in a identifiers that is allocated on
/// stack. These methods does not make a copy but holds the pointer
/// passed in.
void target_specifier (const TAO::ObjectKey &key);
/// Set the target specification by passing in an IOP::TaggedProfile.
void target_specifier (IOP::TaggedProfile &profile);
/**
* Specify the target by passing in the IOP::IOR with a profile
* index. Please see the header file IOPC.h on why a profile index
* is required.
*/
void target_specifier (IOP::IOR &ior, CORBA::ULong prof_index);
/**
* Returns the object key after a check of the stored specifier. If
* the stored specifier is not of the right type then this would
* return a NULL
*/
const TAO::ObjectKey* object_key (void);
/**
* Returns the IOP::TaggedProfile after a check of the stored specifier. If
* the stored specifier is not of the right type then this would
* return a NULL
*/
const IOP::TaggedProfile *profile (void);
/**
* Returns a pointer to IOP::IOR through the parameters and the
* index of the selected profile as a return parameter after a check
* of the stored specifier. If the stored specifier is not of the
* right type then this would return a NULL.
*/
CORBA::ULong iop_ior (IOP::IOR *&ior);
/// Access the TArget_Address specifier
TAO_Target_Address specifier (void);
private:
/// The union of all the possibilities
union
{
TAO::ObjectKey *object_key_;
IOP::TaggedProfile *profile_;
IOP::IOR *ior_;
} u_;
/// The enum identifier
TAO_Target_Address specifier_;
/// The profile index
CORBA::ULong profile_index_;
};
TAO_END_VERSIONED_NAMESPACE_DECL
#if defined (__ACE_INLINE__)
#include "tao/target_specification.inl"
#endif /* defined INLINE */
#include /**/ "ace/post.h"
#endif /*TAO_TARGET_SPECIFICATION_H*/
|