module IOP {
  const ProfileId TAG_MATECORBA_SPECIFIC = 0xBADFAECA;
  const ProfileId TAG_GENERIC_IOP = 0x4f425400;
  const ComponentId TAG_GENERIC_SSL_SEC_TRANS = 0x4f425400;

  struct MateCORBASpecificProfileBody {
    string unix_sock_path;
    unsigned short ipv6_port;
    sequence<octet> object_key;
  };

  struct GenericIOPProfileBody {
    IIOP::Version iiop_version;
    string protocol;
    string host;
    string service;
    /* Use TAG_COMPLETE_OBJECT_KEY to get the object key */
    sequence<IOP::TaggedComponent> components;
  };
  struct SSLGenericComponent {
    string service;
  };
};
