ipsservices/ipssosaoplugin/inc/IpsSosAOImapAgent.h
branchRCL_3
changeset 25 3533d4323edc
parent 24 d189ee25cf9d
equal deleted inserted replaced
24:d189ee25cf9d 25:3533d4323edc
     1 /*
     1 /*
     2 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
     2 * Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies). 
     3 * All rights reserved.
     3 * All rights reserved.
     4 * This component and the accompanying materials are made available
     4 * This component and the accompanying materials are made available
     5 * under the terms of "Eclipse Public License v1.0"
     5 * under the terms of "Eclipse Public License v1.0"
     6 * which accompanies this distribution, and is available
     6 * which accompanies this distribution, and is available
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
    21 #define IPSSOSAOIMAPAGENT_H_
    21 #define IPSSOSAOIMAPAGENT_H_
    22 
    22 
    23 #include <imapconnectionobserver.h>
    23 #include <imapconnectionobserver.h>
    24 #include <imapset.h>
    24 #include <imapset.h>
    25 #include <mtclreg.h>
    25 #include <mtclreg.h>
    26 #include "MFSMailRequestObserver.h"
    26 //<cmail>
       
    27 #include "mfsmailrequestobserver.h"
       
    28 //</cmail>
    27 
    29 
    28 #include "IpsSosAOBaseAgent.h"
    30 #include "IpsSosAOBaseAgent.h"
    29 
    31 
    30 class CImap4ClientMtm;
    32 class CImap4ClientMtm;
    31 //<QMail>
    33 class CIpsSetDataApi;
    32 
    34 
    33 //</QMail>
       
    34 /**
    35 /**
    35 * class CIpsSosAOImapAgent;
    36 * class CIpsSosAOImapAgent;
    36 *
    37 *
    37 * Is created by IpsSosAOBaseAgent, contains imap spesific implementations of base class pure
    38 * Is created by IpsSosAOBaseAgent, contains imap spesific implementations of base class pure
    38 * virtual functions.
    39 * virtual functions.
    39 *
    40 *
    40 */
    41 */
    41 //<Qmail>
    42 class CIpsSosAOImapAgent : public CIpsSosAOBaseAgent,
    42 NONSHARABLE_CLASS (CIpsSosAOImapAgent) : public CIpsSosAOBaseAgent,
       
    43 //</Qmail>
       
    44                            public MMsvImapConnectionObserver,
    43                            public MMsvImapConnectionObserver,
    45                            public MFSMailRequestObserver
    44                            public MFSMailRequestObserver
    46     {
    45     {
    47 public:
    46 public:
    48     
    47     
    59     * Destructor
    58     * Destructor
    60     */
    59     */
    61     virtual ~CIpsSosAOImapAgent();
    60     virtual ~CIpsSosAOImapAgent();
    62     
    61     
    63 public: // from CIpsSosAOBaseAgent
    62 public: // from CIpsSosAOBaseAgent
    64     //<Qmail>
    63     
    65     /**
       
    66      * GetServerAddress
       
    67      * @param a return parameter
       
    68      */
       
    69     virtual void GetServerAddress( 
    64     virtual void GetServerAddress( 
    70             TBuf<KIpsSosAOTextBufferSize>& aIncomingServer ) const;
    65             TBuf<KIpsSosAOTextBufferSize>& aIncomingServer ) const;
    71     
    66     
    72     /**
       
    73      * GetUsername
       
    74      * @param a return parameter
       
    75      */
       
    76     virtual void GetUsername( 
    67     virtual void GetUsername( 
    77             TBuf8<KIpsSosAOTextBufferSize>& aUsername ) const;
    68             TBuf8<KIpsSosAOTextBufferSize>& aUsername ) const;
    78     
    69     
    79     /**
       
    80      * checks is does mailbox have connection open
       
    81      * @return is connected or not
       
    82      */
       
    83     virtual TBool IsConnected() const;
    70     virtual TBool IsConnected() const;
    84     
    71     
    85     /**
       
    86      * Starts email sync
       
    87      */
       
    88     virtual void StartSyncL();
    72     virtual void StartSyncL();
    89     
    73     
    90     /**
       
    91      * starts fetching messages
       
    92      */
       
    93     virtual void StartFetchMessagesL( const RArray<TMsvId>& aFetchMsgArray );
    74     virtual void StartFetchMessagesL( const RArray<TMsvId>& aFetchMsgArray );
    94     
    75     
    95     /**
       
    96      * cancels all ongoing suboperations and disconnects
       
    97      */
       
    98     virtual void CancelAllAndDisconnectL();
    76     virtual void CancelAllAndDisconnectL();
    99     
    77     
   100     /**
       
   101      * cancels all suboperations
       
   102      */
       
   103     virtual void CancelAllAndDoNotDisconnect();
    78     virtual void CancelAllAndDoNotDisconnect();
   104     
    79     
   105     /**
       
   106      * sets iDoNotDisconnect as ETrue
       
   107      */
       
   108     virtual void DoNotDisconnect();
    80     virtual void DoNotDisconnect();
   109     
    81     
   110     /**
       
   111      * sets iDoNotDisconnect as EFalse
       
   112      */
       
   113     virtual void ClearDoNotDisconnect();
    82     virtual void ClearDoNotDisconnect();
   114     
    83     
   115     /**
       
   116      * pauses ongoing operations
       
   117      */
       
   118     virtual void HoldOperations();
    84     virtual void HoldOperations();
   119 
    85 
   120     /**
       
   121      * resumes paused operations
       
   122      */
       
   123     virtual void ContinueHoldOperations();
    86     virtual void ContinueHoldOperations();
   124     
    87     
   125     /**
       
   126      * @return current iState
       
   127      */
       
   128     virtual CIpsSosAOBaseAgent::TAgentState GetState() const;
    88     virtual CIpsSosAOBaseAgent::TAgentState GetState() const;
   129     
    89     
   130     /**
       
   131      * Loads CImImap4Settings object
       
   132      */
       
   133     virtual void LoadSettingsL();
    90     virtual void LoadSettingsL();
   134     //</Qmail>
    91     
   135 public: // MMsvImapConnectionObserver  
    92 public: // MMsvImapConnectionObserver  
   136     
    93     
   137     /**
    94     /**
   138     * @param TImapConnectionEvent, imap connection event
    95     * @param TImapConnectionEvent, imap connection event
   139     */
    96     */
   159 
   116 
   160     /**
   117     /**
   161     * Second phase constructor
   118     * Second phase constructor
   162     */
   119     */
   163     void ConstructL();
   120     void ConstructL();
   164     //<Qmail>
   121     
   165     /**
       
   166      * called when cancelled
       
   167      */
       
   168     virtual void DoCancel();
   122     virtual void DoCancel();
   169     
   123     
   170     /**
       
   171      * from CActive
       
   172      */
       
   173     virtual void RunL();
   124     virtual void RunL();
   174     
   125     
   175     /**
       
   176      * from CActive
       
   177      */
       
   178     virtual TInt RunError( TInt aError );
   126     virtual TInt RunError( TInt aError );
   179 
   127 
   180     /**
       
   181      * fetches the content of all synced messages
       
   182      */
       
   183     void PopulateAllL();
   128     void PopulateAllL();
   184     
   129     
   185     /**
       
   186      * triggers async statemachine
       
   187      */
       
   188     inline void SetActiveAndCompleteThis();
   130     inline void SetActiveAndCompleteThis();
   189 	//</Qmail>
   131 
   190 private:
   132 private:
   191     
   133     
   192     CMsvSession&                        iSession;
   134     CMsvSession&                        iSession;
   193     MIpsSosAOAgentOperationResponse&    iOpResponse;
   135     MIpsSosAOAgentOperationResponse&    iOpResponse;
   194     TMsvId                              iServiceId;
   136     TMsvId                              iServiceId;
   195     TAgentState                         iState;
   137     TAgentState                         iState;
   196     TBool                               iDoNotDisconnect;
   138     TBool                               iDoNotDisconnect;
   197 	//<Qmail>
   139     CImImap4Settings*                   iImapSettings;
   198     CImImap4Settings*                   iImapSettings;//owned
   140     CMsvOperation*                      iOngoingOp;
   199     CMsvOperation*                      iOngoingOp;//owned
       
   200 
   141 
   201     TPckgBuf<TImap4CompoundProgress>    iProgressBuf;
   142     TPckgBuf<TImap4CompoundProgress>    iProgressBuf;
   202     TInt                                iError;
   143     TInt                                iError;
   203     CImap4ClientMtm*                    iImapClientMtm;//owned
   144     CImap4ClientMtm*                    iImapClientMtm;
   204     CClientMtmRegistry*                 iMtmReg;//owned
   145     CClientMtmRegistry*                 iMtmReg;
   205     RArray<TMsvId>                      iFoldersArray;//owned
   146     RArray<TMsvId>                      iFoldersArray;
   206 	//<Qmail>
   147     CIpsSetDataApi*                     iDataApi;
   207 	//<QMail>
   148     
   208 
       
   209     //</QMail>
       
   210     };
   149     };
   211 
   150 
   212 #endif /*IPSSOSAOIMAPAGENT_H_*/
   151 #endif /*IPSSOSAOIMAPAGENT_H_*/