// **********************************************************************
//
// 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 __ImplRep_h__
#define __ImplRep_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/ImplementationDef:1.0
//
class CORBA_ImplementationDef;
typedef CORBA_ImplementationDef* CORBA_ImplementationDef_ptr;
typedef CORBA_ImplementationDef* CORBA_ImplementationDefRef;
void OBDuplicate(CORBA_ImplementationDef_ptr);
void OBRelease(CORBA_ImplementationDef_ptr);
typedef OBObjVar< CORBA_ImplementationDef > CORBA_ImplementationDef_var;

//
// IDL:omg.org/CORBA/ImplementationDef:1.0
//
class CORBA_ImplementationDef : virtual public CORBA_Object
{
    CORBA_ImplementationDef(const CORBA_ImplementationDef&);
    void operator=(const CORBA_ImplementationDef&);

protected:

    CORBA_ImplementationDef() { }

public:

    static inline CORBA_ImplementationDef_ptr
    _duplicate(CORBA_ImplementationDef_ptr p)
    {
        if(p)
            p -> _OB_incRef();
        return p;
    }

    static inline CORBA_ImplementationDef_ptr
    _nil()
    {
        return 0;
    }

    static CORBA_ImplementationDef_ptr _narrow(CORBA_Object_ptr);
    virtual void* _OB_narrowHelp(const char*) const;
    virtual const char* _OB_typeId() const;

    friend void OBUnmarshal(CORBA_ImplementationDef_ptr&, const CORBA_Octet*&, bool);
};

//
// IDL:omg.org/CORBA/ReferenceData:1.0
//
typedef OBBndFixSeq< CORBA_Octet, 1024 > CORBA_ReferenceData;
typedef OBSeqVar< OBBndFixSeq< CORBA_Octet, 1024 > > CORBA_ReferenceData_var;

//
// IDL:omg.org/CORBA/ImplementationDef:1.0
//
inline void
CORBA_release(CORBA_ImplementationDef_ptr p)
{
    if(p)
        p -> _OB_decRef();
}

inline CORBA_Boolean
CORBA_is_nil(CORBA_ImplementationDef_ptr p)
{
    return p == 0;
}

inline void
OBMarshal(CORBA_ImplementationDef_ptr p, CORBA_Octet*& oct)
{
    OBMarshal((CORBA_Object_ptr)p, oct);
}

inline void
OBMarshalCount(CORBA_ImplementationDef_ptr p, CORBA_ULong& count)
{
    OBMarshalCount((CORBA_Object_ptr)p, count);
}

void OBUnmarshal(CORBA_ImplementationDef_ptr&, const CORBA_Octet*&, bool);

//
// OBBndFixSeq< OBUnsignedChar, 1024 >
//
#ifndef OB_use_OBBndFixSeq_OBUnsignedChar_1024
#define OB_use_OBBndFixSeq_OBUnsignedChar_1024
#define OB_use_OBBndFixSeq_OBUnsignedChar_1024_from_ImplRep_h

void OBMarshal(const OBBndFixSeq< OBUnsignedChar, 1024 >&, CORBA_Octet*&);
void OBMarshalCount(const OBBndFixSeq< OBUnsignedChar, 1024 >&, CORBA_ULong&);
void OBUnmarshal(OBBndFixSeq< OBUnsignedChar, 1024 >&, const CORBA_Octet*&, bool);

#endif

#endif
