// **********************************************************************
//
// Copyright (c) 2002
// IONA Technologies, Inc.
// Waltham, MA, USA
//
// All Rights Reserved
//
// **********************************************************************

#ifndef OB_UPCALL_FWD_H
#define OB_UPCALL_FWD_H

#include <OB/Template.h>

namespace OB
{

class Upcall;
typedef Upcall* Upcall_ptr;

class PIUpcall;
typedef PIUpcall* PIUpcall_ptr;

class UpcallReturn;
typedef UpcallReturn* UpcallReturn_ptr;

} // End of namespace OB

void OBDuplicate(OB::Upcall_ptr);
void OBRelease(OB::Upcall_ptr);

void OBDuplicate(OB::PIUpcall_ptr);
void OBRelease(OB::PIUpcall_ptr);

void OBDuplicate(OB::UpcallReturn_ptr);
void OBRelease(OB::UpcallReturn_ptr);

namespace OB
{

typedef OB::ObjVar< Upcall > Upcall_var;

typedef OB::ObjVar< PIUpcall > PIUpcall_var;

typedef OB::ObjVar< UpcallReturn > UpcallReturn_var;

} // End of namespace OB

#endif
