2003-02-06 124245 [長年日記]

オフラインでコピー

オフラインでメッセージを移動・コピーした場合には、その旨を記録した上でコピー先に一時的にローカルメッセージを置きます。でもって、次回同期時にサーバにコピーコマンドを送った後で、一時ローカルメッセージを削除します。

ところで、同期する前に一時的に置かれたローカルメッセージのフラグが変更された場合にはどうやってサーバに反映させたら良いでしょう。本来はサーバにコピーコマンドを送った後で、コピー先のメッセージに対してフラグをセットしてやれば良いのですが、UIDPLUS Extensionをサポートしていない場合、コピー先のメッセージのUIDがわからないのでフラグをセットすることが出来ません。

方法としては、コピー前にフラグをセットしてコピーしてから元のメールのフラグを戻すという方法か、メッセージ本体をダウンロードしてからフラグをつけてAPPENDコマンドを使う方法があるでしょうか。後者はメッセージが大きくなると遅くなってしまいます。前者は4つのコマンド(FETCH, STORE, COPY, STORE)を順番に呼び出している間に他のクライアントからコマンドを送られるとやっかいですね。

Objective Caml 入門

最近、関数型言語が好きなのです。というわけで、Objective Caml 入門