Interstage Application Server リファレンスマニュアル(API編)
目次 索引 前ページ次ページ

第2章 C++言語インタフェース> 2.14 インタフェースリポジトリクラス

2.14.1 型の定義

形式

class CORBA
{
  typedef CORBA::String_var  Identifier;        /* 識別名 */
  typedef CORBA::String_var  ScopedName;        /* スコープ名 */
  typedef CORBA::String_var  RepositoryId;      /* グローバル名 */

  enum  DefinitionKind {                /* オブジェクト種別 */
        dk_none, dk _all,
        dk_Attribute, dk_Constant, dk_Exception, dk_Interface,
        dk_Module, dk_Operation, dk_Typedef,
        dk_Alias, dk_Struct, dk_Union, dk_Enum,
        dk_Primitive, dk_String, dk_Sequence, dk_Array,
        dk_Repository, dk_Wstring
  } ;
  typedef CORBA::Stringvar  VersionSpec;        /* バージョン情報 */

  typedef CORBA::Object_ptr  IRObject;          /* IRObjectのオブジェクトリファレンス */
  typedef CORBA::Object_ptr  Contained;         /* Contained オブジェクトリファレンス */
  typedef CORBA::Object_ptr  Container;         /* Container オブジェクトリファレンス */
  typedef CORBA::Object_ptr  IDLType;           /* IDLType オブジェクトリファレンス */
  typedef CORBA::Object_ptr  Repository;        /* Repositoryオブジェクトリファレンス */
  typedef CORBA::Object_ptr  ModuleDef;         /* ModuleDef オブジェクトリファレンス */
  typedef CORBA::Object_ptr  ConstantDef;       /* ConstantDef オブジェクトリファレンス */
  typedef CORBA::Object_ptr  TypedefDef;        /* TypedefDefオブジェクトリファレンス */
  typedef CORBA::Object_ptr  StructDef;         /* StructDef オブジェクトリファレンス */
  typedef CORBA::Object_ptr  UnionDef;          /* UnionDefオブジェクトリファレンス */
  typedef CORBA::Object_ptr  EnumDef;           /* EnumDef オブジェクトリファレンス */
  typedef CORBA::Object_ptr  AliasDef;          /* AliasDefオブジェクトリファレンス */
  typedef CORBA::Object_ptr  PrimitiveDef;      /* PrimitiveDefオブジェクトリファレンス */
  typedef CORBA::Object_ptr  StringDef;         /* StringDef オブジェクトリファレンス */
  typedef CORBA::Object_ptr  SequenceDef;       /* SequenceDef オブジェクトリファレンス */
  typedef CORBA::Object_ptr  ArrayDef;          /* ArrayDefオブジェクトリファレンス */
  typedef CORBA::Object_ptr  ExceptionDef;      /* ExceptionDefオブジェクトリファレンス */
  typedef CORBA::Object_ptr  AttributeDef;      /* AttributeDefオブジェクトリファレンス */
  typedef CORBA::Object_ptr  OperationDef;      /* OperationDefオブジェクトリファレンス */
  typedef CORBA::Object_ptr  InterfaceDef;      /* InterfaceDefオブジェクトリファレンス */
  typedef CORBA::Object_ptr  WstringDef;        /* WstringDefオブジェクトリファレンス */

  typedef struct {              /* オブジェクト情報構造体 */
        CORBA::DefinitionKind  kind;    /* オブジェクト種別 */
        CORBA::Any  value;              /* オブジェクト別情報 */
  } Description;

  typedef struct {
        ULong  _maximum;
        ULong  _length;
        CORBA::Description  *_buffer;
  } DescriptionSeq;   /* Description 構造体のsequence */

class ContainedSeq { public: ContainedSeq(); ContainedSeq( ULong max ); ContainedSeq( ULong max, ULong length, CORBA::Contained_ptr *value, Boolean release = FALSE ); ~ContainedSeq(); private: ULong _maximum; ULong _length; CORBA::Contained_ptr *_buffer; }; /* Contained オブジェクトリファレンスのsequence */
  typedef struct {              /* 構造体メンバ構造体 */
        CORBA::Identifer  name;         /* 識別名 */
        CORBA::TypeCode_ptr  type;      /* タイプコード */
        CORBA::IDLType_ptr  type_def;   /* メンバのオブジェクトリファレンス */
  } StructMember;

