more on copy service - remove listenerData

This commit is contained in:
jefft%netscape.com 1999-07-13 20:06:25 +00:00
Родитель 3239698618
Коммит 902d067869
2 изменённых файлов: 17 добавлений и 21 удалений

Просмотреть файл

@ -57,16 +57,15 @@ public:
nsresult Init(nsCopyRequestType type, nsISupports* aSupport, nsresult Init(nsCopyRequestType type, nsISupports* aSupport,
nsIMsgFolder* dstFolder, nsIMsgFolder* dstFolder,
PRBool bVal, nsIMsgCopyServiceListener* listener, PRBool bVal, nsIMsgCopyServiceListener* listener,
nsISupports* data, nsITransactionManager* txnMgr); nsITransactionManager* txnMgr);
nsCopySource* AddNewCopySource(nsIMsgFolder* srcFolder); nsCopySource* AddNewCopySource(nsIMsgFolder* srcFolder);
nsCOMPtr<nsISupports> m_srcSupport; // ui source folder or file spec nsCOMPtr<nsISupports> m_srcSupport; // ui source folder or file spec
nsCOMPtr<nsIMsgFolder> m_dstFolder; nsCOMPtr<nsIMsgFolder> m_dstFolder;
nsCOMPtr<nsITransactionManager> m_txnMgr; nsCOMPtr<nsITransactionManager> m_txnMgr;
nsCOMPtr<nsIMsgCopyServiceListener> m_listener; nsCOMPtr<nsIMsgCopyServiceListener> m_listener;
nsCOMPtr<nsISupports> m_listenerData;
nsCopyRequestType m_requestType; nsCopyRequestType m_requestType;
PRBool m_isMoveOrDraft; PRBool m_isMoveOrDraftOrTemplate;
PRBool m_processed; PRBool m_processed;
nsVoidArray m_copySourceArray; // array of nsCopySource nsVoidArray m_copySourceArray; // array of nsCopySource
}; };
@ -85,15 +84,13 @@ public:
nsIMsgFolder* dstFolder, nsIMsgFolder* dstFolder,
PRBool isMove, PRBool isMove,
nsIMsgCopyServiceListener* listener, nsIMsgCopyServiceListener* listener,
nsISupports* listenerData,
nsITransactionManager* txnMgr); nsITransactionManager* txnMgr);
NS_IMETHOD CopyFileMessage(nsIFileSpec* fileSpec, NS_IMETHOD CopyFileMessage(nsIFileSpec* fileSpec,
nsIMsgFolder* dstFolder, nsIMsgFolder* dstFolder,
nsIMessage* msgToReplace, nsIMessage* msgToReplace,
PRBool isDraft, PRBool isDraftOrTemplate,
nsIMsgCopyServiceListener* listener, nsIMsgCopyServiceListener* listener,
nsISupports* listenerData,
nsITransactionManager* txnMgr); nsITransactionManager* txnMgr);
NS_IMETHOD NotifyCompletion(nsISupports* aSupport, /* store src folder */ NS_IMETHOD NotifyCompletion(nsISupports* aSupport, /* store src folder */
@ -142,7 +139,7 @@ void nsCopySource::AddMessage(nsIMessage* aMsg)
// //
nsCopyRequest::nsCopyRequest() : nsCopyRequest::nsCopyRequest() :
m_requestType(nsCopyMessagesType), m_requestType(nsCopyMessagesType),
m_isMoveOrDraft(PR_FALSE), m_isMoveOrDraftOrTemplate(PR_FALSE),
m_processed(PR_FALSE) m_processed(PR_FALSE)
{ {
} }
@ -165,7 +162,7 @@ nsresult
nsCopyRequest::Init(nsCopyRequestType type, nsISupports* aSupport, nsCopyRequest::Init(nsCopyRequestType type, nsISupports* aSupport,
nsIMsgFolder* dstFolder, nsIMsgFolder* dstFolder,
PRBool bVal, nsIMsgCopyServiceListener* listener, PRBool bVal, nsIMsgCopyServiceListener* listener,
nsISupports* data, nsITransactionManager* txnMgr) nsITransactionManager* txnMgr)
{ {
nsresult rv = NS_OK; nsresult rv = NS_OK;
m_requestType = type; m_requestType = type;
@ -173,11 +170,9 @@ nsCopyRequest::Init(nsCopyRequestType type, nsISupports* aSupport,
if (NS_FAILED(rv)) return rv; if (NS_FAILED(rv)) return rv;
m_dstFolder = do_QueryInterface(dstFolder, &rv); m_dstFolder = do_QueryInterface(dstFolder, &rv);
if (NS_FAILED(rv)) return rv; if (NS_FAILED(rv)) return rv;
m_isMoveOrDraft = bVal; m_isMoveOrDraftOrTemplate = bVal;
if (listener) if (listener)
m_listener = do_QueryInterface(listener, &rv); m_listener = do_QueryInterface(listener, &rv);
if (data)
m_listenerData = do_QueryInterface(data, &rv);
if (txnMgr) if (txnMgr)
m_txnMgr = do_QueryInterface(txnMgr, &rv); m_txnMgr = do_QueryInterface(txnMgr, &rv);
return rv; return rv;
@ -229,7 +224,7 @@ nsMsgCopyService::ClearRequest(nsCopyRequest* aRequest, nsresult rv)
m_copyRequests.RemoveElement(aRequest); m_copyRequests.RemoveElement(aRequest);
if (aRequest->m_listener) if (aRequest->m_listener)
aRequest->m_listener->OnStopCopy(rv, aRequest->m_listenerData); aRequest->m_listener->OnStopCopy(rv);
delete aRequest; delete aRequest;
} }
@ -288,14 +283,15 @@ nsMsgCopyService::DoNextCopy()
if (copyRequest && !copyRequest->m_processed) if (copyRequest && !copyRequest->m_processed)
{ {
if (copyRequest->m_listener) if (copyRequest->m_listener)
copyRequest->m_listener->OnStartCopy(copyRequest->m_listenerData); copyRequest->m_listener->OnStartCopy();
if (copyRequest->m_requestType == nsCopyMessagesType && if (copyRequest->m_requestType == nsCopyMessagesType &&
copySource) copySource)
{ {
copySource->m_processed = PR_TRUE; copySource->m_processed = PR_TRUE;
rv = copyRequest->m_dstFolder->CopyMessages rv = copyRequest->m_dstFolder->CopyMessages
(copySource->m_msgFolder, copySource->m_messageArray, (copySource->m_msgFolder, copySource->m_messageArray,
copyRequest->m_isMoveOrDraft, copyRequest->m_txnMgr); copyRequest->m_isMoveOrDraftOrTemplate,
copyRequest->m_txnMgr, copyRequest->m_listener);
} }
else if (copyRequest->m_requestType == nsCopyFileMessageType) else if (copyRequest->m_requestType == nsCopyFileMessageType)
@ -318,8 +314,10 @@ nsMsgCopyService::DoNextCopy()
} }
copyRequest->m_processed = PR_TRUE; copyRequest->m_processed = PR_TRUE;
rv = copyRequest->m_dstFolder->CopyFileMessage rv = copyRequest->m_dstFolder->CopyFileMessage
(aSpec, aMessage, copyRequest->m_isMoveOrDraft, (aSpec, aMessage,
copyRequest->m_listenerData, copyRequest->m_txnMgr); copyRequest->m_isMoveOrDraftOrTemplate,
copyRequest->m_txnMgr,
copyRequest->m_listener);
} }
} }
} }
@ -363,7 +361,6 @@ nsMsgCopyService::CopyMessages(nsIMsgFolder* srcFolder, /* UI src foler */
nsIMsgFolder* dstFolder, nsIMsgFolder* dstFolder,
PRBool isMove, PRBool isMove,
nsIMsgCopyServiceListener* listener, nsIMsgCopyServiceListener* listener,
nsISupports* listenerData,
nsITransactionManager* txnMgr) nsITransactionManager* txnMgr)
{ {
nsCopyRequest* copyRequest; nsCopyRequest* copyRequest;
@ -382,7 +379,7 @@ nsMsgCopyService::CopyMessages(nsIMsgFolder* srcFolder, /* UI src foler */
aSupport = do_QueryInterface(srcFolder, &rv); aSupport = do_QueryInterface(srcFolder, &rv);
rv = copyRequest->Init(nsCopyMessagesType, aSupport, dstFolder, rv = copyRequest->Init(nsCopyMessagesType, aSupport, dstFolder,
isMove, listener, listenerData, txnMgr); isMove, listener, txnMgr);
if (NS_FAILED(rv)) goto done; if (NS_FAILED(rv)) goto done;
rv = NS_NewISupportsArray(getter_AddRefs(msgArray)); rv = NS_NewISupportsArray(getter_AddRefs(msgArray));
@ -457,7 +454,6 @@ nsMsgCopyService::CopyFileMessage(nsIFileSpec* fileSpec,
nsIMessage* msgToReplace, nsIMessage* msgToReplace,
PRBool isDraft, PRBool isDraft,
nsIMsgCopyServiceListener* listener, nsIMsgCopyServiceListener* listener,
nsISupports* listenerData,
nsITransactionManager* txnMgr) nsITransactionManager* txnMgr)
{ {
nsresult rv = NS_ERROR_NULL_POINTER; nsresult rv = NS_ERROR_NULL_POINTER;
@ -472,7 +468,7 @@ nsMsgCopyService::CopyFileMessage(nsIFileSpec* fileSpec,
if (NS_FAILED(rv)) goto done; if (NS_FAILED(rv)) goto done;
rv = copyRequest->Init(nsCopyFileMessageType, aSupport, dstFolder, rv = copyRequest->Init(nsCopyFileMessageType, aSupport, dstFolder,
isDraft, listener, listenerData, txnMgr); isDraft, listener, txnMgr);
if (NS_FAILED(rv)) goto done; if (NS_FAILED(rv)) goto done;
if (msgToReplace) if (msgToReplace)

Просмотреть файл

@ -909,7 +909,7 @@ nsresult nsMsgFolderDataSource::DoCopyToFolder(nsIMsgFolder *dstFolder, nsISuppo
if(NS_SUCCEEDED(rv)) if(NS_SUCCEEDED(rv))
{ {
copyService->CopyMessages(srcFolder, messageArray, dstFolder, isMove, copyService->CopyMessages(srcFolder, messageArray, dstFolder, isMove,
nsnull, nsnull, txnMgr); nsnull, txnMgr);
} }
return NS_OK; return NS_OK;