// **********************************************************************
//
// Generated by the ORBacus IDL-to-C++ Translator
//
// Copyright (c) 1999
// Object Oriented Concepts, Inc.
// Billerica, MA, USA
//
// All Rights Reserved
//
// **********************************************************************

// Version: 3.2
// License: non-commercial

#ifndef __Types_h__
#define __Types_h__

#include <OB/IntRep.h>

#ifndef OB_INTEGER_VERSION
#   error No ORBacus version defined!
#endif

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

//
// IDL:omg.org/CORBA:1.0
//

//
// IDL:omg.org/CORBA/IRObject:1.0
//
class CORBA_IRObject;
typedef CORBA_IRObject* CORBA_IRObject_ptr;
typedef CORBA_IRObject* CORBA_IRObjectRef;
void OBDuplicate(CORBA_IRObject_ptr);
void OBRelease(CORBA_IRObject_ptr);
typedef OBObjVar< CORBA_IRObject > CORBA_IRObject_var;

//
// IDL:omg.org/CORBA/IDLType:1.0
//
class CORBA_IDLType;
typedef CORBA_IDLType* CORBA_IDLType_ptr;
typedef CORBA_IDLType* CORBA_IDLTypeRef;
void OBDuplicate(CORBA_IDLType_ptr);
void OBRelease(CORBA_IDLType_ptr);
typedef OBObjVar< CORBA_IDLType > CORBA_IDLType_var;

//
// IDL:omg.org/CORBA/Contained:1.0
//
class CORBA_Contained;
typedef CORBA_Contained* CORBA_Contained_ptr;
typedef CORBA_Contained* CORBA_ContainedRef;
void OBDuplicate(CORBA_Contained_ptr);
void OBRelease(CORBA_Contained_ptr);
typedef OBObjVar< CORBA_Contained > CORBA_Contained_var;

//
// IDL:omg.org/CORBA/Container:1.0
//
class CORBA_Container;
typedef CORBA_Container* CORBA_Container_ptr;
typedef CORBA_Container* CORBA_ContainerRef;
void OBDuplicate(CORBA_Container_ptr);
void OBRelease(CORBA_Container_ptr);
typedef OBObjVar< CORBA_Container > CORBA_Container_var;

//
// IDL:omg.org/CORBA/Repository:1.0
//
class CORBA_Repository;
typedef CORBA_Repository* CORBA_Repository_ptr;
typedef CORBA_Repository* CORBA_RepositoryRef;
void OBDuplicate(CORBA_Repository_ptr);
void OBRelease(CORBA_Repository_ptr);
typedef OBObjVar< CORBA_Repository > CORBA_Repository_var;

//
// IDL:omg.org/CORBA/ModuleDef:1.0
//
class CORBA_ModuleDef;
typedef CORBA_ModuleDef* CORBA_ModuleDef_ptr;
typedef CORBA_ModuleDef* CORBA_ModuleDefRef;
void OBDuplicate(CORBA_ModuleDef_ptr);
void OBRelease(CORBA_ModuleDef_ptr);
typedef OBObjVar< CORBA_ModuleDef > CORBA_ModuleDef_var;

//
// IDL:omg.org/CORBA/ConstantDef:1.0
//
class CORBA_ConstantDef;
typedef CORBA_ConstantDef* CORBA_ConstantDef_ptr;
typedef CORBA_ConstantDef* CORBA_ConstantDefRef;
void OBDuplicate(CORBA_ConstantDef_ptr);
void OBRelease(CORBA_ConstantDef_ptr);
typedef OBObjVar< CORBA_ConstantDef > CORBA_ConstantDef_var;

//
// IDL:omg.org/CORBA/TypedefDef:1.0
//
class CORBA_TypedefDef;
typedef CORBA_TypedefDef* CORBA_TypedefDef_ptr;
typedef CORBA_TypedefDef* CORBA_TypedefDefRef;
void OBDuplicate(CORBA_TypedefDef_ptr);
void OBRelease(CORBA_TypedefDef_ptr);
typedef OBObjVar< CORBA_TypedefDef > CORBA_TypedefDef_var;

//
// IDL:omg.org/CORBA/StructDef:1.0
//
class CORBA_StructDef;
typedef CORBA_StructDef* CORBA_StructDef_ptr;
typedef CORBA_StructDef* CORBA_StructDefRef;
void OBDuplicate(CORBA_StructDef_ptr);
void OBRelease(CORBA_StructDef_ptr);
typedef OBObjVar< CORBA_StructDef > CORBA_StructDef_var;

