dynamicany.pidl

来自「这是广泛使用的通信开源项目,对于大容量,高并发的通讯要求完全能够胜任,他广泛可用」· PIDL 代码 · 共 218 行

PIDL
218
字号
/**
 * @file DynamicAny.pidl
 *
 * DynamicAny.pidl,v 1.5 2003/10/28 18:29:22 bala Exp
 *
 * @brief Pre-compiled IDL source for the DynamicAny module.
 *
 * This file is used to generate the code in DynamicAnyC.{h,i,cpp}, it
 * was obtained from the OMG website as part of the full CORBA IDL,
 * the document reference number is: formal/00-04-01, or use the
 * following URL:
 * http://www.omg.org/technology/documents/formal/corba_omg_idl_text_file.htm
 *
 * We couldn't find a copyright notice in the document, but it is safe
 * to 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 3.0)
 *
 * The command used to generate code from this file is:
 *
 * tao_idl \
 *  -o orig -Gp -Gd -Ge 1 -Sa -St -GT \
 *          -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:
 *
 *   patch < diffs/DynamicAny.diff
 *
 * Note: The diffs are generated using:
 *
 *   for i in DynamicAnyC.{h,i,cpp}; do
 *     diff -wbu orig/$i $i > diffs/DynamicAny.diff
 *   done
 *
 */

#ifndef _DYNAMIC_ANY_IDL_
#define _DYNAMIC_ANY_IDL_

#include <orb.idl>

#pragma prefix "omg.org"

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 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);
        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_

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?