namazu-ml(ring)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: divide code for library.
- From: yiwakiri@xxxxxxxxxxxx (Youichi Iwakiri)
- Date: Thu, 30 Sep 1999 15:44:40 +0900 (JST)
いわきりです
遅くなりました m(_ _)m
NOKUBI Takatsuguさんの<199909290350.MAA20042@xxxxxxxxxxxxxx>から
><199909290205.LAA15590@xxxxxxxxxxxxxx>の記事において
>satoru-t@xxxxxxxxxxxxxxxxxxさんは書きました。
>>> libnmz から外に公開する関数はそれほど多くないでしょうから、
>>> それらの prototype宣言を libnmz.h にまとめればいいと思います。
> なるほど。了解です。
個人的には、下記の様なAPIがあるとうれしいです
mod_namazuを実現するには、
namazu.cgiとnamazu_confが1対1対応であるのに対し、
mod_namzu対namazu_confが1対多にする必要があります。
現在のvar.cは一つの構造体としておき、リクエスト毎に
切り替えられないと困りますので。
typedef struct _NMZ_CONF {
uchar DEFAULT_CONF_PATH[BUFFSIZE];
:
uchar index_path;
int output_type;
uchar format_file_path;
} NMZ_CONF;
Apacheモジュールの動作としては、mod_namazuが最初に呼ばれたとき
に実行するフック、コンテンツの置かれているディレクトリ毎に
呼び出されるフック、実際のリクエストに応えるためのフックと
いった具合にジャンプテーブルを使うので、下記の4つは欲しいかも
# 勝手に構造体とか名前決めてます。
int nmz_api_common_conf(NMZ_CONF *p); /* namzu_confを読み込み初期化 */
int nmz_api_marge_dir_conf(NMZ_CONF *p, uchar *local_conf_filepath); /* http://foo.or.jp/index.nmz */
RESULTS *nmz_api_search(NMZ_CONF *p, uchar *query_strings); /* 検索結果を未整形の状態で返す */
int nmz_api_output_format(NMZ_CONF *p, RESULT *results); /* NMZ.result.* に合わせて出力 */
>>> NMZ result;
>>> result = namazu_search(query);
>>> for (i = 0 ; i < result.num; i++) {
>>> (この部分で何をするかが問題)
>>> }
>>> namazu_free(result);
> 結果を取り出すための関数が必要になりますね。
># いわきりさんの御意見も伺いたいところです。
ほとんど、私の構想にあるnmz_api_searchと一緒ですね。
(この部分で何をするかが問題)
とおっしゃってる部分は、複数パターン用意するか、
main()に任せるしか無いかなぁと思っています。