next up previous contents
次へ: 教師クラスサブライブラリ 上へ: MACAOライブラリ 戻る: MACAOライブラリ(本体)   目次

Subsections

パラメータサブライブラリ

MACAOライブラリで提供されるパラメータクラスは、そのテンプレートとなる 抽象クラスが MacaoParam (param.hおよびparam.c)として用意されている。 その実体を定義する各サブクラスは、パラメータサブライブラ リとして別途用意される(エンドユーザに対しては、libmacao.aまたは libmacao.soとして、まとめられたインタフェースを提供する)。

本節では、パラメータクラスにおける個々の具象クラスを定義する各サブクラス について、説明する。

MacaoPbool

概要

パラメータクラスの実体を定義する具象クラスである。 MacaoParamを継承する。

本パラメータクラスは、ブーリアン型(真偽値型)のパラメータを扱う。

ヘッダファイル

ヘッダファイル bool.h では、MacaoPbool に関するマクロ定義、 構造体の定義、それらに関する型定義、およびソースファイル bool.c で定義され外部に公開される関数のプロトタイプ宣言が記述される。

マクロ定義

本ファイルで定義されるマクロ定義の詳細を以下に示す。
MACAO_PBOOL_VALUE_ERROR
パラメータの値にエラーが 生じた場合(``TRUE''、``FALSE''以外の文字列が指定された場合)の エラーメッセージ文字列である。

構造体

本ファイルで定義される構造体の詳細を以下に示す。
MacaoPboolClass
ブーリアン型のパラメータを扱う パラメータクラスのバーチャル関数テーブルである。 MacaoPboolはMacaoParamを継承する。 本クラスで新たに追加されるバーチャル関数は存在しない。
MacaoParamClass super
親クラスの内容を継承する。
MacaoPbool
ブーリアン型のパラメータを扱う パラメータクラスの本体を定義する構造体である。
MacaoParam super
親クラスの内容を継承する。
int bool_value
真偽値の値。TRUEあるいはFALSEのいずれかをとる。

ソースファイル

MacaoPboolの各機能を実現する関数群は、ソースファイルbool.cで記述 される。

関数

本ファイルで定義される関数の詳細を以下に示す。
macao_pbool_new (MacaoTrack* track, unsigned char* name, int init)
引数
本関数は以下の引数をとる。
MacaoTrack* track
このパラメータオブジェクトの所有者である MacaoTrackオブジェクトへのポインタ。
unsigned char* name
パラメータ名を表す文字列へのポインタ。
int init
設定する真偽値の初期値。
返値
生成されたMacaoPboolオブジェクトへのポインタを返す。
概要
MacaoPboolのコンストラクタである。 メモリ領域の確保、値の初期化、バーチャル関数テーブルの設定 などを行なう。

macao_pbool_update (MacaoPbool* pbool, int new_value)
引数
本関数は以下の引数をとる。
MacaoPbool* pbool
対象とするMacaoPboolオブジェクトへのポインタ。
int new_value
設定する新しいパラメータ値。
返値
なし。
概要
パラメータを更新する関数である。自らの保持するパラメータ値 を引数で指定する値に設定したのち、所有者であるMacaoTrackオ ブジェクトにパラメータの更新を通知する。

macao_pbool_get_value (MacaoPbool* pbool)
引数
本関数は以下の引数をとる。
MacaoPbool* pbool
対象とするMacaoPboolオブジェクトへのポインタ。
返値
現在保持しているパラメータの値。
概要
パラメータの値を取得する。

macao_pbool_set_value (MacaoPbool* pbool, int bool_value)
引数
本関数は以下の引数をとる。
MacaoPbool* pbool
対象とするMacaoPboolオブジェクトへのポインタ。
int bool_value
設定するパラメータ値。
返値
なし。
概要
パラメータの値を設定する。

macao_pbool_save (MacaoParam* param, FILE* fp)
引数
本関数は以下の引数をとる。
MacaoParam* param
対象とするMacaoParamオブジェクト(実体はMacaoPbool)へのポインタ。
FILE* fp
書き出し対象のファイルを示すファイル構造体へのポインタ。 本関数呼び出し前に、書き出しモードでオープンしておく必要がある。
返値
処理に成功すればTRUE、問題が生じた場合にはFALSEを返す。
概要
パラメータ値設定ファイルへパラメータの値の書き出しを行なう。

macao_pbool_load (MacaoParam* param, FILE* fp)
引数
本関数は以下の引数をとる。
MacaoParam* param
対象とするMacaoParamオブジェクト(実体はMacaoPbool)へのポインタ。
FILE* fp
読み込み対象のファイルを示すファイル構造体へのポインタ。 本関数呼び出し前に、読み込みモードでオープンしておく必要がある。
返値
処理に成功すればTRUE、問題が生じた場合にはFALSEを返す。
概要
パラメータ値設定ファイルからパラメータの値の読み込みを行なう。

