contentmgmt/referencedrmagent/RefTestAgent/localsdp/inc/sdputil.h
author hgs
Thu, 24 Jun 2010 15:39:07 +0530
changeset 72 de46a57f75fb
permissions -rw-r--r--
201023_02
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
72
de46a57f75fb 201023_02
hgs
parents:
diff changeset
     1
/*
de46a57f75fb 201023_02
hgs
parents:
diff changeset
     2
* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
de46a57f75fb 201023_02
hgs
parents:
diff changeset
     3
* All rights reserved.
de46a57f75fb 201023_02
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
de46a57f75fb 201023_02
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
de46a57f75fb 201023_02
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
de46a57f75fb 201023_02
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
de46a57f75fb 201023_02
hgs
parents:
diff changeset
     8
*
de46a57f75fb 201023_02
hgs
parents:
diff changeset
     9
* Initial Contributors:
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    11
*
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    12
* Contributors:
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    13
*
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    14
* Description:
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    15
* Name          : SdpUtil.h
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    16
* Part of       : Local SDP Codec
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    17
* Interface     : -
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    18
* Version       : 1.0
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    19
*
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    20
*/
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    21
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    22
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    23
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    24
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    25
/**
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    26
 @internalComponent
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    27
*/
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    28
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    29
#ifndef SDPUTIL_H
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    30
#define SDPUTIL_H
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    31
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    32
//  INCLUDES
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    33
#include <e32base.h>
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    34
#include <stringpool.h>
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    35
#include <e32std.h>
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    36
#include "_sdpdefs.h"
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    37
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    38
// FORWARD DECLARATIONS
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    39
class RReadStream;
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    40
class RWriteStream;
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    41
class CSdpConnectionField;
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    42
class CSSdpKeyField;
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    43
class CSdpOriginField;
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    44
class TInetAddr;
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    45
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    46
// CLASS DECLARATION
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    47
/**
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    48
 *	Common utilities used in the implementation of the Local SDP codec.
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    49
 *  Utility class, cannot be instantiated
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    50
 */
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    51
class SdpUtil
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    52
	{
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    53
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    54
    public: // New functions
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    55
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    56
        /**
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    57
         *  Generic method that checks that all aValue's chars are not on illegal charset
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    58
         *
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    59
         *  @param aIllegalChars Illegal character set
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    60
         *  @param aValue String to be checked
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    61
         *  @param aStart Start position of the string
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    62
         *  @param aEnd End position of the string
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    63
         *  @return Validity of the string
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    64
         */
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    65
		static TBool IsValidCharSet( 
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    66
            const TDesC8& aIllegalChars, const TDesC8& aValue, TInt aStart, TInt aEnd );
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    67
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    68
        /**
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    69
         *  Checks that token list is valid (tokens with space as delimiter)
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    70
         *
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    71
         *  @param aValue String containing tokens
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    72
         *  @return Validity of the string
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    73
         */
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    74
		static TBool IsTokenList( const TDesC8& aValue );
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    75
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    76
        /**
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    77
         *  Checks that the token is valid (substring inside string)
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    78
         *
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    79
         *  @param aValue String containing the token
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    80
         *  @param aStart Start position of the token inside the string
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    81
         *  @param aEnd End position of the token inside the string
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    82
         *  @return Validity of the token
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    83
         */
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    84
		static TBool IsToken( const TDesC8& aValue, TInt aStart, TInt aEnd );
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    85
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    86
        /**
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    87
         *  Checks that the token is valid
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    88
         *
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    89
         *  @param aValue Token string 
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    90
         *  @return Validity of the token
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    91
         */
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    92
		static TBool IsToken( const TDesC8& aValue );
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    93
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    94
        /**
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    95
         *  Checks that the byte string is valid (substring inside string)
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    96
         *
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    97
         *  @param aValue String 
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    98
         *  @param aStart Start position of the byte string inside the string
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    99
         *  @param aEnd End position of the byte string inside the string
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   100
         *  @return Validity of the byte string
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   101
         */
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   102
		static TBool IsByteString( const TDesC8& aValue, TInt aStart, TInt aEnd );
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   103
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   104
        /**
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   105
         *  Checks that the byte string is valid
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   106
         *
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   107
         *  @param aValue String containing the token        
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   108
         *  @return Validity of the byte string
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   109
         */
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   110
		static TBool IsByteString( const TDesC8& aValue );
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   111
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   112
        /**
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   113
         *  Checks that the substring is a token-byte string pair with colon char
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   114
         *  as delimiter of the two strings
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   115
         *
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   116
         *  @param aValue String containing the pair
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   117
         *  @param aStart Start position of the string pair
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   118
         *  @param aEnd End position of the string pair        
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   119
         *  @return Validity of the pair
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   120
         */
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   121
		static TBool IsTokenTextPair( 
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   122
            const TDesC8& aValue, TInt aStart, TInt aEnd );
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   123
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   124
        /**
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   125
         *  Checks that the string conatins valid token-byte string pair with color
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   126
         *  char as delimiter of the two strings
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   127
         *
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   128
         *  @param aValue String containing the pair        
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   129
         *  @return Validity of the byte string
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   130
         */
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   131
		static TBool IsTokenTextPair( const TDesC8& aValue );
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   132
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   133
        /**
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   134
         *  Checks that the string does not contain any whitespace characters
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   135
         *
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   136
         *  @param aValue String        
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   137
         *  @return Validity of the string
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   138
         */
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   139
		static TBool IsNonWhitespace( const TDesC8& aValue );
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   140
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   141
        /**
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   142
         *  Checks that the string contains a valid NTP-time element
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   143
         *
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   144
         *  @param aValue String
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   145
         *  @return Validity of the string
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   146
         */
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   147
		static TBool IsValidNtpTime( const TDesC8& aValue );
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   148
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   149
        /**
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   150
         *  Divides the buffer into a number of lines. Each line is marked
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   151
         *  as a TPtrC8 object and added to array that is returned to the user
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   152
         *  NOTE! Each line in the returned array ends in LF character
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   153
         *  NOTE! The aLines must end in LF character, not '\0' character
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   154
         *
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   155
         *  @param aLines Buffer that contains all the string
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   156
         *  @param aErrCode Error code that is used on leave situations, when the
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   157
         *                  aLines parameter contains invalid string set
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   158
         *  @return Array that contains the division of buffer to lines
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   159
         */
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   160
        static RArray<TPtrC8> DivideToLinesL( 
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   161
            const TDesC8& aLines, TInt aErrCode );
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   162
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   163
        /**
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   164
         *  Parses elements from each line. The first item in the returned array
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   165
         *  is the field attribute and equal character (e.g. "a=", "c="), following
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   166
         *  elements are parsed from the string using space character as delimiter
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   167
         *
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   168
         *  @param aLine String containing line that ends to LF character
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   169
         *  @param aErrCode Error code that is used on leave situations, when
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   170
         *                  the contents of aLine are illegal
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   171
         *  @return Array that contains the division of string to elements
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   172
         */
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   173
        static RArray<TPtrC8> GetElementsFromLineL( 
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   174
            const TDesC8& aLine, TInt aErrCode );
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   175
    
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   176
        /**
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   177
         *  Parses elements from each line. The first item in the returned array
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   178
         *  is the field attribute and equal character (e.g. "a=", "c="), following
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   179
         *  elements are parsed from the string using aDelimiter as delimiter
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   180
         *
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   181
         *  @param aLine String containing line that ends to LF character
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   182
         *  @param aDelimiter Delimiter character
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   183
         *  @param aErrCode Error code that is used on leave situations, when
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   184
         *                  the contents of aLine are illegal
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   185
         *  @return Array that contains the division of string to elements
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   186
         */
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   187
        static RArray<TPtrC8> GetElementsFromLineL( 
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   188
            const TDesC8& aLine, TChar aDelimiter, TInt aErrCode ); 
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   189
            
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   190
        /**
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   191
         *  Parses elements from each line. The first item in the returned array
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   192
         *  is the field attribute and equal character (e.g. "a=", "c="), following
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   193
         *  elements are parsed from the string using space character as delimiter
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   194
         *
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   195
         *  @param aLexer Lexer that has been initialized with the string
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   196
         *  @param aErrCode Error code that is used on leave situations, when
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   197
         *                  the contents of aLine are illegal
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   198
         *  @return Array that contains the division of string to elements
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   199
         */       
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   200
        static RArray<TPtrC8> GetElementsFromLineL( 
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   201
            TLex8& aLexer, TChar aDelimiter, TInt aErrCode );
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   202
        
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   203
        /**
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   204
         *  Checks if the string contains only POS-DIGIT characters
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   205
         *
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   206
         *  @param aDes String
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   207
         *  @return Validity of POS-DIGIT string
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   208
         */
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   209
        static TBool IsPosDigit( const TDesC8& aDes );
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   210
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   211
        /**
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   212
         *  Checks if the string contains only DIGIT characters
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   213
         *
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   214
         *  @param aDes String
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   215
         *  @return Validity of DIGIT string
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   216
         */
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   217
        static TBool IsDigit( const TDesC8& aDes );
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   218
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   219
        /**
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   220
         *  Checks if the string contains valid characters
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   221
         *  
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   222
         *  @param aValidChars Valid characters allowed in the string
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   223
         *  @param aDes String
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   224
         *  @return Validity of the string
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   225
         */
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   226
        static TBool IsValidChars( const TDesC8& aValidChars, const TDesC8& aDes );                
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   227
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   228
        /**
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   229
         *  Checks if the string contains only token characters
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   230
         *
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   231
         *  @param aValue String
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   232
         *  @return Validity of the string
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   233
         */
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   234
        static TBool IsTokenChar( const TDesC8& aValue );
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   235
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   236
        /**
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   237
         *  Checks if the character is a valid token character
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   238
         *
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   239
         *  @param aChar Character
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   240
         *  @return Validity of the character
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   241
         */
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   242
		static TBool IsTokenChar( TChar aChar );
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   243
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   244
        /**
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   245
         *  Checks if the string is a valid token. The string can contain slash character,
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   246
         *  which divides the line into two tokens. The two tokens are then individually
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   247
         *  verified.
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   248
         *
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   249
         *  @param aValue String
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   250
         *  @return Validity of the string
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   251
         */
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   252
		static TBool IsTokenCharWithOptionalSlash( const TDesC8& aValue );
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   253
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   254
        /**
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   255
         *  Checks if the string is a valid token. The string can contain space characters,
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   256
         *  which divides the string into a number of tokens. Each token is then individually
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   257
         *  verified.
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   258
         *
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   259
         *  @param aValue String
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   260
         *  @return Validity of the string
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   261
         */
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   262
		static TBool IsTokenCharWithSpacesL( const TDesC8& aValue );
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   263
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   264
        /**
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   265
         *  Checks if the string is a valid token. The string can contain slash character,
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   266
         *  which divides the line into two tokens. The two tokens are then individually
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   267
         *  verified.
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   268
         *
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   269
         *  @param aValue String
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   270
         *  @return Validity of the string
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   271
         */
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   272
		static void EncodeBufferL( 
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   273
            const TDesC8& aValue, TInt aIndex, RWriteStream& aStream );
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   274
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   275
        /**
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   276
         *  Sets default network type ("IN") and default address type ("IP4" or "IP6")
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   277
         *  to variables given as parameters
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   278
         *  
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   279
         *  @param aPool String pool
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   280
         *  @param aInetAddr Internet address
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   281
         *  @param aNetType Network type
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   282
         *  @param aAddressType Address type
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   283
         */
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   284
        static void SetDefaultNetTypeAndAddrType( 
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   285
            RStringPool aPool, const TInetAddr& aAddress,
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   286
            RStringF& aNetType, RStringF& aAddressType );
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   287
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   288
        /**
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   289
         * Skips spaces until next line break, if the line break can be found.
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   290
         * @param aLexer
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   291
         * @return ETrue if the line break was found, otherwise EFalse. 
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   292
         */
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   293
        static TBool SkipSpacesUntilNextLineBreak( TLex8& aLexer );
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   294
 
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   295
    private:
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   296
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   297
        /**
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   298
         *  After the field tag has been parsed out, all the field elements are
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   299
         *  parsed in this method
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   300
         *
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   301
         *  @param aArray Reference to the array that contains the chopped elements
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   302
         *  @param aLexer Used lexer
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   303
         *  @param aDelimiter Delimiter character that determines the separation of elements
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   304
         *  @param aErrCode The error code that is used on leaves, when the argument is invalid
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   305
         */
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   306
        static void ChopElementsFromLineL( 
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   307
            RArray<TPtrC8>& aArray, TLex8& aLexer, TChar aDelimiter, TInt aErrCode );
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   308
        
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   309
        /**
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   310
         *  Private constructor         
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   311
         *  This class can never be instantiated
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   312
         */
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   313
        SdpUtil();
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   314
	};
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   315
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   316
#endif