contentpublishingsrv/contentpublishingserver/cpserver/src/cpserver.cpp
changeset 73 4bc7b118b3df
parent 66 32469d7d46ff
child 80 397d00875918
child 81 5ef31a21fdd5
--- a/contentpublishingsrv/contentpublishingserver/cpserver/src/cpserver.cpp	Mon May 03 12:48:45 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,393 +0,0 @@
-/*
-* Copyright (c) 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:  Content publisher Server
-*
-*/
-
-
-#include <liwcommon.h>
-#include <ecom/ecom.h>
-#include <fbs.h>
-
-#include "cpublisherregistrymap.h"
-#include "cpserver.h"
-#include "cpglobals.h"
-#include "cpdebug.h"
-#include "cpserversession.h"
-#include "cpserverdatamanager.h"
-#include "cpactionhandlerthread.h"
-
-
-// Policy Server
-// ============================================================================
-const TUint KServerPolicyRangeCount = 3;
-const TInt KServerPolicyRanges[KServerPolicyRangeCount] =
-    {
-    0, // range 0 -- ECpServerExecuteAction - 1
-    ECpServerGetListSize, // range ECpServerGetListSize -- ECpServerExecuteAction - 1
-    ECpServerExecuteAction
-    // range ECpServerExecuteAction -- inf        
-    };
-
-const TUint8 KServerPolicyElementsIndex[KServerPolicyRangeCount] =
-    {
-    0, // applies to 0th range
-    1, // applies to 1st range
-    CPolicyServer::EAlwaysPass
-    };
-
-const CPolicyServer::TPolicyElement KServerPolicyElements[] =
-    {
-        {
-        _INIT_SECURITY_POLICY_C1(ECapability_None), CPolicyServer::EFailClient
-        },
-        {
-        _INIT_SECURITY_POLICY_C1(ECapability_None), CPolicyServer::EFailClient
-        }
-    };
-
-const CPolicyServer::TPolicy KServerPolicy =
-    {
-    CPolicyServer::EAlwaysPass, // specifies all connect attempts should pass
-    KServerPolicyRangeCount,
-    KServerPolicyRanges,
-    KServerPolicyElementsIndex, 
-    KServerPolicyElements
-    };
-// ============================================================================
-
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CCPServer::CCPServer
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// -----------------------------------------------------------------------------
-//
-CCPServer::CCPServer( TInt aPriority ) :
-    CPolicyServer( aPriority, KServerPolicy, EUnsharableSessions)
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CCPServer::ConstructL
-// Symbian 2nd phase constructor can leave.
-// -----------------------------------------------------------------------------
-//
-void CCPServer::ConstructL()
-    {
-    CP_DEBUG( _L8("CCPServer::ConstructL()" ) );
-    StartL(KCPServerName);
-    iBURListener = CCPServerBURListener::NewL(this);
-    iCountSession = 0;
-    iBURLock = iBURListener->CheckBUR();
-    iDataManager = CCPDataManager::NewL(iBURLock);
-    iActionHandlerThread = CCPActionHandlerThread::NewL();
-    if (!iBURLock)
-        {
-        TRAP_IGNORE( DeactivatePublishersL() );
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CCPServer::NewL
-// Two-phased constructor.
-// -------------------------------------- ---------------------------------------
-//
-CCPServer* CCPServer::NewLC()
-    {
-    CP_DEBUG( _L8("CCPServer::NewLC()" ) );
-    CCPServer* self = new( ELeave ) CCPServer( EPriorityNormal );
-    CleanupStack::PushL( self );
-    self->ConstructL( );
-    return self;
-    }
-
-// -----------------------------------------------------------------------------
-// CCPServer::~CCPServer()
-// Destructor.
-// -------------------------------------- ---------------------------------------
-//    
-CCPServer::~CCPServer()
-    {
-    CP_DEBUG( _L8("CCPServer::~CCPServer()" ) );
-    for ( TInt i(0); i< iNotifications.Count( ); i++ )
-        {
-        iNotifications[i]->Close( );
-        }
-    iNotifications.Close( );    
-    delete iDataManager;
-    delete iActionHandlerThread;
-    delete iBURListener;
-    }
-
-// ---------------------------------------------------------------------------
-// 
-// ---------------------------------------------------------------------------
-//
-void CCPServer::RemoveSession()
-    {
-    CP_DEBUG( _L8("CCPServer::RemoveSession()" ) );
-    iCountSession--;
-    if ( !iCountSession )
-        {
-        Stop( );
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// 
-// ---------------------------------------------------------------------------
-//
-void CCPServer::AddSession()
-    {
-    CP_DEBUG( _L8("CCPServer::AddSession()" ) );
-    iCountSession++;
-    }
-
-// ---------------------------------------------------------------------------
-// CCPServer::HandleBUREventL
-// ---------------------------------------------------------------------------
-//
-void CCPServer::HandleBUREventL( TBURStatus aStatus )
-    {
-    CP_DEBUG( _L8("CCPServer::HandleBUREventL()" ) );
-    if ( (aStatus == EBURStatusBackup ) || (aStatus == EBURStatusRestore ) )
-        {
-        iBURLock = ETrue;
-        iDataManager->CloseDatabase( );
-        }
-    else
-        {
-        iDataManager->OpenDatabaseL( );
-        iBURLock = EFalse;
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CCPServer::GetLock
-// ---------------------------------------------------------------------------
-//
-TBool CCPServer::GetLock()
-    {
-    return iBURLock;
-    }
-
-// -----------------------------------------------------------------------------
-// CCPServer::GetNotifications
-// -----------------------------------------------------------------------------
-//
-RPointerArray<CLiwDefaultList>& CCPServer::GetNotifications( ) 
-    {
-    return iNotifications;
-    }
-
-
-// -----------------------------------------------------------------------------
-// CCPServer::NewSessionL
-// Create new session.
-// -----------------------------------------------------------------------------
-//
-CSession2* CCPServer::NewSessionL( const TVersion& /*aVersion*/,
-    const RMessage2& /*aMessage*/) const
-    {
-    CP_DEBUG( _L8("CCPServer::NewSessionL()" ) );
-    TPointersForSession passer;
-    passer.iDataManager = iDataManager;
-    passer.iServer = const_cast<CCPServer*>(this);
-    passer.iActionHandlerThread = iActionHandlerThread;
-    return CCPServerSession::NewL( passer );
-    }
-
-// -----------------------------------------------------------------------------
-// CCPServer::RunError
-// RunError is called when RunL leaves.
-// -----------------------------------------------------------------------------
-//
-TInt CCPServer::RunError( TInt /*aError*/)
-    {
-    ReStart( );
-    return KErrNone;
-    }
-
-// -----------------------------------------------------------------------------
-// CCPServer::PanicClient
-// Panic client.
-// -----------------------------------------------------------------------------
-//
-void CCPServer::PanicClient( const RMessage2& aMessage, TCPServerPanic aPanic )
-    {
-    aMessage.Panic( KCPServerName, aPanic );
-    }
-
-// -----------------------------------------------------------------------------
-// CCPServer::PanicServer
-// Panic server.
-// -----------------------------------------------------------------------------
-//
-void CCPServer::PanicServer( TCPServerPanic aPanic )
-    {
-    User::Panic( KCPServerName, aPanic );
-    }
-
-
-// -----------------------------------------------------------------------------
-// CCPServer::SendNotificationL
-// -----------------------------------------------------------------------------
-//
-void CCPServer::AppendNotificationL( CCPLiwMap* aMap ) 
-    {
-    aMap->InsertL( KType, TLiwVariant( KPublisher ) );
-    aMap->InsertL( KOperation, TLiwVariant( KOperationUpdate ) );
-    CLiwDefaultList* list = CLiwDefaultList::NewLC( );
-    list->AppendL( TLiwVariant( aMap ) );
-    iNotifications.AppendL( list );
-    CleanupStack::Pop( list );
-    }
-
-// -----------------------------------------------------------------------------
-// CCPServer::Stop
-// Stop serwer
-// -----------------------------------------------------------------------------
-//
-void CCPServer::Stop()
-    {
-    CP_DEBUG( _L8("CCPServer::Stop()" ) );
-    CActiveScheduler::Stop( );
-    }
-
-// -----------------------------------------------------------------------------
-// CCPServer::ThreadStart(void)
-// Starts server.
-// -----------------------------------------------------------------------------
-//
-TInt CCPServer::ThreadStart( void )
-    {
-    __UHEAP_MARK;
-	// Create the server, if one with this name does not already exist.
-	TFindServer findCountServer( KCPServerName );
-	TFullName name;
-	
-	CTrapCleanup* trapCleanup = CTrapCleanup::New();
-    if ( !trapCleanup )
-        {
-        PanicServer( ECPServerSrvCreateServer );
-        }
-    CActiveScheduler* activeScheduler = new CActiveScheduler;
-    if ( !activeScheduler )
-        {
-        PanicServer( ECPServerSrvCreateServer );
-        }
-    CActiveScheduler::Install( activeScheduler );
-
-    // Need to check that the server exists.
-    if ( findCountServer.Next( name ) != KErrNone )
-        {
-        User::RenameThread( KCPServerName );
-
-        TRAPD( err, CreateAndRunServerL() );
-        if ( err != KErrNone )
-            {
-            PanicServer( ECPServerSrvCreateServer );
-            }
-        }
-    
-    delete activeScheduler;
-    delete trapCleanup;
-    __UHEAP_MARKEND;
-    return KErrNone;
-    }
-
-// -----------------------------------------------------------------------------
-// CCPServer::CreateAndRunServerL(void)
-// Creates and runs server.
-// -----------------------------------------------------------------------------
-//
-void CCPServer::CreateAndRunServerL( void )
-    {
-    // Construct server
-    //
-    CCPServer* server = CCPServer::NewLC( );
-    // Initialisation complete, now signal the client
-    //
-    RProcess::Rendezvous( KErrNone );
-    CActiveScheduler::Start( );    
-    CleanupStack::PopAndDestroy( server );
-    }
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//	
-void CCPServer::DeactivatePublishersL()
-    {
-    CLiwGenericParamList* publishers = CLiwGenericParamList::NewLC( );
-    CCPLiwMap* map = CPublisherRegistryMap::NewLC( );
-    iDataManager->GetActivePublishersL( publishers );
-    TInt pos( 0 );
-    while( pos != KErrNotFound )
-        {
-        publishers->FindFirst( pos, KListMap );
-
-        if( pos != KErrNotFound )
-            {
-            TLiwVariant variant = ( *publishers )[pos++].Value( );
-	        map->Reset( );
-            variant.Get( *map );
-            
-	        // update flag value in the database
-	        TRAP_IGNORE( ResetAndUpdateFlagL( map ) );
-
-            //append update notification
-            TRAP_IGNORE( AppendNotificationL( map ) );
-
-         	variant.Reset( );
-            }
-        }
-    CleanupStack::PopAndDestroy( map );
-    CleanupStack::PopAndDestroy( publishers );
-    }
-
-// -----------------------------------------------------------------------------
-// CCPServer::ResetAndUpdateFlagL
-// Resets Activate flag and update item in the DB
-// -----------------------------------------------------------------------------
-//	
-void CCPServer::ResetAndUpdateFlagL( CCPLiwMap* aMap )
-    {
-   	TInt32 flag(0);
-    if( !aMap->GetProperty( KFlag, flag ))
-        {
-        User::Leave(KErrNotFound);
-        }
-    aMap->Remove( KFlag );
-    flag &= 0xFFFFFFFE;
-    aMap->InsertL( KFlag, TLiwVariant( flag ) );                
-    iDataManager->AddDataL( *aMap );
-    }
-
-// ============================= LOCAL FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// E32Main entry point.
-// Returns: KErrNone
-// -----------------------------------------------------------------------------
-//
-TInt E32Main()
-    {
-    return CCPServer::ThreadStart( );
-    }
-
-// End of File