// **********************************************************************
//
// 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 __Current_h__
#define __Current_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/Current:1.0
//
class CORBA_Current;
typedef CORBA_Current* CORBA_Current_ptr;
typedef CORBA_Current* CORBA_CurrentRef;
void OBDuplicate(CORBA_Current_ptr);
void OBRelease(CORBA_Current_ptr);
typedef OBObjVar< CORBA_Current > CORBA_Current_var;

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

public:

    CORBA_Current() { }

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

    static inline CORBA_Current_ptr
    _nil()
    {
        return 0;
    }

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

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

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

#endif
