[ 前へ | 目次 | 次へ ]

プラグイン

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

プラグインとは

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

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

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

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

connect プラグインパス ;

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

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

connect conn ;

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

connect aaa.bbb.ccc ;

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

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

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

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

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

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



スポンサーリンク



この階層の目次
お知らせ

コードアーカイブでVnano製プログラムの配信を開始
2020年12月20日 - ソフト内組み込み用のスクリプトエンジン/言語「 Vnano 」のサンプルコードやコンテンツ充実を兼ねて、Vnano 製プログラムの配信を、コードアーカイブにて開始しました。概要と初回配信リストをご紹介します。

リニアングラフ3DやVCSSLなどの各ソフトウェア最新版をリリース
2020年09月21日 - 諸事情によりお知らせが遅くなってしまいましたが、RINEARNでは先月(8月)中旬に、リニアングラフ3DやVCSSLなど、各ソフトウェアの最新版をリリースしました。主な更新内容をリストアップしてお知らせいたします。

新年のご挨拶
2020年01月14日 - 遅ればせながら、新年のご挨拶を申し上げます。本年もRINEARNをどうぞよろしくお願い申し上げます。

新着
Vnano対応 | 積分値のグラフ描画用データを出力するプログラム

数値的に積分を行い、結果の関数をグラフに描くためのデータを出力するコードです。
2020年12月20日
Vnano対応 | 積分値を求めるプログラム (数値積分)

矩形法/台形法/シンプソン法を用いて、積分の値を数値的に求めるコードです。
2020年12月20日
3Dグラフを回転アニメーションさせるツール

3Dグラフを、Z軸まわりにゆっくりと回転アニメーションさせるツールです。全角度のグラフを、連番の画像ファイルに保存する事もできます。
2019年10月09日
[公式ガイドサンプル] ユーザーのGUI操作に対して処理を行う

「VCSSL GUI開発ガイド」内のサンプルコードです。ユーザーがGUIを操作した際に行う処理を実装します。
2019年07月28日
[公式ガイドサンプル] 各種GUIコンポーネントを画面上に配置する

「VCSSL GUI開発ガイド」内のサンプルコードです。色々な種類のGUI部品を画面上に配置します。
2019年07月28日
開発元Twitterアカウント