ifr_extended.pidl

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

PIDL
225
字号
//
// IFR_Extended.pidl,v 1.4 2003/04/22 20:50:03 bala Exp
//
// ================================================================
//
// = LIBRARY
//   TAO_IFR_Client
//
// = FILENAME
//   IFR_Extended.pidl
//
// = DESCRIPTION
//   This file was used to generate the code in IFR_ExtendedC.{h,i,cpp}.
//   The original file Interface.idl was split into four pieces, to
//   keep the generated files to a manageable size and reduce build
//   time. This IDL file contains all the interfaces and other data
//   types related to fixed types and valuetypes.
//
//   The command used to generate code from this IDL file is:
//
//     tao_idl -Ge 1 -I.. \
//          -Wb,export_macro=TAO_IFR_Client_Export \
//          -Wb,export_include=ifr_client_export.h \
//          -Wb,pre_include="ace/pre.h" \
//          -Wb,post_include="ace/post.h" \
//          IFR_ExtendedC.pidl
//
//   Only the stub files are used in the TAO_IFR_Client library. The
//   skeleton files can be deleted from this directory.
//
//   No patching of the generated stub files is necessary.
//
//   To generate the skeleton files for the IFR Service, the command is:
//
//     tao_idl -o ../../orbsvcs/orbsvcs/IFRService -Ge 1 \
//          -Wb,pre_include="ace/pre.h" \
//          -Wb,post_include="ace/post.h" \
//          IFR_ExtendedC.pidl
//
//   The only modification necessary to the skelton files is to 
//   change
//
//   #include "IFR_ExtendedC.h"
//
//   to
//
//   #include "tao/IFR_Client/IFR_ExtendedC.h"
//
//   in IFR_ExtendedS.h. The stub files may be deleted from the IFRService
//   directory.
//
// ================================================================

#ifndef _IFR_EXTENDED_IDL_
#define _IFR_EXTENDED_IDL_

#include "IFR_Basic.pidl"

module CORBA
{
  typeprefix CORBA "omg.org";

// Already defined in corbafwd.h, included from orb.idl.
/*
  typedef short ValueModifier;
  const ValueModifier VM_NONE = 0;
  const ValueModifier VM_CUSTOM = 1;
  const ValueModifier VM_ABSTRACT = 2;
  const ValueModifier VM_TRUNCATABLE = 3;

  typedef short Visibility;
  const Visibility PRIVATE_MEMBER = 0;
  const Visibility PUBLIC_MEMBER = 1;
*/
  interface FixedDef : IDLType 
  {
    attribute unsigned short digits;
    attribute short scale;
  };

  struct ValueMember 
  {
    Identifier name;
    RepositoryId id;
    RepositoryId defined_in;
    VersionSpec version;
    TypeCode type;
    IDLType type_def;
    Visibility access;
  };

  typedef sequence <ValueMember> ValueMemberSeq;

  interface ValueMemberDef : Contained 
  {
    readonly attribute TypeCode type;
    attribute IDLType type_def;
    attribute Visibility access;
  };

  interface ValueDef : Container, 
		       Contained, 
		       IDLType 
  {
    // read/write interface
    attribute InterfaceDefSeq supported_interfaces;
    attribute InitializerSeq initializers;
    attribute ValueDef base_value;
    attribute ValueDefSeq abstract_base_values;
    // read interface
    attribute boolean is_abstract;
    attribute boolean is_custom;
    attribute boolean is_truncatable;
    boolean is_a (
        in RepositoryId id
      );

    struct FullValueDescription 
    {
      Identifier name;
      RepositoryId id;
      boolean is_abstract;
      boolean is_custom;
      RepositoryId defined_in;
      VersionSpec version;
      OpDescriptionSeq operations;
      AttrDescriptionSeq attributes;
      ValueMemberSeq members;
      InitializerSeq initializers;
      RepositoryIdSeq supported_interfaces;
      RepositoryIdSeq abstract_base_values;
      boolean is_truncatable;
      RepositoryId base_value;
      TypeCode type;
    };

    FullValueDescription describe_value ();
      
    ValueMemberDef create_value_member  (
        in RepositoryId id,
        in Identifier name,
        in VersionSpec version,
        in IDLType type,
        in Visibility access
      );
    AttributeDef create_attribute (
        in RepositoryId id,
        in Identifier name,
        in VersionSpec version,
        in IDLType type,
        in AttributeMode mode
      );
    OperationDef create_operation (
        in RepositoryId id,
        in Identifier name,
        in VersionSpec version,
        in IDLType result,
        in OperationMode mode,
        in ParDescriptionSeq params,
        in ExceptionDefSeq exceptions,
        in ContextIdSeq contexts
      );
  };

  struct ValueDescription 
  {
    Identifier name;
    RepositoryId id;
    boolean is_abstract;
    boolean is_custom;
    RepositoryId defined_in;
    VersionSpec version;
    RepositoryIdSeq supported_interfaces;
    RepositoryIdSeq abstract_base_values;
    boolean is_truncatable;
    RepositoryId base_value;
  };

  interface ExtValueDef : ValueDef 
  {
    // read/write interface
    attribute ExtInitializerSeq ext_initializers;

    // read interface
    struct ExtFullValueDescription 
    {
      Identifier name;
      RepositoryId id;
      boolean is_abstract;
      boolean is_custom;
      RepositoryId defined_in;
      VersionSpec version;
      OpDescriptionSeq operations;
      ExtAttrDescriptionSeq attributes;
      ValueMemberSeq members;
      ExtInitializerSeq initializers;
      RepositoryIdSeq supported_interfaces;
      RepositoryIdSeq abstract_base_values;
      boolean is_truncatable;
      RepositoryId base_value;
      TypeCode type;
    };

    ExtFullValueDescription describe_ext_value ();

    // write interface
    ExtAttributeDef create_ext_attribute (
	in RepositoryId id,
	in Identifier name,
	in VersionSpec version,
	in IDLType type,
	in AttributeMode mode,
	in ExceptionDefSeq get_exceptions,
	in ExceptionDefSeq set_exceptions
      );
  };

  interface ValueBoxDef : TypedefDef 
  {
    attribute IDLType original_type_def;
  };
};

#endif /* _IFR_EXTENDED_IDL_ */

⌨️ 快捷键说明

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