--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/adaptationlayer/tsy/nokiatsy_dll/inc/tssparser.h Fri Nov 06 17:28:23 2009 +0000
@@ -0,0 +1,140 @@
+/*
+* Copyright (c) 2007-2008 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "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:
+*
+*/
+
+
+
+#ifndef TSSPARSER_H
+#define TSSPARSER_H
+
+// INCLUDES
+#include <tisi.h> // isi message related functions
+#include <ss_wmisi.h> // SS ISI message definitions
+
+// CONSTANTS
+// SS operation types
+_LIT(KSsOperationErasure, "##" );
+_LIT(KSsOperationInterrogation, "*#" );
+_LIT(KSsOperationRegistration, "**" );
+_LIT(KSsOperationActivation, "*" );
+_LIT(KSsOperationDeactivation, "#" );
+
+static const TInt SS_OPERATION_UNDEFINED( 0xFF );
+static const TInt SS_CODE_UNDEFINED( 0xFF );
+static const TInt MAX_NUM_OF_SUPPLEMENTARY_INFOS( 3 );
+// max length of service string (from 3GPP TS 22.030)
+static const TInt MAX_LENGTH_OF_SERVICE_STRING( 40 );
+
+// DATA TYPES
+//
+enum TCharacter
+ {
+ ECharacterSeparator = 0, // '*'
+ ECharacterEndMark, // '#'
+ ECharacterIllegal
+ };
+
+// CLASS DECLARATION
+
+/**
+* Parser class for SS service string received from client (SAT server):
+* Parsers SS service string: operation, service code and service information
+*/
+class TSsParser
+ {
+
+ public: // New functions
+
+ /**
+ * Constructor
+ */
+ TSsParser();
+
+ /**
+ * Parses a SS string
+ * @param const TDesC& aServiceString: SS string to be parsed
+ * @return TInt: error
+ */
+ TInt Parse( const TDesC& aServiceString );
+
+ /**
+ * Gets SS operation type
+ * @param TUint8& aSsOperation: SS operation type
+ * @return void
+ */
+ void GetSsOperation( TUint8& aSsOperation ) const;
+
+ /**
+ * Gets SS code
+ * @param TUint16& aServiceCode: SS code
+ * @return void
+ */
+ void GetServiceCode( TUint16& aServiceCode ) const;
+
+ /**
+ * Gets service infos a, b and c. If SS info does not exist, empty
+ * descriptor is returned
+ * @param TPtrC& aSupplementaryInfoA: SS info A
+ * @param TPtrC& aSupplementaryInfoB: SS info B
+ * @param TPtrC& aSupplementaryInfoC: SS info C
+ * @return void
+ */
+ void GetServiceInfo(
+ TPtrC& aSupplementaryInfoA,
+ TPtrC& aSupplementaryInfoB,
+ TPtrC& aSupplementaryInfoC ) const;
+
+ /**
+ * Converts descriptor to integer
+ * @param const TDesC& aString: descriptor to be converted
+ * @return TInt: converted value
+ */
+ TInt GetInt( const TDesC& aString );
+
+ private:
+
+ /**
+ * Extracts operation type from service string
+ * @return TUint8: operation type
+ */
+ TUint8 ExtractSsOperation( );
+
+ /**
+ * Extracts parts from service string
+ * @return void
+ */
+ void ExtractPart( TPtrC& aPart );
+
+ /**
+ * Extracts separator marks ( *, # ) from service string
+ * @return TCharacter: separator mark
+ */
+ TCharacter ExtractSeparator( );
+
+
+ private: // Data
+
+ TUint8 iSsOperation; // operation type, e.g. activation
+ TUint16 iServiceCode; // supplementary service code
+ TPtrC iServiceString; // ss string to be parsed
+ TPtrC iSupplementaryInfoA; // service information A, defined in 3GPP TS 22-030
+ TPtrC iSupplementaryInfoB; // service information B defined in 3GPP TS 22-030
+ TPtrC iSupplementaryInfoC; // service information C, defined in 3GPP TS 22-030
+ };
+
+#endif // TSSPARSER_H
+
+// End of File