// **********************************************************************
//
// Generated by the ORBacus IDL-to-C++ Translator
//
// Copyright (c) 2003
// IONA Technologies, Inc.
// Waltham, MA, USA
//
// All Rights Reserved
//
// **********************************************************************

// Version: 4.1.3

#ifndef __OB_OCI_fwd_h__
#define __OB_OCI_fwd_h__

#include <OB/Template.h>

#ifndef OB_IMPORT
#   ifdef OB_DLL
#      define OB_IMPORT __declspec(dllimport)
#   else
#      define OB_IMPORT /**/
#   endif
#endif


#ifndef OB_INTEGER_VERSION
#   error No ORBacus version defined! Is <OB/CORBA.h> included?
#endif

#ifndef OB_NO_VERSION_CHECK
#   if (OB_INTEGER_VERSION != 4010300L)
#       error ORBacus version mismatch!
#   endif
#endif

namespace OCI
{

class Acceptor;
typedef Acceptor* Acceptor_ptr;
typedef Acceptor* AcceptorRef;

class AcceptorInfo;
typedef AcceptorInfo* AcceptorInfo_ptr;
typedef AcceptorInfo* AcceptorInfoRef;

class AcceptCB;
typedef AcceptCB* AcceptCB_ptr;
typedef AcceptCB* AcceptCBRef;

class AccFactory;
typedef AccFactory* AccFactory_ptr;
typedef AccFactory* AccFactoryRef;

class AccFactoryInfo;
typedef AccFactoryInfo* AccFactoryInfo_ptr;
typedef AccFactoryInfo* AccFactoryInfoRef;

class AccFactoryRegistry;
typedef AccFactoryRegistry* AccFactoryRegistry_ptr;
typedef AccFactoryRegistry* AccFactoryRegistryRef;

class Current;
typedef Current* Current_ptr;
typedef Current* CurrentRef;

} // End of namespace OCI

void OBDuplicate(OCI::Acceptor_ptr);
void OBRelease(OCI::Acceptor_ptr);

void OBMarshal(OCI::Acceptor_ptr, OB::OutputStreamImpl*);
void OBUnmarshal(OCI::Acceptor_ptr&, OB::InputStreamImpl*);

void OBDuplicate(OCI::AcceptorInfo_ptr);
void OBRelease(OCI::AcceptorInfo_ptr);

void OBMarshal(OCI::AcceptorInfo_ptr, OB::OutputStreamImpl*);
void OBUnmarshal(OCI::AcceptorInfo_ptr&, OB::InputStreamImpl*);

void OBDuplicate(OCI::AcceptCB_ptr);
void OBRelease(OCI::AcceptCB_ptr);

void OBMarshal(OCI::AcceptCB_ptr, OB::OutputStreamImpl*);
void OBUnmarshal(OCI::AcceptCB_ptr&, OB::InputStreamImpl*);

void OBDuplicate(OCI::AccFactory_ptr);
void OBRelease(OCI::AccFactory_ptr);

void OBMarshal(OCI::AccFactory_ptr, OB::OutputStreamImpl*);
void OBUnmarshal(OCI::AccFactory_ptr&, OB::InputStreamImpl*);

void OBDuplicate(OCI::AccFactoryInfo_ptr);
void OBRelease(OCI::AccFactoryInfo_ptr);

void OBMarshal(OCI::AccFactoryInfo_ptr, OB::OutputStreamImpl*);
void OBUnmarshal(OCI::AccFactoryInfo_ptr&, OB::InputStreamImpl*);

void OBDuplicate(OCI::AccFactoryRegistry_ptr);
void OBRelease(OCI::AccFactoryRegistry_ptr);

void OBMarshal(OCI::AccFactoryRegistry_ptr, OB::OutputStreamImpl*);
void OBUnmarshal(OCI::AccFactoryRegistry_ptr&, OB::InputStreamImpl*);

void OBDuplicate(OCI::Current_ptr);
void OBRelease(OCI::Current_ptr);

void OBMarshal(OCI::Current_ptr, OB::OutputStreamImpl*);
void OBUnmarshal(OCI::Current_ptr&, OB::InputStreamImpl*);

namespace OCI
{

typedef OB::ObjVar< Acceptor > Acceptor_var;
typedef OB::ObjOut< Acceptor > Acceptor_out;

typedef OB::ObjVar< AcceptorInfo > AcceptorInfo_var;
typedef OB::ObjOut< AcceptorInfo > AcceptorInfo_out;

typedef OB::ObjVar< AcceptCB > AcceptCB_var;
typedef OB::ObjOut< AcceptCB > AcceptCB_out;

typedef OB::ObjVar< AccFactory > AccFactory_var;
typedef OB::ObjOut< AccFactory > AccFactory_out;

typedef OB::ObjVar< AccFactoryInfo > AccFactoryInfo_var;
typedef OB::ObjOut< AccFactoryInfo > AccFactoryInfo_out;

typedef OB::ObjVar< AccFactoryRegistry > AccFactoryRegistry_var;
typedef OB::ObjOut< AccFactoryRegistry > AccFactoryRegistry_out;

typedef OB::ObjVar< Current > Current_var;
typedef OB::ObjOut< Current > Current_out;

} // End of namespace OCI

#endif
