// **********************************************************************
//
// 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_OBPIORT_h__
#define __OB_OBPIORT_h__

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


#include <OB/PIORT.h>
#include <OB/IOP.h>
#include <OB/OBPIORT_fwd.h>

#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 OBStubImpl_OBPortableInterceptor
{

} // End of namespace OBStubImpl_OBPortableInterceptor

namespace OBStubImpl_OBPortableInterceptor
{

} // End of namespace OBStubImpl_OBPortableInterceptor

//
// IDL:ooc.com/OBPortableInterceptor:1.0
//
namespace OBPortableInterceptor
{

//
// IDL:ooc.com/OBPortableInterceptor/ObjectReferenceTemplate:1.0
//
class ObjectReferenceTemplate : virtual public ::PortableInterceptor::ObjectReferenceTemplate
{
    void operator=(const ObjectReferenceTemplate&);

    static const char* _ob_id_;

protected:

    ObjectReferenceTemplate() { }
    virtual ~ObjectReferenceTemplate() { }

public:

    typedef ObjectReferenceTemplate_var _var_type;

    static ObjectReferenceTemplate* _downcast(::CORBA::ValueBase*);
    static ObjectReferenceTemplate* _downcast(::CORBA::AbstractBase_ptr);

    //
    // IDL:ooc.com/OBPortableInterceptor/ObjectReferenceTemplate/make_object_for:1.0
    //
    virtual ::CORBA::Object_ptr make_object_for(const char* repository_id,
                                                const ::PortableInterceptor::ObjectId& id,
                                                const ::PortableInterceptor::AdapterName& name) = 0;

    static const char* _OB_id();

    virtual const char* _OB_typeId() const;
};

//
// IDL:ooc.com/OBPortableInterceptor/TransientORT:1.0
//
class TransientORT : virtual public ::OBPortableInterceptor::ObjectReferenceTemplate
{
    void operator=(const TransientORT&);

    static const char* _ob_id_;

protected:

    TransientORT() { }
    virtual ~TransientORT() { }

public:

    typedef TransientORT_var _var_type;

    static TransientORT* _downcast(::CORBA::ValueBase*);
    static TransientORT* _downcast(::CORBA::AbstractBase_ptr);

protected:

    //
    // IDL:ooc.com/OBPortableInterceptor/TransientORT/the_server_id:1.0
    //
    virtual void the_server_id(char*) = 0;
    virtual void the_server_id(const char*) = 0;
    virtual void the_server_id(const ::CORBA::String_var&) = 0;
    virtual const char* the_server_id() const = 0;

    //
    // IDL:ooc.com/OBPortableInterceptor/TransientORT/the_orb_id:1.0
    //
    virtual void the_orb_id(char*) = 0;
    virtual void the_orb_id(const char*) = 0;
    virtual void the_orb_id(const ::CORBA::String_var&) = 0;
    virtual const char* the_orb_id() const = 0;

    //
    // IDL:ooc.com/OBPortableInterceptor/TransientORT/the_adapter_name:1.0
    //
    virtual void the_adapter_name(const ::PortableInterceptor::AdapterName&) = 0;
    virtual const ::PortableInterceptor::AdapterName& the_adapter_name() const = 0;
    virtual ::PortableInterceptor::AdapterName& the_adapter_name() = 0;

    //
    // IDL:ooc.com/OBPortableInterceptor/TransientORT/the_create_time:1.0
    //
    virtual void the_create_time(::CORBA::ULong) = 0;
    virtual ::CORBA::ULong the_create_time() const = 0;

    //
    // IDL:ooc.com/OBPortableInterceptor/TransientORT/the_ior_template:1.0
    //
    virtual void the_ior_template(const ::IOP::IOR&) = 0;
    virtual const ::IOP::IOR& the_ior_template() const = 0;
    virtual ::IOP::IOR& the_ior_template() = 0;

public:

    static const char* _OB_id();

    virtual const char* _OB_typeId() const;

    virtual void _OB_marshal(OB::OutputStreamImpl*);
    virtual void _OB_unmarshal(OB::InputStreamImpl*);
};

//
// IDL:ooc.com/OBPortableInterceptor/PersistentORT:1.0
//
class PersistentORT : virtual public ::OBPortableInterceptor::ObjectReferenceTemplate
{
    void operator=(const PersistentORT&);

    static const char* _ob_id_;

protected:

    PersistentORT() { }
    virtual ~PersistentORT() { }

public:

    typedef PersistentORT_var _var_type;

    static PersistentORT* _downcast(::CORBA::ValueBase*);
    static PersistentORT* _downcast(::CORBA::AbstractBase_ptr);

protected:

