殊海夕音/FINE
の編集
index.php?%E6%AE%8A%E6%B5%B7%E5%A4%95%E9%9F%B3/FINE
[
トップ
] [
編集
|
差分
|
履歴
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
-- 雛形とするページ --
殊海夕音/FINE/template
*SSTP関連ソフトウエア間通信規格(FINE) [#lbfb8ecc] #contents SSTP Bottle ClientなどのメッセージングツールにSARSなどのエディタからスクリプトを投げたり、その他色々と関連ソフトウエア間で通信するための規格。~ ※名称'FINE(フィーネ)'は特に何かの略称ではなく、SERIKO規格のように名前を当てただけです。~ *用語 [#u3f5308f] -FINEサーバ~ FINEリクエスト受信側。 -FINEクライアント~ FINEリクエスト送信側。 *サーバ要件 [#kd1d6e64] **'Fine'FMOの保持 [#x7c7c5c6] FINEクライアントがFINEサーバの存在を感知し、情報を得るためにFMO'Fine'を保持する。~ FMOへのアクセスはMUTEXによる排他制御が必須である。(制御用MUTEXは'FineFMO')~ FMO書式は次の通り。 ***メモリマップ [#gead475e] -0-3~ 全体のサイズを示す long 値 -4-~ データ本体 ***本体書式 [#v8c5cb68] アプリケーション名:プロパティ名:値[cr][lf]~ HWndプロパティ、Capabilityプロパティ及びServerVersionプロパティは必須。 その他のプロパティ名はサブ規格毎に定義される。~ アプリケーション名、プロパティ名、プロパティ値に : 及び @ 記号を用いてはならない。~ 終端は0x00とする。0x00が現れた以降のエントリは無効である。~ 使用可能な文字コードはShift_JISとする。 例 TalkCapsule@83908390:HWnd:xxxxxxxx[cr][lf] TalkCapsule@83908390:Target:○○(800)[cr][lf] TalkCapsule@83908390:Capability:MessageSend[cr][lf] TalkCapsule@83908390:ServerVersion:0.2.0.0[cr][lf] SSTP Bottle@76607660:HWnd:xxxxxxxx[cr][lf] SSTP Bottle@76607660:Target:駅前繁華街[cr][lf] SSTP Bottle@76607660:Target:海浜公園街[cr][lf] SSTP Bottle@76607660:Capability:MessageSend,SetScript,SetScriptPartial[cr][lf] SSTP Bottle@76607660:ServerVersion:2.70[cr][lf] BoIP@99999999:HWnd:xxxxxxxxxx[cr][lf] BoIP@99999999:Target:ぼとるいぬごや(嘘)[cr][lf] BoIP@99999999:Capability:MessageSend[cr][lf] BoIP@99999999:ServerVersion:0.83d[cr][lf] SARS@37564000:HWnd:xxxxxxxxxx[cr][lf] SARS@37564000:Capability:SetScript,SetScriptPartial[cr][lf] SARS@37564000:ServerVersion:2.9.1.42087[cr][lf][0x00] -アプリケーション名~ アプリケーション名は、アプリケーション側での二重起動時のFMO破壊を防止する等の目的で、~ アプリケーション名@固有ID~ という書式を用いてもよい。 クライアント側は、@ 記号を認識して適宜それを分割して認識してもよい。 -Capabilityプロパティ~ Capabilityプロパティには、サーバがどのFINEサブ規格に対応可能かを記述する。~ 内容はイベント名からOnFINEを取った形でカンマ区切りで列挙する。 例 SARS:Capability:SetScript,SetScriptPartial BottleClient:Capability:MessageSend,SetScript,SetScriptPartial -ServerVersionプロパティ~ FINEサーバのバージョン文字列を記述する。 ***サイズ [#j9d7cb10] 1024*64B。ただしサイズを示す値があるのでデータ本体で使用可能な領域は1024*64-4B。 **FINEリクエストの処理 [#i615d23a] WM_COPYDATAによるFINEリクエストを処理し、処理結果を返す。 ***ステータスコード [#g254d0d7] 基本的にはSSTPのステータスコードに準拠するが、サブ規格で追加定義されている物がある事を注意せよ。~ 書式はVersion Statuscode Statusstring[CRLF](例:NOTIFY/1.0 200 OK)~ また、ステータスラインの後に空行を入れてアプリケーション及びEvent固有の情報を返してもよい。 ,コード,状態,解説 ,200 OK,正常終了,リクエスト処理は正常に終了した。 ,400 Bad Request,処理不能,呼び出しの不備、内容の不一致。リクエストの内容が解釈不能など。 ,420 Refuse,拒否,FINEサーバーはそのリクエストを受け付けない ,500 Internal Server Error,サーバエラー,何らかのエラーがメッセージングツール側で発生した ,501 Not Implemented,未実装,実装していないリクエストが来た *クライアント要件 [#o74a514a] **FineFMOの解釈 [#f3c51a52] FMOのアクセスはMUTEXによる排他制御を行う事が推奨されるが、実装は任意である。~ なお、MUTEXによる排他制御を行わない場合は読み込み中にFMOが破壊される事態に備え、文法的に間違ったFMOに対して対処出来るように注意せよ。~ また、FINE''クライアント''は書き込みを行ってはならない。(サーバ機能を兼ね備える場合はサーバ要件に準ずる) **FINEリクエストの発行 [#r6491502] 発行方法はSSTP(Sakura Script Transfer Protocol)のNOTIFY/1.0形式に順じ、WM_COPYDATAにて行う。~ ソケット接続による発行はサポートしない。 ***リクエストヘッダ [#k65ba1ac] -Sender~ FINEクライアントの名前が入る。必須。 -Event~ サブ規格で定義されるイベント名(OnFINE~)。必須。 -Charset~ リクエストの文字コード。サポートするのはUTF-8/Shift_JIS/ASCII。必須。 -HWnd~ FINEクライアントのHWnd。必須。 -Reference0-7~ リクエスト内容。どのReferenceが何を意味するのかはサブ規格で定義される。任意。 発行後、FINEサーバから返されるステータスコードに従って適切な処理を行う事。 *サブ規格 [#le914501] #navi(殊海夕音/FINE) #newpage(殊海夕音/FINE/) *リソース [#d16d5f93] -[[殊海夕音/Delphi用FINEコンポーネント]] *コメント [#bb08da68] #comment(below) - 2004-07-06 (Tue) 01:14:27 ''[[浮子屋]]'' : お騒がせしてすみませんです。 - 2004-07-06 (Tue) 01:12:36 ''[[浮子屋]]'' : やさぐれソフトのTODOに書いて頂いた現象もこれで直ったと思います。 - 2004-07-06 (Tue) 01:11:22 ''[[浮子屋]]'' : どうも 'Sakura' FMO の方も0x00を終端とする(0x00埋めをしない)仕様らしいので、こちらを直しました。 - 2004-07-05 (Mon) 13:08:39 ''[[殊海夕音]]'' : げ、また何かポカやってましたか。コード見直してみます。 - 2004-07-05 (Mon) 04:15:44 ''[[浮子屋]]'' : 0x00をターミネータとするならそういう仕様にするので良いのですが、一旦全部きれいにする(残りを0x00で埋める)仕様だと思っていたので。。。 - 2004-07-05 (Mon) 04:14:32 ''[[浮子屋]]'' : 何故かTC上げ落としするとゴミが残るなーと思っていたら、TCは最後のエントリに0x00一個だけしか書かない(その後古いゴミは残したまま)みたいです。 - 2004-07-04 (Sun) 23:30:33 ''[[浮子屋]]'' : Capabilityと@の扱いを追記しました。 - 2004-07-04 (Sun) 21:56:35 ''[[浮子屋]]'' : なるほど。Capabilityですか。対応してみます。 - 2004-07-04 (Sun) 18:40:18 ''[[殊海夕音]]'' : TC及びSSTP Bottle Client非公式ビルドにCapabilityを実装しました。 - 2004-07-04 (Sun) 17:02:50 ''[[殊海夕音]]'' : ステータスコードに420を追加しました。 - 2004-07-04 (Sun) 13:09:24 ''[[殊海夕音]]'' : Capability、よさそうですね。 - 2004-07-03 (Sat) 20:22:28 ''[[殊海夕音]]'' : ステータスコードに501を追加しました。 - 2004-07-01 (Thu) 20:59:26 ''[[浮子屋]]'' : とりあえずSARS実装しました。 - 2004-06-22 (Tue) 18:12:20 ''[[浮子屋]]'' : ちょこっと直しました。FMOの[cr][lf]と0x00、後NOTIFYのヘッダのHwnd→HWndです。 - 2004-06-22 (Tue) 17:10:22 ''[[殊海夕音]]'' : それではTC側も実装始めます。これでひとまず固めてよろしいでしょうか。 - 2004-06-22 (Tue) 15:47:26 ''[[浮子屋]]'' : ページ作成やらせてしまってすみません。とりあえずこの仕様に従って実装してみます。
タイムスタンプを変更しない
*SSTP関連ソフトウエア間通信規格(FINE) [#lbfb8ecc] #contents SSTP Bottle ClientなどのメッセージングツールにSARSなどのエディタからスクリプトを投げたり、その他色々と関連ソフトウエア間で通信するための規格。~ ※名称'FINE(フィーネ)'は特に何かの略称ではなく、SERIKO規格のように名前を当てただけです。~ *用語 [#u3f5308f] -FINEサーバ~ FINEリクエスト受信側。 -FINEクライアント~ FINEリクエスト送信側。 *サーバ要件 [#kd1d6e64] **'Fine'FMOの保持 [#x7c7c5c6] FINEクライアントがFINEサーバの存在を感知し、情報を得るためにFMO'Fine'を保持する。~ FMOへのアクセスはMUTEXによる排他制御が必須である。(制御用MUTEXは'FineFMO')~ FMO書式は次の通り。 ***メモリマップ [#gead475e] -0-3~ 全体のサイズを示す long 値 -4-~ データ本体 ***本体書式 [#v8c5cb68] アプリケーション名:プロパティ名:値[cr][lf]~ HWndプロパティ、Capabilityプロパティ及びServerVersionプロパティは必須。 その他のプロパティ名はサブ規格毎に定義される。~ アプリケーション名、プロパティ名、プロパティ値に : 及び @ 記号を用いてはならない。~ 終端は0x00とする。0x00が現れた以降のエントリは無効である。~ 使用可能な文字コードはShift_JISとする。 例 TalkCapsule@83908390:HWnd:xxxxxxxx[cr][lf] TalkCapsule@83908390:Target:○○(800)[cr][lf] TalkCapsule@83908390:Capability:MessageSend[cr][lf] TalkCapsule@83908390:ServerVersion:0.2.0.0[cr][lf] SSTP Bottle@76607660:HWnd:xxxxxxxx[cr][lf] SSTP Bottle@76607660:Target:駅前繁華街[cr][lf] SSTP Bottle@76607660:Target:海浜公園街[cr][lf] SSTP Bottle@76607660:Capability:MessageSend,SetScript,SetScriptPartial[cr][lf] SSTP Bottle@76607660:ServerVersion:2.70[cr][lf] BoIP@99999999:HWnd:xxxxxxxxxx[cr][lf] BoIP@99999999:Target:ぼとるいぬごや(嘘)[cr][lf] BoIP@99999999:Capability:MessageSend[cr][lf] BoIP@99999999:ServerVersion:0.83d[cr][lf] SARS@37564000:HWnd:xxxxxxxxxx[cr][lf] SARS@37564000:Capability:SetScript,SetScriptPartial[cr][lf] SARS@37564000:ServerVersion:2.9.1.42087[cr][lf][0x00] -アプリケーション名~ アプリケーション名は、アプリケーション側での二重起動時のFMO破壊を防止する等の目的で、~ アプリケーション名@固有ID~ という書式を用いてもよい。 クライアント側は、@ 記号を認識して適宜それを分割して認識してもよい。 -Capabilityプロパティ~ Capabilityプロパティには、サーバがどのFINEサブ規格に対応可能かを記述する。~ 内容はイベント名からOnFINEを取った形でカンマ区切りで列挙する。 例 SARS:Capability:SetScript,SetScriptPartial BottleClient:Capability:MessageSend,SetScript,SetScriptPartial -ServerVersionプロパティ~ FINEサーバのバージョン文字列を記述する。 ***サイズ [#j9d7cb10] 1024*64B。ただしサイズを示す値があるのでデータ本体で使用可能な領域は1024*64-4B。 **FINEリクエストの処理 [#i615d23a] WM_COPYDATAによるFINEリクエストを処理し、処理結果を返す。 ***ステータスコード [#g254d0d7] 基本的にはSSTPのステータスコードに準拠するが、サブ規格で追加定義されている物がある事を注意せよ。~ 書式はVersion Statuscode Statusstring[CRLF](例:NOTIFY/1.0 200 OK)~ また、ステータスラインの後に空行を入れてアプリケーション及びEvent固有の情報を返してもよい。 ,コード,状態,解説 ,200 OK,正常終了,リクエスト処理は正常に終了した。 ,400 Bad Request,処理不能,呼び出しの不備、内容の不一致。リクエストの内容が解釈不能など。 ,420 Refuse,拒否,FINEサーバーはそのリクエストを受け付けない ,500 Internal Server Error,サーバエラー,何らかのエラーがメッセージングツール側で発生した ,501 Not Implemented,未実装,実装していないリクエストが来た *クライアント要件 [#o74a514a] **FineFMOの解釈 [#f3c51a52] FMOのアクセスはMUTEXによる排他制御を行う事が推奨されるが、実装は任意である。~ なお、MUTEXによる排他制御を行わない場合は読み込み中にFMOが破壊される事態に備え、文法的に間違ったFMOに対して対処出来るように注意せよ。~ また、FINE''クライアント''は書き込みを行ってはならない。(サーバ機能を兼ね備える場合はサーバ要件に準ずる) **FINEリクエストの発行 [#r6491502] 発行方法はSSTP(Sakura Script Transfer Protocol)のNOTIFY/1.0形式に順じ、WM_COPYDATAにて行う。~ ソケット接続による発行はサポートしない。 ***リクエストヘッダ [#k65ba1ac] -Sender~ FINEクライアントの名前が入る。必須。 -Event~ サブ規格で定義されるイベント名(OnFINE~)。必須。 -Charset~ リクエストの文字コード。サポートするのはUTF-8/Shift_JIS/ASCII。必須。 -HWnd~ FINEクライアントのHWnd。必須。 -Reference0-7~ リクエスト内容。どのReferenceが何を意味するのかはサブ規格で定義される。任意。 発行後、FINEサーバから返されるステータスコードに従って適切な処理を行う事。 *サブ規格 [#le914501] #navi(殊海夕音/FINE) #newpage(殊海夕音/FINE/) *リソース [#d16d5f93] -[[殊海夕音/Delphi用FINEコンポーネント]] *コメント [#bb08da68] #comment(below) - 2004-07-06 (Tue) 01:14:27 ''[[浮子屋]]'' : お騒がせしてすみませんです。 - 2004-07-06 (Tue) 01:12:36 ''[[浮子屋]]'' : やさぐれソフトのTODOに書いて頂いた現象もこれで直ったと思います。 - 2004-07-06 (Tue) 01:11:22 ''[[浮子屋]]'' : どうも 'Sakura' FMO の方も0x00を終端とする(0x00埋めをしない)仕様らしいので、こちらを直しました。 - 2004-07-05 (Mon) 13:08:39 ''[[殊海夕音]]'' : げ、また何かポカやってましたか。コード見直してみます。 - 2004-07-05 (Mon) 04:15:44 ''[[浮子屋]]'' : 0x00をターミネータとするならそういう仕様にするので良いのですが、一旦全部きれいにする(残りを0x00で埋める)仕様だと思っていたので。。。 - 2004-07-05 (Mon) 04:14:32 ''[[浮子屋]]'' : 何故かTC上げ落としするとゴミが残るなーと思っていたら、TCは最後のエントリに0x00一個だけしか書かない(その後古いゴミは残したまま)みたいです。 - 2004-07-04 (Sun) 23:30:33 ''[[浮子屋]]'' : Capabilityと@の扱いを追記しました。 - 2004-07-04 (Sun) 21:56:35 ''[[浮子屋]]'' : なるほど。Capabilityですか。対応してみます。 - 2004-07-04 (Sun) 18:40:18 ''[[殊海夕音]]'' : TC及びSSTP Bottle Client非公式ビルドにCapabilityを実装しました。 - 2004-07-04 (Sun) 17:02:50 ''[[殊海夕音]]'' : ステータスコードに420を追加しました。 - 2004-07-04 (Sun) 13:09:24 ''[[殊海夕音]]'' : Capability、よさそうですね。 - 2004-07-03 (Sat) 20:22:28 ''[[殊海夕音]]'' : ステータスコードに501を追加しました。 - 2004-07-01 (Thu) 20:59:26 ''[[浮子屋]]'' : とりあえずSARS実装しました。 - 2004-06-22 (Tue) 18:12:20 ''[[浮子屋]]'' : ちょこっと直しました。FMOの[cr][lf]と0x00、後NOTIFYのヘッダのHwnd→HWndです。 - 2004-06-22 (Tue) 17:10:22 ''[[殊海夕音]]'' : それではTC側も実装始めます。これでひとまず固めてよろしいでしょうか。 - 2004-06-22 (Tue) 15:47:26 ''[[浮子屋]]'' : ページ作成やらせてしまってすみません。とりあえずこの仕様に従って実装してみます。
テキスト整形のルールを表示する