[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]
Re: [MD:7263] Meadow OLE automation Implementation
- X-ml-count: 7264
- Subject: Re: [MD:7263] Meadow OLE automation Implementation
- From: Shun-ichi GOTO <gotoh@xxxxxxxxxxx>
- Date: Mon, 03 Apr 2006 15:15:23 +0900 (JST)
- X-mailer: Mew version 2.2 on Emacs 22.0 / Mule 5.0 (SAKAKI)
>>>>> On Mon, 03 Apr 2006 12:53:49 +0900 (JST),
>>>>> 堀口 == Kyotaro HORIGUCHI wrote,
堀口> 特に問題がなければこれをリポジトリに入れてしまおうと思っています
堀口> がどうでしょうか.
+1
堀口> ほりぐちです. しばらく死んでましたがふと思い立って Meadow に OLE
堀口> Automation を突っ込んでみました. (できたからなんだという話もありま
堀口> すが..)
おぉ、すげーです! 惚れちゃいます!
興味ありありです。
堀口> Meadow の既存コードへのインパクトについてはメインスレッドで処理す
堀口> るプライベートメッセージがひとつ追加になっただけです. なので OLE
堀口> モジュールの初期化をしなければ既存部分への動作への影響はまったく影
堀口> 響はありません.
com オブジェクトはfirst class を作る手法ではなく、ライブラリレベルの
管理としたんですね。
mw32-ole ライブラリ内で各呼び出し毎に記憶しておき、
release は記憶されているオブジェクトをmw32-ole-cleanup-objectで
ネストレベル内で使用されたオブジェクトの追加参照カウントをまとめて
減らすって事ですかね。
この方法だと確かに本体に影響はほとんど無いので、trunk に入れても良いとも
思いますが、この実装が試験的なものならばブランチにしておいた方がよいかも。
他の人はどう思います?
ちなみに mw32-ole 以外のものは分けてcommit して欲しいです。
堀口> # インタフェースの仕様についての突っ込みも歓迎です.
これはもうちょっと実装を見てみないとなんとも。
IDispatch による呼び出しを実装したと言う事ですよね。
ざっとみて、とりあえず気になるのは参照カウントの扱い方くらいかな。
mw32-ole-record-start と mw32-ole-cleanup-objects でやってるけど、COMを利
用する関数に入ったら、出てくる時は同じ状態で出てくるようにする事が前提な
のだと読みとりました。そうでない?
そうだとすればですが、COMオブジェクトを返すtoplevel 関数がつくれなくない
のではない? 断続的なCOMオブジェクトの利用者(関数)が複数いる書き方は出来
なくなりそうだけどどうだろう。cleanup の実装を見てないので想像だけで言え
ば、ネストレベルによるオブジェクト管理の他にネストレベルから外してグロー
バル(?)な管理機構にいれる、もしくは特定のオブジェクトを一つ上のネストレベ
ルに移す、あるいは単に明示的なAdd()があれば良いのかも知れない。
それでもオーボメーションが使える利点は大きいと思うので、素晴らしいことに
は変わりないけど。
堀口> ## 他に機能増強ネタとしては, WaitForMultipleObject や select をマ
堀口> ## ルチスレッドで行うことでソケット 64 個制限を乗り越えるというの
堀口> ## があります. これで起動できるプロセス数を現状の30個程度より増や
堀口> ## すことができるようになると思います.
先にいったように、これは分けてcommit して欲しいな。
--- Regards,
Shun-ichi Goto <gotoh@xxxxxxxxxxx>
R&D Group, TAIYO Corp., Tokyo, JAPAN