mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-22 09:45:41 +00:00
Added NS_NewMsgMailSession and Init.
This commit is contained in:
parent
ddfceef8d8
commit
63703948c1
@ -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);
|
||||
}
|
@ -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__ */
|
||||
|
Loading…
Reference in New Issue
Block a user