gecko-dev/mailnews/base/public/nsIMsgAccountManager.idl
alecf%netscape.com a73331fdcb rename some methods to be more consistent
make all accesses to the account manager kick off LoadPrefs so they can be loaded on demand
don't forget to clean up the accounts in the hash table during destruction
1999-06-22 05:32:50 +00:00

69 lines
2.4 KiB
Plaintext

/* -*- Mode: IDL; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
#include "nsISupports.idl"
#include "nsIMsgAccount.idl"
#include "nsIMsgIdentity.idl"
#include "nsIMsgIncomingServer.idl"
interface nsISupportsArray;
%{C++
#include "nsISupportsArray.h"
%}
[scriptable, uuid(6ed2cc00-e623-11d2-b7fc-00805f05ffa5)]
interface nsIMsgAccountManager : nsISupports {
/* createAccount creates a new account and assigns a new accountKey */
nsIMsgAccount CreateAccount(in nsIMsgIncomingServer server,
in nsIMsgIdentity identity);
/* similar to createAccount, but we already know the account key */
nsIMsgAccount CreateAccountWithKey(in nsIMsgIncomingServer server,
in nsIMsgIdentity identity,
in string accountKey);
void AddAccount(in nsIMsgAccount account);
/* account list stuff */
/* defaultAccount should always be set if there are any accounts
* in the account manager. You can only set the defaultAccount to an
* account already in the account manager */
attribute nsIMsgAccount defaultAccount;
readonly attribute nsISupportsArray accounts;
/* Each account will have a unique key, which should not change
* for the life of the account. */
string getAccountKey(in nsIMsgAccount account);
/* utility routines to enumerate elements in all accounts */
readonly attribute nsISupportsArray allIdentities;
readonly attribute nsISupportsArray allServers;
nsIMsgIncomingServer
FindServer(in string userName, in string hostname, in string type);
nsISupportsArray GetIdentitiesForServer(in nsIMsgIncomingServer server);
nsISupportsArray GetServersForIdentity(in nsIMsgIdentity identity);
void LoadAccounts();
};