// **********************************************************************
//
// 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_URL_fwd_h__
#define __OB_URL_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 OB
{

class URLRegistry;
typedef URLRegistry* URLRegistry_ptr;
typedef URLRegistry* URLRegistryRef;

class URLScheme;
typedef URLScheme* URLScheme_ptr;
typedef URLScheme* URLSchemeRef;

class CorbalocURLScheme;
typedef CorbalocURLScheme* CorbalocURLScheme_ptr;
typedef CorbalocURLScheme* CorbalocURLSchemeRef;

class CorbalocProtocol;
typedef CorbalocProtocol* CorbalocProtocol_ptr;
typedef CorbalocProtocol* CorbalocProtocolRef;

} // End of namespace OB

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

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

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

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

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

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

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

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

namespace OB
{

typedef OB::ObjVar< URLRegistry > URLRegistry_var;
typedef OB::ObjOut< URLRegistry > URLRegistry_out;

typedef OB::ObjVar< URLScheme > URLScheme_var;
typedef OB::ObjOut< URLScheme > URLScheme_out;

typedef OB::ObjVar< CorbalocURLScheme > CorbalocURLScheme_var;
typedef OB::ObjOut< CorbalocURLScheme > CorbalocURLScheme_out;

typedef OB::ObjVar< CorbalocProtocol > CorbalocProtocol_var;
typedef OB::ObjOut< CorbalocProtocol > CorbalocProtocol_out;

} // End of namespace OB

#endif
