--- a/qtmobility/src/messaging/qmtmengine_symbian_p.h Fri Jun 11 14:26:25 2010 +0300
+++ b/qtmobility/src/messaging/qmtmengine_symbian_p.h Wed Jun 23 19:08:38 2010 +0300
@@ -75,6 +75,7 @@
class CMessagesFindOperation;
class QMessageId;
class QMessageAccount;
+class CAsynchronousMTMOperation;
struct MessageEvent
{
@@ -145,10 +146,10 @@
bool sendEmail(QMessage &message);
bool storeSMS(QMessage &message);
bool sendSMS(QMessage &message);
- bool retrieve(const QMessageId &messageId, const QMessageContentContainerId& id);
- bool retrieveBody(const QMessageId& id);
- bool retrieveHeader(const QMessageId& id);
- bool exportUpdates(const QMessageAccountId &id);
+ bool retrieve(QMessageServicePrivate& privateService, const QMessageId &messageId, const QMessageContentContainerId& id);
+ bool retrieveBody(QMessageServicePrivate& privateService, const QMessageId& id);
+ bool retrieveHeader(QMessageServicePrivate& privateService, const QMessageId& id);
+ bool exportUpdates(QMessageServicePrivate& privateService, const QMessageAccountId &id);
QByteArray attachmentContent(long int messageId, unsigned int attachmentId);
QString attachmentTextContent(long int messageId, unsigned int attachmentId, const QByteArray &charset);
@@ -228,10 +229,10 @@
void storeSMSL(QMessage &message);
bool validateSMS();
void sendSMSL(QMessage &message);
- void retrieveL(const QMessageId &messageId, const QMessageContentContainerId& id);
- void retrieveBodyL(const QMessageId& id) const;
- void retrieveHeaderL(const QMessageId& id) const;
- void exportUpdatesL(const QMessageAccountId &id) const;
+ void retrieveL(QMessageServicePrivate& privateService, const QMessageId &messageId, const QMessageContentContainerId& id);
+ void retrieveBodyL(QMessageServicePrivate& privateService, const QMessageId& id);
+ void retrieveHeaderL(QMessageServicePrivate& privateService, const QMessageId& id);
+ void exportUpdatesL(QMessageServicePrivate& privateService, const QMessageAccountId &id);
void appendAttachmentToMessage(QMessage& message, QMessageContentContainer& attachment) const;
QByteArray attachmentContentL(long int messageId, unsigned int attachmentId);
@@ -243,6 +244,11 @@
static void cmsvEntryCleanup(TAny* aCMsvEntry);
CMsvEntry* retrieveCMsvEntryAndPushToCleanupStack(TMsvId id = 0) const;
void releaseCMsvEntryAndPopFromCleanupStack(CMsvEntry* pEntry) const;
+
+ CAsynchronousMTMOperation* createAsynchronousMTMOperation(QMessageServicePrivate& privateService,
+ CBaseMtm* mtm,
+ TMsvId serviceId);
+ void deleteAsynchronousMTMOperation(CAsynchronousMTMOperation *apOperation);
private: // from CActive
void RunL();
@@ -302,6 +308,7 @@
friend class QMessageService;
friend class CMessagesFindOperation;
+ friend class CAsynchronousMTMOperation;
};
class CMessagesFindOperation : public CActive
@@ -346,6 +353,74 @@
mutable RTimer iTimer;
};
+class QMTMWait : public CActive
+{
+public:
+ QMTMWait(TInt aPriority = EPriorityStandard);
+ ~QMTMWait();
+
+ void start();
+
+protected: // From CActive
+ void RunL();
+ void DoCancel();
+
+private: // Data
+ QEventLoop m_eventLoop;
+};
+
+class CAsynchronousMTMOperation : public CActive
+{
+public:
+ enum MTMOperation
+ {
+ MTMOperationRetrieveMessageHeader,
+ MTMOperationRetrieveMessageBody,
+ MTMOperationRetrieveMessageAttachments,
+ MTMOperationFullSync,
+ };
+
+ enum MTMOperationStep
+ {
+ MTMOperationStepConnect,
+ MTMOperationStepDoOperation,
+ MTMOperationStepDisconnect,
+ MTMOperationStepFinished
+ };
+
+ CAsynchronousMTMOperation(CMTMEngine& aParent,
+ QMessageServicePrivate& privateService,
+ CBaseMtm* mtm,
+ TMsvId serviceId,
+ TInt aOperationId);
+ ~CAsynchronousMTMOperation();
+
+ bool retrieveMessageHeader(TMsvId aMessageId);
+ bool retrieveMessageBody(TMsvId aMessageId);
+ bool retrieveMessageAttachments(TMsvId aMessageId);
+ bool doFullSync();
+
+protected: // From CActive
+ void RunL();
+ void DoCancel();
+
+private: // Data
+ CMTMEngine* ipParent;
+
+ TInt iOperationId;
+ TMsvId iServiceId;
+ TMsvId iMessageId;
+ QMessageServicePrivate* ipPrivateService;
+
+ CBaseMtm* ipMTM;
+ MTMOperation iOperation;
+ MTMOperationStep iOperationStep;
+
+ CMsvEntrySelection* ipMsvEntrySelection;
+ CMsvOperation* ipMsvOperation;
+
+ bool isActive;
+};
QTM_END_NAMESPACE
#endif // QMTMENGINE_SYMBIAN_H