Interstage Application Server アプリケーション作成ガイド (CORBAサービス編) |
目次
索引
![]() ![]() |
第11章 CORBAアプリケーションの高度な使い方 | > 11.4 ライブラリの作成方法 |
サーバのメソッド部をIDLファイルのインタフェース定義単位で分割し、ライブラリ化する場合、以下の点に注意してください。
1つのモジュール内に1つのインタフェースが定義されている場合を例に説明します。
[ X.idl ] module M { interface I1 { ... }; };
IDLファイルをコンパイルしてスタブ・スケルトンを生成する場合、以下のオプション指定が必要です。
IDLc -dy X.idl /* C言語の場合 */ IDLc -dy -cpp X.idl /* C++言語の場合 */
-dyオプションを指定することで、IDLファイルに定義されたインタフェースごとにスケルトンを生成します。ライブラリは、生成されたスケルトンファイルごとに作成します。
IDLファイルから生成されたスケルトンをコンパイルして*.oファイルを作成した後、Cコンパイラのライブラリ作成オプション(-G等)を指定することで、ライブラリを作成します。
cc -I$OD_HOME/include -D_REENTRANT -DNeedFunctionPrototypes -lsocket -lnsl -lthread -L$OD_HOME/lib -lOM -o X_M_I1_skel.o -c X_M_I1_skel.c cc -G -Kpic -I$OD_HOME/include -D_REENTRANT -DNeedFunctionPrototypes -lsocket -lnsl -lthread -L$OD_HOME/lib -lOM -o libM_I1.so X_M_I1_skel.o |
gcc -I$OD_HOME/include -D_REENTRANT -DNeedFunctionPrototypes -Wl -E -lnsl -lpthread -L$OD_HOME/lib -lOM -o X_M_I1_skel.o -c X_M_I1_skel.c gcc -shared -fPIC -I$OD_HOME/include -D_REENTRANT -DNeedFunctionPrototypes -Wl -E -lnsl -lpthread -L$OD_HOME/lib -lOM -o libM_I1.so X_M_I1_skel.o |
IDLファイルから作成したライブラリをOD_impl_instコマンドの定義ファイルで指定します。
OD_impl_inst -ax X_def (X_def:定義ファイル)
定義ファイルX_defには、IDL:M/I1:1.0 = /user/libM_I1.soの記述を行うことで実際にクライアントからの要求時に/user/libM_I1.soが読み込まれサーバメソッドの呼出しが行われます。
継承機能を使用する場合、OD_impl_instコマンドの定義ファイルに以下の指定を行います。
モジュール名:M, インタフェース名:I1, 継承名:I2の場合
IDL:M/I1:1.0 = /user/lib/libM_I1.so |
目次
索引
![]() ![]() |