MacaoPdouble

概要

パラメータクラスの実体を定義する具象クラスである。 MacaoParamを継承する。

本パラメータクラスは、実数(double)型の数値パラメータを扱う。 取扱う数値そのものを実数型で保持する他、値が取り得る範囲を設定することが 可能である。

ヘッダファイル

ヘッダファイル double.h では、MacaoPdouble に関する 構造体の定義、それらに関する型定義、およびソースファイル double.c で定義され外部に公開される関数のプロトタイプ宣言が記述される。

構造体

本ファイルで定義される構造体の詳細を以下に示す。
MacaoPdoubleClass
実数(double)型の数値パラメータを扱う パラメータクラスのバーチャル関数テーブルである。 MacaoPdoubleはMacaoParamを継承する。 本クラスで新たに追加されるバーチャル関数は存在しない。
MacaoParamClass super
親クラスの内容を継承する。
MacaoPdouble
実数(double)型の数値パラメータを扱う パラメータクラスの本体を定義する構造体である。
MacaoParam super
親クラスの内容を継承する。
double double_value
パラメータの値そのものを示す。
int range
範囲を取るか否かを示す。
double min, max
範囲を取る場合、最小値と最大値を格納する。

ソースファイル

MacaoPdoubleの各機能を実現する関数群は、ソースファイルdouble.cで記述 される。

関数

本ファイルで定義される関数の詳細を以下に示す。
macao_pdouble_new (MacaoTrack* track, unsigned char* name, double init)
引数
本関数は以下の引数をとる。
MacaoTrack* track
このパラメータオブジェクトの所有者である MacaoTrackオブジェクトへのポインタ。
unsigned char* name
パラメータ名を表す文字列へのポインタ。
double init
設定する実数値の初期値。
返値
生成されたMacaoPdoubleオブジェクトへのポインタを返す。
概要
MacaoPdoubleのコンストラクタである。 メモリ領域の確保、値の初期化、バーチャル関数テーブルの設定 などを行なう。

macao_pdouble_update (MacaoPdouble* pdouble, double new_value)
引数
本関数は以下の引数をとる。
MacaoPdouble* pdouble
対象とするMacaoPdoubleオブジェクトへのポインタ。
double new_value
設定する新しいパラメータ値。
返値
なし。
概要
パラメータを更新する関数である。自らの保持するパラメータ値 を引数で指定する値に設定したのち、所有者であるMacaoTrackオ ブジェクトにパラメータの更新を通知する。

macao_pdouble_get_value (MacaoPdouble* pdouble)
引数
本関数は以下の引数をとる。
MacaoPdouble* pdouble
対象とするMacaoPdoubleオブジェクトへのポインタ。
返値
現在保持しているパラメータの値。
概要
パラメータの値を取得する。

macao_pdouble_set_value (MacaoPdouble* pdouble, double double_value)
引数
本関数は以下の引数をとる。
MacaoPdouble* pdouble
対象とするMacaoPdoubleオブジェクトへのポインタ。
double double_value
設定するパラメータ値。
返値
なし。
概要
パラメータの値を設定する。

macao_pdouble_set_range (MacaoPdouble* pdouble, double min, double max)
引数
本関数は以下の引数をとる。
MacaoPdouble* pdouble
対象とするMacaoPdoubleオブジェクトへのポインタ。
double min
パラメータの値の取る範囲の最小値。
double max
パラメータの値の取る範囲の最大値。
返値
なし。
概要
パラメータの値の取る範囲を設定する。

macao_pdouble_check_range (MacaoPdouble* pdouble, double double_value)
引数
本関数は以下の引数をとる。
MacaoPdouble* pdouble
対象とするMacaoPdoubleオブジェクトへのポインタ。
double double_value
設定されている範囲に含まれているかを判定 する値。
返値
範囲内であればTRUE、範囲外である場合にはFALSEを返す。
概要
引数で与える値が、あらかじめ設定されている値の範囲に含まれ ているか否かを判定する。

macao_pdouble_save (MacaoParam* param, FILE* fp)
引数
本関数は以下の引数をとる。
MacaoParam* param
対象とするMacaoParamオブジェクト(実体はMacaoPdouble)へのポインタ。
FILE* fp
書き出し対象のファイルを示すファイル構造体へのポインタ。 本関数呼び出し前に、書き出しモードでオープンしておく必要がある。
返値
処理に成功すればTRUE、問題が生じた場合にはFALSEを返す。
概要
パラメータ値設定ファイルへパラメータの値の書き出しを行なう。

