#ifndef _omniorb_corbaidl_idl_
#define _omniorb_corbaidl_idl_

#pragma prefix "omg.org"

//////////////////////////////////////////////////////////////////////
module CORBA {
//////////////////////////////////////////////////////////////////////

  interface IDLType;

  typedef string Identifier;


  struct StructMember {
    Identifier name;
    TypeCode type;
    IDLType type_def;
  };
  typedef sequence<StructMember> StructMemberSeq;


  struct UnionMember {
    Identifier name;
    any label;
    TypeCode type;
    IDLType type_def;
  };
  typedef sequence<UnionMember> UnionMemberSeq;


  typedef sequence<Identifier> EnumMemberSeq;


  // Sequences of basic types
  typedef sequence<any>                AnySeq;
  typedef sequence<boolean>            BooleanSeq;
  typedef sequence<char>               CharSeq;
  typedef sequence<wchar>              WCharSeq;
  typedef sequence<octet>              OctetSeq;
  typedef sequence<short>              ShortSeq;
  typedef sequence<unsigned short>     UShortSeq;
  typedef sequence<long>               LongSeq;
  typedef sequence<unsigned long>      ULongSeq;
#ifdef HAS_LongLong
  typedef sequence<long long>          LongLongSeq;
  typedef sequence<unsigned long long> ULongLongSeq;
#endif
  typedef sequence<float>              FloatSeq;
  typedef sequence<double>             DoubleSeq;
#ifdef HAS_LongDouble
  typedef sequence<long double>        LongDoubleSeq;
#endif
  typedef sequence<string>             StringSeq;
  typedef sequence<wstring>            WStringSeq;


//////////////////////////////////////////////////////////////////////
};
//////////////////////////////////////////////////////////////////////


#endif // _omniorb_corbaidl_idl_