//
// IDL:omg.org/CORBA/UnionDef:1.0
//
class CORBA_UnionDef;
typedef CORBA_UnionDef* CORBA_UnionDef_ptr;
typedef CORBA_UnionDef* CORBA_UnionDefRef;
void OBDuplicate(CORBA_UnionDef_ptr);
void OBRelease(CORBA_UnionDef_ptr);
typedef OBObjVar< CORBA_UnionDef > CORBA_UnionDef_var;

//
// IDL:omg.org/CORBA/EnumDef:1.0
//
class CORBA_EnumDef;
typedef CORBA_EnumDef* CORBA_EnumDef_ptr;
typedef CORBA_EnumDef* CORBA_EnumDefRef;
void OBDuplicate(CORBA_EnumDef_ptr);
void OBRelease(CORBA_EnumDef_ptr);
typedef OBObjVar< CORBA_EnumDef > CORBA_EnumDef_var;

//
// IDL:omg.org/CORBA/AliasDef:1.0
//
class CORBA_AliasDef;
typedef CORBA_AliasDef* CORBA_AliasDef_ptr;
typedef CORBA_AliasDef* CORBA_AliasDefRef;
void OBDuplicate(CORBA_AliasDef_ptr);
void OBRelease(CORBA_AliasDef_ptr);
typedef OBObjVar< CORBA_AliasDef > CORBA_AliasDef_var;

//
// IDL:omg.org/CORBA/PrimitiveDef:1.0
//
class CORBA_PrimitiveDef;
typedef CORBA_PrimitiveDef* CORBA_PrimitiveDef_ptr;
typedef CORBA_PrimitiveDef* CORBA_PrimitiveDefRef;
void OBDuplicate(CORBA_PrimitiveDef_ptr);
void OBRelease(CORBA_PrimitiveDef_ptr);
typedef OBObjVar< CORBA_PrimitiveDef > CORBA_PrimitiveDef_var;

//
// IDL:omg.org/CORBA/StringDef:1.0
//
class CORBA_StringDef;
typedef CORBA_StringDef* CORBA_StringDef_ptr;
typedef CORBA_StringDef* CORBA_StringDefRef;
void OBDuplicate(CORBA_StringDef_ptr);
void OBRelease(CORBA_StringDef_ptr);
typedef OBObjVar< CORBA_StringDef > CORBA_StringDef_var;

//
// IDL:omg.org/CORBA/SequenceDef:1.0
//
class CORBA_SequenceDef;
typedef CORBA_SequenceDef* CORBA_SequenceDef_ptr;
typedef CORBA_SequenceDef* CORBA_SequenceDefRef;
void OBDuplicate(CORBA_SequenceDef_ptr);
void OBRelease(CORBA_SequenceDef_ptr);
typedef OBObjVar< CORBA_SequenceDef > CORBA_SequenceDef_var;

//
// IDL:omg.org/CORBA/ArrayDef:1.0
//
class CORBA_ArrayDef;
typedef CORBA_ArrayDef* CORBA_ArrayDef_ptr;
typedef CORBA_ArrayDef* CORBA_ArrayDefRef;
void OBDuplicate(CORBA_ArrayDef_ptr);
void OBRelease(CORBA_ArrayDef_ptr);
typedef OBObjVar< CORBA_ArrayDef > CORBA_ArrayDef_var;

//
// IDL:omg.org/CORBA/ExceptionDef:1.0
//
class CORBA_ExceptionDef;
typedef CORBA_ExceptionDef* CORBA_ExceptionDef_ptr;
typedef CORBA_ExceptionDef* CORBA_ExceptionDefRef;
void OBDuplicate(CORBA_ExceptionDef_ptr);
void OBRelease(CORBA_ExceptionDef_ptr);
typedef OBObjVar< CORBA_ExceptionDef > CORBA_ExceptionDef_var;

//
// IDL:omg.org/CORBA/AttributeDef:1.0
//
class CORBA_AttributeDef;
typedef CORBA_AttributeDef* CORBA_AttributeDef_ptr;
typedef CORBA_AttributeDef* CORBA_AttributeDefRef;
void OBDuplicate(CORBA_AttributeDef_ptr);
void OBRelease(CORBA_AttributeDef_ptr);
typedef OBObjVar< CORBA_AttributeDef > CORBA_AttributeDef_var;

