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

#ifndef OB_REF_COUNTED_FWD_H
#define OB_REF_COUNTED_FWD_H

#include <OB/Template.h>

namespace OB
{

class RefCountIOR;
typedef RefCountIOR* RefCountIOR_ptr;

class RefCountPolicyList;
typedef RefCountPolicyList* RefCountPolicyList_ptr;

class RefCountProfileInfo;
typedef RefCountProfileInfo* RefCountProfileInfo_ptr;

} // End of namespace CORBA

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

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

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

namespace OB
{

typedef OB::ObjVar< RefCountIOR > RefCountIOR_var;
typedef OB::ObjOut< RefCountIOR > RefCountIOR_out;

typedef OB::ObjVar< RefCountPolicyList > RefCountPolicyList_var;
typedef OB::ObjOut< RefCountPolicyList > RefCountPolicyList_out;

typedef OB::ObjVar< RefCountProfileInfo > RefCountProfileInfo_var;
typedef OB::ObjOut< RefCountProfileInfo > RefCountProfileInfo_out;

} // End of namespace OCI

#endif