  class  StructMemberSeq
  {
  public:
  StructMemberSeq();
  StructMemberSeq( ULong max );
  StructMemberSeq(
      ULong  max,
      ULong  length,
      CORBA::StructMember  *value,
      Boolean release = FALSE
  );
  ~StructMemberSeq();

  private:
  ULong _maximum;
  ULong _length;
  CORBA::StructMember *_buffer;
  };                    /* 構造体メンバ構造体のsequence */
  typedef struct {              /* union メンバ構造体 */
        CORBA::Identifer  name;         /* 識別名 */
        CORBA::Any  label;              /* 弁別値 */
        CORBA::TypeCode_ptr  type;      /* タイプコード */
        CORBA::IDLType_ptr  type_def;   /* メンバのオブジェクトリファレンス */
  } UnionMember;

  class  UnionMemberSeq
  {
  public:
  UnionMemberSeq();
  UnionMemberSeq( ULong max );
  UnionMemberSeq(
      ULong  max,
      ULong  length,
      CORBA::UnionMember  *value,
      Boolean release = FALSE
  );
  ~UnionMemberSeq();

  private:
  ULong _maximum;
  ULong _length;
  CORBA::UnionMember *_buffer;
  };                    /* unionメンバ構造体のsequence */
  class  EnumMemberSeq
  {
  public:
  EnumMemberSeq();
  EnumMemberSeq( ULong max );
  EnumMemberSeq(
      ULong  max,
      ULong  length,
      CORBA::Identifier  *value,
      Boolean release = FALSE
  );
  ~EnumMemberSeq();

  private:
  ULong  _maximum;
  ULong  _length;
  CORBA::Identifier  *_buffer;
  } ;                   /* Enum メンバのsequence */

  enum PrimitiveKind {
          pk_null, pk_void, pk_short, pk_long, pk_ushort, pk_ulong,
          pk_float, pk_double, pk_boolean, pk_char, pk_octet,
          pk_any, pk_TypeCode, pk_Principal, pk_string, pk_objref,
          pk_longlong, pk_ulonglong, pk_longdouble, pk_wchar,
          pk_wstring
  };
  enum  AttributeMode { ATTR_NORMAL, ATTR _READONLY } ; /* Atributeの属性種別 */
  typedef  struct {             /* AttributeDef情報構造体 */
        CORBA::Identifer  name;           /* 識別名 */
        CORBA::RepositoryId  id;          /* グローバル名 */
        CORBA::RepositoryId  defined_in;  /* 親オブジェクトのグローバル名 */
        CORBA::VersionSpec  version;      /* バージョン情報 */
        CORBA::TypeCode_ptr  type;        /* タイプコード */
        CORBA::AttributeMode  mode;       /* 属性 */
  } AttributeDescription;

  enum  OperationMode { OP_NORMAL, OP_ONEWAY };               /* Operationの属性種別 */
  enum  ParameterMode { PARAM_IN, PARAM_OUT, PARAM_INOUT};    /* Parameter の属性種別 */

  typedef  struct {             /* パラメタ情報構造体 */
        CORBA::Identifer  name;         /* 識別名 */
        CORBA::TypeCode_ptr  type;      /* タイプコード */
        CORBA::ParameterMode  mode;     /* 属性 */
  } ParameterDescription;

  class  ParDescriptionSeq
  {
  public:
  ParDescriptionSeq();
  ParDescriptionSeq( ULong max );
  ParDescriptionSeq(
      ULong  max,
      ULong  length,
      CORBA::ParameterDescription  *value,
      Boolean release = FALSE
  );
  ~ParDescriptionSeq();

  private:
  ULong  _maximum;
  ULong  _length;
  CORBA::ParameterDescription  *_buffer;
  };                    /* パラメタ情報構造体のsequence */
  typedef CORBA::String_var  ContextIdentifier;

