// **********************************************************************
//
// 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

#include <OB/CORBA.h>
#include <OB/TemplateI.h>
#include <OB/DynAny.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/DynAny:1.0
//
#ifndef HAVE_NO_EXPLICIT_TEMPLATES
template class OBObjVar< CORBA_DynAny >;
template class OBObjForSeq< CORBA_DynAny >;
#else
#ifdef HAVE_PRAGMA_DEFINE
#pragma define(OBObjVar< CORBA_DynAny >)
#pragma define(OBObjForSeq< CORBA_DynAny >)
#endif
#endif

void
OBDuplicate(CORBA_DynAny_ptr p)
{
    if(p)
        p -> _OB_incRef();
}

void
OBRelease(CORBA_DynAny_ptr p)
{
    if(p)
        p -> _OB_decRef();
}

CORBA_DynAny_ptr
CORBA_DynAny::_narrow(CORBA_Object_ptr p)
{
    if(!CORBA_is_nil(p))
    {
        void* v = p -> _OB_narrowHelp("IDL:omg.org/CORBA/DynAny:1.0");

        if(v)
            return _duplicate((CORBA_DynAny_ptr)v);
    }

    return _nil();
}

void*
CORBA_DynAny::_OB_narrowHelp(const char* _ob_id) const
{
    if(strcmp("IDL:omg.org/CORBA/DynAny:1.0", _ob_id) == 0)
        return (void*)this;
    else
        return CORBA_Object::_OB_narrowHelp(_ob_id);
}

const char*
CORBA_DynAny::_OB_typeId() const
{
    return "IDL:omg.org/CORBA/DynAny:1.0";
}

//
// IDL:omg.org/CORBA/DynAny/Invalid:1.0
//
CORBA_DynAny::Invalid::Invalid(const CORBA_DynAny::Invalid& _ob_a)
    : CORBA_UserException(_ob_a)
{
}

CORBA_DynAny::Invalid&
CORBA_DynAny::Invalid::operator=(const Invalid&)
{
    return *this;
}

CORBA_DynAny::Invalid*
CORBA_DynAny::Invalid::_narrow(CORBA_Exception* p)
{
#ifdef HAVE_NO_RTTI
    if(p)
        return (Invalid*)(p -> _OB_narrowHelp("IDL:omg.org/CORBA/DynAny/Invalid:1.0"));
    else
        return 0;
#else
    return dynamic_cast<CORBA_DynAny::Invalid*>(p);
#endif
}

#ifdef HAVE_NO_RTTI
void*
CORBA_DynAny::Invalid::_OB_narrowHelp(const char* _ob_id) const
{
    if(strcmp("IDL:omg.org/CORBA/DynAny/Invalid:1.0", _ob_id) == 0)
        return (void*)this;
    else
        return CORBA_UserException::_OB_narrowHelp(_ob_id);
}
#endif

const char*
CORBA_DynAny::Invalid::_OB_typeId() const
{
    return "IDL:omg.org/CORBA/DynAny/Invalid:1.0";
}

CORBA_Exception*
CORBA_DynAny::Invalid::_OB_clone() const
{
    return new Invalid(*this);
}

//
// IDL:omg.org/CORBA/DynAny/InvalidValue:1.0
//
CORBA_DynAny::InvalidValue::InvalidValue(const CORBA_DynAny::InvalidValue& _ob_a)
    : CORBA_UserException(_ob_a)
{
}

CORBA_DynAny::InvalidValue&
CORBA_DynAny::InvalidValue::operator=(const InvalidValue&)
{
    return *this;
}

CORBA_DynAny::InvalidValue*
CORBA_DynAny::InvalidValue::_narrow(CORBA_Exception* p)
{
#ifdef HAVE_NO_RTTI
    if(p)
        return (InvalidValue*)(p -> _OB_narrowHelp("IDL:omg.org/CORBA/DynAny/InvalidValue:1.0"));
    else
        return 0;
#else
    return dynamic_cast<CORBA_DynAny::InvalidValue*>(p);
#endif
}

