Interstage Application Server アプリケーション作成ガイド (CORBAサービス編) |
目次
索引
![]() ![]() |
付録A IDL定義 | > A.1 IDLの書式 |
IDLのプリプロセスは、ANSI C++のプリプロセスに基づいて、以下の機能を持ちます。
#で始まる行はプリプロセスへの情報を指定します。#の前にスペースがあってもかまいません。この行はシンタックス上その他のIDLと独立しており、IDL上のどこに指定してもかまいません。ソースファイルの中で、改行の直前にあるバックスラッシュ(\)は次の行に続くことを表します。バックスラッシュをソースファイルの最後の文字とすることはできません。
プラグマは、RepositoryIDを変更する機能です。プラグマには、以下の3パターンが指定できます。
形式
#pragma ID <name> "<id>"
機能
<name>で指定されたオブジェクトのRepositoryIDを<id>と置き換えます。
<name>は、対象とするオブジェクトの識別子であり、スコープ名で指定することができます。
形式
#pragma prefix "<string>"
機能
宣言されたPREFIXプラグマは、現在のスコープの端に達するか、または別のPREFIXプラグマに遭遇するまで、生成されるRepositoryIDのPREFIXとして<string>を設定します。
<string>は、任意の文字列です。
形式
#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
目次
索引
![]() ![]() |