// File: IIOP.idl
// From CORBA 3.0: Chapter 15, General Inter-ORB Protocol

#ifndef _IIOP_IDL_
#define _IIOP_IDL_

#ifdef _PRE_3_0_COMPILER_ 
#pragma prefix "omg.org"
#include <IOP.idl>
#else
import ::IOP;
#endif // _PRE_3_0_COMPILER_

module IIOP {       // IDL extended for version 1.1 and 1.2

#ifndef _PRE_3_0_COMPILER_ 
    typeprefix IIOP "omg.org";
#endif // _PRE_3_0_COMPILER_

    struct Version {
        octet               major;
        octet               minor;
    };
    struct ProfileBody_1_0 {// renamed from ProfileBody
        Version             iiop_version;
        string              host;
        unsigned short      port;
        IOP::ObjectKey      object_key;
    };
    struct ProfileBody_1_1 {// also used for 1.2
        Version             iiop_version;
        string              host;
        unsigned short      port;
        IOP::ObjectKey      object_key;
        // Added in 1.1 unchanged for 1.2
        IOP::TaggedComponentSeq components; 
    };              

    // BiDirectional IIOP

    struct ListenPoint {
        string              host;
        unsigned short      port;
    };
    typedef sequence<ListenPoint> ListenPointList;
    struct BiDirIIOPServiceContext {// BI_DIR_IIOP Service Context
        ListenPointList listen_points;
    };
};
#endif // _IIOP_IDL_

