account - アカウント情報の管理 ------------------------------------------------------------------------------ typedef gint (*AccountFunc) (PrefsAccount *ac_prefs, gpointer user_data); account_foreach で呼び出されるコールバック関数の型です。 ------------------------------------------------------------------------------ void account_read_config_all (void); すべてのアカウントの設定を読み込みます。 ------------------------------------------------------------------------------ void account_write_config_all (void); すべてのアカウントの設定を書き出します。 ------------------------------------------------------------------------------ PrefsAccount *account_get_current_account (void); 現在選択されているアカウントを返します。 戻り値: 現在選択されているアカウントを指す PrefsAccount 構造体へのポインタ アカウントが存在しなければ NULL ------------------------------------------------------------------------------ PrefsAccount *account_find_from_smtp_server (const gchar *address, const gchar *smtp_server); アドレスと SMTP サーバから最初に一致するアカウントを検索します。 address: メールアドレス smtp_server: SMTP サーバのホスト名 戻り値: アドレスと SMTP サーバが最初に一致したアカウント 見つからなければ NULL ------------------------------------------------------------------------------ PrefsAccount *account_find_from_address (const gchar *address); アドレスから最初に一致するアカウントを検索します。 address: メールアドレス 戻り値: アドレスが最初に一致したアカウント 見つからなければ NULL ------------------------------------------------------------------------------ PrefsAccount *account_find_from_id (gint id); アカウントIDが一致するアカウントを検索します。 id: アカウントID 戻り値: アカウントIDが一致したアカウント 見つからなければ NULL ------------------------------------------------------------------------------ PrefsAccount *account_find_from_item (FolderItem *item); フォルダのプロパティの設定で指定されているアカウントを検索します。 見つからなかった場合、メールボックス(Folder)にリンクしているアカウントが あればそれを返します。 item: FolderItem オブジェクト 戻り値: 発見したアカウント 見つからなければ NULL ------------------------------------------------------------------------------ PrefsAccount *account_find_from_item_property (FolderItem *item); フォルダのプロパティの設定で指定されているアカウントを検索します。 item: FolderItem オブジェクト 戻り値: 発見したアカウント 見つからなければ NULL ------------------------------------------------------------------------------ PrefsAccount *account_find_from_message_file (const gchar *file); RFC 2822 メッセージファイル file の From、X-Sylpheed-Account-Id、AID ヘッダから、アカウントを検索します。 file: RFC 2822 メッセージファイルのパス(ファイル名エンコーディング) 戻り値: 一致したアカウント 見つからなければ NULL ------------------------------------------------------------------------------ PrefsAccount *account_find_from_msginfo (MsgInfo *msginfo); メッセージ情報 msginfo が示すメッセージからアカウントを検索します。 見つからなかった場合は msginfo を内包するフォルダのプロパティに指定されている アカウントを検索します。 msginfo: MsgInfo 構造体へのポインタ 戻り値: 発見したアカウント 見つからなければ NULL ------------------------------------------------------------------------------ gboolean account_address_exist (const gchar *address); アドレス address がアカウントのリストのうちいずれかに含まれるかどうかを 調べます。見つかった場合は TRUE を返します。 account_find_from_address() よりも高速です。 address: メールアドレス 戻り値: アドレスがアカウントのいずれかに含まれれば TRUE 含まれなければ FALSE ------------------------------------------------------------------------------ void account_foreach (AccountFunc func, gpointer user_data); すべてのアカウントに対して関数 func を呼び出します。 func: AccountFunc 型の関数へのポインタ user_data: func の引数に渡すユーザデータ ------------------------------------------------------------------------------ GList *account_get_list (void); 内部で保持しているアカウントのリストを取得します。 リストは解放する必要はありません。 戻り値: 内部で保持している PrefsAccount 構造体へのポインタのリスト ------------------------------------------------------------------------------ void account_list_free (void); 内部で保持しているアカウントのリストを解放します。 確保されている PrefsAccount 構造体自体は解放されないので注意してください。 ------------------------------------------------------------------------------ void account_append (PrefsAccount *ac_prefs); 内部で保持しているアカウントのリストにアカウント ac_prefs を追加します。 ac_prefs: リストに追加するアカウント ------------------------------------------------------------------------------ void account_set_as_default (PrefsAccount *ac_prefs); アカウント ac_prefs にデフォルトフラグを設定します。 他のアカウントのデフォルトフラグはクリアされます。 ac_prefs: デフォルトフラグを設定するアカウント ------------------------------------------------------------------------------ PrefsAccount *account_get_default (void); デフォルトに設定されているアカウントを取得します。 戻り値: デフォルトフラグが設定されているアカウント ------------------------------------------------------------------------------ FolderItem *account_get_special_folder(PrefsAccount *ac_prefs, SpecialFolderItemType type); アカウント ac_prefs に結び付いている特別フォルダを取得します。 結び付いているものがなければデフォルトのフォルダを返します。 ac_prefs: 対象のアカウント type: 特別フォルダのタイプ 戻り値: アカウントに結び付いている特別フォルダ 見つからなければ NULL ------------------------------------------------------------------------------ void account_destroy (PrefsAccount *ac_prefs); アカウント ac_prefs を削除します。内部のアカウントリストからも削除されます。 ac_prefs にデフォルトフラグが立っていた場合は、リストの先頭のアカウントに 自動的にデフォルトフラグを立てます。 ac_prefs: 削除するアカウント ------------------------------------------------------------------------------ void account_updated (void); アカウント情報に何らかの変更があった場合に呼びます。 これを呼び出すと、高速検索用に内部で保持しているアドレスのハッシュテーブルが クリアされます。