CSaori の概略

845 views

Published on

「うかべん@横浜#2」講演「CSaori の概略」スライド資料

C++ SAORIテンプレートクラス "CSaori"(http://code.google.com/p/csaori/)の宣伝を兼ねた概略紹介です。

「うかべん@横浜#2」
http://study.nanican.net/2008/0810/

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
845
On SlideShare
0
From Embeds
0
Number of Embeds
11
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

CSaori の概略

  1. 1. CSaori 概略 C++ SAORI テンプレートクラス "CSaori"  概略 2008.08.10 うかべん@横浜#2 by 浮子屋2008/08/10 ukaben@yokohama#2 presentation by ukiya 1
  2. 2. ■ 講演者紹介 ● ハンドル名:浮子屋(うきや) ● サイト: http://ukiya.sakura.ne.jp/ ● 主な作品 Ghost The Hand, Dokudenpa, どくにうす SAORI Osuwari, Handutil, Kenonoke その他 SARS, SPAM, とか色々2008/08/10 ukaben@yokohama#2 presentation by ukiya 2
  3. 3. ■ 題目CSAORI http://code.google.com/p/csaori/ ● SAORI 仕様概略 ● SAORI を作るということ ● CSAORI 概略駆け足になりますが宜しくお付き合い下さい2008/08/10 ukaben@yokohama#2 presentation by ukiya 3
  4. 4. ■SAORI とは ● 主に SHIORI への機能追加を目的としたプログラ ム部品 ● 統一されたインタフェース( SAORI インタ フェース)を持つ ● SAORI Basic … EXE 形式、作成が容易だがパ フォーマンスに劣る ● SAORI Universal … DLL 形式、作成に知識が要 るがパフォーマンスが良い ● 詳しくは SDN 氏のサイト http://www.boreas.dti.ne.jp/~sdn/saori.html2008/08/10 ukaben@yokohama#2 presentation by ukiya 4
  5. 5. ■SAORI インタフェース (1)● 下記のような HTML ヘッダに似た文字列で 入出力を行うSHIORI→SAORI SAORI→SHIORIEXECUTE SAORI/1.0 SAORI/1.0 200 OKCharset: UTF-8 Charset: UTF-8Sender: AYA Result: 333SecurityLevel: Local Value0: hogeArgument0: 111 Value1: mogeArgument1: 2222008/08/10 ukaben@yokohama#2 presentation by ukiya 5
  6. 6. ■SAORI インタフェース (2)●SAORI Universal ● load 、 unload 、 request の3つの関数を export した DLL ● SHIORI からの入力は request の引数に文 字列で渡され、その返り値が出力となる●SAORI Basic ● コマンドラインが Argument 、標準出力が Result の文字列になっている EXE2008/08/10 ukaben@yokohama#2 presentation by ukiya 6
  7. 7. ■SAORI を作るということ●入力解析、文字コード変換、実際の処理、 出力組み立て●実際の処理以外はどの SAORI でも同じ作業 →ならば共通化してしまえ! 入力 解析・変換 SAORI でやりたい事 出力 変換・組立2008/08/10 ukaben@yokohama#2 presentation by ukiya 7
  8. 8. ■CSAORI の構造S CSAORI テンプレートH エクスポート関数 CSaori クラスI load()O load() module_pathR unload() unload()I CSaori request() Input exec() クラス 解析 変換 実際の処理 組立 CSaori Output クラス2008/08/10 ukaben@yokohama#2 presentation by ukiya 8
  9. 9. ■CSAORI クラス ● 実際の処理を行うクラス ● 利用者が実装するもの ● bool load() ● bool unload() ● void exec( CSAORIInput& in,CSAORIOutput& out); ● module_path メンバ: DLL のパスが入る ● exec に実際の処理を記述 → in を見て out を返せばよい2008/08/10 ukaben@yokohama#2 presentation by ukiya 9
  10. 10. ■CSAORIInput クラス ● SAORI インタフェースの入力をカプセル化 ● CHARSET charset ・・・ charset ヘッダの内容 ● string_t cmd ・・・通常 "EXECUTE" ● vector<string_t> args  ・・・ Argument が順番に入る ● map<string_t,string_t> opts  ・・・ Argument 以外のヘッダが key-value で    入る2008/08/10 ukaben@yokohama#2 presentation by ukiya 10
  11. 11. ■CSAORIOutput クラス ● SAORI インタフェースの出力をカプセル化 ● SAORIRESULT result_code  ・・・ "200 OK" 等のコードを入れる ● string_t result…Result ヘッダの内容 ● vector<string_t> values  … Values ヘッダの内容を順番に入れる ● CHARSET charset  … charset ヘッダの内容(自動設定される) ● map<string_t,string_t> opts  …それ以外のヘッダの内容を入れる2008/08/10 ukaben@yokohama#2 presentation by ukiya 11
  12. 12. ■SAORI_FUNC 関数群(名前空間) ● SAORI 開発時にあると便利な関数 ● 文字コード変換 (各文字コード⇔ UCS2 ) 内部文字コードは UNICODE(UTF-16) に統一 →文字列リテラルは L"hogehoge" ● 数値→文字列の変換 など2008/08/10 ukaben@yokohama#2 presentation by ukiya 12
  13. 13. ■ 実際の記述例 ● 引数を2つ取って合計を返す SAORI #include "csaori.h" bool CSAORI::load(){return true;} bool CSAORI::unload(){return true;} void CSAORI::exec(const CSAORIInput& in,CSAORIOutput& out){ out.result_code=SAORIRESULT_OK; out.result=SAORI_FUNC::intToString( _wtoi(in.args[0].c_str())+ _wtoi(in.args[1].c_str())    ); }2008/08/10 ukaben@yokohama#2 presentation by ukiya 13
  14. 14. ■ 現状と今後の展開 ● set_wall_paper と FileVersion SAORI が CSaori で作成されている ● ukiya 作成の SAORI を CSaori ベースに移植 予定( Osuwari 、 Handutil 、 kenonoke ) ● cheese.exe (マウス操作用 SAORI BASIC 、 櫛ヶ浜やぎ氏作成)を移植するかも? ● SAORI_FUNC に便利な関数( YAYA のファイ ルパス正規化など)を追加したい2008/08/10 ukaben@yokohama#2 presentation by ukiya 14
  15. 15. ■ 戯言、謝辞 ● SAORI 仕様は別にゴーストには依存しない →スクリプト系言語の共通拡張仕様に  なれるはず、なればいいな、とか ● 駆け足の説明で失礼しました ● 誤り・疑問等あればご指摘ください 御清聴ありがとうございました2008/08/10 ukaben@yokohama#2 presentation by ukiya 15

×