⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 imap4mail.h

📁 基于symbian的收发SMS、MMS消息
💻 H
字号:
#ifndef __IMAP4MAIL_H__
#define __IMAP4MAIL_H__

#include <msvapi.h>
#include <ckncancl.h>
#include <ImapConnectionObserver.h>

#include "impcmtm.h"

class CImap4ClientMtm;
class CMsvEmailUtils;

/*
* ============================================================================
*  Name     : CImap4Mail from Imap4Mail.h
*  Part of  : EmailExample
*  Created  : 09/11/2003 by Forum Nokia
*  Implementation notes:
*		Engine class that wraps some Imap4 functionality.
*		Implemented as statemachine.
*
*  Version  : 1.0
*  Copyright: Nokia Corporation
* ============================================================================
*/

class CImap4Mail : public CActive, public MMsvSessionObserver,public MCknCancellableOperation
	{

public:
// creational
	static CImap4Mail* NewL(TRequestStatus& aStatus,CMsvSession& aMsvSession);
	~CImap4Mail();

// interface

	/*
    * SyncWithRemoteServerL(TMsvId aMailId=NULL)
    *
    * only interface method which initiates multiple state process which
	* connects to remote mailbox and synchronizes folders and message headers
	* from remote server.
    *
    * Params:
	*	(1) TMsvId aMailId		initial entry id
    *
    */
	void SyncWithRemoteServerL(TMsvId aMailId=NULL);

// private functions
private:
	CImap4Mail(TRequestStatus& aStatus,CMsvSession& aMsvSession);
	void ConstructL();

// state handlers
	void ExecuteConnectL();
	void ExecuteSyncL();
	void ExecuteWaitSyncL();
	void ExecuteDisconnectL();

// helpers
	void MailCommandL(TInt aCommand,TDes8& aParams);
	void LoadMtmL();
	void Queue();

// from CActive
	void RunL();
	void DoCancel();
	TInt RunError(TInt aError);

// from MCknCancellableOperation
	void CancelOperation();

// from MMsvSessionObserver
    void HandleSessionEventL(TMsvSessionEvent aEvent,TAny* aArg1,TAny* aArg2,TAny* aArg3);

// from MMsvImapConnectionObserver
	void HandleImapConnectionEvent( TImapConnectionEvent aConnectionState);

	// private state values for the state machine
private:
	enum TInternalState
		{
		EInitialising,
		EReady,
		EConnecting,
		ESync,
		EWaitSync,
		EDisconnectRemote,
		EDisconnecting,
		ECanceling
		} ;

// private data
private:
	CMsvEmailUtils* iImap4Utils;
	TRequestStatus& iObserverStatus;
    CMsvSession& iMsvSession;
	CImap4ClientMtm* iImap4Mtm;
	TMsvId iServiceId;
    CMsvOperation* iOperation;
	CCknCancelDialog* iDialog;
	TInternalState iState;
	CMsvEntrySelection* iMsvSelection;
	TMsvId iMailId;
	};

#endif //__Imap4_H__

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -