Interstage Application Server アプリケーション作成ガイド (CORBAサービス編)
目次 索引 前ページ次ページ

付録A IDL定義> A.1 IDLの書式

A.1.7 プリプロセス

 IDLのプリプロセスは、ANSI C++のプリプロセスに基づいて、以下の機能を持ちます。

 #で始まる行はプリプロセスへの情報を指定します。#の前にスペースがあってもかまいません。この行はシンタックス上その他のIDLと独立しており、IDL上のどこに指定してもかまいません。ソースファイルの中で、改行の直前にあるバックスラッシュ(\)は次の行に続くことを表します。バックスラッシュをソースファイルの最後の文字とすることはできません。

(1)プラグ(#pragma)

 プラグマは、RepositoryIDを変更する機能です。プラグマには、以下の3パターンが指定できます。

IDプラグマ

形式

 #pragma ID <name> "<id>"

機能

 <name>で指定されたオブジェクトのRepositoryIDを<id>と置き換えます。
 <name>は、対象とするオブジェクトの識別子であり、スコープ名で指定することができます。

PREFIXプラグマ

形式

 #pragma prefix "<string>"

機能

 宣言されたPREFIXプラグマは、現在のスコープの端に達するか、または別のPREFIXプラグマに遭遇するまで、生成されるRepositoryIDのPREFIXとして<string>を設定します。
 <string>は、任意の文字列です。

VERSIONプラグマ

形式

 #pragma version <name> <major>.<minor>

機能

 <name>で指定されたRepositoryIDのバージョンを<major>.<minor>のVERSIONに置き換えます。
 <name>は、対象とするオブジェクトの識別子であり、スコープ名で指定します。<major>と<minor>は、正数を指定します。

 プラグマを用いたRepositoryIDの変更例を以下に示します。

  module  M1{
      typedef long T1; 
      typedef long T2; 
      #pragma ID T2 "IDL:M1/T2_long:1.0"
  };

  #pragma prefix "P1"

  module  M2{
      module  M3{
          #pragma prefix "P2"
          typedef long T3; 
      };
      typedef long T4; 
      #pragma version T4 2.4
  };

 スコープされた名前とRepositoryIDを以下に示します。

  ::M1::T1           IDL:M1/T1:1.0
  ::M1::T2           IDL:M1/T2_long:1.0
  ::M2::M3::T3       IDL:P2/T3:1.0
  ::M2::T4           IDL:P1/M2/T4:2.4

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

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