Senna バインディングを改良してみた

php_senna-0.0.3devel.tgz
以前作った別のモジュールとか ext/sqlite/sqlite.c 等を参考にしつつやった。反省は (ry

  • PHP 4.4.6, 5.1.6, 5.2.1 で動作確認、4.3.x は不明、5.0.x はだめ
  • アドバンスト API から sen_index_info() と sen_index_path() を実装
  • OO-API を実装 (PHP5 のみ)
    • 各クラスのインスタンスは clone 不可
    • SenIndex クラスのコンストラクタでエラーが発生したら SenException が投げられる
    • SenRecords/SenRecordsIterator クラスのコンストラクタは private


作ってみた感想です。
sen_info() で read_conf() しないのは仕様?
カレントレコードのキーが可変長か固定長かを確実に知るには、sen_records->keys->key_size を直接読むか、sen_sym_info(sen_records->keys, &key_size) するしかなさそうなんだけど、どちらも API を介さずに sen_sym にアクセスするため、できればやりたくないです...