diff -r 000000000000 -r 8e480a14352b messagingfw/biomsgfw/IACPINC/IACP.H --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/messagingfw/biomsgfw/IACPINC/IACP.H Mon Jan 18 20:36:02 2010 +0200 @@ -0,0 +1,202 @@ +// Copyright (c) 1998-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: +// Internet Access Configuration Parser +// +// + + +#ifndef __IACP_H__ +#define __IACP_H__ + +#include + +_LIT(KIACP, "IACP-DLL"); +// Names for the different kinds of settings +_LIT(KINTERNET, "Iname"); +_LIT(KMAIL, "Mname"); +_LIT(KHOTLIST, "Hname"); +_LIT(KSCRIPT, "Pname"); +_LIT(KSMS, "Sname"); +_LIT(KTELNET, "Tname"); +_LIT(KTERMINAL, "Rname"); +_LIT(KFTP, "Fname"); +_LIT(KTELEPHONE, "TBox"); // voice mailbox number +_LIT(KGPRS, "Gname"); +_LIT(KWWWHotlist, "Hname"); + +_LIT(KIacpIfName, "ppp"); +_LIT(KIacpIfNetworks, "ip,ip6"); + +#define KBIO_MSG_ENTRY_PARSED 1 // Set entry .iMtmData3 to 1 to indicate that the entry has store i.e parsed,externalised +#define KBIO_MSG_ENTRY_PROCESSED 2 // Set TMsvEntry iMtmData3 = 2 to indicate that a message has been processed + +//forward declarations +class CBaseScriptParser2; +class CRegisteredParserDll; +class CMailParser; +class CIspParser; +class CScriptParser; +class CSmsParser; +class CGprsParser; +class CTelVoiceMailboxParser; +class CWWWHotlistParser; +class CRichText; +class CParsedFieldCollection; + + +class CIacSettingsParser : public CBaseScriptParser2 +/** +@internalComponent +@released +*/ + { +public: + IMPORT_C static CIacSettingsParser* NewL(CRegisteredParserDll& aRegisteredParserDll, CMsvEntry& aEntry, RFs& aFs); + ~CIacSettingsParser(); + + void ParseL(TRequestStatus& aStatus,const TDesC& aSms); + void ProcessL(TRequestStatus& aStatus); + //Utility functions + CArrayPtrSeg& ParsedFieldArray() const; + void SetFieldValueL(const TDesC& aFieldName, const TDesC& aFieldValue); + TBool GetMandatoryField(const TDesC& aFieldName) const; + + enum TSmsType + { + ESmsTypeUndefined, + EBasicIAP, //Supported + EBasicMail, //Supported + EBasicMailIAP, // combined basic Email and Internet settings + EExtendedIAP, //Supported + EExtendedMail, + EExtWWWHostListItem, // Supported + EExtScriptSettings, //Supported + EExtSmsSettings, //Supported + EExtGprsSettings, //Supported + EExtTelnetSettings, + EExtTerminalSettings, + EExtWWWSettings, + EExtTTMLSettings, + EExtFTPSettings, + EExtInternetSettings, + EExtTelephoneSettings, //Supported + EExtWWWAutofetchSettings, + EExtGprsIAP, // combined IAP and GPRS + EExtGprsMail, // combined mail & GPRS + EExtGprsIAPMail, // combined GPRS, IAP and mail + ESmsMixedContent + }; + + enum TParseSession + { + EParseSms=1, + ECheckData, + ESetParsersData, + EProcessSms + }; + + // flags indicating whether to attempt to create + // a connection preference for GPRS or ISP settings + enum TIacpConnectionPreferenceFlag + { + EIacpDoNotCreatePreference, + EIacpAttempCreateAsFirstRank, + EIacpAttempCreateAsSecondRank + }; + +private: + CIacSettingsParser(CRegisteredParserDll& aRegisteredParserDll, CMsvEntry& aEntry, RFs& aFs); + void ConstructL(); + void ChangeStateL(TParseSession aState); + + void ParseSmsL(); //Parsers sms data into an array of CParsedField + void DoParseL(); + void DoProcessL(); + + void GetPtrToScriptDataL(HBufC*& aPtrScriptData); + TBool SetBioMsgTypeL(const TDesC& aLeftToken, TSmsType& aType); + TBool IsSmsExtendedIAP(); + TBool isMandatoryData(const TDesC& aFieldName); + void CheckMandatoryDataL(); + + // set & store/restore data + void SetDataL(); + void SetParsersDataL(); + void StoreParsedDataL(); + void RestoreParsedDataL(); + + void SetDataFieldsL(CParsedField& aParsedField, const TDesC& aName, const TDesC& aValue, TBool aBool); + TBool IsValidToken(const TDesC& aToken); + + void RequestComplete(TRequestStatus& aStatus,TInt aCompletion); + + void PopulateFieldCollectionsL(); + TInt CompleteMessage(); + + //CActive + void DoCancel(); + void RunL(); + TInt RunError(TInt aError); + +private: + TBool iSmsParsed; + TInt iState; + TSmsType iSmsType; + TSmsType iCurrentlyProcessing; + + HBufC* iSmsBuf; + CMailParser* iMailParser; //Mail Parser i.e IMAP, POP3, SMTP + CIspParser* iIspParser; //Internet Service Provided Parser i.e.Dial Out DB + CScriptParser* iScriptParser; + CSmsParser* iSmsParser; //SMS settings parser + CTelVoiceMailboxParser* iTelVoiceMailboxParser; + CGprsParser* iGprsParser; + CWWWHotlistParser* iWWWHotlistParser; + TRequestStatus* iReport; + + CArrayPtrSeg* iParsedFieldCollections; + TInt iCurrentSettingsCtr; + TIacpConnectionPreferenceFlag iConnectionPreference; + + TUint32 iDefaultIAP; + TUint32 iDefaultMail; + }; + +class CParsedFieldCollection : public CArrayPtrSeg +/** +@internalComponent +@released +*/ + { +public: + CParsedFieldCollection(CIacSettingsParser::TSmsType aSmsType); + CIacSettingsParser::TSmsType MessageType() { return iSmsType; }; + + TPtrC GetFieldValue(const TDesC& aFieldName) const; + TInt GetFieldValueAndLength(const TDesC& aFieldName, TPtrC& aValue) const; + + void GetTBoolL(const TDesC& aDes, TBool& aBool) const; + void GetTUint32NumL(const TDesC& aDes, TUint32& aTUint32Value) const; + + TBool FieldNameExists(const TDesC& aFieldName) const; + + // Used in runl to associate iap and mail settings + +public: + TBool iCanCommit; +private: + CIacSettingsParser::TSmsType iSmsType; + }; + +#endif