Hori,Masaki
masak****@users*****
2002年 11月 13日 (水) 14:53:43 JST
> >2、各メールボックスはメールファイルクラスのインスタンスを持ち、保存は メールファイルクラスが行う > > メールファイルクラスというのは、1通のメールを表すものなのでしょうか。 > それとも、物理的な1ファイルを表すものでしょうか。 メールファイルクラスはネーミングミスです。MailFileManagerに変更します。 これは、今のところプロトコルで考えています。 すべてのメソッドは -(BOOL)saveMail:(id)rowdata intoMailbox:(id)mailbox; のように、mailboxを引数に取ります。 保存はMailFileManagerないしそれが管理するクラスがやってくれれば良いです。 全部1ファイルで済ませても、メールボックスごとに分けても、 勝手にフォルダを作っても何だって結構です。 保存場所はMailboxクラスの -(NSStirng*)mailboxPath; で決めれるようになってます。 プロトタイプでは、 "ユーザ指定フォルダ/parentMailboxName/mailboxName" のようなパスを返します。 独自拡張されたMailboxクラスのサブクラスが、 メールボックスごとに場所を変えても結構です。 > >3、メールボックスはシリアライズ可能。 > > ここでいうシリアライズというのは、メールボックスに含まれるメールをシリアラ イズする > ということでしょうか。エクスポートやバックアップを想定?。 > それとも、メールボックスの名前とか、設定情報とかをシリアライズするのでしょ うか。 設定情報です。 メールボックスクラスは現在抽象クラスを作ってます。 抽象クラスは、自分の名前と子供(s)、MailFileManagerのクラス名をシリアライズす るだけです。 メールはMailFileManager(もしくはそれが管理するクラス)が保存します。 通常はメールの保存タイミングはシリアライズ時ではなくメールボックスに入れられ たときです。 しかし、レスポンス向上のためにメールボックスにインデックスに当たるような情報 を 独自に持たせてそれをシリアライズしても独自にファイルに保存しても良いです。 実装はサブクラスに任されます。 #昨日イヤーな物を発見してしまったので、 #シリアライズではなくアーカイブに変更します。 #まあ、違いがよくわからないので僕的にはどっちでもいいんですけど。 > 手元にあるオライリーの「電子メールプロトコル」という本には、 > "Message-IDヘッダの値は、必ず世界中で一意でなければならず、通常はシリアル 番号と > ホスト指定名からなる" > という記述があったので、一応一意であると信じてしまってよいのではないでしょ うか。 > ただ、Message-IDヘッダはオプションのヘッダと書いてあるので、 > 付加されていない場合もあり得るのかも・・・ > その場合は、MUA側で便宜的にIDをふってしまえばいいのかなあ。 そうですか。無かったらつけなければならないわけですね。 付けるにしても付け方が難しいですね。 とりあえず、プロトタイプはついていると仮定して作ります。 > うーん、個人的にはラップした方が良いのではないかと思っています。 > というのも、AppleのMessageFrameworkというのがありますよね。 > もし、こちらのフレームワークが将来充実してきたら、 > こちらに乗り換えた方がよいのかな、などと密かに思っているので・・・ > あとは、もしもPantomimeがバージョンアップして、インターフェースが > 変わった時のことなども考えると、ラップしておいた方が安心かな、と思ってま す。 ラップ被せたほうがよいようですね。 Messageクラスの方は、薄皮一枚で済ませます:-) では。