diff -r 000000000000 -r 8e480a14352b messagingfw/biomsgfw/ENPINC/ENP.H --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/messagingfw/biomsgfw/ENPINC/ENP.H Mon Jan 18 20:36:02 2010 +0200 @@ -0,0 +1,97 @@ +// Copyright (c) 1999-2009 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// ENP.H +// +/** + * @file + * @internalComponent + * @released + */ + +#if !defined (__ENP_H__) +#define __ENP_H__ + + +#if !defined(__BSP_H__) +#include +#endif + +#ifndef SYMBIAN_ENABLE_SPLIT_HEADERS +#include "tmsvbioinfo.h" +#endif + +// Forward declarations +class CImBaseEmailSettings; +class CCnvCharacterSetConverter; +class CEmailNotificationParser : public CBaseScriptParser2 +/** +@internalComponent +@released +*/ + { +public: + IMPORT_C static CEmailNotificationParser* NewL(CRegisteredParserDll& aRegisteredParserDll, CMsvEntry& aEntry, RFs& aFs); + ~CEmailNotificationParser(); + + void ParseL(TRequestStatus& aStatus, const TDesC& aSms); + void ProcessL(TRequestStatus& aStatus); + +private: + void DoCancel(); + void RunL(); + +private: + enum TParseSession + { + EUnfoldMessage, // + EParseMessage, // Parsing - Lexical analysis and fill the array.. + ECompleteMessage // Completing - writing array and new message body.. + }; + + CEmailNotificationParser(CRegisteredParserDll& aRegisteredParserDll, CMsvEntry& aEntry, RFs& aFs); + void ConstructL(); + + void ChangeStateL(TParseSession aState); // Advance state machine to next state + void UnfoldMessageL(); + void ParseMessageL(); + void CompleteMessageL(); + + void AddRequiredFieldL(const TDesC& aFieldName); + void AddParsedFieldL(const TDesC& aFieldName, const TDesC& aFieldValue, TBool aMandatory); + + // fns to try and match notification msg to a server + void GetEmailServicesL(); + TBool CalcHashValueL(CCnvCharacterSetConverter& aCharConv, const TDesC8& aUserName, const TDesC& aServerName, const TDesC8& aPortNum); + + // utility completion fn + void RequestComplete(TRequestStatus& aStatus, TInt aError); + + //fix for DEF017686: EMail notification parser leaves when field data is empty + void LeaveIfEmptyFieldsL(const TDesC& aFieldName, const TLex& aTokenLex); + + TInt iState; // Current session state + HBufC* iSmsBuf; // Local copy of buffer passed to ParseL() + + TRequestStatus* iReport; + TInt iCompleted; // Stores completion code from previous session state + TInt iMessageCount; // Count of new messages on mail host + TBool iExtendedNotification; // Flag indicating simple or extended notification + TInt iServerId; // Extracted from email not msg used to identfy server + HBufC8* iServerName; // name of server if we can get it from the server id etc. + TMsvId iServiceMsvId; // id of associated service entry + TBool iFoundServer; + }; + + +#endif // __ENP_H__