#ifdef HAVE_NO_RTTI
void*
CORBA_DynAny::InvalidValue::_OB_narrowHelp(const char* _ob_id) const
{
    if(strcmp("IDL:omg.org/CORBA/DynAny/InvalidValue:1.0", _ob_id) == 0)
        return (void*)this;
    else
        return CORBA_UserException::_OB_narrowHelp(_ob_id);
}
#endif

const char*
CORBA_DynAny::InvalidValue::_OB_typeId() const
{
    return "IDL:omg.org/CORBA/DynAny/InvalidValue:1.0";
}

CORBA_Exception*
CORBA_DynAny::InvalidValue::_OB_clone() const
{
    return new InvalidValue(*this);
}

//
// IDL:omg.org/CORBA/DynAny/TypeMismatch:1.0
//
CORBA_DynAny::TypeMismatch::TypeMismatch(const CORBA_DynAny::TypeMismatch& _ob_a)
    : CORBA_UserException(_ob_a)
{
}

CORBA_DynAny::TypeMismatch&
CORBA_DynAny::TypeMismatch::operator=(const TypeMismatch&)
{
    return *this;
}

CORBA_DynAny::TypeMismatch*
CORBA_DynAny::TypeMismatch::_narrow(CORBA_Exception* p)
{
#ifdef HAVE_NO_RTTI
    if(p)
        return (TypeMismatch*)(p -> _OB_narrowHelp("IDL:omg.org/CORBA/DynAny/TypeMismatch:1.0"));
    else
        return 0;
#else
    return dynamic_cast<CORBA_DynAny::TypeMismatch*>(p);
#endif
}

#ifdef HAVE_NO_RTTI
void*
CORBA_DynAny::TypeMismatch::_OB_narrowHelp(const char* _ob_id) const
{
    if(strcmp("IDL:omg.org/CORBA/DynAny/TypeMismatch:1.0", _ob_id) == 0)
        return (void*)this;
    else
        return CORBA_UserException::_OB_narrowHelp(_ob_id);
}
#endif

const char*
CORBA_DynAny::TypeMismatch::_OB_typeId() const
{
    return "IDL:omg.org/CORBA/DynAny/TypeMismatch:1.0";
}

CORBA_Exception*
CORBA_DynAny::TypeMismatch::_OB_clone() const
{
    return new TypeMismatch(*this);
}

//
// IDL:omg.org/CORBA/DynAny/InvalidSeq:1.0
//
CORBA_DynAny::InvalidSeq::InvalidSeq(const CORBA_DynAny::InvalidSeq& _ob_a)
    : CORBA_UserException(_ob_a)
{
}

CORBA_DynAny::InvalidSeq&
CORBA_DynAny::InvalidSeq::operator=(const InvalidSeq&)
{
    return *this;
}

CORBA_DynAny::InvalidSeq*
CORBA_DynAny::InvalidSeq::_narrow(CORBA_Exception* p)
{
#ifdef HAVE_NO_RTTI
    if(p)
        return (InvalidSeq*)(p -> _OB_narrowHelp("IDL:omg.org/CORBA/DynAny/InvalidSeq:1.0"));
    else
        return 0;
#else
    return dynamic_cast<CORBA_DynAny::InvalidSeq*>(p);
#endif
}

#ifdef HAVE_NO_RTTI
void*
CORBA_DynAny::InvalidSeq::_OB_narrowHelp(const char* _ob_id) const
{
    if(strcmp("IDL:omg.org/CORBA/DynAny/InvalidSeq:1.0", _ob_id) == 0)
        return (void*)this;
    else
        return CORBA_UserException::_OB_narrowHelp(_ob_id);
}
#endif

const char*
CORBA_DynAny::InvalidSeq::_OB_typeId() const
{
    return "IDL:omg.org/CORBA/DynAny/InvalidSeq:1.0";
}

CORBA_Exception*
CORBA_DynAny::InvalidSeq::_OB_clone() const
{
    return new InvalidSeq(*this);
}