macao_pdouble_load (MacaoParam* param, FILE* fp)
引数
本関数は以下の引数をとる。
MacaoParam* param
対象とするMacaoParamオブジェクト(実体はMacaoPdouble)へのポインタ。
FILE* fp
読み込み対象のファイルを示すファイル構造体へのポインタ。 本関数呼び出し前に、読み込みモードでオープンしておく必要がある。
返値
処理に成功すればTRUE、問題が生じた場合にはFALSEを返す。
概要
パラメータ値設定ファイルからパラメータの値の読み込みを行なう。

MacaoPfile

概要

パラメータクラスの実体を定義する具象クラスである。 MacaoParamを継承する。

本パラメータクラスは、ファイル型のパラメータを扱う。 パラメータの値として指定されるファイルの情報を保持する他、 指定されるファイルを対象として読み書きを行なうための関数ポインタ を保持する。

本来は読み書きを行なう関数は個別のバーチャル関数として用意し、 サブクラスを生成してファイルパラメータクラスを個々に拡張することが 考えられる。ただしこの方法ではクラスの爆発を招く恐れがあり、また 仕様上オーバスペックと考えられるため、関数ポインタを直にクラスメンバ として持つ本方式を採用することにより、個々のオブジェクトに対する 動的な振る舞いの拡張を実現することとした。

ヘッダファイル

ヘッダファイル file.h では、MacaoPfile に関するマクロ定義、 構造体の定義、それらに関する型定義、およびソースファイル file.c で定義され外部に公開される関数のプロトタイプ宣言が記述される。

マクロ定義

本ファイルで定義されるマクロ定義の詳細を以下に示す。
MACAO_PARAM_FILE_WARN_OPEN_DATAFILE_FAILURE
データファ イルをオープンできない場合のエラーメッセージ文字列である。
MACAO_PARAM_FILE_WARN_SAVE_DATAFILE_FAILURE
データファ イルが書き込み不能の場合のエラーメッセージ文字列である。
MACAO_PARAM_FILE_WARN_READ_DATAFILE_FAILURE
データファ イルを読み取り不能の場合のエラーメッセージ文字列である。
MACAO_PARAM_FILE_MSG_SAVE_DONE
データの書き込みが実 行できたことを示すログ文字列である。
MACAO_PARAM_FILE_MSG_LOAD_DONE
データの読み出しが実 行できたことを示すログ文字列である。
macao_pfile_save_data(pfile, track)
データ書き込み関数の 間接呼び出しをバーチャル関数形式に表現する糖衣構文である。
macao_pfile_load_data(pfile, track)
データ読み出し関数の 間接呼び出しをバーチャル関数形式に表現する糖衣構文である。

構造体

本ファイルで定義される構造体の詳細を以下に示す。
MacaoPfileClass
ファイルパラメータを取扱う パラメータクラスのバーチャル関数テーブルである。 MacaoPfileはMacaoParamを継承する。 本クラスで、クラスの持つバーチャル関数テーブルとして 新たに追加されるバーチャル関数は存在しない(データのセーブとロードに関す る動的な振る舞いの入れ替えは、個々のオブジェクトに対して行なわれることに 留意する)。
MacaoParamClass super
親クラスの内容を継承する。
MacaoPfile
ファイルパラメータを取扱う パラメータクラスの本体を定義する構造体である。
MacaoParam super
親クラスの内容を継承する。
unsigned char* filename
パラメータの値として持つファイルのファ イル名である。
int (* save_data) (MacaoPfile* pfile, MacaoTrack* track)
ファ イルにデータをセーブする処理を定義する関数の、関数ポインタ を与える。
int (* load_data) (MacaoPfile* pfile, MacaoTrack* track)
ファ イルからデータをロードする処理を定義する関数の、関数ポインタ を与える。

ソースファイル

MacaoPfileの各機能を実現する関数群は、ソースファイルfile.cで記述 される。

関数

本ファイルで定義される関数の詳細を以下に示す。
macao_pfile_new (MacaoTrack* track, unsigned char* name, unsigned char* filename)
引数
本関数は以下の引数をとる。
MacaoTrack* track
このパラメータオブジェクトの所有者である MacaoTrackオブジェクトへのポインタ。
unsigned char* name
パラメータ名を表す文字列へのポインタ。
unsigned char* filename
設定するファイル名の初期値。
返値
生成されたMacaoPfileオブジェクトへのポインタを返す。
概要
MacaoPfileのコンストラクタである。 メモリ領域の確保、値の初期化、バーチャル関数テーブルの設定 などを行なう。

