--- /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 <bsp.h>
+
+_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<CParsedField>& 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<CParsedFieldCollection>* iParsedFieldCollections;
+ TInt iCurrentSettingsCtr;
+ TIacpConnectionPreferenceFlag iConnectionPreference;
+
+ TUint32 iDefaultIAP;
+ TUint32 iDefaultMail;
+ };
+
+class CParsedFieldCollection : public CArrayPtrSeg<CParsedField>
+/**
+@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