//
// IDL:omg.org/CORBA/DynFixed:1.0
//
#ifndef HAVE_NO_EXPLICIT_TEMPLATES
template class OBObjVar< CORBA_DynFixed >;
template class OBObjForSeq< CORBA_DynFixed >;
#else
#ifdef HAVE_PRAGMA_DEFINE
#pragma define(OBObjVar< CORBA_DynFixed >)
#pragma define(OBObjForSeq< CORBA_DynFixed >)
#endif
#endif

void
OBDuplicate(CORBA_DynFixed_ptr p)
{
    if(p)
        p -> _OB_incRef();
}

void
OBRelease(CORBA_DynFixed_ptr p)
{
    if(p)
        p -> _OB_decRef();
}

CORBA_DynFixed_ptr
CORBA_DynFixed::_narrow(CORBA_Object_ptr p)
{
    if(!CORBA_is_nil(p))
    {
        void* v = p -> _OB_narrowHelp("IDL:omg.org/CORBA/DynFixed:1.0");

        if(v)
            return _duplicate((CORBA_DynFixed_ptr)v);
    }

    return _nil();
}

void*
CORBA_DynFixed::_OB_narrowHelp(const char* _ob_id) const
{
    if(strcmp("IDL:omg.org/CORBA/DynFixed:1.0", _ob_id) == 0)
        return (void*)this;
    else
    {
        void* v;
        if((v = CORBA_DynAny::_OB_narrowHelp(_ob_id)) != 0)
            return v;
        return 0;
    }
}

const char*
CORBA_DynFixed::_OB_typeId() const
{
    return "IDL:omg.org/CORBA/DynFixed:1.0";
}

//
// IDL:omg.org/CORBA/DynEnum:1.0
//
#ifndef HAVE_NO_EXPLICIT_TEMPLATES
template class OBObjVar< CORBA_DynEnum >;
template class OBObjForSeq< CORBA_DynEnum >;
#else
#ifdef HAVE_PRAGMA_DEFINE
#pragma define(OBObjVar< CORBA_DynEnum >)
#pragma define(OBObjForSeq< CORBA_DynEnum >)
#endif
#endif

void
OBDuplicate(CORBA_DynEnum_ptr p)
{
    if(p)
        p -> _OB_incRef();
}

void
OBRelease(CORBA_DynEnum_ptr p)
{
    if(p)
        p -> _OB_decRef();
}

CORBA_DynEnum_ptr
CORBA_DynEnum::_narrow(CORBA_Object_ptr p)
{
    if(!CORBA_is_nil(p))
    {
        void* v = p -> _OB_narrowHelp("IDL:omg.org/CORBA/DynEnum:1.0");

        if(v)
            return _duplicate((CORBA_DynEnum_ptr)v);
    }

    return _nil();
}

void*
CORBA_DynEnum::_OB_narrowHelp(const char* _ob_id) const
{
    if(strcmp("IDL:omg.org/CORBA/DynEnum:1.0", _ob_id) == 0)
        return (void*)this;
    else
    {
        void* v;
        if((v = CORBA_DynAny::_OB_narrowHelp(_ob_id)) != 0)
            return v;
        return 0;
    }
}

const char*
CORBA_DynEnum::_OB_typeId() const
{
    return "IDL:omg.org/CORBA/DynEnum:1.0";
}

//
// IDL:omg.org/CORBA/NameValuePair:1.0
//
#ifndef HAVE_NO_EXPLICIT_TEMPLATES
template class OBVarVar< CORBA_NameValuePair >;
#else
#ifdef HAVE_PRAGMA_DEFINE
#pragma define(OBVarVar< CORBA_NameValuePair >)
#endif
#endif

CORBA_NameValuePair::CORBA_NameValuePair(const CORBA_NameValuePair& _ob_a)
    : id(_ob_a.id),
      value(_ob_a.value)
{
}

CORBA_NameValuePair&
CORBA_NameValuePair::operator=(const CORBA_NameValuePair& _ob_a)
{
    if(this != &_ob_a)
    {
        id = _ob_a.id;
        value = _ob_a.value;
    }
    return *this;
}

