// **********************************************************************
//
// Generated by the ORBacus IDL-to-C++ Translator
//
// Copyright (c) 2003
// IONA Technologies, Inc.
// Waltham, MA, USA
//
// All Rights Reserved
//
// **********************************************************************

// Version: 4.1.3

#ifndef __OB_IOP_h__
#define __OB_IOP_h__

#ifndef OB_IMPORT
#   ifdef OB_DLL
#      define OB_IMPORT __declspec(dllimport)
#   else
#      define OB_IMPORT /**/
#   endif
#endif


#ifndef OB_INTEGER_VERSION
#   error No ORBacus version defined! Is <OB/CORBA.h> included?
#endif

#ifndef OB_NO_VERSION_CHECK
#   if (OB_INTEGER_VERSION != 4010300L)
#       error ORBacus version mismatch!
#   endif
#endif

namespace IOP
{

} // End of namespace IOP

namespace IOP
{

} // End of namespace IOP

namespace OBStubImpl_IOP
{

} // End of namespace OBStubImpl_IOP

namespace OBStubImpl_IOP
{

} // End of namespace OBStubImpl_IOP

//
// IDL:omg.org/IOP:1.0
//
namespace IOP
{

//
// IDL:omg.org/IOP/ProfileId:1.0
//
typedef ::CORBA::ULong ProfileId;
typedef ::CORBA::ULong_out ProfileId_out;

//
// IDL:omg.org/IOP/TAG_INTERNET_IOP:1.0
//
const ProfileId TAG_INTERNET_IOP = 0U;

//
// IDL:omg.org/IOP/TAG_MULTIPLE_COMPONENTS:1.0
//
const ProfileId TAG_MULTIPLE_COMPONENTS = 1U;

//
// IDL:omg.org/IOP/TaggedProfile:1.0
//
struct TaggedProfile;
typedef OB::VarVar< TaggedProfile > TaggedProfile_var;
typedef OB::VarOut< TaggedProfile > TaggedProfile_out;

struct TaggedProfile
{
#ifdef OB_CLEAR_MEM
    TaggedProfile();
#else
    TaggedProfile() { }
#endif
    TaggedProfile(const TaggedProfile&);
    TaggedProfile& operator=(const TaggedProfile&);

    typedef TaggedProfile_var _var_type;

    ProfileId tag;
    class OBUnique_profile_data { };
    typedef OB::FixSeq< ::CORBA::Octet, OBUnique_profile_data > _profile_data_seq;
    _profile_data_seq profile_data;

    void _OB_marshal(OB::OutputStreamImpl*) const;
    static void _OB_unmarshal(TaggedProfile&, OB::InputStreamImpl*);
};

//
// IDL:omg.org/IOP/IOR:1.0
//
struct IOR;
typedef OB::VarVar< IOR > IOR_var;
typedef OB::VarOut< IOR > IOR_out;

struct IOR
{
    IOR() { }
    IOR(const IOR&);
    IOR& operator=(const IOR&);

    typedef IOR_var _var_type;

    OB::StrForStruct type_id;
    class OBUnique_profiles { };
    typedef OB::VarSeq< TaggedProfile, OBUnique_profiles > _profiles_seq;
    _profiles_seq profiles;

    void _OB_marshal(OB::OutputStreamImpl*) const;
    static void _OB_unmarshal(IOR&, OB::InputStreamImpl*);
};

//
// IDL:omg.org/IOP/ComponentId:1.0
//
typedef ::CORBA::ULong ComponentId;
typedef ::CORBA::ULong_out ComponentId_out;

//
// IDL:omg.org/IOP/TaggedComponent:1.0
//
struct TaggedComponent;
typedef OB::VarVar< TaggedComponent > TaggedComponent_var;
typedef OB::VarOut< TaggedComponent > TaggedComponent_out;

struct TaggedComponent
{
#ifdef OB_CLEAR_MEM
    TaggedComponent();
#else
    TaggedComponent() { }
#endif
    TaggedComponent(const TaggedComponent&);
    TaggedComponent& operator=(const TaggedComponent&);

    typedef TaggedComponent_var _var_type;

    ComponentId tag;
    class OBUnique_component_data { };
    typedef OB::FixSeq< ::CORBA::Octet, OBUnique_component_data > _component_data_seq;
    _component_data_seq component_data;

