mmsharing/mmshengine/src/musenguriparser.cpp
branchRCL_3
changeset 33 bc78a40cd63c
parent 32 73a1feb507fb
--- a/mmsharing/mmshengine/src/musenguriparser.cpp	Tue Aug 31 15:12:07 2010 +0300
+++ b/mmsharing/mmshengine/src/musenguriparser.cpp	Wed Sep 01 12:31:01 2010 +0100
@@ -22,6 +22,7 @@
 
 #include <uri8.h>
 #include <charconv.h>
+//#include <f32file.h>
 #include <utf.h>
 #include <collate.h>
 
@@ -33,7 +34,7 @@
 // UTF7 is not working, since it converts + as +-
 // -----------------------------------------------------------------------------
 //
-TMusEngUriParser::TMusEngUriParser( const TDesC16& aUri )
+EXPORT_C TMusEngUriParser::TMusEngUriParser( const TDesC16& aUri )
     :iUriType( ENotParsed )
     {
     TBuf8<KMaxUriLength> buf;
@@ -48,20 +49,22 @@
         }
     }
 
-// ----------------------------------------------------------------------------- 
-//
-// -----------------------------------------------------------------------------
-//
-TMusEngUriParser::TMusEngUriType TMusEngUriParser::UriType()
-    {
-    return iUriType;
-    }
 
 // ----------------------------------------------------------------------------- 
 //
 // -----------------------------------------------------------------------------
 //
-HBufC8* TMusEngUriParser::GetUri8L()
+EXPORT_C TMusEngUriParser::TMusEngUriType TMusEngUriParser::UriType()
+    {
+    return iUriType;
+    }
+    
+
+// ----------------------------------------------------------------------------- 
+//
+// -----------------------------------------------------------------------------
+//
+EXPORT_C HBufC8* TMusEngUriParser::GetUri8L()
     {
     MUS_LOG( "mus: [ENGINE]  -> TMusEngUriParser::GetUri8L()" )
     
@@ -73,13 +76,15 @@
     MUS_LOG( "mus: [ENGINE]  <- TMusEngUriParser::GetUri8L()" )
 
     return uri8;
+
     }
 
+
 // -----------------------------------------------------------------------------
 // 
 // -----------------------------------------------------------------------------
 //
-HBufC16* TMusEngUriParser::GetUri16L( TBool aPrefix )
+EXPORT_C HBufC16* TMusEngUriParser::GetUri16L( TBool aPrefix )
     {
     MUS_LOG( "mus: [ENGINE]  -> TMusEngUriParser::GetUri16L()" )
     
@@ -101,13 +106,16 @@
     MUS_LOG( "mus: [ENGINE]  <- TMusEngUriParser::GetUri16L()" )
     
     return uri16;
+   
     }
 
-// ----------------------------------------------------------------------------- 
+
+// -----------------------------------------------------------------------------
+// 
 //
 // -----------------------------------------------------------------------------
 //
-void TMusEngUriParser::ParseUriL()
+EXPORT_C void TMusEngUriParser::ParseUriL()
     {
     MUS_LOG( "mus: [ENGINE]  -> TMusEngUriParser::ParseUriL()" )
     
@@ -127,7 +135,7 @@
             {// basic behaviour
             MUS_LOG( "mus: [ENGINE]  -> TMusEngUriParser::ParseUriL() \
                     normal behaviour" )
-            User::Leave( KErrArgument );        
+            User::Leave( KErrCorrupt );
             }
         else
             { // variant behaviour(local tel uri)
@@ -136,7 +144,9 @@
         }
     }
 
+
 // -----------------------------------------------------------------------------
+// 
 //
 // -----------------------------------------------------------------------------
 //
@@ -179,13 +189,18 @@
     
     iUriType = TMusEngUriParser::ESip;
     }
+    
    
-// ----------------------------------------------------------------------------- 
+   
+   
+// -----------------------------------------------------------------------------
+// 
 //
 // -----------------------------------------------------------------------------
 //
 void TMusEngUriParser::HandleTelUriL()
     {
+    // Remove leading and trailing whitespaces
     iUri.TrimAll();
     if ( iUri.FindF( KMusEngTelPrefix() ) != 0 )
         {
@@ -208,6 +223,8 @@
 
     TInt index = KMusEngTelPrefix().Length() + KMusEngPlusSign().Length();
 
+    // Remove whitespaces and extra chracters like parentheses. Check that the
+    // rest characters are digits
     while ( index < iUri.Length() )
         {
         TChar character = iUri[ index ];
@@ -228,7 +245,9 @@
     iUriType = TMusEngUriParser::ETel;
     }
     
+    
 // -----------------------------------------------------------------------------
+// 
 //
 // -----------------------------------------------------------------------------
 //
@@ -239,7 +258,8 @@
     if ( iUri.FindF( KMusEngTelPrefix() ) != 0 )
         {
         // local tel uri without prefix
-        if ( iUri.Length() + KMusEngTelPrefix().Length() <= KMaxUriLength )
+        if ( iUri.Length() + KMusEngTelPrefix().Length() <=
+             KMaxUriLength )
             {
             iUri.Insert( 0, KMusEngTelPrefix() );
             }
@@ -251,7 +271,10 @@
     else
         {
         //Tel uri with prefix
-        iUri.Replace( 0, KMusEngTelPrefix().Length(), KMusEngTelPrefix() );
+        iUri.Replace(
+                0,
+                KMusEngTelPrefix().Length(),
+                KMusEngTelPrefix() );
         }
 
     TInt index = KMusEngTelPrefix().Length();
@@ -269,5 +292,6 @@
         
     iUriType = TMusEngUriParser::ETel;
     }
-
+    
+    
 // End of file