Added NS_NewMsgMailSession and Init.

This commit is contained in:
putterman%netscape.com 1999-07-13 20:31:58 +00:00
parent ddfceef8d8
commit 63703948c1
2 changed files with 48 additions and 14 deletions

View File

@ -35,23 +35,13 @@ static NS_DEFINE_CID(kMsgAccountManagerCID, NS_MSGACCOUNTMANAGER_CID);
nsMsgMailSession::nsMsgMailSession():
mRefCnt(0),
m_accountManager(0)
m_accountManager(0),
mListeners(nsnull)
{
NS_INIT_REFCNT();
nsresult rv;
rv = nsComponentManager::CreateInstance(kMsgAccountManagerCID,
NULL,
nsCOMTypeInfo<nsIMsgAccountManager>::GetIID(),
(void **)&m_accountManager);
if (NS_SUCCEEDED(rv))
m_accountManager->LoadAccounts();
mListeners = new nsVoidArray();
}
nsMsgMailSession::~nsMsgMailSession()
{
if(m_accountManager)
@ -66,6 +56,26 @@ nsMsgMailSession::~nsMsgMailSession()
}
nsresult nsMsgMailSession:: Init()
{
nsresult rv;
rv = nsComponentManager::CreateInstance(kMsgAccountManagerCID,
NULL,
nsCOMTypeInfo<nsIMsgAccountManager>::GetIID(),
(void **)&m_accountManager);
if (NS_FAILED(rv))
return rv;
m_accountManager->LoadAccounts();
mListeners = new nsVoidArray();
if(!mListeners)
return NS_ERROR_OUT_OF_MEMORY;
return NS_OK;
}
// nsIMsgMailSession
nsresult nsMsgMailSession::GetCurrentIdentity(nsIMsgIdentity ** aIdentity)
@ -184,3 +194,20 @@ NS_IMETHODIMP nsMsgMailSession::NotifyFolderItemDeleted(nsIFolder *folder, nsISu
return NS_OK;
}
nsresult
NS_NewMsgMailSession(const nsIID& iid, void **result)
{
if (!result) return NS_ERROR_NULL_POINTER;
nsMsgMailSession *mailSession = new nsMsgMailSession;
if (!mailSession) return NS_ERROR_OUT_OF_MEMORY;
nsresult rv = mailSession->Init();
if(NS_FAILED(rv))
{
delete mailSession;
return rv;
}
return mailSession->QueryInterface(iid, result);
}

View File

@ -54,11 +54,18 @@ public:
NS_IMETHOD NotifyFolderItemAdded(nsIFolder *folder, nsISupports *item);
NS_IMETHOD NotifyFolderItemDeleted(nsIFolder *folder, nsISupports *item);
nsresult Init();
protected:
nsIMsgAccountManager *m_accountManager;
nsVoidArray *mListeners;
};
NS_BEGIN_EXTERN_C
nsresult
NS_NewMsgMailSession(const nsIID& iid, void **result);
NS_END_EXTERN_C
#endif /* nsMsgMailSession_h__ */