    void _OB_marshal(OB::OutputStreamImpl*) const;
    static void _OB_unmarshal(TaggedComponent&, OB::InputStreamImpl*);
};

//
// IDL:omg.org/IOP/MultipleComponentProfile:1.0
//
class OBUnique_MultipleComponentProfile { };

typedef OB::VarSeq< TaggedComponent, OBUnique_MultipleComponentProfile > MultipleComponentProfile;
typedef OB::SeqVar< OB::VarSeq< TaggedComponent, OBUnique_MultipleComponentProfile > > MultipleComponentProfile_var;
typedef OB::SeqOut< OB::VarSeq< TaggedComponent, OBUnique_MultipleComponentProfile > > MultipleComponentProfile_out;

//
// IDL:omg.org/IOP/TaggedComponentSeq:1.0
//
class OBUnique_TaggedComponentSeq { };

typedef OB::VarSeq< TaggedComponent, OBUnique_TaggedComponentSeq > TaggedComponentSeq;
typedef OB::SeqVar< OB::VarSeq< TaggedComponent, OBUnique_TaggedComponentSeq > > TaggedComponentSeq_var;
typedef OB::SeqOut< OB::VarSeq< TaggedComponent, OBUnique_TaggedComponentSeq > > TaggedComponentSeq_out;

//
// IDL:omg.org/IOP/TAG_ORB_TYPE:1.0
//
const ComponentId TAG_ORB_TYPE = 0U;

//
// IDL:omg.org/IOP/TAG_CODE_SETS:1.0
//
const ComponentId TAG_CODE_SETS = 1U;

//
// IDL:omg.org/IOP/TAG_POLICIES:1.0
//
const ComponentId TAG_POLICIES = 2U;

//
// IDL:omg.org/IOP/TAG_ALTERNATE_IIOP_ADDRESS:1.0
//
const ComponentId TAG_ALTERNATE_IIOP_ADDRESS = 3U;

//
// IDL:omg.org/IOP/TAG_ASSOCIATION_OPTIONS:1.0
//
const ComponentId TAG_ASSOCIATION_OPTIONS = 13U;

//
// IDL:omg.org/IOP/TAG_SEC_NAME:1.0
//
const ComponentId TAG_SEC_NAME = 14U;

//
// IDL:omg.org/IOP/TAG_SPKM_1_SEC_MECH:1.0
//
const ComponentId TAG_SPKM_1_SEC_MECH = 15U;

//
// IDL:omg.org/IOP/TAG_SPKM_2_SEC_MECH:1.0
//
const ComponentId TAG_SPKM_2_SEC_MECH = 16U;

//
// IDL:omg.org/IOP/TAG_KerberosV5_SEC_MECH:1.0
//
const ComponentId TAG_KerberosV5_SEC_MECH = 17U;

//
// IDL:omg.org/IOP/TAG_CSI_ECMA_Secret_SEC_MECH:1.0
//
const ComponentId TAG_CSI_ECMA_Secret_SEC_MECH = 18U;

//
// IDL:omg.org/IOP/TAG_CSI_ECMA_Hybrid_SEC_MECH:1.0
//
const ComponentId TAG_CSI_ECMA_Hybrid_SEC_MECH = 19U;

//
// IDL:omg.org/IOP/TAG_SSL_SEC_TRANS:1.0
//
const ComponentId TAG_SSL_SEC_TRANS = 20U;

//
// IDL:omg.org/IOP/TAG_CSI_ECMA_Public_SEC_MECH:1.0
//
const ComponentId TAG_CSI_ECMA_Public_SEC_MECH = 21U;

//
// IDL:omg.org/IOP/TAG_GENERIC_SEC_MECH:1.0
//
const ComponentId TAG_GENERIC_SEC_MECH = 22U;

//
// IDL:omg.org/IOP/TAG_JAVA_CODEBASE:1.0
//
const ComponentId TAG_JAVA_CODEBASE = 25U;

//
// IDL:omg.org/IOP/TAG_COMPLETE_OBJECT_KEY:1.0
//
const ComponentId TAG_COMPLETE_OBJECT_KEY = 5U;

//
// IDL:omg.org/IOP/TAG_ENDPOINT_ID_POSITION:1.0
//
const ComponentId TAG_ENDPOINT_ID_POSITION = 6U;

//
// IDL:omg.org/IOP/TAG_LOCATION_POLICY:1.0
//
const ComponentId TAG_LOCATION_POLICY = 12U;

//
// IDL:omg.org/IOP/TAG_DCE_STRING_BINDING:1.0
//
const ComponentId TAG_DCE_STRING_BINDING = 100U;

//
// IDL:omg.org/IOP/TAG_DCE_BINDING_NAME:1.0
//
const ComponentId TAG_DCE_BINDING_NAME = 101U;

//
// IDL:omg.org/IOP/TAG_DCE_NO_PIPES:1.0
//
const ComponentId TAG_DCE_NO_PIPES = 102U;

//
// IDL:omg.org/IOP/TAG_DCE_SEC_MECH:1.0
//
const ComponentId TAG_DCE_SEC_MECH = 103U;

//
// IDL:omg.org/IOP/ServiceId:1.0
//
typedef ::CORBA::ULong ServiceId;
typedef ::CORBA::ULong_out ServiceId_out;

//
// IDL:omg.org/IOP/ServiceContext:1.0
//
struct ServiceContext;
typedef OB::VarVar< ServiceContext > ServiceContext_var;
typedef OB::VarOut< ServiceContext > ServiceContext_out;

struct ServiceContext
{
#ifdef OB_CLEAR_MEM
    ServiceContext();
#else
    ServiceContext() { }
#endif
    ServiceContext(const ServiceContext&);
    ServiceContext& operator=(const ServiceContext&);