//
// IDL:omg.org/CORBA/OperationDef:1.0
//
class CORBA_OperationDef;
typedef CORBA_OperationDef* CORBA_OperationDef_ptr;
typedef CORBA_OperationDef* CORBA_OperationDefRef;
void OBDuplicate(CORBA_OperationDef_ptr);
void OBRelease(CORBA_OperationDef_ptr);
typedef OBObjVar< CORBA_OperationDef > CORBA_OperationDef_var;

//
// IDL:omg.org/CORBA/InterfaceDef:1.0
//
class CORBA_InterfaceDef;
typedef CORBA_InterfaceDef* CORBA_InterfaceDef_ptr;
typedef CORBA_InterfaceDef* CORBA_InterfaceDefRef;
void OBDuplicate(CORBA_InterfaceDef_ptr);
void OBRelease(CORBA_InterfaceDef_ptr);
typedef OBObjVar< CORBA_InterfaceDef > CORBA_InterfaceDef_var;

//
// IDL:ooc.com/IdlStringSeq:1.0
//
typedef OBStrSeq IdlStringSeq;
typedef OBSeqVar< OBStrSeq > IdlStringSeq_var;

//
// IDL:ooc.com/IdlStringSeqSeq:1.0
//
typedef OBVarSeq< IdlStringSeq > IdlStringSeqSeq;
typedef OBSeqVar< OBVarSeq< IdlStringSeq > > IdlStringSeqSeq_var;

//
// IDL:ooc.com/IdlAnySeq:1.0
//
typedef OBVarSeq< CORBA_Any > IdlAnySeq;
typedef OBSeqVar< OBVarSeq< CORBA_Any > > IdlAnySeq_var;

//
// IDL:ooc.com/IdlDeclarator:1.0
//
struct IdlDeclarator
{
    IdlDeclarator() { }
    IdlDeclarator(const IdlDeclarator&);
    ~IdlDeclarator() { }
    IdlDeclarator& operator=(const IdlDeclarator&);

    CORBA_String_var identifier;
    OBFixSeq< CORBA_ULong > sizes;
};

typedef OBVarVar< IdlDeclarator > IdlDeclarator_var;

//
// IDL:ooc.com/IdlDeclaratorSeq:1.0
//
typedef OBVarSeq< IdlDeclarator > IdlDeclaratorSeq;
typedef OBSeqVar< OBVarSeq< IdlDeclarator > > IdlDeclaratorSeq_var;

//
// IDL:ooc.com/IdlComment:1.0
//
struct IdlComment
{
    IdlComment() { }
    IdlComment(const IdlComment&);
    ~IdlComment() { }
    IdlComment& operator=(const IdlComment&);

    CORBA_String_var id;
    CORBA_String_var comment;
};

typedef OBVarVar< IdlComment > IdlComment_var;

//
// IDL:ooc.com/IdlCommentSeq:1.0
//
typedef OBVarSeq< IdlComment > IdlCommentSeq;
typedef OBSeqVar< OBVarSeq< IdlComment > > IdlCommentSeq_var;

//
// IDL:ooc.com/IdlUnionMemberInfo:1.0
//
struct IdlUnionMemberInfo
{
#ifdef OB_CLEAR_MEM
    IdlUnionMemberInfo();
#else
    IdlUnionMemberInfo() { }
#endif
    IdlUnionMemberInfo(const IdlUnionMemberInfo&);
    ~IdlUnionMemberInfo() { }
    IdlUnionMemberInfo& operator=(const IdlUnionMemberInfo&);

    CORBA_String_var name;
    CORBA_TypeCode_var type;
    OBFixSeq< CORBA_ULong > pLabels;
    OBFixSeq< CORBA_ULong > nLabels;
    CORBA_Boolean isDefault;
};

typedef OBVarVar< IdlUnionMemberInfo > IdlUnionMemberInfo_var;

//
// IDL:ooc.com/IdlUnionMemberInfoSeq:1.0
//
typedef OBVarSeq< IdlUnionMemberInfo > IdlUnionMemberInfoSeq;
typedef OBSeqVar< OBVarSeq< IdlUnionMemberInfo > > IdlUnionMemberInfoSeq_var;

