// **********************************************************************
//
// 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_IIOP_h__
#define __OB_IIOP_h__

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


#include <OB/GIOP.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 IIOP
{

} // End of namespace IIOP

namespace IIOP
{

} // End of namespace IIOP

namespace OBStubImpl_IIOP
{

} // End of namespace OBStubImpl_IIOP

namespace OBStubImpl_IIOP
{

} // End of namespace OBStubImpl_IIOP

//
// IDL:omg.org/IIOP:1.0
//
namespace IIOP
{

//
// IDL:omg.org/IIOP/Version:1.0
//
struct Version;
typedef OB::FixVar< Version > Version_var;
typedef Version& Version_out;

struct Version
{
    typedef Version_var _var_type;

    ::CORBA::Octet major;
    ::CORBA::Octet minor;

    void _OB_marshal(OB::OutputStreamImpl*) const;
    static void _OB_unmarshal(Version&, OB::InputStreamImpl*);
};

//
// IDL:omg.org/IIOP/ProfileBody_1_0:1.0
//
struct ProfileBody_1_0;
typedef OB::VarVar< ProfileBody_1_0 > ProfileBody_1_0_var;
typedef OB::VarOut< ProfileBody_1_0 > ProfileBody_1_0_out;

struct ProfileBody_1_0
{
#ifdef OB_CLEAR_MEM
    ProfileBody_1_0();
#else
    ProfileBody_1_0() { }
#endif
    ProfileBody_1_0(const ProfileBody_1_0&);
    ProfileBody_1_0& operator=(const ProfileBody_1_0&);

    typedef ProfileBody_1_0_var _var_type;

    Version iiop_version;
    OB::StrForStruct host;
    ::CORBA::UShort port;
    class OBUnique_object_key { };
    typedef OB::FixSeq< ::CORBA::Octet, OBUnique_object_key > _object_key_seq;
    _object_key_seq object_key;

    void _OB_marshal(OB::OutputStreamImpl*) const;
    static void _OB_unmarshal(ProfileBody_1_0&, OB::InputStreamImpl*);
};

//
// IDL:omg.org/IIOP/ProfileBody_1_1:1.0
//
struct ProfileBody_1_1;
typedef OB::VarVar< ProfileBody_1_1 > ProfileBody_1_1_var;
typedef OB::VarOut< ProfileBody_1_1 > ProfileBody_1_1_out;

struct ProfileBody_1_1
{
#ifdef OB_CLEAR_MEM
    ProfileBody_1_1();
#else
    ProfileBody_1_1() { }
#endif
    ProfileBody_1_1(const ProfileBody_1_1&);
    ProfileBody_1_1& operator=(const ProfileBody_1_1&);

    typedef ProfileBody_1_1_var _var_type;

    Version iiop_version;
    OB::StrForStruct host;
    ::CORBA::UShort port;
    class OBUnique_object_key { };
    typedef OB::FixSeq< ::CORBA::Octet, OBUnique_object_key > _object_key_seq;
    _object_key_seq object_key;
    class OBUnique_components { };
    typedef OB::VarSeq< ::IOP::TaggedComponent, OBUnique_components > _components_seq;
    _components_seq components;

    void _OB_marshal(OB::OutputStreamImpl*) const;
    static void _OB_unmarshal(ProfileBody_1_1&, OB::InputStreamImpl*);
};

} // End of namespace IIOP

//
// IDL:omg.org/IIOP:1.0
//
namespace OBProxy_IIOP
{

} // End of namespace OBProxy_IIOP

//
// IDL:omg.org/IIOP:1.0
//
namespace OBStubImpl_IIOP
{

} // End of namespace OBStubImpl_IIOP

//
// IDL:omg.org/IIOP:1.0
//
namespace OBMarshalStubImpl_IIOP
{

} // End of namespace OBMarshalStubImpl_IIOP

//
// IDL:omg.org/IIOP:1.0
//
namespace OBV_IIOP
{

} // End of namespace OBV_IIOP

#endif
