ドナドナされるプログラマのメモ

Windows用アプリのプログラミングメモ

Redmineダウンローダ開発メモ(3) ソフト開発-3 Redmineサーバーにアクセスする同期コードとか、JSONをCStdioFileからUTF-8で保存するコードとか

Redmineダウンローダ開発メモ(3) ソフト開発-2 - ドナドナされるプログラマのメモ の続き。

cppRESTを使ってRedmineサーバーからIssue一覧を取得するコードを書いた。cppRESTはメインの処理が別スレッドで実行される非同期ライブラリであり同時に複数のタスクをこなすのに向いている。しかし今回のソフトは順次実行が前提。相手サーバーに負荷をかけうる同時処理はもってのほかだし、そもそも処理をワーカースレッドから呼び出す設計なのでGUIのフリーズも心配不要なので、cppRESTを同期的に使う。
また、web::json::value::serialize()はUTF-16で書き出す。Windows標準はこちらぽいが、JSON形式の標準はUTF-8なので今回はUTF-8で保存することにする。この場合は同serializeにostreamを引数として渡せば、UTF-8として保存してくれる(ちょっと不思議な設計)。

続き:
Redmineダウンローダ開発メモ(4) ひとまずリリース - ドナドナされるプログラマのメモ