namazu-dev(ring)


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: memo: libnamazu



<199912061018.TAA20015@xxxxxxxxxxxxxx>の記事において
satoru-t@xxxxxxxxxxxxxxxxxxさんは書きました。

>> うーむ、せっかく「機能単位で分けてい」るのに、「外部に公開す
>> る関数のみ libnamazu.c に記述」するのは気持ち悪いです。

  その心情は理解できます。

>>   * 関数は機能単位でファイルに分ける - 従来通り
>>   * 外部に公開する関数のプロトタイプ宣言だけは libnmz.h に記
>>     述する
>> 
>> という方法が考えられますが、これも「外部に公開する関数のプロ
>> トタイプ宣言だけは libnmz.h に記述する」という例外が気持ち悪
>> いです。(現在は関数を定義した .cファイルと basename が等しい 
>> .hファイルに宣言を記述しています)

  保守する際に、混乱の元になりそうな気もします。

>>   * 関数は機能単位でファイルに分ける - 従来通り
>>   * 外部に公開する関数はラッパー関数を Java風の表記 :-)
>>     で libnmz.[ch] に定義・宣言する 
>>     - 例: idxname.c の add_index() に対してはラッパ─関数
>>       nmzAddIndex() を定義・宣言する
>> 
>> なる方法も考えましたが、保守が面倒そうです。

  ちょっと冗長なところが気分的に好きになれないです。まあ、たいした
overhead でもないでしょうけど...

>> >> ライブラリとして外から利用する関数を選定してもらえませんか? > 野首さん
>> >
>> >  そうですね。このあたりは追々... といっていると、いつまでたっても終ら
>> >ないかも ^^; 最低限、Search::Namazu で使っている関数群は libnmz.h 行き
>> >ですかね。
>> 
>> よろしくお願いします。

  とりあえず、現在の Search::Namazu で呼んでいる関数を pick up してみ
ました。思った程多くはないです。

uniq_idxnames()
expand_idxname_aliases()
complete_idxnames()
codeconv_query()
search_main()
free_hlist()
free_idxnames()
free_aliases()
free_replaces()
add_index()
set_sortbydate()
set_sortbyscore()
set_sortbyfield()
set_sort_descending()
set_sort_ascending()
load_conf()
set_lang()

# uniq_idxnames()
# expand_idxname_aliases()
# complete_idxnames()
# これらと
# free_idxnames()
# free_aliases()
# free_replaces()
# これらは外部から呼ぶ際にはまとめてしまっても良いかも?
-- 
野首 貴嗣
E-mail: knok@xxxxxxxxxxxxx (private)
        nokubi@xxxxxxxxx (official)