//File: CosQueryCollection.idl //Part of the Query Service // Note: if your IDL compiler does not yet support the // CORBA 2.3 Feature "Escaped Identifiers" (which provides // for the addition of new keywords to IDL, compile this // module with the preprocessor definition // "NO_ESCAPED_IDENTIFIERS". With many compilers this // would be done a qualifier on the command line, // something like -DNO_ESCAPED_IDENTIFIERS #ifndef _COS_QUERY_COLLECTION_IDL_ #define _COS_QUERY_COLLECTION_IDL_ // omniORB specific pragmas to insert extra includes into the stub header. #pragma hh #include "COS_sysdep.h" #pragma prefix "omg.org" module CosQueryCollection { exception ElementInvalid {}; exception IteratorInvalid {}; exception PositionInvalid {}; #ifdef NO_ESCAPED_IDENTIFIERS enum ValueType {TypeBoolean, TypeChar, TypeOctet, TypeShort, TypeUShort, TypeLong, TypeULong, TypeFloat, TypeDouble, TypeString, TypeObject, TypeAny, TypeSmallInt, TypeInteger, TypeReal, TypeDoublePrecision, TypeCharacter, TypeDecimal, TypeNumeric}; #else enum _ValueType {TypeBoolean, TypeChar, TypeOctet, TypeShort, TypeUShort, TypeLong, TypeULong, TypeFloat, TypeDouble, TypeString, TypeObject, TypeAny, TypeSmallInt, TypeInteger, TypeReal, TypeDoublePrecision, TypeCharacter, TypeDecimal, TypeNumeric}; #endif struct Decimal { long precision; long scale; sequence value; }; #ifdef NO_ESCAPED_IDENTIFIERS union Value switch(ValueType) { #else union _Value switch(ValueType) { #endif case TypeBoolean : boolean b; case TypeChar : char c; case TypeOctet : octet o; case TypeShort : short s; case TypeUShort : unsigned short us; case TypeLong : long l; case TypeULong : unsigned long ul; case TypeFloat : float f; case TypeDouble : double d; case TypeString : string str; case TypeObject : Object obj; case TypeAny : any a; case TypeSmallInt : short si; case TypeInteger : long i; case TypeReal : float r; case TypeDoublePrecision : double dp; case TypeCharacter : string ch; case TypeDecimal : Decimal dec; case TypeNumeric : Decimal n; }; typedef boolean Null; union FieldValue switch(Null) { case FALSE : Value v; }; typedef sequence Record; typedef string Istring; struct NVPair {Istring name; any value;}; typedef sequence ParameterList; interface Collection; interface Iterator; interface CollectionFactory { Collection create (in ParameterList params); }; interface Collection { readonly attribute long cardinality; void add_element (in any element) raises(ElementInvalid); void add_all_elements (in Collection elements) raises(ElementInvalid); void insert_element_at (in any element, in Iterator where) raises(IteratorInvalid, ElementInvalid); void replace_element_at (in any element, in Iterator where) raises(IteratorInvalid, PositionInvalid, ElementInvalid); void remove_element_at (in Iterator where) raises(IteratorInvalid, PositionInvalid); void remove_all_elements (); any retrieve_element_at (in Iterator where) raises(IteratorInvalid, PositionInvalid); Iterator create_iterator (); }; interface Iterator { any next () raises(IteratorInvalid, PositionInvalid); void reset (); boolean more (); }; }; #endif /* ifndef _COS_QUERY_COLLECTION_IDL_ */