[ 前へ | 目次 | 次へ ]

プラグイン

ここでは、VCSSL処理系の機能を拡張するための方法である、プラグインの接続について扱います。

プラグインとは

プラグインとは、VCSSLだけでは実現できないような、 独自の機能を提供するための部品的なソフトウェアです。 また、VCSSLから、他の言語で記述された処理を呼ぶためにも使用します。 例を挙げるなら、本書で扱ったファイル入出力関数なども、 VCSSLの処理系に標準で接続されたファイル入出力プラグインが処理しています (それが標準ライブラリ「System」によりラッピングされています)。 プラグインが独自にサポートする関数の事を、そのプラグインのプラグイン関数と呼びます。

一般に、プラグインはVCSSL以外の言語で開発されたプログラムです。 プラグインがどのような言語で開発され、またVCSSL処理系との間でどのような通信形態を採用しているかは、 処理系によって異なります。従って、プラグインを接続するには、 使用している処理系に対応したプラグインを用意する必要があります。

プラグインを接続するには

プラグインをシステムに接続するには、プログラムの先頭領域でconnect宣言を行います:

connect プラグインパス ;

プラグインパスは、ライブラリのインポートと同様に、実行モジュールからの相対パスを、 ドット記号「.」区切りで指定します。プラグインのファイルが実行モジュールと同じ場所(フォルダ内)に存在する時は、 プラグインのファイル名を記述するだけで使用できます。

例えば実行モジュールと同じフォルダ内にある「 conn 」プラグインを使用するなら:

connect conn ;

これで、connがサポートするプラグイン関数を用いて、 connが提供する機能を使用する事ができるようになります。 また、実行モジュールから見て、「aaa」フォルダ内の、さらに「bbb」フォルダ内にある「 conn 」を使用するなら:

connect aaa.bbb.ccc ;

とします。なお、プラグインは、実行モジュールと同じ場所に配置するのでは無く、 処理系によって指定された場所に置く場合もあります。

プラグイン関数のラッピング

プラグインの機能を利用するプログラム内において、 (標準のもの以外の)プラグイン関数を直接的にコールする事は推奨されません。 なぜなら、プラグインはオペレーティングシステムなどの環境への依存性が強く、 さらにプラグイン関数は個々のプラグイン独自の仕様を持つため、 結果としてプラグイン関数を直接コールしているようなプログラムは、 特定の動作環境に強く依存するものになってしてしまうからです。

例えば、接続しているプラグインを、 同じような機能を提供する別のものに切り替えようと思った場合にはどうなるでしょう。 この場合、プログラム内のプラグイン関数コール部分をすべて書き換えなくてはいけなくなってしまいます。 そして、プラグインは特定のオペレーティングシステムなどの環境に依存し易い存在であるため、 環境ごとにプラグインを切り替えなければいけなくなる可能性は大いに考えられます。

このような特定のプラグインへの依存を回避するための方法が、プラグイン関数のラッピングです。 プラグイン関数のラッピングとは、プラグイン関数をコールするだけの関数を用意するという手法です。 この関数をラッパー関数と呼びます。そしてプログラム内では、 プラグイン関数を直接コールするのではなく、代わりにラッパー関数の方をコールします。 つまり、プラグイン関数をVCSSLの関数でまるごと包んでしまうわけです。

このようにしておけば、プラグインを別のものに交換する際、ラッパー関数の中身を書き換えるだけで済みます。 ラッパー関数をライブラリにまとめておけば、そのライブラリ1枚を書き換えるだけで済み、 従ってプラグインの機能を利用している大量のプログラムを書き直す必要は無くなります。 このようにして、特定のプラグインへの依存を回避する事が可能になります。



スポンサーリンク



この階層の目次
お知らせ

各ソフトウェアをアップデート、リニアングラフのコマンド拡張やVCSSLの英語対応など
2024/02/05 - 各ソフトの一斉アップデートの内容をお知らせします。今回は、リニアングラフのコマンド機能を大幅拡張したのがメインです。また、VCSSLのメッセージ類の英語対応も行いました。

Vnano の Ver.1.1 で実装した反復計算高速化の内側
2024/01/17 - 前回のお知らせ記事の続編です。スクリプトエンジン Vnano の Ver.1.1 において実施した高速化を、エンジン内部の実装面から掘り下げて解説します。

スクリプトエンジン Vnano の Ver.1.1 を公開、同じ内容の反復実行が劇的に高速化
2023/12/22 - スクリプトエンジン Vnano の最新版を公開しました。同じ計算式やスクリプトを反復実行する速さが、大幅に向上しました。次期版リニアングラフ3D内での活用例を交えつつ、詳しく解説します。

新着
[公式ガイドサンプル] 各種の図形や画像を描画する

「VCSSL 2DCG開発ガイド」内のサンプルコードです。図形や画像などを描画します。
2022-12-16
角度の「度」とラジアンとを相互変換し、図示もするツール

45度などの「度」の値と、ラジアンの値とを相互に変換できるツールです。対応する角度の図示もできます。
2022-11-22
[公式ガイドサンプル] 立体モデルを回転させるアニメーション

「VCSSL 3DCG開発ガイド」内のサンプルコードです。立体モデルを、アニメーションで回転させ続けます
2022-11-18
[公式ガイドサンプル] 立体モデルを回転させる

「VCSSL 3DCG開発ガイド」内のサンプルコードです。立体モデルを、指定した角度だけ回転させます。
2022-11-17
[公式ガイドサンプル] 四則演算の計算順序や、カッコを使った順序指定

「VCSSLスタートアップガイド」内のサンプルコードです。四則演算が計算される順序や、カッコを使って順序を指定する方法を例示します。
2022-10-31