srsf/nssvasapi/nssvasrecognition/src/nssvasctagselectnotification.cpp
changeset 13 57b735022c18
parent 1 b13cd05eeb2f
--- a/srsf/nssvasapi/nssvasrecognition/src/nssvasctagselectnotification.cpp	Mon Jan 18 20:20:30 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,239 +0,0 @@
-/*
-* Copyright (c) 2003-2006 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:  The CNssTagSelectNotification class allows the client to
-*               register and deregister for a voice tag select event. 
-*
-*/
-
-
-// INCLUDE FILES
-#include <e32std.h>
-#include "nssvasctagselectnotification.h"
-#include "nssvasmtagselecthandler.h"
-#include "nssvasctagselectdata.h"
-#include "rubydebug.h"
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-
-// -----------------------------------------------------------------------------
-// CNssTagSelectNotification::NewL
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CNssTagSelectNotification* CNssTagSelectNotification::NewL()
-    {
-    // version of NewLC which leaves nothing on the cleanup stack
-    CNssTagSelectNotification* self=NewLC();
-    CleanupStack::Pop(self);
-    return self;
-    }
-
-// -----------------------------------------------------------------------------
-// CNssTagSelectNotification::NewLC
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CNssTagSelectNotification* CNssTagSelectNotification::NewLC()
-    {
-    // NewLC with two stage construct
-    CNssTagSelectNotification* self=new (ELeave) CNssTagSelectNotification();
-    // get new, leave if can't
-    CleanupStack::PushL(self);
-    // push onto cleanup stack
-    // (in case self->ConstructL leaves)
-    self->ConstructL();      // use two-stage construct
-    return self;
-    }
-
-// -----------------------------------------------------------------------------
-// CNssTagSelectNotification::~CNssTagSelectNotification
-// Destructor
-// -----------------------------------------------------------------------------
-//
-CNssTagSelectNotification::~CNssTagSelectNotification()
-    {
-    RUBY_DEBUG0( "CNssTagSelectNotification::~CNssTagSelectNotification" );
-    
-    if ( iDBTagSelectNotifier ) 
-        {
-        iDBTagSelectNotifier->Deregister( this );
-        }
-    
-    if ( iTagSelectDataList )
-        {
-        iTagSelectDataList->ResetAndDestroy();
-        delete iTagSelectDataList;
-        }
-    CNssVASDBBuilder::RemoveInstance();  // remove iVasDBBuilder instance
-    }
-
-// -----------------------------------------------------------------------------
-// CNssTagSelectNotification::RegisterL
-// Method to register for voice tag select notification.
-// -----------------------------------------------------------------------------
-//
-MNssTagSelectNotification::TNssSelectResult CNssTagSelectNotification::RegisterL(
-                                         MNssContext* aContext,
-                                         MNssTagSelectHandler* aTagSelectHandler )
-    {
-    RUBY_DEBUG_BLOCK( "CNssTagSelectNotification::RegisterL" );
-    
-    if ( iTagSelectDataList->Count() == 0 )
-        {
-        // register ourself
-        TInt dbErrorCode;
-        dbErrorCode = iDBTagSelectNotifier->RegisterForNotification( this );
-        if ( dbErrorCode != KErrNone )
-            {
-            return EVasSelectFailed;
-            }
-        }
-    CNssTagSelectData* tagSelectData = CNssTagSelectData::NewL( (CNssContext *) aContext,
-        aTagSelectHandler );
-    
-    CleanupStack::PushL(tagSelectData);  
-    iTagSelectDataList->AppendL( tagSelectData );
-    CleanupStack::Pop(tagSelectData);  // do not destroy tagSelectData; it is appended
-    return EVasErrorNone;
-    }
-
-// -----------------------------------------------------------------------------
-// CNssTagSelectNotification::Deregister
-// Method to deregister from voice tag select notification
-// -----------------------------------------------------------------------------
-//
-MNssTagSelectNotification::TNssSelectResult CNssTagSelectNotification::Deregister(
-                                          MNssContext* aContext,
-                                          MNssTagSelectHandler* aTagSelectHandler )
-    {
-    RUBY_DEBUG0( "CNssTagSelectNotification::Deregister" );
-   
-    // if there is no registration, fail the deregister
-    if ( iTagSelectDataList->Count() == 0 )
-        {
-        return EVasSelectFailed;
-        }
-    
-    // loop through the TagSelectDataList entries
-    // for each context match, check if the event handler also matches
-    // if yes, delete the entry
-    for ( TInt index=0; index < iTagSelectDataList->Count(); index++ )
-        {
-        
-        TBool match = CompareContexts( (CNssContext *) aContext, index );
-        
-        MNssTagSelectHandler* tagSelectHandler;
-        tagSelectHandler = iTagSelectDataList->At( index )->TagSelectHandler();
-        
-        if ( ( match == (TInt)ETrue ) &&
-            (aTagSelectHandler == tagSelectHandler))	
-            {
-            CNssTagSelectData* tagSelectData = iTagSelectDataList->At( index ); 
-            iTagSelectDataList->Delete( index ); 
-            delete tagSelectData;
-            break;  // exit the for loop
-            }
-        }
-    if ( iTagSelectDataList->Count() == 0 )
-        {
-        // deregister ourself
-        TInt dbErrorCode;
-        dbErrorCode = iDBTagSelectNotifier->Deregister( this );
-        if ( dbErrorCode != KErrNone )
-            {
-            RUBY_DEBUG0( "CNssTagSelectNotification, DBTagSelectNotifier->Deregister failed" );
-            }
-        }
-    return EVasErrorNone;
-    }
-
-// -----------------------------------------------------------------------------
-// CNssTagSelectNotification::HandleSelection
-// Method called into the client by CNssDBTagSelectNotifier
-// -----------------------------------------------------------------------------
-//
-void CNssTagSelectNotification::HandleSelection(CNssTag* aTag)
-    {
-    RUBY_DEBUG0( "CNssTagSelectNotification::HandleSelection" );
-
-    // loop through the TagSelectDataList entries
-    // for each context match, issue a HandleTagSelect response event
-    for ( TInt index=0; index < iTagSelectDataList->Count(); index++ )
-        {
-        TBool result = CompareContexts((CNssContext *)(aTag->Context()), index);
-        if ( result == (TInt)ETrue )
-            {
-            // make a copy of the tag for each client which registered for
-            // the context of aTag
-            // the client is responsible for deleting clientTag
-            CNssTag* clientTag=NULL; 
-            TRAPD( err, ( clientTag = aTag->CopyL() ) );
-            if ( err != KErrNone )
-                {
-                RUBY_DEBUG0( "CNssTagSelectNotification: TRAPD CNssTag CopyL failed" );
-                return;
-                }
-            
-            iTagSelectDataList->At( index )->TagSelectHandler()->
-                HandleTagSelect( (MNssTag*)clientTag );
-            }
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CNssTagSelectNotification::CNssTagSelectNotification
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// -----------------------------------------------------------------------------
-//
-CNssTagSelectNotification::CNssTagSelectNotification()
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CNssTagSelectNotification::ConstructL
-// Symbian 2nd phase constructor can leave.
-// -----------------------------------------------------------------------------
-//
-void CNssTagSelectNotification::ConstructL()
-    {	
-    iTagSelectDataList = new (ELeave) CArrayPtrFlat<CNssTagSelectData>(1);
-    
-    iVasDBBuilder = CNssVASDBBuilder::InstanceL();
-    
-    iDBTagSelectNotifier = iVasDBBuilder->GetTagSelectNotifier();
-    }
-
-// -----------------------------------------------------------------------------
-// CNssTagSelectNotification::CompareContexts
-// Method to compare a context with a TagSelectDataList entry context.
-// -----------------------------------------------------------------------------
-//
-TBool CNssTagSelectNotification::CompareContexts( CNssContext* aContext, TInt aIndex )
-    {
-    CNssContext* context;
-    context = iTagSelectDataList->At( aIndex )->Context();
-    
-    if ( context->ContextName().Compare( aContext->ContextName() )==0 )
-        {
-        return ETrue;
-        }
-    else
-        {
-        return EFalse;
-        }
-    }
-
-// End of file