    typedef ServiceContext_var _var_type;

    ServiceId context_id;
    class OBUnique_context_data { };
    typedef OB::FixSeq< ::CORBA::Octet, OBUnique_context_data > _context_data_seq;
    _context_data_seq context_data;

    void _OB_marshal(OB::OutputStreamImpl*) const;
    static void _OB_unmarshal(ServiceContext&, OB::InputStreamImpl*);
};

//
// IDL:omg.org/IOP/ServiceContextList:1.0
//
class OBUnique_ServiceContextList { };

typedef OB::VarSeq< ServiceContext, OBUnique_ServiceContextList > ServiceContextList;
typedef OB::SeqVar< OB::VarSeq< ServiceContext, OBUnique_ServiceContextList > > ServiceContextList_var;
typedef OB::SeqOut< OB::VarSeq< ServiceContext, OBUnique_ServiceContextList > > ServiceContextList_out;

//
// IDL:omg.org/IOP/TransactionService:1.0
//
const ServiceId TransactionService = 0U;

//
// IDL:omg.org/IOP/CodeSets:1.0
//
const ServiceId CodeSets = 1U;

//
// IDL:omg.org/IOP/ChainBypassCheck:1.0
//
const ServiceId ChainBypassCheck = 2U;

//
// IDL:omg.org/IOP/ChainBypassInfo:1.0
//
const ServiceId ChainBypassInfo = 3U;

//
// IDL:omg.org/IOP/LogicalThreadId:1.0
//
const ServiceId LogicalThreadId = 4U;

//
// IDL:omg.org/IOP/BI_DIR_IIOP:1.0
//
const ServiceId BI_DIR_IIOP = 5U;

//
// IDL:omg.org/IOP/SendingContextRunTime:1.0
//
const ServiceId SendingContextRunTime = 6U;

//
// IDL:omg.org/IOP/INVOCATION_POLICIES:1.0
//
const ServiceId INVOCATION_POLICIES = 7U;

//
// IDL:omg.org/IOP/FORWARDED_IDENTITY:1.0
//
const ServiceId FORWARDED_IDENTITY = 8U;

//
// IDL:omg.org/IOP/UnknownExceptionInfo:1.0
//
const ServiceId UnknownExceptionInfo = 9U;

} // End of namespace IOP

//
// IDL:omg.org/IOP:1.0
//
namespace OBProxy_IOP
{

} // End of namespace OBProxy_IOP

//
// IDL:omg.org/IOP:1.0
//
namespace OBStubImpl_IOP
{

} // End of namespace OBStubImpl_IOP

//
// IDL:omg.org/IOP:1.0
//
namespace OBMarshalStubImpl_IOP
{

} // End of namespace OBMarshalStubImpl_IOP

//
// IDL:omg.org/IOP:1.0
//
namespace OBV_IOP
{

} // End of namespace OBV_IOP

#endif