//
// IDL:omg.org/CORBA/DynStruct:1.0
//
#ifndef HAVE_NO_EXPLICIT_TEMPLATES
template class OBObjVar< CORBA_DynStruct >;
template class OBObjForSeq< CORBA_DynStruct >;
#else
#ifdef HAVE_PRAGMA_DEFINE
#pragma define(OBObjVar< CORBA_DynStruct >)
#pragma define(OBObjForSeq< CORBA_DynStruct >)
#endif
#endif

void
OBDuplicate(CORBA_DynStruct_ptr p)
{
    if(p)
        p -> _OB_incRef();
}

void
OBRelease(CORBA_DynStruct_ptr p)
{
    if(p)
        p -> _OB_decRef();
}

CORBA_DynStruct_ptr
CORBA_DynStruct::_narrow(CORBA_Object_ptr p)
{
    if(!CORBA_is_nil(p))
    {
        void* v = p -> _OB_narrowHelp("IDL:omg.org/CORBA/DynStruct:1.0");

        if(v)
            return _duplicate((CORBA_DynStruct_ptr)v);
    }

    return _nil();
}

void*
CORBA_DynStruct::_OB_narrowHelp(const char* _ob_id) const
{
    if(strcmp("IDL:omg.org/CORBA/DynStruct:1.0", _ob_id) == 0)
        return (void*)this;
    else
    {
        void* v;
        if((v = CORBA_DynAny::_OB_narrowHelp(_ob_id)) != 0)
            return v;
        return 0;
    }
}

const char*
CORBA_DynStruct::_OB_typeId() const
{
    return "IDL:omg.org/CORBA/DynStruct:1.0";
}

//
// IDL:omg.org/CORBA/DynUnion:1.0
//
#ifndef HAVE_NO_EXPLICIT_TEMPLATES
template class OBObjVar< CORBA_DynUnion >;
template class OBObjForSeq< CORBA_DynUnion >;
#else
#ifdef HAVE_PRAGMA_DEFINE
#pragma define(OBObjVar< CORBA_DynUnion >)
#pragma define(OBObjForSeq< CORBA_DynUnion >)
#endif
#endif

void
OBDuplicate(CORBA_DynUnion_ptr p)
{
    if(p)
        p -> _OB_incRef();
}

void
OBRelease(CORBA_DynUnion_ptr p)
{
    if(p)
        p -> _OB_decRef();
}

CORBA_DynUnion_ptr
CORBA_DynUnion::_narrow(CORBA_Object_ptr p)
{
    if(!CORBA_is_nil(p))
    {
        void* v = p -> _OB_narrowHelp("IDL:omg.org/CORBA/DynUnion:1.0");

        if(v)
            return _duplicate((CORBA_DynUnion_ptr)v);
    }

    return _nil();
}

void*
CORBA_DynUnion::_OB_narrowHelp(const char* _ob_id) const
{
    if(strcmp("IDL:omg.org/CORBA/DynUnion:1.0", _ob_id) == 0)
        return (void*)this;
    else
    {
        void* v;
        if((v = CORBA_DynAny::_OB_narrowHelp(_ob_id)) != 0)
            return v;
        return 0;
    }
}

const char*
CORBA_DynUnion::_OB_typeId() const
{
    return "IDL:omg.org/CORBA/DynUnion:1.0";
}

//
// IDL:omg.org/CORBA/DynSequence:1.0
//
#ifndef HAVE_NO_EXPLICIT_TEMPLATES
template class OBObjVar< CORBA_DynSequence >;
template class OBObjForSeq< CORBA_DynSequence >;
#else
#ifdef HAVE_PRAGMA_DEFINE
#pragma define(OBObjVar< CORBA_DynSequence >)
#pragma define(OBObjForSeq< CORBA_DynSequence >)
#endif
#endif

void
OBDuplicate(CORBA_DynSequence_ptr p)
{
    if(p)
        p -> _OB_incRef();
}

void
OBRelease(CORBA_DynSequence_ptr p)
{
    if(p)
        p -> _OB_decRef();
}

