// **********************************************************************
//
// 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_DynamicAny_fwd_h__
#define __OB_DynamicAny_fwd_h__

#include <OB/Template.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 DynamicAny
{

class DynAny;
typedef DynAny* DynAny_ptr;
typedef DynAny* DynAnyRef;

class DynFixed;
typedef DynFixed* DynFixed_ptr;
typedef DynFixed* DynFixedRef;

class DynEnum;
typedef DynEnum* DynEnum_ptr;
typedef DynEnum* DynEnumRef;

class DynStruct;
typedef DynStruct* DynStruct_ptr;
typedef DynStruct* DynStructRef;

class DynUnion;
typedef DynUnion* DynUnion_ptr;
typedef DynUnion* DynUnionRef;

class DynSequence;
typedef DynSequence* DynSequence_ptr;
typedef DynSequence* DynSequenceRef;

class DynArray;
typedef DynArray* DynArray_ptr;
typedef DynArray* DynArrayRef;

class DynValueCommon;
typedef DynValueCommon* DynValueCommon_ptr;
typedef DynValueCommon* DynValueCommonRef;

class DynValue;
typedef DynValue* DynValue_ptr;
typedef DynValue* DynValueRef;

class DynValueBox;
typedef DynValueBox* DynValueBox_ptr;
typedef DynValueBox* DynValueBoxRef;

class DynAnyFactory;
typedef DynAnyFactory* DynAnyFactory_ptr;
typedef DynAnyFactory* DynAnyFactoryRef;

} // End of namespace DynamicAny

void OBDuplicate(DynamicAny::DynAny_ptr);
void OBRelease(DynamicAny::DynAny_ptr);

void OBMarshal(DynamicAny::DynAny_ptr, OB::OutputStreamImpl*);
void OBUnmarshal(DynamicAny::DynAny_ptr&, OB::InputStreamImpl*);

void OBDuplicate(DynamicAny::DynFixed_ptr);
void OBRelease(DynamicAny::DynFixed_ptr);

void OBMarshal(DynamicAny::DynFixed_ptr, OB::OutputStreamImpl*);
void OBUnmarshal(DynamicAny::DynFixed_ptr&, OB::InputStreamImpl*);

void OBDuplicate(DynamicAny::DynEnum_ptr);
void OBRelease(DynamicAny::DynEnum_ptr);

void OBMarshal(DynamicAny::DynEnum_ptr, OB::OutputStreamImpl*);
void OBUnmarshal(DynamicAny::DynEnum_ptr&, OB::InputStreamImpl*);

void OBDuplicate(DynamicAny::DynStruct_ptr);
void OBRelease(DynamicAny::DynStruct_ptr);

void OBMarshal(DynamicAny::DynStruct_ptr, OB::OutputStreamImpl*);
void OBUnmarshal(DynamicAny::DynStruct_ptr&, OB::InputStreamImpl*);

void OBDuplicate(DynamicAny::DynUnion_ptr);
void OBRelease(DynamicAny::DynUnion_ptr);

void OBMarshal(DynamicAny::DynUnion_ptr, OB::OutputStreamImpl*);
void OBUnmarshal(DynamicAny::DynUnion_ptr&, OB::InputStreamImpl*);

void OBDuplicate(DynamicAny::DynSequence_ptr);
void OBRelease(DynamicAny::DynSequence_ptr);

void OBMarshal(DynamicAny::DynSequence_ptr, OB::OutputStreamImpl*);
void OBUnmarshal(DynamicAny::DynSequence_ptr&, OB::InputStreamImpl*);

void OBDuplicate(DynamicAny::DynArray_ptr);
void OBRelease(DynamicAny::DynArray_ptr);

void OBMarshal(DynamicAny::DynArray_ptr, OB::OutputStreamImpl*);
void OBUnmarshal(DynamicAny::DynArray_ptr&, OB::InputStreamImpl*);

void OBDuplicate(DynamicAny::DynValueCommon_ptr);
void OBRelease(DynamicAny::DynValueCommon_ptr);

void OBMarshal(DynamicAny::DynValueCommon_ptr, OB::OutputStreamImpl*);
void OBUnmarshal(DynamicAny::DynValueCommon_ptr&, OB::InputStreamImpl*);

void OBDuplicate(DynamicAny::DynValue_ptr);
void OBRelease(DynamicAny::DynValue_ptr);

void OBMarshal(DynamicAny::DynValue_ptr, OB::OutputStreamImpl*);
void OBUnmarshal(DynamicAny::DynValue_ptr&, OB::InputStreamImpl*);

void OBDuplicate(DynamicAny::DynValueBox_ptr);
void OBRelease(DynamicAny::DynValueBox_ptr);

void OBMarshal(DynamicAny::DynValueBox_ptr, OB::OutputStreamImpl*);
void OBUnmarshal(DynamicAny::DynValueBox_ptr&, OB::InputStreamImpl*);

void OBDuplicate(DynamicAny::DynAnyFactory_ptr);
void OBRelease(DynamicAny::DynAnyFactory_ptr);

void OBMarshal(DynamicAny::DynAnyFactory_ptr, OB::OutputStreamImpl*);
void OBUnmarshal(DynamicAny::DynAnyFactory_ptr&, OB::InputStreamImpl*);

namespace DynamicAny
{

typedef OB::ObjVar< DynAny > DynAny_var;
typedef OB::ObjOut< DynAny > DynAny_out;

typedef OB::ObjVar< DynFixed > DynFixed_var;
typedef OB::ObjOut< DynFixed > DynFixed_out;

typedef OB::ObjVar< DynEnum > DynEnum_var;
typedef OB::ObjOut< DynEnum > DynEnum_out;

typedef OB::ObjVar< DynStruct > DynStruct_var;
typedef OB::ObjOut< DynStruct > DynStruct_out;

typedef OB::ObjVar< DynUnion > DynUnion_var;
typedef OB::ObjOut< DynUnion > DynUnion_out;

typedef OB::ObjVar< DynSequence > DynSequence_var;
typedef OB::ObjOut< DynSequence > DynSequence_out;

typedef OB::ObjVar< DynArray > DynArray_var;
typedef OB::ObjOut< DynArray > DynArray_out;

typedef OB::ObjVar< DynValueCommon > DynValueCommon_var;
typedef OB::ObjOut< DynValueCommon > DynValueCommon_out;

typedef OB::ObjVar< DynValue > DynValue_var;
typedef OB::ObjOut< DynValue > DynValue_out;

typedef OB::ObjVar< DynValueBox > DynValueBox_var;
typedef OB::ObjOut< DynValueBox > DynValueBox_out;

typedef OB::ObjVar< DynAnyFactory > DynAnyFactory_var;
typedef OB::ObjOut< DynAnyFactory > DynAnyFactory_out;

} // End of namespace DynamicAny

#endif
