realtimenetprots/sipfw/SIP/Codec/src/TSIPChar.inl
changeset 0 307788aac0a8
child 26 822e1f077722
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/realtimenetprots/sipfw/SIP/Codec/src/TSIPChar.inl	Tue Feb 02 01:03:15 2010 +0200
@@ -0,0 +1,237 @@
+/*
+* Copyright (c) 2004-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:
+* Name          : TSIPChar.inl
+* Part of       : SIP Codec
+* Version       : SIP/4.0 
+* TSIPChar::TSIPChar
+*
+*/
+
+
+
+inline TSIPChar::TSIPChar ()
+: TChar() 
+	{ 
+	}
+
+// -----------------------------------------------------------------------------
+// TSIPChar::TSIPChar
+// -----------------------------------------------------------------------------
+//
+inline TSIPChar::TSIPChar (TUint aChar)
+: TChar() 
+	{
+	SetChar(aChar);
+	}
+
+// -----------------------------------------------------------------------------
+// TSIPChar::TSIPChar
+// -----------------------------------------------------------------------------
+//
+inline TSIPChar::TSIPChar (const TChar& aChar)
+: TChar() 
+	{
+	SetChar(aChar);
+	}
+
+// -----------------------------------------------------------------------------
+// TSIPChar::IsAlpha
+// -----------------------------------------------------------------------------
+//
+inline TBool TSIPChar::IsAlpha () const
+	{
+	TSIPChar val = *this;
+	if (val >= 'a' && val <= 'z') 
+		{
+		return ETrue;
+		}
+	return (val >= 'A' && val <= 'Z');
+	}
+
+// -----------------------------------------------------------------------------
+// TSIPChar::IsAlphaDigit
+// -----------------------------------------------------------------------------
+//
+inline TBool TSIPChar::IsAlphaDigit () const
+	{
+	return (IsAlpha() || IsDigit());
+	}
+
+// -----------------------------------------------------------------------------
+// TSIPChar::IsReserved
+// -----------------------------------------------------------------------------
+//
+inline TBool TSIPChar::IsReserved () const
+	{
+	TSIPChar val = *this;
+	if (val == ';' || val == '/' || val == '?' || val == ':' || val == '@' ||
+		val == '&' || val == '=' || val == '+' || val == '$' || val == ',')
+		{
+		return ETrue;
+		}
+	return EFalse;
+	}
+
+// -----------------------------------------------------------------------------
+// TSIPChar::IsUnreserved
+// -----------------------------------------------------------------------------
+//
+inline TBool TSIPChar::IsUnreserved () const
+	{
+	return (IsAlphaDigit() || IsMark());
+	}
+
+// -----------------------------------------------------------------------------
+// TSIPChar::IsMark
+// -----------------------------------------------------------------------------
+//
+inline TBool TSIPChar::IsMark () const
+	{
+	TSIPChar val = *this;
+	if (val == '-' || val == '_' || val == '.' || val == '!' || val == '~' ||
+		val == '*' || val == '\'' || val == '(' || val == ')')
+		{
+		return ETrue;
+		}
+	return EFalse;
+	}
+
+// -----------------------------------------------------------------------------
+// TSIPChar::IsTokenChar
+// -----------------------------------------------------------------------------
+//
+inline TBool TSIPChar::IsTokenChar () const
+	{
+	if (IsAlphaDigit()) 
+		{
+		return ETrue;
+		}
+	TSIPChar val = *this;
+	if (val == '-' || val == '.' || val == '!' || val == '%' || val == '*' ||
+		val == '_' || val == '+' || val == '\'' || val == '~' || val == '`')
+		{
+		return ETrue;
+		}
+	return EFalse;
+	}
+
+// -----------------------------------------------------------------------------
+// TSIPChar::IsSeparator
+// -----------------------------------------------------------------------------
+//
+inline TBool TSIPChar::IsSeparator () const
+	{
+	TSIPChar val = *this;
+	if (val == '(' || val == ')' || val == '<' || val == '>' || val == '@' ||
+		val == ',' || val == ';' || val == ':' || val == '\\' || val == '"' ||
+		val == '/' || val == '[' || val == ']' || val == '?' || val == '=' ||
+		val == '{' || val == '}' || val == ' ' || val == '\t')
+		{
+		return ETrue;
+		}
+	return EFalse;
+	}
+
+// -----------------------------------------------------------------------------
+// TSIPChar::IsWordChar
+// -----------------------------------------------------------------------------
+//
+inline TBool TSIPChar::IsWordChar () const
+	{
+	if (IsAlphaDigit()) 
+		{
+		return ETrue;
+		}
+	TSIPChar val = *this;
+	if (val == '-' || val == '.' || val == '!' || val == '%' || val == '*' ||
+		val == '_' || val == '+' || val == '\'' || val == '~' || val == '(' ||
+		val == ')' || val == '<' || val == '>' || val == ':' || val == '\\' ||
+		val == '"' || val == '/' || val == '[' || val == ']' || val == '?' ||
+		val == '{' || val == '}' || val == '`')
+		{
+		return ETrue;
+		}
+	return EFalse;
+	}
+
+// -----------------------------------------------------------------------------
+// TSIPChar::IsQuotedPairChar
+// -----------------------------------------------------------------------------
+//
+inline TBool TSIPChar::IsQuotedPairChar () const
+	{
+	TSIPChar val = *this;
+	if (val == '\n' || val == '\r') 
+		{
+		return EFalse;
+		}
+	return (val <= 127);
+	}
+
+// -----------------------------------------------------------------------------
+// TSIPChar::IsUTF8NonAsciiStartChar
+// -----------------------------------------------------------------------------
+//
+inline TBool TSIPChar::IsUTF8NonAsciiStartChar () const
+	{
+	TSIPChar val = *this;
+	if(val >= 192 && val <= 253) 
+		{
+		return ETrue;
+		}
+	return EFalse;
+	}
+
+// -----------------------------------------------------------------------------
+// TSIPChar::IsUTF8ContChar
+// -----------------------------------------------------------------------------
+//
+inline TBool TSIPChar::IsUTF8ContChar () const
+	{
+	TSIPChar val = *this;
+	return (val >= 128 && val <= 191);
+	}
+
+// -----------------------------------------------------------------------------
+// TSIPChar::IsGdTextChar
+// -----------------------------------------------------------------------------
+//
+inline TBool TSIPChar::IsGdTextChar () const
+	{
+	// LWS character combination is not allowed in our implementation 
+	// although part of the BNF. These are stripped of in preparser 
+	// so they will not cause trouble in later phases of decoding.
+	TSIPChar val = *this;
+	if (val == 33 || (val >= 35 && val <= 91) || (val >= 93 && val <= 126))
+		{
+		return ETrue;
+		}
+	return EFalse;
+	}
+
+// -----------------------------------------------------------------------------
+// TSIPChar::IsCText
+// -----------------------------------------------------------------------------
+//
+inline TBool TSIPChar::IsCText () const
+	{
+	TSIPChar val = *this;
+	if ((val >= 33 && val <= 39)|| (val >= 42 && val <= 91) || (val >= 93 && val <= 126))
+		{
+		return ETrue;
+		}
+	return EFalse;
+	}
+