CORBA_DynSequence_ptr
CORBA_DynSequence::_narrow(CORBA_Object_ptr p)
{
    if(!CORBA_is_nil(p))
    {
        void* v = p -> _OB_narrowHelp("IDL:omg.org/CORBA/DynSequence:1.0");

        if(v)
            return _duplicate((CORBA_DynSequence_ptr)v);
    }

    return _nil();
}

void*
CORBA_DynSequence::_OB_narrowHelp(const char* _ob_id) const
{
    if(strcmp("IDL:omg.org/CORBA/DynSequence:1.0", _ob_id) == 0)
        return (void*)this;
    else
    {
        void* v;
        if((v = CORBA_DynAny::_OB_narrowHelp(_ob_id)) != 0)
            return v;
        return 0;
    }
}

const char*
CORBA_DynSequence::_OB_typeId() const
{
    return "IDL:omg.org/CORBA/DynSequence:1.0";
}

//
// IDL:omg.org/CORBA/DynArray:1.0
//
#ifndef HAVE_NO_EXPLICIT_TEMPLATES
template class OBObjVar< CORBA_DynArray >;
template class OBObjForSeq< CORBA_DynArray >;
#else
#ifdef HAVE_PRAGMA_DEFINE
#pragma define(OBObjVar< CORBA_DynArray >)
#pragma define(OBObjForSeq< CORBA_DynArray >)
#endif
#endif

void
OBDuplicate(CORBA_DynArray_ptr p)
{
    if(p)
        p -> _OB_incRef();
}

void
OBRelease(CORBA_DynArray_ptr p)
{
    if(p)
        p -> _OB_decRef();
}

CORBA_DynArray_ptr
CORBA_DynArray::_narrow(CORBA_Object_ptr p)
{
    if(!CORBA_is_nil(p))
    {
        void* v = p -> _OB_narrowHelp("IDL:omg.org/CORBA/DynArray:1.0");

        if(v)
            return _duplicate((CORBA_DynArray_ptr)v);
    }

    return _nil();
}

void*
CORBA_DynArray::_OB_narrowHelp(const char* _ob_id) const
{
    if(strcmp("IDL:omg.org/CORBA/DynArray:1.0", _ob_id) == 0)
        return (void*)this;
    else
    {
        void* v;
        if((v = CORBA_DynAny::_OB_narrowHelp(_ob_id)) != 0)
            return v;
        return 0;
    }
}

const char*
CORBA_DynArray::_OB_typeId() const
{
    return "IDL:omg.org/CORBA/DynArray:1.0";
}

//
// OBFixSeq< OBUnsignedChar >
//
#ifdef OB_use_OBFixSeq_OBUnsignedChar_from_DynAny_h

#endif

//
// OBVarSeq< CORBA_NameValuePair >
//
#ifdef OB_use_OBVarSeq_CORBA__NameValuePair_from_DynAny_h

#ifndef HAVE_NO_EXPLICIT_TEMPLATES
template class OBVarSeq< CORBA_NameValuePair >;
template class OBSeqVar< OBVarSeq< CORBA_NameValuePair > >;
#else
#ifdef HAVE_PRAGMA_DEFINE
#pragma define(OBVarSeq< CORBA_NameValuePair >)
#pragma define(OBSeqVar< OBVarSeq< CORBA_NameValuePair > >)
#endif
#endif

#endif

//
// OBVarSeq< CORBA_Any >
//
#ifdef OB_use_OBVarSeq_CORBA__Any_from_DynAny_h

#endif

//
// OBObjSeq< CORBA_DynAny >
//
#ifdef OB_use_OBObjSeq_CORBA__DynAny_from_DynAny_h

#ifndef HAVE_NO_EXPLICIT_TEMPLATES
template class OBObjSeq< CORBA_DynAny >;
template class OBSeqVar< OBObjSeq< CORBA_DynAny > >;
#else
#ifdef HAVE_PRAGMA_DEFINE
#pragma define(OBObjSeq< CORBA_DynAny >)
#pragma define(OBSeqVar< OBObjSeq< CORBA_DynAny > >)
#endif
#endif

#endif
