locationmanager/ReverseGeocode/src/xmlhandler.cpp
changeset 56 fd6cce931a8a
parent 52 40db28bb26b8
child 59 f444ab671b1b
--- a/locationmanager/ReverseGeocode/src/xmlhandler.cpp	Thu Sep 02 20:52:02 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,391 +0,0 @@
-/*
-* Copyright (c) 2006-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: Implementation of the Parser 
-*/
-
-
-
-
-#include <utf.h>
-#include "internaladdressinfo.h"
-#include "xmlhandler.h"
-#include "locationmanagerdebug.h"
-
-using namespace xmlhandler;
-
-// CONSTANTS
-_LIT8( KXmlMimeType, "text/xml" );
-_LIT8( KCountry, "country" );
-_LIT8( KState, "state" );
-_LIT8( KDistrict, "district" );
-_LIT8( KCity, "city" );
-_LIT8( KPostalCode, "postCode" );
-_LIT8( KThoroughfare, "thoroughfare" );
-_LIT8( KNameTag, "name" );
-_LIT8( KNumberTag, "number" );
-
-// METHODS DEFINITION
-
-// --------------------------------------------------------------------------
-// CXmlHandler::NewL
-// --------------------------------------------------------------------------
-CXmlHandler* CXmlHandler::NewL( MXmlHandlerObserver& aObserver,  CInternalAddressInfo *aAddressInfo )
-    {
-    LOG("CXmlHandler::NewL ,begin");
-    CXmlHandler* self = CXmlHandler::NewLC( aObserver, aAddressInfo );
-    CleanupStack::Pop(); //self
-    return self;
-    }
-
-// --------------------------------------------------------------------------
-// CXmlHandler::NewLC
-// --------------------------------------------------------------------------
-
-CXmlHandler* CXmlHandler::NewLC( MXmlHandlerObserver& aObserver,  CInternalAddressInfo *aAddressInfo  )
-    {
-    LOG("CXmlHandler::NewLC ,begin");
-    CXmlHandler* self = new ( ELeave ) CXmlHandler( aObserver, aAddressInfo );
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    return self;
-    }
-
-// --------------------------------------------------------------------------
-// CXmlHandler::~CXmlHandler
-// --------------------------------------------------------------------------
-CXmlHandler::~CXmlHandler()
-    {
-    LOG("CXmlHandler::~CXmlHandler");
-    delete iParser;
-    iParser = NULL;
-    delete iBuffer;
-    iBuffer = NULL;
-    }
-
-// --------------------------------------------------------------------------
-// CXmlHandler::CXmlHandler
-// --------------------------------------------------------------------------
-CXmlHandler::CXmlHandler( MXmlHandlerObserver& aObserver, CInternalAddressInfo *aAddressInfo  ):
-    iObserver( aObserver ),
-    iParser( NULL ),
-    iBuffer( NULL ),
-    iAddressInfo( aAddressInfo ),
-    iThoroughfare( EFalse )
-    {
-    }
-
-// --------------------------------------------------------------------------
-// CXmlHandler::ConstructL
-// --------------------------------------------------------------------------
-void CXmlHandler::ConstructL()
-    {
-    LOG("CXmlHandler::ConstructL ,begin");
-    iParser = CParser::NewL( KXmlMimeType, *this );
- 
-    }
-
-// --------------------------------------------------------------------------
-// CXmlHandler::StartParsingL()
-// --------------------------------------------------------------------------   
-void CXmlHandler::StartParsingL( HBufC8 *aBuf )
-    {
-	LOG("CXmlHandler::StartParsingL ,begin");
-     //Reset the address values before starting new content parsing
-     iAddressInfo->ResetAddressInfoL();
-      
-    if( iBuffer )
-        {
-        delete iBuffer;
-        iBuffer = NULL;
-        }
-
-    iBuffer = HBufC8::NewL( aBuf->Size() );
-    TPtr8 ptr = iBuffer->Des();
-    ptr.Copy( aBuf->Ptr() ,  aBuf->Size() );
-    
-    // Now, we have the whole file content in iBuffer.
-    // We are ready to parse the XML content.
-    iParser->ParseBeginL();
-    iParser->ParseL( *iBuffer );
-    
-    // Since we read the whole file contents within one-shot,
-    // we can call ParseEndL() right after calling ParseL().
-    iParser->ParseEndL();
-	LOG("CXmlHandler::StartParsingL ,end");
-    }
-
-// --------------------------------------------------------------------------
-// CXmlHandler::OnStartDocumentL()
-// --------------------------------------------------------------------------
-void CXmlHandler::OnStartDocumentL( const RDocumentParameters& /*aDocParam*/,
-                                    TInt aErrorCode )
-    {
-    LOG1("CXmlHandler::OnStartDocumentL ,Error code - %d", aErrorCode);
-    if( KErrNone != aErrorCode )
-        {
-        iObserver.OnParseCompletedL( aErrorCode, *iAddressInfo );
-        }
-    else
-        {
-        // Do nothing
-        }
-	LOG("CXmlHandler::OnStartDocumentL ,end");
-    }
-
-// --------------------------------------------------------------------------
-// CXmlHandler::OnEndDocumentL()
-// --------------------------------------------------------------------------    
-void CXmlHandler::OnEndDocumentL( TInt aErrorCode )
-    {
-    LOG1("CXmlHandler::OnEndDocumentL ,Errcode - %d", aErrorCode);
-    iObserver.OnParseCompletedL( aErrorCode, *iAddressInfo );
-    }
-
-// --------------------------------------------------------------------------
-// CXmlHandler::OnStartElementL()
-// --------------------------------------------------------------------------
-void CXmlHandler::OnStartElementL( const RTagInfo& aElement,
-                                   const RAttributeArray& /*aAttributes*/, TInt aErrorCode )
-    {
-    LOG1("CXmlHandler::OnStartElementL , Errorcode - %d", aErrorCode);
-    if ( KErrNone == aErrorCode )
-        {
-        // If we find the start of an element, we write to the screen,
-        // for example: "<tag>"
-        
-        if( !aElement.LocalName().DesC().Compare( KCountry ) )
-            {
-            iCurrentElement = ECountryName;
-            }
-        else if( !aElement.LocalName().DesC().Compare( KState ) )
-            {
-            iCurrentElement = EState;
-            }
-        else if( !aElement.LocalName().DesC().Compare( KCity ) )
-            {
-            iCurrentElement = ECity;
-            }
-        else if( !aElement.LocalName().DesC().Compare( KDistrict ) )
-            {
-            iCurrentElement = EDistrict;
-            }
-        else if( !aElement.LocalName().DesC().Compare( KPostalCode )  )
-            {
-            iCurrentElement = EPostalCode;
-            }
-        else if( !aElement.LocalName().DesC().Compare( KThoroughfare )  )
-            {
-            iThoroughfare = ETrue;
-            }
-        else if( !aElement.LocalName().DesC().Compare( KNameTag ) && iThoroughfare )
-            {
-            iCurrentElement = EThoroughfareName;
-            }
-        else if( !aElement.LocalName().DesC().Compare( KNumberTag ) && iThoroughfare )
-            {
-            iCurrentElement = EThoroughfareNumber;
-            }
-        else
-            {
-            ///Do something
-            }
-        }
-    else
-        {
-        iObserver.OnParseCompletedL( aErrorCode, *iAddressInfo );
-        }
-	LOG("CXmlHandler::OnStartElementL ,end");
-    }
-        
-// --------------------------------------------------------------------------
-// CXmlHandler::OnEndElementL()
-// --------------------------------------------------------------------------
-void CXmlHandler::OnEndElementL( const RTagInfo& /*aElement*/, TInt aErrorCode )
-    {
-    LOG1("CXmlHandler::OnEndElementL ,Error code - %d", aErrorCode);
-    if( KErrNone == aErrorCode )
-        {
-        // at the end of the tag </tag>
-        //Set it to ENone
-        iCurrentElement = ENone;
-        iThoroughfare = EFalse;
-        }
-    else
-        {
-        iObserver.OnParseCompletedL( aErrorCode, *iAddressInfo );
-        }
-    }
-    
-// --------------------------------------------------------------------------
-// CXmlHandler::OnContentL()
-// --------------------------------------------------------------------------
-void CXmlHandler::OnContentL( const TDesC8 &aBytes, TInt aErrorCode )
-    {
-    LOG1("CXmlHandler::OnContentL ,Errorcode - %d", aErrorCode);
-    if( KErrNone == aErrorCode )
-        {
-
-        if( iCurrentElement == ENone )
-            {
-            //ignore if the current element is not there
-            return;
-            }
-
-        // convert the content to UCS-2
-        // from UTF-8        
-        RBuf buffer;
-        buffer.CreateL( aBytes.Length() );
-        CleanupClosePushL(buffer);
-        CnvUtfConverter::ConvertToUnicodeFromUtf8( buffer , aBytes );
-        
-        if( iCurrentElement == ECountryName )
-            {
-            iAddressInfo->SetCountryName( buffer );
-            }
-        else if( iCurrentElement == EState )
-            {
-            iAddressInfo->SetState( buffer );
-            }
-        else if( iCurrentElement == EDistrict )
-            {
-            iAddressInfo->SetDistrict( buffer );
-            }
-        else if( iCurrentElement == ECity )
-            {
-            iAddressInfo->SetCity( buffer );
-            }
-        else if( iCurrentElement == EPostalCode )
-            {
-            iAddressInfo->SetPincode( buffer );
-            }
-        else if( iCurrentElement == EThoroughfareName )
-            {
-            iAddressInfo->SetThoroughfareName( buffer );
-            }
-        else if( iCurrentElement == EThoroughfareNumber )
-            {
-            iAddressInfo->SetThoroughfareNumber( buffer );
-            }
-        else
-            {
-                 ///Do something
-            }
-        CleanupStack::PopAndDestroy(); // buffer
-        }
-    else
-        {
-        iObserver.OnParseCompletedL( aErrorCode, *iAddressInfo );
-        }
-	LOG("CXmlHandler::OnContentL ,end");
-    }
-    
-// --------------------------------------------------------------------------
-// CXmlHandler::OnStartPrefixMappingL()
-// --------------------------------------------------------------------------
-void CXmlHandler::OnStartPrefixMappingL( const RString& /*aPrefix*/,
-                                         const RString& /*aUri*/, TInt aErrorCode )
-    {
-    LOG1("CXmlHandler::OnStartPrefixMappingL ,Error code - %d", aErrorCode);
-    if( KErrNone != aErrorCode )
-        {
-        iObserver.OnParseCompletedL( aErrorCode, *iAddressInfo );
-        }
-    else
-        {
-        // Do nothing
-        }
-    }
-        
-// --------------------------------------------------------------------------
-// CXmlHandler::OnEndPrefixMappingL()
-// --------------------------------------------------------------------------
-void CXmlHandler::OnEndPrefixMappingL( const RString& /*aPrefix*/, TInt aErrorCode )
-    {
-    LOG1("CXmlHandler::OnEndPrefixMappingL ,Error code - %d", aErrorCode);
-    if( KErrNone != aErrorCode )
-        {
-        iObserver.OnParseCompletedL( aErrorCode, *iAddressInfo );
-        }
-    else
-        {
-        // Do nothing
-        }
-    }
-    
-// --------------------------------------------------------------------------
-// CXmlHandler::OnIgnorableWhiteSpaceL()
-// --------------------------------------------------------------------------
-void CXmlHandler::OnIgnorableWhiteSpaceL( const TDesC8& /*aBytes*/,TInt aErrorCode )
-    {
-    LOG1("CXmlHandler::OnIgnorableWhiteSpaceL ,Error code - %d", aErrorCode);
-    if( KErrNone != aErrorCode )
-        {
-        iObserver.OnParseCompletedL( aErrorCode, *iAddressInfo );
-        }
-    else
-        {
-        // Do nothing
-        }
-    }
-    
-// --------------------------------------------------------------------------
-// CXmlHandler::OnSkippedEntityL()
-// --------------------------------------------------------------------------
-void CXmlHandler::OnSkippedEntityL( const RString& /*aName*/, TInt aErrorCode )
-    {
-    LOG1("CXmlHandler::OnSkippedEntityL ,Error code - %d", aErrorCode);
-    if( KErrNone != aErrorCode )
-        {
-        iObserver.OnParseCompletedL( aErrorCode, *iAddressInfo );
-        }
-    else
-        {
-        // Do nothing
-        }
-    }
-
-// --------------------------------------------------------------------------
-// CXmlHandler::OnProcessingInstructionL()
-// --------------------------------------------------------------------------
-void CXmlHandler::OnProcessingInstructionL( const TDesC8& /*aTarget*/, const TDesC8& /*aData*/, TInt aErrorCode )
-    {
-    LOG1("CXmlHandler::OnProcessingInstructionL ,Error code - %d", aErrorCode);
-    if( KErrNone != aErrorCode )
-        {
-        iObserver.OnParseCompletedL( aErrorCode, *iAddressInfo );
-        }
-    else
-        {
-        // Do nothing
-        }
-    }
-
-// --------------------------------------------------------------------------
-// CXmlHandler::OnError()
-// --------------------------------------------------------------------------
-void CXmlHandler::OnError( TInt aErrorCode )
-    {
-    LOG1("CXmlHandler::OnError ,Error code - %d", aErrorCode);
-    TRAP_IGNORE( iObserver.OnParseCompletedL( aErrorCode, *iAddressInfo ) );
-    }
-
-// --------------------------------------------------------------------------
-// CXmlHandler::GetExtendedInterface()
-// --------------------------------------------------------------------------
-TAny* CXmlHandler::GetExtendedInterface( const TInt32 /*aUid*/ )
-    {
-    return 0;
-    }
-
-// End of File