  class  ContextIdSeq
  {
  public:
  ContextIdSeq();
  ContextIdSeq( ULong max );
  ContextIdSeq(
      ULong  max,
      ULong  length,
      CORBA::ContextIdentifier  *value,
      Boolean release = FALSE
  );
  ~ContextIdSeq();

  private:
  ULong  _maximum;
  ULong  _length;
  CORBA::ContextIdentifier  *_buffer;
  };                    /* ContextIdentifierのsequence */
  class ExceptionDefSeq
  {
  public:
  ExceptionDefSeq();
  ExceptionDefSeq( ULong max );
  ExceptionDefSeq(
  ULong  max,
  ULong  length,
  CORBA::ExceptionDef_ptr  *value,
  Boolean release = FALSE
  );
  ~ExceptionDefSeq();

  private:
  ULong  _maximum;
  ULong  _length;
  CORBA::ExceptionDef_ptr  *_buffer;
  };                    /* ExceptionDefオブジェクトリファレンスのsequence */

  class ExcDescriptionSeq
  {
  public:
  ExcDescriptionSeq();
  ExcDescriptionSeq( ULong max );
  ExcDescriptionSeq(
      ULong  max,
      ULong  length,
      CORBA::ExceptionDescription  *value,
      Boolean  release = FALSE
  );
  ~ExcDescriptionSeq();

  private:
  ULong  _maximum;
  ULong  _length;
  CORBA::ExceptionDescription  *_buffer;
  };                    /* ExceptionDef情報構造体のsequence */
  typedef struct {              /* ExceptionDef情報構造体 */
        CORBA::Identifer  name;                 /* 識別名 */
        CORBA::RepositoryId  id;                /* グローバル名 */
        CORBA::RepositoryId  defined_in;        /* 親オブジェクトのグローバル名 */
        CORBA::VersionSpec version;             /* バージョン情報 */
        CORBA::TypeCode_ptr  type;              /* タイプコード */
        CORBA::OperationMode  mode;             /* 属性 */
        CORBA::ContextIdSeq  contexts;          /* コンテキスト */
        CORBA::ParDescriptionSeq  parameters;   /* パラメタ情報 */
        CORBA::ExcDescriptionSeq  exceptions;   /* 例外情報 */
  } OperationDescription;

  class OpDescriptionSeq
  {
  public:
  OpDescriptionSeq();
  OpDescriptionSeq( ULong max );
  OpDescriptionSeq(
      ULong  max,
      ULong  length,
      CORBA::OperationDescription  *value,
      Boolean  release = FALSE
  );
  ~OpDescriptionSeq();

  private:
  ULong  _maximum;
  ULong  _length;
  CORBA::OperationDescription  *_buffer;
  };                    /* OperationDef情報構造体のsequence */
  class AttrDescriptionSeq
  {
  public:
  AttrDescriptionSeq();
  AttrDescriptionSeq( ULong max );
  AttrDescriptionSeq(
      ULong  max,
      ULong  length,
      CORBA::AttributeDescription  *value,
      Boolean  release = FALSE
  );
  ~AttrDescriptionSeq();

  private:
  ULong  _maximum;
  ULong  _length;
  CORBA::AttributeDescription  *_buffer;
  };

  typedef struct {
        CORBA_long  _maximum;
        CORBA_long  _length;
        CORBA_Description  *_buffer;
  } CORBA_AttrDescriptionSeq;           /* AttributeDef情報 構造体のsequence */

  typedef struct {              /* インタフェース情報構造体 */
        CORBA::Identifer  name;                 /* 識別名 */
        CORBA::RepositoryId  id;                /* グローバル名 */
        CORBA::RepositoryId  defined_in;        /* 親オブジェクトのグローバル名 */
        CORBA::VersionSpec  version;            /* バージョン情報 */
        CORBA::OpDescriptionSeq  operations;    /* オペレーション情報 */
        CORBA::AttrDescriptionSeq  attributes;  /* アトリビュート情報 */
        CORBA::RepositoryIdSeq base_interfaces; /* 継承情報 */
        CORBA::TypeCode_ptr  type;              /* タイプコード */
  } FullInterfaceDescription;

目次 索引 前ページ次ページ

All Rights Reserved, Copyright(C) 富士通株式会社 2005