Archive for 12月 3rd, 2015

非同期じゃ…TouchJW for Win

木曜日, 12月 3rd, 2015

えー、この先、プログラミングできのこるためには、やはり非同期プログラミングは避けて通れません。です。はい、

というこで、TouchJW for iOSは Cなんで、ある程度、非同期流のところと同期のところは分けて書けるので、この辺は楽ですが、TouchJW for Winはべたべたの非同期を要求されるので、うざいっす。

でも、そうは言ってられないので、マスターすることにした。

結局WFPなどを使わず、Win32APIでだけで組むなら不要なんですが、しかしストアアプリでは非同期を強要されるので、しっかしめんどいわ。

無題

TouchJW for Win v1.系は一度ファイルをローカル領域に非同期で送って(コピーして)からべたなC言語のfopenとかで読んでました。こりゃ、めっちゃ効率が悪いのです。

ということで、TouchjW for iOS 1.5系以降はなんと、メモリ内に一気にバッファリングして読む機構を搭載しました。これで、iOSのv1.0系からv1.5系では劇的なファイルリードの高速化ができました。

実はTouchJW for Winはこの辺のロジックの改良を先延ばしにしていたのですが、せっかくのv2の機会なので、:やることにしました。(^^;..

ということで、備忘録、やり方は、FileOpenPickerでStorageFileを引っ張ってくる。CachedFileManager::DeferUpdates(file);する。create_task(FileIO::ReadBuffer) あたりで、読んでくる。

バッファのポインタがIStraemあたりで帰ってくるので、ポインタ取得し、JwwやTj2のデータファイルにマッピングする。

書き出しは、JwwやTj2のデータファイルイメージをメモリイメージにして、GlobalAllocでIStraem作って、あとは

FileSavePickerでStorageFileを引っ張ってCachedFileManager::DeferUpdates(file);して、create_task(FileIO::WriteBuffer) あたりで、書き出しっす。

最近のファイル操作は、Openしなくていいのよねん。ああっ!APIの頃のプログラミングはよかったのう。と、もうでも同期ぷrふぉぐらむには戻れないっす。

現在26位

木曜日, 12月 3rd, 2015

現在26位
これではごはんが食べられない。(;_;)