voipplugins/accountcreationplugin/engine/src/acpxmlhandler.cpp
branchRCL_3
changeset 21 f742655b05bf
parent 20 65a3ef1d5bd0
child 22 d38647835c2e
--- a/voipplugins/accountcreationplugin/engine/src/acpxmlhandler.cpp	Thu Aug 19 09:45:22 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,509 +0,0 @@
-/*
-* 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 "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:  Implements CAcpXmlHandler methods
-*
-*/
-
-
-#include <escapeutils.h>
-#include "acpprovider.h"
-#include "acpxmlhandler.h"
-#include "accountcreationpluginlogger.h"
-#include "macpxmlhandlerobserver.h"
-#include "accountcreationengineconstants.h"
-
-
-// ---------------------------------------------------------------------------
-// CAcpXmlHandler::CAcpXmlHandler
-// ---------------------------------------------------------------------------
-//
-CAcpXmlHandler::CAcpXmlHandler( MAcpXmlHandlerObserver& aObserver )
-    : CActive( EPriorityStandard ),
-    iObserver( aObserver )
-    {
-    // Add active scheduler.
-    CActiveScheduler::Add( this );
-    }
-
-// ---------------------------------------------------------------------------
-// CAcpXmlHandler::ConstructL
-// ---------------------------------------------------------------------------
-//
-void CAcpXmlHandler::ConstructL()
-    {
-    ACPLOG( "CAcpXmlHandler::ConstructL begin" );
-    // Create XML parser
-    iParser = CParser::NewL( KXmlMimeType, *this );
-    ACPLOG( "CAcpXmlHandler::ConstructL end" );
-    }
-
-// ---------------------------------------------------------------------------
-// CAcpXmlHandler::NewL
-// ---------------------------------------------------------------------------
-//
-CAcpXmlHandler* CAcpXmlHandler::NewL( MAcpXmlHandlerObserver& aObserver )
-    {
-    CAcpXmlHandler* self = CAcpXmlHandler::NewLC( aObserver );
-    CleanupStack::Pop( self );
-    return self;
-    }
-
-// ---------------------------------------------------------------------------
-// CAcpXmlHandler::NewLC
-// ---------------------------------------------------------------------------
-//
-CAcpXmlHandler* CAcpXmlHandler::NewLC( MAcpXmlHandlerObserver& aObserver )
-    {
-    CAcpXmlHandler* self = new ( ELeave ) CAcpXmlHandler( aObserver );
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    return self;
-    }
-
-// ---------------------------------------------------------------------------
-// CAcpXmlHandler::~CAcpXmlHandler
-// ---------------------------------------------------------------------------
-//
-CAcpXmlHandler::~CAcpXmlHandler()
-    {
-    ACPLOG( "CAcpXmlHandler::~CAcpXmlHandler begin" );
-
-    Cancel(); // Ensures that the parsing is stopped
-    delete iParser;
-    delete iBuffer;
-    delete iOngoingAttr;
-    delete iProvider;
-
-    ACPLOG( "CAcpXmlHandler::~CAcpXmlHandler end" );
-    }
-
-// ---------------------------------------------------------------------------
-// CAcpXmlHandler::StartParsingL
-// Starts parsing xml with given filename.
-// ---------------------------------------------------------------------------
-//
-void CAcpXmlHandler::StartParsingL( const TFileName& aFilename )
-    {
-    ACPLOG( "CAcpXmlHandler::StartParsingL begin" );
-
-    // Save the filename because of deleting file later on.
-    iFilename.Append( aFilename );
-
-    // Leave if parsing is active.
-    if ( IsActive() )
-        {
-        User::Leave( KErrInUse );
-        }
-
-    // Connect to fileserver and open xml file to be parsed.    
-    User::LeaveIfError( iFileServer.Connect() );
-    User::LeaveIfError( iFile.Open( iFileServer, aFilename, EFileRead ) );
-
-    delete iBuffer;
-    iBuffer = NULL;    
-
-    TEntry entry;
-
-    // Get size of file.
-    User::LeaveIfError( iFileServer.Entry( aFilename, entry ) );
-
-    TInt fileSize = entry.iSize;
-
-    // Create buffer for file reading and start process.
-    iBuffer = HBufC8::NewL( fileSize );
-
-    TPtr8 ptr( iBuffer->Des() );
-    ptr.Zero();
-
-    iFile.Read( ptr, fileSize, iStatus );
-    SetActive();
-
-    iParser->ParseBeginL();
-
-    ACPLOG( "CAcpXmlHandler::StartParsingL end" );
-    }
-
-// ---------------------------------------------------------------------------
-// CAcpXmlHandler::HandleFinishedProviderL
-// Handles finished provider and notifies observer.
-// ---------------------------------------------------------------------------
-//
-void CAcpXmlHandler::HandleFinishedProviderL()
-    {
-    ACPLOG( "CAcpXmlHandler::HandleFinishedProviderL" );
-
-    // Provider exists, save it by calling observer.
-    if ( iProvider )
-        {
-        iObserver.NotifyParsedProviderL( *iProvider );    
-        delete iProvider;
-        iProvider = NULL;
-        }
-
-    // Start new provider by creating instance from CAcpProvider.
-    iProvider = CAcpProvider::NewL();
-    }
-
-// ---------------------------------------------------------------------------
-// CAcpXmlHandler::DoCancel
-// From CActive.
-// ---------------------------------------------------------------------------
-//
-void CAcpXmlHandler::DoCancel()
-    {
-    ACPLOG( "CAcpXmlHandler::DoCancel begin" );
-    
-    ACPLOG( "CAcpXmlHandler::DoCancel - ReadCancel" );
-    iFile.ReadCancel();
-    
-    TRAP_IGNORE( iParser->ParseEndL() );
-
-    iFileServer.Delete( iFilename ); // Delete old file
-
-    iFile.Close();
-    iFileServer.Close();
-
-    delete iBuffer;
-    iBuffer = NULL;
-
-    delete iOngoingAttr;
-    iOngoingAttr = NULL;
-
-    ACPLOG( "CAcpXmlHandler::DoCancel end" );
-    }
-
-// ---------------------------------------------------------------------------
-// CAcpXmlHandler::RunL
-// From CActive.
-// ---------------------------------------------------------------------------
-//
-void CAcpXmlHandler::RunL()
-    {
-    ACPLOG( "CAcpXmlHandler::RunL begin" );
-
-    if ( KErrNone == iStatus.Int() )
-        {
-        // When buffer length is zero, we have reached end of the document.
-        if ( !iBuffer->Length() )
-            {
-            ACPLOG( " - end of XML document reached" );
-            DoCancel();
-            }
-        // Otherwise continue reading of Xml file.
-        else
-            {
-            iParser->ParseL( *iBuffer );
-            TPtr8 ptr( iBuffer->Des() );
-            iFile.Read( ptr, iStatus );
-            SetActive();
-            ACPLOG( " - continuing reading XML document" );
-            }
-        }
-    else
-        {
-        iObserver.NotifyParsingCompleted( iStatus.Int() );
-        }
-
-    ACPLOG( "CAcpXmlHandler::RunL end" );
-    }
-    
-
-// ---------------------------------------------------------------------------
-// CAcpXmlHandler::OnStartDocumentL
-// From MContentHandler.
-// ---------------------------------------------------------------------------
-//
-void CAcpXmlHandler::OnStartDocumentL( 
-    const RDocumentParameters& /*aDocParam*/,
-    TInt aErrorCode )
-    {
-    if ( KErrNone != aErrorCode )
-        {
-        ACPLOG2( "CAcpXmlHandler::OnStartDocumentL: error=%d", aErrorCode );
-        iObserver.NotifyParsingCompleted( aErrorCode );
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CAcpXmlHandler::OnEndDocumentL
-// From MContentHandler.
-// ---------------------------------------------------------------------------
-//
-void CAcpXmlHandler::OnEndDocumentL( TInt aErrorCode )
-    {
-    ACPLOG2( "CAcpXmlHandler::OnEndDocumentL begin: error=%d", aErrorCode );
-    
-    if ( KErrNone == aErrorCode )
-        {
-        // Save last one.
-        HandleFinishedProviderL();
-        delete iProvider;
-        iProvider = NULL;
-        }
-
-    iObserver.NotifyParsingCompleted( aErrorCode );
-    
-    ACPLOG( "CAcpXmlHandler::OnEndDocumentL end" );
-    }
-
-// ---------------------------------------------------------------------------
-// CAcpXmlHandler::OnStartElementL
-// From MContentHandler.
-// ---------------------------------------------------------------------------
-//
-void CAcpXmlHandler::OnStartElementL( 
-    const RTagInfo& aElement,
-    const RAttributeArray& , 
-    TInt aErrorCode )
-    {
-    TBuf<KMaxElementLength>element;
-    element.Copy(aElement.LocalName().DesC());
-
-    ACPLOG2( "CAcpXmlHandler::OnStartElementL: element=%S", &element );
-    ACPLOG2( "CAcpXmlHandler::OnStartElementL: error=%d", aErrorCode );
-
-    if ( KErrNone == aErrorCode )
-        {
-        // No need to go through attributes since they're not used.
-        // Parsing has reached to some of supported elements.
-        // Save element value to member data for further actions.
-        TPtrC8 ptr = aElement.LocalName().DesC();
-
-        if ( !ptr.Compare( KServiceProvider ) ||
-            !ptr.Compare( KProviderName ) ||
-            !ptr.Compare( KIconUrl ) ||
-            !ptr.Compare( KSisUrl ) ||
-            !ptr.Compare( KCreateUrl ) ||
-            !ptr.Compare( KActivateUrl ) ||
-            !ptr.Compare( KProviderDescription ) ||
-            !ptr.Compare( KProviderType ) ||
-            !ptr.Compare( KReportUrl ) )
-            {
-            iOngoingAttr = HBufC8::NewL( ptr.Length() );
-            iOngoingAttr->Des().Copy( ptr );
-            iGetContentNow = ETrue;
-            // just for creating provider
-            if ( !ptr.Compare( KServiceProvider ) )
-                {
-                iGetContentNow = EFalse;
-                }
-            }
-
-        if ( iOngoingAttr )
-            {
-            // Parsing of provider has been started.
-            // This means that old provider is ready for saving 
-            // if it's not first one. In that case, new provider is started.
-            if ( !iOngoingAttr->Compare( KServiceProvider ) )
-                {
-                HandleFinishedProviderL();
-                delete iOngoingAttr;
-                iOngoingAttr = NULL;
-               }
-            }
-        }
-    else
-        {
-        ACPLOG2( "CAcpXmlHandler::OnStartElementL: error=%d", aErrorCode );
-        iObserver.NotifyParsingCompleted( aErrorCode );
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CAcpXmlHandler::OnEndElementL
-// From MContentHandler.
-// ---------------------------------------------------------------------------
-//
-void CAcpXmlHandler::OnEndElementL( const RTagInfo& /*aElement*/, 
-    TInt aErrorCode )
-    {
-    if ( KErrNone == aErrorCode )
-        {
-        // Reset member variables.
-        iGetContentNow = EFalse;
-
-        delete iOngoingAttr;
-        iOngoingAttr = NULL;
-        }
-    else
-        {
-        ACPLOG2( "CAcpXmlHandler::OnEndElementL: error=%d", aErrorCode );
-        iObserver.NotifyParsingCompleted( aErrorCode );
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CAcpXmlHandler::OnContentL
-// From MContentHandler.
-// ---------------------------------------------------------------------------
-//
-void CAcpXmlHandler::OnContentL( const TDesC8& aBytes, TInt aErrorCode )
-    {
-    if ( KErrNone == aErrorCode )
-        {
-        ACPLOG( "CAcpXmlHandler::OnContentL" );
-        // We need to save content data if iGetContentNow is set.
-        if ( iGetContentNow )
-            {
-            // Convert unicode data to 16-bit descriptor.
-            HBufC* bytes = EscapeUtils::ConvertToUnicodeFromUtf8L( aBytes );
-
-            // On the cleanup stack
-            CleanupStack::PushL( bytes );
-
-            ACPLOG2( "CAcpXmlHandler::OnContentL: aBytes=%S", bytes );
-
-            // Provider name.
-            if ( !iOngoingAttr->Compare( KProviderName ) )
-                {
-                ACPLOG( "CAcpXmlHandler::SetProviderNameL" );
-                iProvider->SetProviderNameL( *bytes );
-                }
-            // Location of icons package.   
-            else if ( !iOngoingAttr->Compare( KIconUrl ) )
-                {
-                ACPLOG( "CAcpXmlHandler::SetIconUrlL" );
-                iProvider->SetIconUrlL( aBytes );
-                }
-            // Location of sis package.
-            else if ( !iOngoingAttr->Compare( KSisUrl ) )
-                {
-                ACPLOG( "CAcpXmlHandler::SetSisUrlL" );
-                iProvider->SetSisUrlL( aBytes );
-                }
-            // Location to create settings.    
-            else if ( !iOngoingAttr->Compare( KCreateUrl ) )
-                {
-                ACPLOG( "CAcpXmlHandler::SetCreationUrlL" );
-                iProvider->SetCreationUrlL( aBytes );
-                }
-            // Location to activate settings.    
-            else if ( !iOngoingAttr->Compare( KActivateUrl ) )
-                {
-                ACPLOG( "CAcpXmlHandler::SetActivationUrlL" );
-                iProvider->SetActivationUrlL( aBytes );
-                }
-            // Provider description.    
-            else if ( !iOngoingAttr->Compare( KProviderDescription ) )
-                {
-                ACPLOG( "CAcpXmlHandler::SetProviderDescription" );
-                iProvider->SetProviderDescriptionL( *bytes );
-                }            
-            // Provider type.    
-            else if ( !iOngoingAttr->Compare( KProviderType ) )
-                {
-                ACPLOG( "CAcpXmlHandler::SetProviderType" );
-                iProvider->SetProviderTypeL( *bytes );
-                }            
-            // Location to activate settings.    
-            else if ( !iOngoingAttr->Compare( KReportUrl ) )
-                {
-                ACPLOG( " - Provider report url ignored" );
-                }            
-            // Should never happen.    
-            else
-                {
-                User::Leave( KErrNotSupported );
-                }
-            CleanupStack::PopAndDestroy( bytes );
-            }
-        }
-    else
-        {
-        ACPLOG2( "CAcpXmlHandler::OnContentL: error=%d", aErrorCode );
-        iObserver.NotifyParsingCompleted( aErrorCode );
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CAcpXmlHandler::OnStartPrefixMappingL
-// From MContentHandler.
-// ---------------------------------------------------------------------------
-//
-void CAcpXmlHandler::OnStartPrefixMappingL( 
-    const RString& /*aPrefix*/, 
-    const RString& /*aUri*/,
-    TInt /*aErrorCode*/ )
-    {
-    }
-
-// ---------------------------------------------------------------------------
-// CAcpXmlHandler::OnEndPrefixMappingL
-// From MContentHandler.
-// ---------------------------------------------------------------------------
-//
-void CAcpXmlHandler::OnEndPrefixMappingL( 
-    const RString& /*aPrefix*/, 
-    TInt /*aErrorCode*/ )
-    {
-    }
-
-// ---------------------------------------------------------------------------
-// CAcpXmlHandler::OnIgnorableWhiteSpaceL
-// From MContentHandler.
-// ---------------------------------------------------------------------------
-//
-void CAcpXmlHandler::OnIgnorableWhiteSpaceL( 
-    const TDesC8& /*aBytes*/, 
-    TInt /*aErrorCode*/ )
-    {
-    }
-
-// ---------------------------------------------------------------------------
-// CAcpXmlHandler::OnSkippedEntityL
-// From MContentHandler.
-// ---------------------------------------------------------------------------
-//
-void CAcpXmlHandler::OnSkippedEntityL( 
-    const RString& /*aName*/, 
-    TInt /*aErrorCode*/ )
-    {
-    }
-
-// ---------------------------------------------------------------------------
-// CAcpXmlHandler::OnProcessingInstructionL
-// From MContentHandler.
-// ---------------------------------------------------------------------------
-//
-void CAcpXmlHandler::OnProcessingInstructionL( 
-    const TDesC8& /*aTarget*/, 
-    const TDesC8& /*aData*/,
-    TInt /*aErrorCode*/ )
-    {
-    }
-
-// ---------------------------------------------------------------------------
-// CAcpXmlHandler::OnError
-// From MContentHandler.
-// ---------------------------------------------------------------------------
-//
-void CAcpXmlHandler::OnError( TInt aErrorCode )
-    {
-    ACPLOG2( "CAcpXmlHandler::OnError: error=%d", aErrorCode );
-
-    // Send a notification that the parsing stopped because of error.
-    iObserver.NotifyParsingCompleted( aErrorCode );
-    }
-
-// ---------------------------------------------------------------------------
-// CAcpXmlHandler::GetExtendedInterface
-// From MContentHandler.
-// ---------------------------------------------------------------------------
-//
-TAny* CAcpXmlHandler::GetExtendedInterface( const TInt32 /*aUid*/ )
-    {
-    return NULL;
-    }
-
-// End of file.