次へ: 教師クラスサブライブラリ
上へ: MACAOライブラリ
戻る: MACAOライブラリ(本体)
  目次
Subsections
MACAOライブラリで提供されるパラメータクラスは、そのテンプレートとなる
抽象クラスが MacaoParam (param.hおよびparam.c)として用意されている。
その実体を定義する各サブクラスは、パラメータサブライブラ
リとして別途用意される(エンドユーザに対しては、libmacao.aまたは
libmacao.soとして、まとめられたインタフェースを提供する)。
本節では、パラメータクラスにおける個々の具象クラスを定義する各サブクラス
について、説明する。
パラメータクラスの実体を定義する具象クラスである。
MacaoParamを継承する。
本パラメータクラスは、ブーリアン型(真偽値型)のパラメータを扱う。
ヘッダファイル bool.h では、MacaoPbool に関するマクロ定義、
構造体の定義、それらに関する型定義、およびソースファイル
bool.c で定義され外部に公開される関数のプロトタイプ宣言が記述される。
本ファイルで定義されるマクロ定義の詳細を以下に示す。
パラメータの値にエラーが
生じた場合(``TRUE''、``FALSE''以外の文字列が指定された場合)の
エラーメッセージ文字列である。
本ファイルで定義される構造体の詳細を以下に示す。
ブーリアン型のパラメータを扱う
パラメータクラスのバーチャル関数テーブルである。
MacaoPboolはMacaoParamを継承する。
本クラスで新たに追加されるバーチャル関数は存在しない。
- MacaoParamClass super
- 親クラスの内容を継承する。
ブーリアン型のパラメータを扱う
パラメータクラスの本体を定義する構造体である。
- MacaoParam super
- 親クラスの内容を継承する。
- int bool_value
- 真偽値の値。TRUEあるいはFALSEのいずれかをとる。
MacaoPboolの各機能を実現する関数群は、ソースファイルbool.cで記述
される。
本ファイルで定義される関数の詳細を以下に示す。
- 引数
- 本関数は以下の引数をとる。
- MacaoTrack* track
- このパラメータオブジェクトの所有者である
MacaoTrackオブジェクトへのポインタ。
- unsigned char* name
- パラメータ名を表す文字列へのポインタ。
- int init
- 設定する真偽値の初期値。
- 返値
- 生成されたMacaoPboolオブジェクトへのポインタを返す。
- 概要
- MacaoPboolのコンストラクタである。
メモリ領域の確保、値の初期化、バーチャル関数テーブルの設定
などを行なう。
- 引数
- 本関数は以下の引数をとる。
- MacaoPbool* pbool
- 対象とするMacaoPboolオブジェクトへのポインタ。
- int new_value
- 設定する新しいパラメータ値。
- 返値
- なし。
- 概要
- パラメータを更新する関数である。自らの保持するパラメータ値
を引数で指定する値に設定したのち、所有者であるMacaoTrackオ
ブジェクトにパラメータの更新を通知する。
- 引数
- 本関数は以下の引数をとる。
- MacaoPbool* pbool
- 対象とするMacaoPboolオブジェクトへのポインタ。
- 返値
- 現在保持しているパラメータの値。
- 概要
- パラメータの値を取得する。
- 引数
- 本関数は以下の引数をとる。
- MacaoPbool* pbool
- 対象とするMacaoPboolオブジェクトへのポインタ。
- int bool_value
- 設定するパラメータ値。
- 返値
- なし。
- 概要
- パラメータの値を設定する。
- 引数
- 本関数は以下の引数をとる。
- MacaoParam* param
- 対象とするMacaoParamオブジェクト(実体はMacaoPbool)へのポインタ。
- FILE* fp
- 書き出し対象のファイルを示すファイル構造体へのポインタ。
本関数呼び出し前に、書き出しモードでオープンしておく必要がある。
- 返値
- 処理に成功すればTRUE、問題が生じた場合にはFALSEを返す。
- 概要
- パラメータ値設定ファイルへパラメータの値の書き出しを行なう。
- 引数
- 本関数は以下の引数をとる。
- MacaoParam* param
- 対象とするMacaoParamオブジェクト(実体はMacaoPbool)へのポインタ。
- FILE* fp
- 読み込み対象のファイルを示すファイル構造体へのポインタ。
本関数呼び出し前に、読み込みモードでオープンしておく必要がある。
- 返値
- 処理に成功すればTRUE、問題が生じた場合にはFALSEを返す。
- 概要
- パラメータ値設定ファイルからパラメータの値の読み込みを行なう。
パラメータクラスの実体を定義する具象クラスである。
MacaoParamを継承する。
本パラメータクラスは、実数(double)型の数値パラメータを扱う。
取扱う数値そのものを実数型で保持する他、値が取り得る範囲を設定することが
可能である。
ヘッダファイル double.h では、MacaoPdouble に関する
構造体の定義、それらに関する型定義、およびソースファイル
double.c で定義され外部に公開される関数のプロトタイプ宣言が記述される。
本ファイルで定義される構造体の詳細を以下に示す。
実数(double)型の数値パラメータを扱う
パラメータクラスのバーチャル関数テーブルである。
MacaoPdoubleはMacaoParamを継承する。
本クラスで新たに追加されるバーチャル関数は存在しない。
- MacaoParamClass super
- 親クラスの内容を継承する。
実数(double)型の数値パラメータを扱う
パラメータクラスの本体を定義する構造体である。
- MacaoParam super
- 親クラスの内容を継承する。
- double double_value
- パラメータの値そのものを示す。
- int range
- 範囲を取るか否かを示す。
- double min, max
- 範囲を取る場合、最小値と最大値を格納する。
MacaoPdoubleの各機能を実現する関数群は、ソースファイルdouble.cで記述
される。
本ファイルで定義される関数の詳細を以下に示す。
- 引数
- 本関数は以下の引数をとる。
- MacaoTrack* track
- このパラメータオブジェクトの所有者である
MacaoTrackオブジェクトへのポインタ。
- unsigned char* name
- パラメータ名を表す文字列へのポインタ。
- double init
- 設定する実数値の初期値。
- 返値
- 生成されたMacaoPdoubleオブジェクトへのポインタを返す。
- 概要
- MacaoPdoubleのコンストラクタである。
メモリ領域の確保、値の初期化、バーチャル関数テーブルの設定
などを行なう。
- 引数
- 本関数は以下の引数をとる。
- MacaoPdouble* pdouble
- 対象とするMacaoPdoubleオブジェクトへのポインタ。
- double new_value
- 設定する新しいパラメータ値。
- 返値
- なし。
- 概要
- パラメータを更新する関数である。自らの保持するパラメータ値
を引数で指定する値に設定したのち、所有者であるMacaoTrackオ
ブジェクトにパラメータの更新を通知する。
- 引数
- 本関数は以下の引数をとる。
- MacaoPdouble* pdouble
- 対象とするMacaoPdoubleオブジェクトへのポインタ。
- 返値
- 現在保持しているパラメータの値。
- 概要
- パラメータの値を取得する。
- 引数
- 本関数は以下の引数をとる。
- MacaoPdouble* pdouble
- 対象とするMacaoPdoubleオブジェクトへのポインタ。
- double double_value
- 設定するパラメータ値。
- 返値
- なし。
- 概要
- パラメータの値を設定する。
- 引数
- 本関数は以下の引数をとる。
- MacaoPdouble* pdouble
- 対象とするMacaoPdoubleオブジェクトへのポインタ。
- double min
- パラメータの値の取る範囲の最小値。
- double max
- パラメータの値の取る範囲の最大値。
- 返値
- なし。
- 概要
- パラメータの値の取る範囲を設定する。
- 引数
- 本関数は以下の引数をとる。
- MacaoPdouble* pdouble
- 対象とするMacaoPdoubleオブジェクトへのポインタ。
- double double_value
- 設定されている範囲に含まれているかを判定
する値。
- 返値
- 範囲内であればTRUE、範囲外である場合にはFALSEを返す。
- 概要
- 引数で与える値が、あらかじめ設定されている値の範囲に含まれ
ているか否かを判定する。
- 引数
- 本関数は以下の引数をとる。
- MacaoParam* param
- 対象とするMacaoParamオブジェクト(実体はMacaoPdouble)へのポインタ。
- FILE* fp
- 書き出し対象のファイルを示すファイル構造体へのポインタ。
本関数呼び出し前に、書き出しモードでオープンしておく必要がある。
- 返値
- 処理に成功すればTRUE、問題が生じた場合にはFALSEを返す。
- 概要
- パラメータ値設定ファイルへパラメータの値の書き出しを行なう。
- 引数
- 本関数は以下の引数をとる。
- MacaoParam* param
- 対象とするMacaoParamオブジェクト(実体はMacaoPdouble)へのポインタ。
- FILE* fp
- 読み込み対象のファイルを示すファイル構造体へのポインタ。
本関数呼び出し前に、読み込みモードでオープンしておく必要がある。
- 返値
- 処理に成功すればTRUE、問題が生じた場合にはFALSEを返す。
- 概要
- パラメータ値設定ファイルからパラメータの値の読み込みを行なう。
パラメータクラスの実体を定義する具象クラスである。
MacaoParamを継承する。
本パラメータクラスは、ファイル型のパラメータを扱う。
パラメータの値として指定されるファイルの情報を保持する他、
指定されるファイルを対象として読み書きを行なうための関数ポインタ
を保持する。
本来は読み書きを行なう関数は個別のバーチャル関数として用意し、
サブクラスを生成してファイルパラメータクラスを個々に拡張することが
考えられる。ただしこの方法ではクラスの爆発を招く恐れがあり、また
仕様上オーバスペックと考えられるため、関数ポインタを直にクラスメンバ
として持つ本方式を採用することにより、個々のオブジェクトに対する
動的な振る舞いの拡張を実現することとした。
ヘッダファイル file.h では、MacaoPfile に関するマクロ定義、
構造体の定義、それらに関する型定義、およびソースファイル
file.c で定義され外部に公開される関数のプロトタイプ宣言が記述される。
本ファイルで定義されるマクロ定義の詳細を以下に示す。
データファ
イルをオープンできない場合のエラーメッセージ文字列である。
データファ
イルが書き込み不能の場合のエラーメッセージ文字列である。
データファ
イルを読み取り不能の場合のエラーメッセージ文字列である。
データの書き込みが実
行できたことを示すログ文字列である。
データの読み出しが実
行できたことを示すログ文字列である。
データ書き込み関数の
間接呼び出しをバーチャル関数形式に表現する糖衣構文である。
データ読み出し関数の
間接呼び出しをバーチャル関数形式に表現する糖衣構文である。
本ファイルで定義される構造体の詳細を以下に示す。
ファイルパラメータを取扱う
パラメータクラスのバーチャル関数テーブルである。
MacaoPfileはMacaoParamを継承する。
本クラスで、クラスの持つバーチャル関数テーブルとして
新たに追加されるバーチャル関数は存在しない(データのセーブとロードに関す
る動的な振る舞いの入れ替えは、個々のオブジェクトに対して行なわれることに
留意する)。
- MacaoParamClass super
- 親クラスの内容を継承する。
ファイルパラメータを取扱う
パラメータクラスの本体を定義する構造体である。
- MacaoParam super
- 親クラスの内容を継承する。
- unsigned char* filename
- パラメータの値として持つファイルのファ
イル名である。
- int (* save_data) (MacaoPfile* pfile, MacaoTrack* track)
- ファ
イルにデータをセーブする処理を定義する関数の、関数ポインタ
を与える。
- int (* load_data) (MacaoPfile* pfile, MacaoTrack* track)
- ファ
イルからデータをロードする処理を定義する関数の、関数ポインタ
を与える。
MacaoPfileの各機能を実現する関数群は、ソースファイルfile.cで記述
される。
本ファイルで定義される関数の詳細を以下に示す。
- 引数
- 本関数は以下の引数をとる。
- MacaoTrack* track
- このパラメータオブジェクトの所有者である
MacaoTrackオブジェクトへのポインタ。
- unsigned char* name
- パラメータ名を表す文字列へのポインタ。
- unsigned char* filename
- 設定するファイル名の初期値。
- 返値
- 生成されたMacaoPfileオブジェクトへのポインタを返す。
- 概要
- MacaoPfileのコンストラクタである。
メモリ領域の確保、値の初期化、バーチャル関数テーブルの設定
などを行なう。
- 引数
- 本関数は以下の引数をとる。
- MacaoPfile* pfile
- 対象とするMacaoPfileオブジェクトへのポインタ。
- unsigned char* new_filename
- 設定する新しいパラメータ値。
- 返値
- なし。
- 概要
- パラメータを更新する関数である。自らの保持するパラメータ値
を引数で指定する値に設定したのち、所有者であるMacaoTrackオ
ブジェクトにパラメータの更新を通知する。
- 引数
- 本関数は以下の引数をとる。
- MacaoPfile* pfile
- 対象とするMacaoPfileオブジェクトへのポインタ。
- 返値
- 現在保持しているパラメータの値。
- 概要
- パラメータの値を取得する。
- 引数
- 本関数は以下の引数をとる。
- MacaoPfile* pfile
- 対象とするMacaoPfileオブジェクトへのポインタ。
- unsigned char* filename
- 設定するパラメータ値。
- 返値
- なし。
- 概要
- パラメータの値を設定する。
- 引数
- 本関数は以下の引数をとる。
- MacaoPfile* pfile
- 対象とするMacaoPfileオブジェクトへのポインタ。
- MacaoPfileLoadFunc save_data_func
- 登録するデータセーブ用の
関数への関数ポインタ。
- 返値
- なし。
- 概要
- データセーブ用の関数を登録する。
- 引数
- 本関数は以下の引数をとる。
- MacaoPfile* pfile
- 対象とするMacaoPfileオブジェクトへのポインタ。
- MacaoPfileLoadFunc load_data_func
- 登録するデータロード用の
関数への関数ポインタ。
- 返値
- なし。
- 概要
- データロード用の関数を登録する。
- 引数
- 本関数は以下の引数をとる。
- MacaoParam* param
- 対象とするMacaoParamオブジェクト(実体はMacaoPfile)へのポインタ。
- FILE* fp
- 書き出し対象のファイルを示すファイル構造体へのポインタ。
本関数呼び出し前に、書き出しモードでオープンしておく必要がある。
- 返値
- 処理に成功すればTRUE、問題が生じた場合にはFALSEを返す。
- 概要
- パラメータ値設定ファイルへパラメータの値の書き出しを行なう。
- 引数
- 本関数は以下の引数をとる。
- MacaoParam* param
- 対象とするMacaoParamオブジェクト(実体はMacaoPfile)へのポインタ。
- FILE* fp
- 読み込み対象のファイルを示すファイル構造体へのポインタ。
本関数呼び出し前に、読み込みモードでオープンしておく必要がある。
- 返値
- 処理に成功すればTRUE、問題が生じた場合にはFALSEを返す。
- 概要
- パラメータ値設定ファイルからパラメータの値の読み込みを行なう。
- 引数
- 本関数は以下の引数をとる。
- MacaoPfile* param
- 対象とするMacaoParamオブジェクト(実体はMacaoPfile)へのポインタ。
- MacaoTrack* track
- 本パラメータクラスの所有者であるMacaoTrack
オブジェクトへのポインタ。
- 返値
- 常にTRUEを返す。
- 概要
- ファイルへのデータのセーブを行なう処理のデフォルトを定義する
関数である。デフォルトでは何もしない。MacaoTrackのサブクラスに
おいて、必要に応じて適切な処理を記述し、本関数と入れ替える
ことによってデータセーブ処理を追加できる。
- 引数
- 本関数は以下の引数をとる。
- MacaoPfile* param
- 対象とするMacaoParamオブジェクト(実体はMacaoPfile)へのポインタ。
- MacaoTrack* track
- 本パラメータクラスの所有者であるMacaoTrack
オブジェクトへのポインタ。
- 返値
- 常にTRUEを返す。
- 概要
- ファイルからデータのロードを行なう処理のデフォルトを定義する
関数である。デフォルトでは何もしない。MacaoTrackのサブクラスに
おいて、必要に応じて適切な処理を記述し、本関数と入れ替える
ことによってデータロード処理を追加できる。
次へ: 教師クラスサブライブラリ
上へ: MACAOライブラリ
戻る: MACAOライブラリ(本体)
  目次
Jun IIO
平成15年5月27日