diff options
author | coryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2000-08-28 00:15:38 +0000 |
---|---|---|
committer | coryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2000-08-28 00:15:38 +0000 |
commit | 2d28992155e89c83f15b9f4d2ae132bd6d0e6c19 (patch) | |
tree | 46f556b7d3c01ff38a6e0483bbe3ef40cb7934c6 /TAO/tao/DynamicAny/DynamicAny.pidl | |
parent | 7eed2413415ac30e03b86216ff24316d7f987bbf (diff) | |
download | ATCD-2d28992155e89c83f15b9f4d2ae132bd6d0e6c19.tar.gz |
ChangeLogTag:Sun Aug 27 16:02:47 2000 Carlos O'Ryan <coryan@uci.edu>
Diffstat (limited to 'TAO/tao/DynamicAny/DynamicAny.pidl')
-rw-r--r-- | TAO/tao/DynamicAny/DynamicAny.pidl | 224 |
1 files changed, 224 insertions, 0 deletions
diff --git a/TAO/tao/DynamicAny/DynamicAny.pidl b/TAO/tao/DynamicAny/DynamicAny.pidl new file mode 100644 index 00000000000..0ee395831ba --- /dev/null +++ b/TAO/tao/DynamicAny/DynamicAny.pidl @@ -0,0 +1,224 @@ +// +// $Id$ +// +// ================================================================ +// +// = LIBRARY +// TAO +// +// = FILENAME +// DynamicAny.pidl +// +// = DESCRIPTION +// This file was used to generate the code in DynamicAnyC.{h,i,cpp} +// The file was obtained from the OMG website as part of the full +// CORBA IDL formal/00-04-01: +// http://www.omg.org/technology/documents/formal/corba_omg_idl_text_file.htm +// I couldn't find a copyright notice in the document, but I will +// assume that it is Copyright (C) 2000, OMG. +// We performed some modifications to the file, mainly to use local +// interfaces (part of what is coming in CORBA 2.4 and CORBA 3.0). +// +// The command used to generate code from this file is: +// +// tao_idl.exe -o orig -Gp -Gd -Ge 1 -Gv \ +// -Wb,export_macro=TAO_DynamicAny_Export \ +// -Wb,export_include=dynamicany_export.h \ +// -Wb,pre_include="ace/pre.h" \ +// -Wb,post_include="ace/post.h" \ +// DynamicAny.pidl +// +// after the file is generated a patch must be applied. The patch +// fixes some problems with interceptors and local interfaces and +// disables parts of the code under certain configurations. +// +// Apply patches using the following commands: +// +// patch < diffs/DynamicAnyC.h.diff +// patch < diffs/DynamicAnyC.i.diff +// patch < diffs/DynamicAnyC.cpp.diff +// +// Those changes are required because the generated +// code is part of the TAO library, it hardly makes any sense to +// change the IDL compiler to support changes that are very +// occasional. +// +// Note: The diffs were generated with these commands: +// +// diff -wbu orig/DynamicAny.pidl DynamicAny.pidl > diffs\DynamicAny.pidl.diff +// +// diff -wbu orig/DynamicAnyC.h DynamicAnyC.h > diffs/DynamicAnyC.h.diff +// diff -wbu orig/DynamicAnyC.i DynamicAnyC.i > diffs/DynamicAnyC.i.diff +// diff -wbu orig/DynamicAnyC.cpp DynamicAnyC.cpp > diffs/DynamicAnyC.cpp.diff +// +// ================================================================ + +#ifndef _DYNAMIC_ANY_IDL_ +#define _DYNAMIC_ANY_IDL_ +#pragma prefix "omg.org" +#include <orb.idl> + +module DynamicAny { + + local interface DynAny { + exception InvalidValue {}; + exception TypeMismatch {}; + + CORBA::TypeCode type(); + + void assign( in DynAny dyn_any) raises(TypeMismatch); + void from_any( in any value) raises(TypeMismatch, InvalidValue); + any to_any(); + + boolean equal( in DynAny dyn_any); + + void destroy(); + DynAny copy(); + void insert_boolean(in boolean value) raises(TypeMismatch, InvalidValue); + void insert_octet( in octet value) raises(TypeMismatch, InvalidValue); + void insert_char( in char value) raises(TypeMismatch, InvalidValue); + void insert_short( in short value) raises(TypeMismatch, InvalidValue); + void insert_ushort( in unsigned short + value) raises(TypeMismatch, InvalidValue); + void insert_long( in long value) raises(TypeMismatch, InvalidValue); + void insert_ulong( in unsigned long + value) raises(TypeMismatch, InvalidValue); + void insert_float( in float value) raises(TypeMismatch, InvalidValue); + void insert_double( in double value) raises(TypeMismatch, InvalidValue); + void insert_string( in string value) raises(TypeMismatch, InvalidValue); + void insert_reference(in Object value) raises(TypeMismatch, InvalidValue); + void insert_typecode(in CORBA::TypeCode + value) raises(TypeMismatch, InvalidValue); + void insert_longlong(in long long value) raises(TypeMismatch, InvalidValue); + void insert_ulonglong(in unsigned long long + value) raises(TypeMismatch, InvalidValue); + void insert_longdouble(in long double + value) raises(TypeMismatch, InvalidValue); + void insert_wchar( in wchar value) raises(TypeMismatch, InvalidValue); + void insert_wstring(in wstring value) raises(TypeMismatch, InvalidValue); + void insert_any( in any value) raises(TypeMismatch, InvalidValue); + void insert_dyn_any(in DynAny value) raises(TypeMismatch, InvalidValue); + void insert_val( in CORBA::ValueBase value) raises(TypeMismatch, InvalidValue); + + boolean get_boolean() raises(TypeMismatch, InvalidValue); + octet get_octet() raises(TypeMismatch, InvalidValue); + char get_char() raises(TypeMismatch, InvalidValue); + short get_short() raises(TypeMismatch, InvalidValue); + unsigned short get_ushort() raises(TypeMismatch, InvalidValue); + long get_long() raises(TypeMismatch, InvalidValue); + unsigned long get_ulong() raises(TypeMismatch, InvalidValue); + float get_float() raises(TypeMismatch, InvalidValue); + double get_double() raises(TypeMismatch, InvalidValue); + string get_string() raises(TypeMismatch, InvalidValue); + Object get_reference() raises(TypeMismatch, InvalidValue); + CORBA::TypeCode get_typecode() raises(TypeMismatch, InvalidValue); + long long get_longlong() raises(TypeMismatch, InvalidValue); + unsigned long long get_ulonglong() raises(TypeMismatch, InvalidValue); + long double get_longdouble() raises(TypeMismatch, InvalidValue); + wchar get_wchar() raises(TypeMismatch, InvalidValue); + wstring get_wstring() raises(TypeMismatch, InvalidValue); + any get_any() raises(TypeMismatch, InvalidValue); + DynAny get_dyn_any() raises(TypeMismatch, InvalidValue); + CORBA::ValueBase get_val() raises(TypeMismatch, InvalidValue); + + boolean seek(in long index); + void rewind(); + boolean next(); + unsigned long component_count(); + DynAny current_component() raises(TypeMismatch); + }; + + local interface DynFixed : DynAny { + string get_value(); + boolean set_value(in string val) raises(TypeMismatch, InvalidValue); + }; + + local interface DynEnum : DynAny { + string get_as_string(); + void set_as_string(in string value) + raises(InvalidValue); + unsigned long get_as_ulong(); + void set_as_ulong( in unsigned long value) + raises(InvalidValue); + }; + typedef string FieldName; + struct NameValuePair { + FieldName id; + any value; + }; + + typedef sequence<NameValuePair> NameValuePairSeq; + struct NameDynAnyPair { + FieldName id; + DynAny value; + }; + + typedef sequence<NameDynAnyPair> NameDynAnyPairSeq; + local interface DynStruct : DynAny { + FieldName current_member_name() raises(TypeMismatch, InvalidValue); + CORBA::TCKind current_member_kind() raises(TypeMismatch, InvalidValue); + NameValuePairSeq get_members(); + void set_members(in NameValuePairSeq value) + raises(TypeMismatch, InvalidValue); + NameDynAnyPairSeq get_members_as_dyn_any(); + void set_members_as_dyn_any(in NameDynAnyPairSeq value) + raises(TypeMismatch, InvalidValue); + }; + + local interface DynUnion : DynAny { + DynAny get_discriminator(); + void set_discriminator(in DynAny d) + raises(TypeMismatch); + void set_to_default_member() raises(TypeMismatch); + void set_to_no_active_member() raises(TypeMismatch); + boolean has_no_active_member(); + CORBA::TCKind discriminator_kind(); + DynAny member() raises(InvalidValue); + FieldName member_name() raises(InvalidValue); + CORBA::TCKind member_kind() raises(InvalidValue); + }; + + typedef sequence<any> AnySeq; + typedef sequence<DynAny> DynAnySeq; + local interface DynSequence : DynAny { + unsigned long get_length(); + void set_length(in unsigned long len) + raises(InvalidValue); + AnySeq get_elements(); + void set_elements(in AnySeq value) + raises(TypeMismatch, InvalidValue); + DynAnySeq get_elements_as_dyn_any(); + void set_elements_as_dyn_any(in DynAnySeq value) + raises(TypeMismatch, InvalidValue); + }; + + local interface DynArray : DynAny { + AnySeq get_elements(); + void set_elements(in AnySeq value) + raises(TypeMismatch, InvalidValue); + DynAnySeq get_elements_as_dyn_any(); + void set_elements_as_dyn_any(in DynAnySeq value) + raises(TypeMismatch, InvalidValue); + }; + + local interface DynValue : DynAny { + FieldName current_member_name() raises(TypeMismatch, InvalidValue); + CORBA::TCKind current_member_kind() raises(TypeMismatch, InvalidValue); + NameValuePairSeq get_members(); + void set_members(in NameValuePairSeq value) + raises(TypeMismatch, InvalidValue); + NameDynAnyPairSeq get_members_as_dyn_any(); + void set_members_as_dyn_any(in NameDynAnyPairSeq value) + raises(TypeMismatch, InvalidValue); + }; + + local interface DynAnyFactory { + exception InconsistentTypeCode {}; + DynAny create_dyn_any(in any value) + raises(InconsistentTypeCode); + DynAny create_dyn_any_from_type_code(in CORBA::TypeCode type) + raises(InconsistentTypeCode); + }; + +}; // module DynamicAny +#endif // _DYNAMIC_ANY_IDL_ |