--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/phoneparser/inc/CPhoneGsmManufacturerParser.h Tue Feb 02 01:11:09 2010 +0200
@@ -0,0 +1,178 @@
+/*
+* Copyright (c) 2002-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: It is parser class for manufacturer specific codes.
+*
+*/
+
+
+#ifndef CPHONEGSMMANUFACTURERPARSER_H
+#define CPHONEGSMMANUFACTURERPARSER_H
+
+// INCLUDES
+#include "CPhoneGsmParserBase.h"
+
+// FORWARD DECLARATIONS
+class CPhoneGsmOptionContainer;
+
+// CONSTANTS
+
+/*
+* MANUFACTURER CODE UIDS
+*/
+
+const TUint32 KPhoneUidManufacturerCode =
+ PHONE_MAKE_UID( KPhoneGsmUidManufacturer, 0 );
+
+const TUint32 KPhoneUidManufacturerDebugCode =
+ PHONE_MAKE_UID( KPhoneGsmUidManufacturer, 1 );
+
+// MACROS
+
+// This definition enables parsing of debug code.
+//#define PHONEPARSER_PARSE_DEBUG_CODE
+
+// CLASS DECLARATION
+
+/**
+* It is parser for manufacturer specific codes.
+*
+* @since 1.0
+* @lib phoneparser.lib
+*/
+NONSHARABLE_CLASS( CPhoneGsmManufacturerParser )
+ : public CPhoneGsmParserBase
+ {
+ public: // Constructors and destructor
+
+ /**
+ * Two-phased constructor.
+ */
+ static CPhoneGsmManufacturerParser* NewLC();
+
+ /**
+ * Destructor.
+ */
+ ~CPhoneGsmManufacturerParser();
+
+ public: // New functions
+
+ /**
+ * Enumerates all flags.
+ *
+ * EFlagCode - string is a code, checked only when # is pressed.
+ * EFlagSend - SEND key must be pressed.
+ * EFlagPrefix - string is just a prefix.
+ * EFlagNotInIdle - not in from idle state.
+ * EFlagNotInInCall - not in during incall.
+ */
+ enum TFlags
+ {
+ EFlagCode = 0x01,
+ EFlagSend = 0x02,
+ EFlagPrefix = 0x04,
+ EFlagNotInIdle = 0x08,
+ EFlagNotInInCall = 0x10
+ };
+
+ /**
+ * Add string to the set of manufacturer specific codes.
+ *
+ * Note that string must exist as long as the instance.
+ *
+ * @param aString string
+ * @param aFlags flags, see TFlags
+ * @param aCommand command id
+ * @param aFeatureId feature manager id.
+ */
+ void AddStringL(
+ const TDesC& aString,
+ TInt aFlags,
+ TUint aCommand,
+ TInt aFeatureId = 0 );
+
+ public: // Functions from base classes
+
+ /**
+ * From CPhoneGsmParserBase.
+ * Parse string.
+ *
+ * @param aString It is string to be parsed.
+ * @param aResult It will contain result.
+ * @param aSendOperation It indicates if it would be SEND operation.
+ * @return It returns boolean value indicating success of parsing.
+ */
+ TBool ParseL(
+ const TDesC& aString,
+ CPhoneGsmParserResult& aResult,
+ CPhoneGsmOptionContainerBase& aOptions );
+
+ private:
+
+ class TCodeInfo;
+
+ /**
+ * C++ default constructor.
+ */
+ CPhoneGsmManufacturerParser();
+
+ /**
+ * Symbian OS constructor.
+ */
+ void ConstructL();
+
+ /**
+ * Checks code.
+ *
+ * @param aString string to be checked.
+ * @param aInfo code information.
+ * @param aOptions options.
+ */
+ TBool CheckCode(
+ const TDesC& aString,
+ const TCodeInfo& aInfo,
+ CPhoneGsmOptionContainerBase& aOptions );
+
+ /**
+ * Is situation ok for string.
+ */
+ TBool CheckSituation(
+ const TDesC& aString,
+ TInt aFlags,
+ CPhoneGsmOptionContainerBase& aOptions );
+
+ private: // Data
+
+ /**
+ * It defines structure that contains information of single code.
+ */
+ class TCodeInfo
+ {
+ public:
+ TPtrC iString;
+ TInt iFlags;
+ TUint iCommand;
+ TInt iFeatureId;
+ };
+
+ // Type definition for code array.
+ typedef CArrayFixFlat< TCodeInfo > CCodeArray;
+
+ // Owned array of codes.
+ CCodeArray* iArray;
+
+ };
+
+#endif // CPHONEGSMMANUFACTURERPARSER_H
+
+// End of File