//
// IDL:ooc.com/IdlPrefixPackage:1.0
//
struct IdlPrefixPackage
{
    IdlPrefixPackage() { }
    IdlPrefixPackage(const IdlPrefixPackage&);
    ~IdlPrefixPackage() { }
    IdlPrefixPackage& operator=(const IdlPrefixPackage&);

    CORBA_String_var prefix;
    CORBA_String_var package;
};

typedef OBVarVar< IdlPrefixPackage > IdlPrefixPackage_var;

//
// IDL:ooc.com/IdlPrefixPackageSeq:1.0
//
typedef OBVarSeq< IdlPrefixPackage > IdlPrefixPackageSeq;
typedef OBSeqVar< OBVarSeq< IdlPrefixPackage > > IdlPrefixPackageSeq_var;

//
// IDL:ooc.com/IdlContainerSeq:1.0
//
typedef OBObjSeq< CORBA_Container > IdlContainerSeq;
typedef OBSeqVar< OBObjSeq< CORBA_Container > > IdlContainerSeq_var;

//
// IDL:ooc.com/IdlStringDefSeq:1.0
//
typedef OBObjSeq< CORBA_StringDef > IdlStringDefSeq;
typedef OBSeqVar< OBObjSeq< CORBA_StringDef > > IdlStringDefSeq_var;

//
// IDL:ooc.com/IdlSequenceDefSeq:1.0
//
typedef OBObjSeq< CORBA_SequenceDef > IdlSequenceDefSeq;
typedef OBSeqVar< OBObjSeq< CORBA_SequenceDef > > IdlSequenceDefSeq_var;

//
// IDL:ooc.com/IdlArrayDefSeq:1.0
//
typedef OBObjSeq< CORBA_ArrayDef > IdlArrayDefSeq;
typedef OBSeqVar< OBObjSeq< CORBA_ArrayDef > > IdlArrayDefSeq_var;

//
// IDL:ooc.com/IdlDeclarator:1.0
//
void OBMarshal(const IdlDeclarator&, CORBA_Octet*&);
void OBMarshalCount(const IdlDeclarator&, CORBA_ULong&);
void OBUnmarshal(IdlDeclarator&, const CORBA_Octet*&, bool);

//
// IDL:ooc.com/IdlComment:1.0
//
void OBMarshal(const IdlComment&, CORBA_Octet*&);
void OBMarshalCount(const IdlComment&, CORBA_ULong&);
void OBUnmarshal(IdlComment&, const CORBA_Octet*&, bool);

//
// IDL:ooc.com/IdlUnionMemberInfo:1.0
//
void OBMarshal(const IdlUnionMemberInfo&, CORBA_Octet*&);
void OBMarshalCount(const IdlUnionMemberInfo&, CORBA_ULong&);
void OBUnmarshal(IdlUnionMemberInfo&, const CORBA_Octet*&, bool);

//
// IDL:ooc.com/IdlPrefixPackage:1.0
//
void OBMarshal(const IdlPrefixPackage&, CORBA_Octet*&);
void OBMarshalCount(const IdlPrefixPackage&, CORBA_ULong&);
void OBUnmarshal(IdlPrefixPackage&, const CORBA_Octet*&, bool);

//
// OBVarSeq< OBStrSeq >
//
#ifndef OB_use_OBVarSeq_OBStrSeq
#define OB_use_OBVarSeq_OBStrSeq
#define OB_use_OBVarSeq_OBStrSeq_from_Types_h

void OBMarshal(const OBVarSeq< OBStrSeq >&, CORBA_Octet*&);
void OBMarshalCount(const OBVarSeq< OBStrSeq >&, CORBA_ULong&);
void OBUnmarshal(OBVarSeq< OBStrSeq >&, const CORBA_Octet*&, bool);

#endif

//
// OBVarSeq< IdlDeclarator >
//
#ifndef OB_use_OBVarSeq_IdlDeclarator
#define OB_use_OBVarSeq_IdlDeclarator
#define OB_use_OBVarSeq_IdlDeclarator_from_Types_h

void OBMarshal(const OBVarSeq< IdlDeclarator >&, CORBA_Octet*&);
void OBMarshalCount(const OBVarSeq< IdlDeclarator >&, CORBA_ULong&);
void OBUnmarshal(OBVarSeq< IdlDeclarator >&, const CORBA_Octet*&, bool);