    //
    // IDL:ooc.com/OBPortableInterceptor/PersistentORT/the_server_id:1.0
    //
    virtual void the_server_id(char*) = 0;
    virtual void the_server_id(const char*) = 0;
    virtual void the_server_id(const ::CORBA::String_var&) = 0;
    virtual const char* the_server_id() const = 0;

    //
    // IDL:ooc.com/OBPortableInterceptor/PersistentORT/the_orb_id:1.0
    //
    virtual void the_orb_id(char*) = 0;
    virtual void the_orb_id(const char*) = 0;
    virtual void the_orb_id(const ::CORBA::String_var&) = 0;
    virtual const char* the_orb_id() const = 0;

    //
    // IDL:ooc.com/OBPortableInterceptor/PersistentORT/the_adapter_name:1.0
    //
    virtual void the_adapter_name(const ::PortableInterceptor::AdapterName&) = 0;
    virtual const ::PortableInterceptor::AdapterName& the_adapter_name() const = 0;
    virtual ::PortableInterceptor::AdapterName& the_adapter_name() = 0;

    //
    // IDL:ooc.com/OBPortableInterceptor/PersistentORT/the_ior_template:1.0
    //
    virtual void the_ior_template(const ::IOP::IOR&) = 0;
    virtual const ::IOP::IOR& the_ior_template() const = 0;
    virtual ::IOP::IOR& the_ior_template() = 0;

public:

    static const char* _OB_id();

    virtual const char* _OB_typeId() const;

    virtual void _OB_marshal(OB::OutputStreamImpl*);
    virtual void _OB_unmarshal(OB::InputStreamImpl*);
};

} // End of namespace OBPortableInterceptor

//
// IDL:ooc.com/OBPortableInterceptor:1.0
//
namespace OBProxy_OBPortableInterceptor
{

} // End of namespace OBProxy_OBPortableInterceptor

//
// IDL:ooc.com/OBPortableInterceptor:1.0
//
namespace OBStubImpl_OBPortableInterceptor
{

} // End of namespace OBStubImpl_OBPortableInterceptor

//
// IDL:ooc.com/OBPortableInterceptor:1.0
//
namespace OBMarshalStubImpl_OBPortableInterceptor
{

} // End of namespace OBMarshalStubImpl_OBPortableInterceptor

//
// IDL:ooc.com/OBPortableInterceptor:1.0
//
namespace OBV_OBPortableInterceptor
{

//
// IDL:ooc.com/OBPortableInterceptor/TransientORT:1.0
//
class TransientORT : virtual public ::OBPortableInterceptor::TransientORT
{
    void operator=(const TransientORT&);

    OB::StrForStruct _obv_the_server_id_;
    OB::StrForStruct _obv_the_orb_id_;
    ::PortableInterceptor::AdapterName _obv_the_adapter_name_;
    ::CORBA::ULong _obv_the_create_time_;
    ::IOP::IOR _obv_the_ior_template_;

protected:

    TransientORT();
    TransientORT(const char*,
                 const char*,
                 const ::PortableInterceptor::AdapterName&,
                 ::CORBA::ULong,
                 const ::IOP::IOR&);
    virtual ~TransientORT();

    //
    // IDL:ooc.com/OBPortableInterceptor/TransientORT/the_server_id:1.0
    //
    virtual void the_server_id(char*);
    virtual void the_server_id(const char*);
    virtual void the_server_id(const ::CORBA::String_var&);
    virtual const char* the_server_id() const;

    //
    // IDL:ooc.com/OBPortableInterceptor/TransientORT/the_orb_id:1.0
    //
    virtual void the_orb_id(char*);
    virtual void the_orb_id(const char*);
    virtual void the_orb_id(const ::CORBA::String_var&);
    virtual const char* the_orb_id() const;

    //
    // IDL:ooc.com/OBPortableInterceptor/TransientORT/the_adapter_name:1.0
    //
    virtual void the_adapter_name(const ::PortableInterceptor::AdapterName&);
    virtual const ::PortableInterceptor::AdapterName& the_adapter_name() const;
    virtual ::PortableInterceptor::AdapterName& the_adapter_name();

    //
    // IDL:ooc.com/OBPortableInterceptor/TransientORT/the_create_time:1.0
    //
    virtual void the_create_time(::CORBA::ULong);
    virtual ::CORBA::ULong the_create_time() const;

    //
    // IDL:ooc.com/OBPortableInterceptor/TransientORT/the_ior_template:1.0
    //
    virtual void the_ior_template(const ::IOP::IOR&);
    virtual const ::IOP::IOR& the_ior_template() const;
    virtual ::IOP::IOR& the_ior_template();
};

//
// IDL:ooc.com/OBPortableInterceptor/PersistentORT:1.0
//
class PersistentORT : virtual public ::OBPortableInterceptor::PersistentORT
{
    void operator=(const PersistentORT&);

