~ubuntu-branches/ubuntu/natty/orbit2/natty

« back to all changes in this revision

Viewing changes to src/idl/misc/DynamicAny.idl

  • Committer: Bazaar Package Importer
  • Author(s): Chris Waters
  • Date: 2002-03-25 17:24:03 UTC
  • Revision ID: james.westby@ubuntu.com-20020325172403-8lexv63608acfqgt
Tags: upstream-2.3.107
ImportĀ upstreamĀ versionĀ 2.3.107

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
// File: DynamicAny.idl
 
2
// CORBA 2.3, Chapter 9
 
3
 
 
4
#ifndef _DYNAMIC_ANY_IDL_
 
5
#define _DYNAMIC_ANY_IDL_
 
6
#pragma prefix "omg.org"
 
7
#include <orb.idl>
 
8
 
 
9
module DynamicAny {
 
10
 
 
11
    interface DynAny {
 
12
        exception InvalidValue {};
 
13
        exception TypeMismatch {};
 
14
                
 
15
        CORBA::TypeCode type();
 
16
 
 
17
        void assign(        in DynAny   dyn_any)    raises(TypeMismatch);
 
18
        void from_any(      in any      value)      raises(TypeMismatch, InvalidValue);
 
19
        any to_any();
 
20
 
 
21
        boolean equal(      in DynAny   dyn_any);
 
22
 
 
23
        void destroy();
 
24
        DynAny copy();
 
25
        void insert_boolean(in boolean  value)      raises(TypeMismatch, InvalidValue);
 
26
        void insert_octet(  in octet    value)      raises(TypeMismatch, InvalidValue);
 
27
        void insert_char(   in char     value)      raises(TypeMismatch, InvalidValue);
 
28
        void insert_short(  in short    value)      raises(TypeMismatch, InvalidValue);
 
29
        void insert_ushort( in unsigned short 
 
30
                                        value)      raises(TypeMismatch, InvalidValue);
 
31
        void insert_long(   in long     value)      raises(TypeMismatch, InvalidValue);
 
32
        void insert_ulong(  in unsigned long 
 
33
                                        value)      raises(TypeMismatch, InvalidValue);
 
34
        void insert_float(  in float    value)      raises(TypeMismatch, InvalidValue);
 
35
        void insert_double( in double   value)      raises(TypeMismatch, InvalidValue);
 
36
        void insert_string( in string   value)      raises(TypeMismatch, InvalidValue);
 
37
        void insert_reference(in CORBA::Object value)      raises(TypeMismatch, InvalidValue);
 
38
        void insert_typecode(in CORBA::TypeCode 
 
39
                                        value)      raises(TypeMismatch, InvalidValue);
 
40
        void insert_longlong(in long long value)    raises(TypeMismatch, InvalidValue);
 
41
        void insert_ulonglong(in unsigned long long 
 
42
                                        value)      raises(TypeMismatch, InvalidValue);
 
43
        void insert_longdouble(in long double 
 
44
                                        value)      raises(TypeMismatch, InvalidValue);
 
45
        void insert_wchar(  in wchar    value)      raises(TypeMismatch, InvalidValue);
 
46
        void insert_wstring(in wstring  value)      raises(TypeMismatch, InvalidValue);
 
47
        void insert_any(    in any      value)      raises(TypeMismatch, InvalidValue);
 
48
        void insert_dyn_any(in DynAny   value)      raises(TypeMismatch, InvalidValue);
 
49
#if 0
 
50
        void insert_val(    in ValueBase value)     raises(TypeMismatch, InvalidValue);
 
51
#endif
 
52
 
 
53
        boolean         get_boolean()               raises(TypeMismatch, InvalidValue);
 
54
        octet           get_octet()                 raises(TypeMismatch, InvalidValue);
 
55
        char            get_char()                  raises(TypeMismatch, InvalidValue);
 
56
        short           get_short()                 raises(TypeMismatch, InvalidValue);
 
57
        unsigned short  get_ushort()                raises(TypeMismatch, InvalidValue);
 
58
        long            get_long()                  raises(TypeMismatch, InvalidValue);
 
59
        unsigned long   get_ulong()                 raises(TypeMismatch, InvalidValue);
 
60
        float           get_float()                 raises(TypeMismatch, InvalidValue);
 
61
        double          get_double()                raises(TypeMismatch, InvalidValue);
 
62
        string          get_string()                raises(TypeMismatch, InvalidValue);
 
63
        CORBA::Object          get_reference()             raises(TypeMismatch, InvalidValue);
 
64
        CORBA::TypeCode get_typecode()              raises(TypeMismatch, InvalidValue);
 
65
        long long       get_longlong()              raises(TypeMismatch, InvalidValue);
 
66
        unsigned long long get_ulonglong()          raises(TypeMismatch, InvalidValue);
 
67
        long double     get_longdouble()            raises(TypeMismatch, InvalidValue);
 
68
        wchar           get_wchar()                 raises(TypeMismatch, InvalidValue);
 
69
        wstring         get_wstring()               raises(TypeMismatch, InvalidValue);
 
70
        any             get_any()                   raises(TypeMismatch, InvalidValue);
 
71
        DynAny          get_dyn_any()               raises(TypeMismatch, InvalidValue);
 
72
#if 0
 
73
        ValueBase       get_val()                   raises(TypeMismatch, InvalidValue);
 
74
#endif
 
75
 
 
76
        boolean         seek(in long index);
 
77
        void            rewind();
 
78
        boolean         next();
 
79
        unsigned long   component_count();
 
80
        DynAny          current_component()         raises(TypeMismatch);
 
81
    };
 
82
    
 
83
    interface DynFixed : DynAny {
 
84
        string          get_value();
 
85
        boolean         set_value(in string val)    raises(TypeMismatch, InvalidValue);
 
86
    };
 
87
    
 
88
    interface DynEnum : DynAny {
 
89
        string          get_as_string();
 
90
        void            set_as_string(in string value) 
 
91
                                                    raises(InvalidValue);
 
92
        unsigned long   get_as_ulong();
 
93
        void            set_as_ulong( in unsigned long value) 
 
94
                                                    raises(InvalidValue);
 
95
    };
 
96
    typedef string FieldName;
 
97
    struct NameValuePair {
 
98
        FieldName   id;
 
99
        any         value;
 
100
    };
 
101
    
 
102
    typedef sequence<NameValuePair> NameValuePairSeq;
 
103
    struct NameDynAnyPair {
 
104
        FieldName   id;
 
105
        DynAny      value;
 
106
    };
 
107
 
 
108
    typedef sequence<NameDynAnyPair> NameDynAnyPairSeq;
 
109
    interface DynStruct : DynAny {
 
110
        FieldName           current_member_name()   raises(TypeMismatch, InvalidValue);
 
111
        CORBA::TCKind       current_member_kind()   raises(TypeMismatch, InvalidValue);
 
112
        NameValuePairSeq    get_members();
 
113
        void                set_members(in NameValuePairSeq value)
 
114
                                                    raises(TypeMismatch, InvalidValue);
 
115
        NameDynAnyPairSeq   get_members_as_dyn_any();
 
116
        void                set_members_as_dyn_any(in NameDynAnyPairSeq value)
 
117
                                                    raises(TypeMismatch, InvalidValue);
 
118
    };
 
119
 
 
120
    interface DynUnion : DynAny {
 
121
        DynAny              get_discriminator();
 
122
        void                set_discriminator(in DynAny d) 
 
123
                                                    raises(TypeMismatch);
 
124
        void                set_to_default_member() raises(TypeMismatch);
 
125
        void                set_to_no_active_member() raises(TypeMismatch);
 
126
        boolean             has_no_active_member();
 
127
        CORBA::TCKind       discriminator_kind();
 
128
        DynAny              member()                raises(InvalidValue);
 
129
        FieldName           member_name()           raises(InvalidValue);
 
130
        CORBA::TCKind       member_kind()           raises(InvalidValue);
 
131
    };
 
132
    
 
133
    typedef sequence<any>    AnySeq;
 
134
    typedef sequence<DynAny> DynAnySeq;
 
135
    interface DynSequence : DynAny {
 
136
        unsigned long       get_length();
 
137
        void                set_length(in unsigned long len) 
 
138
                                                    raises(InvalidValue);
 
139
        AnySeq              get_elements();
 
140
        void                set_elements(in AnySeq value)
 
141
                                                    raises(TypeMismatch, InvalidValue);
 
142
        DynAnySeq           get_elements_as_dyn_any();
 
143
        void                set_elements_as_dyn_any(in DynAnySeq value)
 
144
                                                    raises(TypeMismatch, InvalidValue);
 
145
    };
 
146
 
 
147
    interface DynArray : DynAny {
 
148
        AnySeq              get_elements();
 
149
        void                set_elements(in AnySeq value)
 
150
                                                    raises(TypeMismatch, InvalidValue);
 
151
        DynAnySeq           get_elements_as_dyn_any();
 
152
        void                set_elements_as_dyn_any(in DynAnySeq value)
 
153
                                                    raises(TypeMismatch, InvalidValue);
 
154
    };
 
155
    
 
156
    interface DynValue : DynAny {
 
157
        FieldName           current_member_name()   raises(TypeMismatch, InvalidValue);
 
158
        CORBA::TCKind       current_member_kind()   raises(TypeMismatch, InvalidValue);
 
159
        NameValuePairSeq    get_members();
 
160
        void                set_members(in NameValuePairSeq value)
 
161
                                                    raises(TypeMismatch, InvalidValue);
 
162
        NameDynAnyPairSeq   get_members_as_dyn_any();
 
163
        void                set_members_as_dyn_any(in NameDynAnyPairSeq value)
 
164
                                                    raises(TypeMismatch, InvalidValue);
 
165
    };
 
166
 
 
167
    interface DynAnyFactory {
 
168
        exception           InconsistentTypeCode {};
 
169
        DynAny              create_dyn_any(in any value)
 
170
                                                    raises(InconsistentTypeCode);
 
171
        DynAny              create_dyn_any_from_type_code(in CORBA::TypeCode type)
 
172
                                                    raises(InconsistentTypeCode);
 
173
    };
 
174
 
 
175
}; // module DynamicAny
 
176
#endif // _DYNAMIC_ANY_IDL_