macao_pfile_update (MacaoPfile* pfile, unsigned char* new_filename)
引数
本関数は以下の引数をとる。
MacaoPfile* pfile
対象とするMacaoPfileオブジェクトへのポインタ。
unsigned char* new_filename
設定する新しいパラメータ値。
返値
なし。
概要
パラメータを更新する関数である。自らの保持するパラメータ値 を引数で指定する値に設定したのち、所有者であるMacaoTrackオ ブジェクトにパラメータの更新を通知する。

macao_pfile_get_filename (MacaoPfile* pfile)
引数
本関数は以下の引数をとる。
MacaoPfile* pfile
対象とするMacaoPfileオブジェクトへのポインタ。
返値
現在保持しているパラメータの値。
概要
パラメータの値を取得する。

macao_pfile_set_filename (MacaoPfile* pfile, unsigned char* filename)
引数
本関数は以下の引数をとる。
MacaoPfile* pfile
対象とするMacaoPfileオブジェクトへのポインタ。
unsigned char* filename
設定するパラメータ値。
返値
なし。
概要
パラメータの値を設定する。

macao_pfile_set_save_data_func (MacaoPfile* pfile, MacaoPfileLoadFunc save_data_func)
引数
本関数は以下の引数をとる。
MacaoPfile* pfile
対象とするMacaoPfileオブジェクトへのポインタ。
MacaoPfileLoadFunc save_data_func
登録するデータセーブ用の 関数への関数ポインタ。
返値
なし。
概要
データセーブ用の関数を登録する。

macao_pfile_set_load_data_func (MacaoPfile* pfile, MacaoPfileLoadFunc load_data_func)
引数
本関数は以下の引数をとる。
MacaoPfile* pfile
対象とするMacaoPfileオブジェクトへのポインタ。
MacaoPfileLoadFunc load_data_func
登録するデータロード用の 関数への関数ポインタ。
返値
なし。
概要
データロード用の関数を登録する。

macao_pfile_save (MacaoParam* param, FILE* fp)
引数
本関数は以下の引数をとる。
MacaoParam* param
対象とするMacaoParamオブジェクト(実体はMacaoPfile)へのポインタ。
FILE* fp
書き出し対象のファイルを示すファイル構造体へのポインタ。 本関数呼び出し前に、書き出しモードでオープンしておく必要がある。
返値
処理に成功すればTRUE、問題が生じた場合にはFALSEを返す。
概要
パラメータ値設定ファイルへパラメータの値の書き出しを行なう。

macao_pfile_load (MacaoParam* param, FILE* fp)
引数
本関数は以下の引数をとる。
MacaoParam* param
対象とするMacaoParamオブジェクト(実体はMacaoPfile)へのポインタ。
FILE* fp
読み込み対象のファイルを示すファイル構造体へのポインタ。 本関数呼び出し前に、読み込みモードでオープンしておく必要がある。
返値
処理に成功すればTRUE、問題が生じた場合にはFALSEを返す。
概要
パラメータ値設定ファイルからパラメータの値の読み込みを行なう。

macao_pfile_save_data_default (MacaoPfile* param, MacaoTrack* track)
引数
本関数は以下の引数をとる。
MacaoPfile* param
対象とするMacaoParamオブジェクト(実体はMacaoPfile)へのポインタ。
MacaoTrack* track
本パラメータクラスの所有者であるMacaoTrack オブジェクトへのポインタ。
返値
常にTRUEを返す。
概要
ファイルへのデータのセーブを行なう処理のデフォルトを定義する 関数である。デフォルトでは何もしない。MacaoTrackのサブクラスに おいて、必要に応じて適切な処理を記述し、本関数と入れ替える ことによってデータセーブ処理を追加できる。

macao_pfile_load_data_default (MacaoPfile* param, MacaoTrack* track)
引数
本関数は以下の引数をとる。
MacaoPfile* param
対象とするMacaoParamオブジェクト(実体はMacaoPfile)へのポインタ。
MacaoTrack* track
本パラメータクラスの所有者であるMacaoTrack オブジェクトへのポインタ。
返値
常にTRUEを返す。
概要
ファイルからデータのロードを行なう処理のデフォルトを定義する 関数である。デフォルトでは何もしない。MacaoTrackのサブクラスに おいて、必要に応じて適切な処理を記述し、本関数と入れ替える ことによってデータロード処理を追加できる。


next up previous contents
次へ: 教師クラスサブライブラリ 上へ: MACAOライブラリ 戻る: MACAOライブラリ(本体)   目次
Jun IIO 平成15年5月27日