    OB::StrForStruct _obv_the_server_id_;
    OB::StrForStruct _obv_the_orb_id_;
    ::PortableInterceptor::AdapterName _obv_the_adapter_name_;
    ::IOP::IOR _obv_the_ior_template_;

protected:

    PersistentORT();
    PersistentORT(const char*,
                  const char*,
                  const ::PortableInterceptor::AdapterName&,
                  const ::IOP::IOR&);
    virtual ~PersistentORT();

    //
    // IDL:ooc.com/OBPortableInterceptor/PersistentORT/the_server_id:1.0
    //
    virtual void the_server_id(char*);
    virtual void the_server_id(const char*);
    virtual void the_server_id(const ::CORBA::String_var&);
    virtual const char* the_server_id() const;

    //
    // IDL:ooc.com/OBPortableInterceptor/PersistentORT/the_orb_id:1.0
    //
    virtual void the_orb_id(char*);
    virtual void the_orb_id(const char*);
    virtual void the_orb_id(const ::CORBA::String_var&);
    virtual const char* the_orb_id() const;

    //
    // IDL:ooc.com/OBPortableInterceptor/PersistentORT/the_adapter_name:1.0
    //
    virtual void the_adapter_name(const ::PortableInterceptor::AdapterName&);
    virtual const ::PortableInterceptor::AdapterName& the_adapter_name() const;
    virtual ::PortableInterceptor::AdapterName& the_adapter_name();

    //
    // IDL:ooc.com/OBPortableInterceptor/PersistentORT/the_ior_template:1.0
    //
    virtual void the_ior_template(const ::IOP::IOR&);
    virtual const ::IOP::IOR& the_ior_template() const;
    virtual ::IOP::IOR& the_ior_template();
};

} // End of namespace OBV_OBPortableInterceptor

//
// IDL:ooc.com/OBPortableInterceptor/ObjectReferenceTemplate:1.0
//
void operator<<=(::CORBA::Any&, OBPortableInterceptor::ObjectReferenceTemplate**);
void operator<<=(::CORBA::Any&, OBPortableInterceptor::ObjectReferenceTemplate*);
CORBA::Boolean operator>>=(const ::CORBA::Any&, OBPortableInterceptor::ObjectReferenceTemplate*&);

inline void
operator<<=(::CORBA::Any_var& any, OBPortableInterceptor::ObjectReferenceTemplate** val)
{
    any.inout() <<= val;
}

inline void
operator<<=(::CORBA::Any_var& any, OBPortableInterceptor::ObjectReferenceTemplate* val)
{
    any.inout() <<= val;
}

inline ::CORBA::Boolean
operator>>=(const ::CORBA::Any_var& any, OBPortableInterceptor::ObjectReferenceTemplate*& val)
{
    return any.in() >>= val;
}

//
// IDL:ooc.com/OBPortableInterceptor/TransientORT:1.0
//
void operator<<=(::CORBA::Any&, OBPortableInterceptor::TransientORT**);
void operator<<=(::CORBA::Any&, OBPortableInterceptor::TransientORT*);
CORBA::Boolean operator>>=(const ::CORBA::Any&, OBPortableInterceptor::TransientORT*&);

inline void
operator<<=(::CORBA::Any_var& any, OBPortableInterceptor::TransientORT** val)
{
    any.inout() <<= val;
}

inline void
operator<<=(::CORBA::Any_var& any, OBPortableInterceptor::TransientORT* val)
{
    any.inout() <<= val;
}

inline ::CORBA::Boolean
operator>>=(const ::CORBA::Any_var& any, OBPortableInterceptor::TransientORT*& val)
{
    return any.in() >>= val;
}

//
// IDL:ooc.com/OBPortableInterceptor/PersistentORT:1.0
//
void operator<<=(::CORBA::Any&, OBPortableInterceptor::PersistentORT**);
void operator<<=(::CORBA::Any&, OBPortableInterceptor::PersistentORT*);
CORBA::Boolean operator>>=(const ::CORBA::Any&, OBPortableInterceptor::PersistentORT*&);

inline void
operator<<=(::CORBA::Any_var& any, OBPortableInterceptor::PersistentORT** val)
{
    any.inout() <<= val;
}

inline void
operator<<=(::CORBA::Any_var& any, OBPortableInterceptor::PersistentORT* val)
{
    any.inout() <<= val;
}

inline ::CORBA::Boolean
operator>>=(const ::CORBA::Any_var& any, OBPortableInterceptor::PersistentORT*& val)
{
    return any.in() >>= val;
}

#endif