#endif

//
// OBVarSeq< IdlComment >
//
#ifndef OB_use_OBVarSeq_IdlComment
#define OB_use_OBVarSeq_IdlComment
#define OB_use_OBVarSeq_IdlComment_from_Types_h

void OBMarshal(const OBVarSeq< IdlComment >&, CORBA_Octet*&);
void OBMarshalCount(const OBVarSeq< IdlComment >&, CORBA_ULong&);
void OBUnmarshal(OBVarSeq< IdlComment >&, const CORBA_Octet*&, bool);

#endif

//
// OBVarSeq< IdlUnionMemberInfo >
//
#ifndef OB_use_OBVarSeq_IdlUnionMemberInfo
#define OB_use_OBVarSeq_IdlUnionMemberInfo
#define OB_use_OBVarSeq_IdlUnionMemberInfo_from_Types_h

void OBMarshal(const OBVarSeq< IdlUnionMemberInfo >&, CORBA_Octet*&);
void OBMarshalCount(const OBVarSeq< IdlUnionMemberInfo >&, CORBA_ULong&);
void OBUnmarshal(OBVarSeq< IdlUnionMemberInfo >&, const CORBA_Octet*&, bool);

#endif

//
// OBVarSeq< IdlPrefixPackage >
//
#ifndef OB_use_OBVarSeq_IdlPrefixPackage
#define OB_use_OBVarSeq_IdlPrefixPackage
#define OB_use_OBVarSeq_IdlPrefixPackage_from_Types_h

void OBMarshal(const OBVarSeq< IdlPrefixPackage >&, CORBA_Octet*&);
void OBMarshalCount(const OBVarSeq< IdlPrefixPackage >&, CORBA_ULong&);
void OBUnmarshal(OBVarSeq< IdlPrefixPackage >&, const CORBA_Octet*&, bool);

#endif

//
// OBObjSeq< CORBA_Container >
//
#ifndef OB_use_OBObjSeq_CORBA__Container
#define OB_use_OBObjSeq_CORBA__Container
#define OB_use_OBObjSeq_CORBA__Container_from_Types_h

void OBMarshal(const OBObjSeq< CORBA_Container >&, CORBA_Octet*&);
void OBMarshalCount(const OBObjSeq< CORBA_Container >&, CORBA_ULong&);
void OBUnmarshal(OBObjSeq< CORBA_Container >&, const CORBA_Octet*&, bool);

#endif

//
// OBObjSeq< CORBA_StringDef >
//
#ifndef OB_use_OBObjSeq_CORBA__StringDef
#define OB_use_OBObjSeq_CORBA__StringDef
#define OB_use_OBObjSeq_CORBA__StringDef_from_Types_h

void OBMarshal(const OBObjSeq< CORBA_StringDef >&, CORBA_Octet*&);
void OBMarshalCount(const OBObjSeq< CORBA_StringDef >&, CORBA_ULong&);
void OBUnmarshal(OBObjSeq< CORBA_StringDef >&, const CORBA_Octet*&, bool);

#endif

//
// OBObjSeq< CORBA_SequenceDef >
//
#ifndef OB_use_OBObjSeq_CORBA__SequenceDef
#define OB_use_OBObjSeq_CORBA__SequenceDef
#define OB_use_OBObjSeq_CORBA__SequenceDef_from_Types_h

void OBMarshal(const OBObjSeq< CORBA_SequenceDef >&, CORBA_Octet*&);
void OBMarshalCount(const OBObjSeq< CORBA_SequenceDef >&, CORBA_ULong&);
void OBUnmarshal(OBObjSeq< CORBA_SequenceDef >&, const CORBA_Octet*&, bool);

#endif

//
// OBObjSeq< CORBA_ArrayDef >
//
#ifndef OB_use_OBObjSeq_CORBA__ArrayDef
#define OB_use_OBObjSeq_CORBA__ArrayDef
#define OB_use_OBObjSeq_CORBA__ArrayDef_from_Types_h

void OBMarshal(const OBObjSeq< CORBA_ArrayDef >&, CORBA_Octet*&);
void OBMarshalCount(const OBObjSeq< CORBA_ArrayDef >&, CORBA_ULong&);
void OBUnmarshal(OBObjSeq< CORBA_ArrayDef >&, const CORBA_Octet*&, bool);

#endif

#endif
