Outlook との同期、特に rid, rinfo について。
Outlook との同期について、あやちさんに実験していただいた結果です。
あやちさん、ありがとうございます。
もちろん内容については無保証です。
でも間違ってたら教えてください(掲示板で)。
rid
qtopia-free のソースによると Recode id
(record の typo だったらシャープ関係っぽいな...).
でも使ってない... ライセンス上公開できない部分と思われる
(シャープ関係っぽいな...)。
- 同期のときに使っている ?
- 疑問: 同期の後にザウルス側で rid を付け変えると別の予定とみなされるのか、
それとも uid の補助なのか ?
- Zaurus 側では、新しい予定には次項の RIDMax に 1 を足したものを
rid として割り当てる。
- Outlookで作成された予定には
同期のときに Intellisync が割り当てているっぽい。
RIDMax
現在のデータ内で最大の rid.
これがなければ、次のセーブ時に全ての予定の rid を付け変え、
RIDMax を然るべき値にするらしい。
rinfo
- 最下位ビットは Zaurus 上で作成され、
その後同期が行われていないことを示す。
- 次のビットは Zaurus 上で編集され、
その後同期が行われていないことを示す。
- 従って、例えば同期した後の予定を編集すると rinfo=2.
uid
Outlook で作成した予定は uid=0 になるらしい。
うーん、unique identifier じゃないのかなあ。
まあそれで rid が必要なのかも。
参考: Qtopia Desktop の場合
Qtopia Desktop(trolltech 謹製、
Palm Desktop 風の linux/Windows(MacOS X も?)用ソフト)
で作った予定の場合、rid, rinfo は無くて uid はもっともらしいのが付いている。
移行について
0.3.2unstable 以降では rid, rinfo に対応しています。
コンパイルには include/qpe/event.h の Event クラスに
void setRid(int);
void setRinfo(int);
int rid() const;
int rinfo() const;
を、include/qpe/datebookdb.h の DateBookDB クラスに
int newRid();
を追加する必要があります(strings libqpe.so したんだけど、いいですよね...)。
0.3.1unstable2 までの datebook2 で作ったデータについては
rid, rinfo が間違っているわけで気持ち悪いのですが、どうしたものでしょうね。
次のようにすれば多分大丈夫なんだけど。
- バックアップを取っておく。
- datebook2 やカレンダーは終了させておく(高速起動も切っておく)。
- datebook.xml の <RIDMax>(数字)</RIDMax> の行を削除。
- datebook2(別に標準のでもいいですけど)を(高速起動無しで)立ち上げ、
内容が空の予定を作って終了(セーブさせるため)。