mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-13 05:15:45 +00:00
add interfaces to get thread object from msg hdr or msg key
This commit is contained in:
parent
13ecc6211a
commit
0c90f57c28
@ -28,6 +28,7 @@ class nsIEnumerator;
|
||||
class nsThreadMessageHdr; // XXX where's the public interface to this?
|
||||
class nsMsgKeyArray;
|
||||
class nsIDBFolderInfo;
|
||||
class nsIMsgThread;
|
||||
|
||||
enum nsMsgDBCommitType {
|
||||
kSmallCommit,
|
||||
@ -182,6 +183,8 @@ public:
|
||||
// but also useful to tell the summary to mark itself invalid
|
||||
NS_IMETHOD SetSummaryValid(PRBool valid) = 0;
|
||||
|
||||
NS_IMETHOD GetThreadForMsgKey(nsMsgKey msgKey, nsIMsgThread **result) = 0;
|
||||
NS_IMETHOD GetThreadContainingMsgHdr(nsIMessage *msgHdr, nsIMsgThread **result) = 0;
|
||||
};
|
||||
|
||||
#endif // nsIMsgDatabase_h__
|
||||
|
@ -169,6 +169,8 @@ public:
|
||||
// but also useful to tell the summary to mark itself invalid
|
||||
NS_IMETHOD SetSummaryValid(PRBool valid);
|
||||
|
||||
NS_IMETHOD GetThreadForMsgKey(nsMsgKey msgKey, nsIMsgThread **result);
|
||||
NS_IMETHOD GetThreadContainingMsgHdr(nsIMessage *msgHdr, nsIMsgThread **result) ;
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
// nsMsgDatabase methods:
|
||||
nsMsgDatabase();
|
||||
@ -227,7 +229,6 @@ protected:
|
||||
// retrieval methods
|
||||
nsMsgThread * GetThreadForReference(nsString2 &msgID);
|
||||
nsMsgThread * GetThreadForSubject(const char * subject);
|
||||
nsMsgThread * GetThreadForMsgKey(nsMsgKey msgKey);
|
||||
nsMsgThread * GetThreadForThreadId(nsMsgKey threadId);
|
||||
nsMsgHdr * GetMsgHdrForReference(nsString2 &reference);
|
||||
nsMsgHdr * GetMsgHdrForMessageID(nsString2 &msgID);
|
||||
|
@ -2378,17 +2378,40 @@ nsMsgHdr * nsMsgDatabase::GetMsgHdrForMessageID(nsString2 &msgID)
|
||||
return msgHdr;
|
||||
}
|
||||
|
||||
nsMsgThread * nsMsgDatabase::GetThreadContainingMsgHdr(nsMsgHdr *msgHdr)
|
||||
NS_IMETHODIMP nsMsgDatabase::GetThreadContainingMsgHdr(nsIMessage *msgHdr, nsIMsgThread **result)
|
||||
{
|
||||
NS_ASSERTION(PR_FALSE, "not implemented yet.");
|
||||
return nsnull;
|
||||
nsresult ret = NS_OK;
|
||||
if (!result)
|
||||
return NS_ERROR_NULL_POINTER;
|
||||
|
||||
*result = nsnull;
|
||||
nsMsgKey threadId = nsMsgKey_None;
|
||||
(void)msgHdr->GetThreadId(&threadId);
|
||||
if (threadId != nsMsgKey_None)
|
||||
*result = GetThreadForThreadId(threadId);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
nsMsgThread *nsMsgDatabase::GetThreadForMsgKey(nsMsgKey msgKey)
|
||||
NS_IMETHODIMP nsMsgDatabase::GetThreadForMsgKey(nsMsgKey msgKey, nsIMsgThread **result)
|
||||
{
|
||||
NS_ASSERTION(PR_FALSE, "not implemented yet.");
|
||||
return nsnull;
|
||||
nsresult ret = NS_OK;
|
||||
if (!result)
|
||||
return NS_ERROR_NULL_POINTER;
|
||||
|
||||
*result = nsnull;
|
||||
|
||||
nsIMessage *msg = NULL;
|
||||
ret = GetMsgHdrForKey(msgKey, &msg);
|
||||
|
||||
if (NS_SUCCEEDED(ret) && msg)
|
||||
{
|
||||
ret = GetThreadContainingMsgHdr(msg, result);
|
||||
NS_RELEASE(msg);
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
// caller needs to unrefer.
|
||||
|
Loading…
Reference in New Issue
Block a user