taskswitcher/contextengine/hgfswserver/server/src/hgfswserver.cpp
changeset 4 4d54b72983ae
parent 3 fb3763350a08
child 5 c743ef5928ba
--- a/taskswitcher/contextengine/hgfswserver/server/src/hgfswserver.cpp	Fri Jan 22 09:35:14 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,283 +0,0 @@
-/*
- * ===========================================================================
- *  Name        : hgfswserver.cpp
- *  Part of     : Huriganes / Fast Swap Server
- *  Description : server implementation
- *  Version     : %version: sa1spcx1#14 %
- *
- *  Copyright © 2008 Nokia Corporation.
- *  This material, including documentation and any related 
- *  computer programs, is protected by copyright controlled by 
- *  Nokia Corporation. All rights are reserved. Copying, 
- *  including reproducing, storing, adapting or translating, any 
- *  or all of this material requires the prior written consent of 
- *  Nokia Corporation. This material also contains confidential 
- *  information which may not be disclosed to others without the 
- *  prior written consent of Nokia Corporation.
- * ===========================================================================
- */
-
-#include "hgfswserver.h"
-#include "hgfswsession.h"
-#include "hgfswappui.h"
-#include "hgfswengine.h"
-
-#include <s32mem.h>
-#include <eikenv.h>
-#include <apgwgnam.h>
-
-// --------------------------------------------------------------------------
-// CHgFswServer::CHgFswServer
-// --------------------------------------------------------------------------
-//
-CHgFswServer::CHgFswServer( TInt aPriority, CHgFswAppUi& aAppUi )
-        : CServer2( aPriority ), iAppUi( aAppUi )
-    {
-    }
-
-// --------------------------------------------------------------------------
-// CHgFswServer::NewLC
-// --------------------------------------------------------------------------
-//
-CHgFswServer* CHgFswServer::NewLC( CHgFswAppUi& aAppUi )
-    {
-    CHgFswServer* self = new ( ELeave ) CHgFswServer(
-        EPriorityNormal, aAppUi );
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    return self;
-    }
-
-// --------------------------------------------------------------------------
-// CHgFswServer::ConstructL
-// --------------------------------------------------------------------------
-//
-void CHgFswServer::ConstructL()
-    {
-    StartL( KHgFswServerName );
-    iEngine = CHgFswEngine::NewL( *this );
-    iAppUi.SetTaskListObserver( *iEngine );
-    iAppUi.SetResourceObserver( *iEngine );
-    }
-
-// --------------------------------------------------------------------------
-// CHgFswServer::~CHgFswServer
-// --------------------------------------------------------------------------
-//
-CHgFswServer::~CHgFswServer()
-    {
-    delete iBuffer;
-    delete iEngine;
-    }
-
-// --------------------------------------------------------------------------
-// CHgFswServer::NewSessionL
-// --------------------------------------------------------------------------
-//
-CSession2* CHgFswServer::NewSessionL( const TVersion&,
-        const RMessage2& ) const
-    {
-    return new ( ELeave ) CHgFswSession;
-    }
-
-// --------------------------------------------------------------------------
-// CHgFswServer::AddSession
-// --------------------------------------------------------------------------
-//
-void CHgFswServer::AddSession()
-    {
-    ++iSessionCount;
-    }
-
-// --------------------------------------------------------------------------
-// CHgFswServer::DropSession
-// --------------------------------------------------------------------------
-//
-void CHgFswServer::DropSession()
-    {
-    --iSessionCount;
-    }
-
-// --------------------------------------------------------------------------
-// CHgFswServer::SerializeAndGetBufferSizeL
-// --------------------------------------------------------------------------
-//
-void CHgFswServer::SerializeAndGetBufferSizeL( const RMessage2& aMessage )
-    {
-    const TInt KBufferExpandSize = 128;
-    const RHgFswArray& array( iEngine->FswDataL() );
-    delete iBuffer; iBuffer = NULL;
-    iBuffer = CBufFlat::NewL( KBufferExpandSize );
-    RBufWriteStream ws;
-    CleanupClosePushL( ws );
-    ws.Open( *iBuffer );
-    CHgFswEntry::ExternalizeArrayL( ws, array );
-    CleanupStack::PopAndDestroy( &ws );
-    TPtr8 p( iBuffer->Ptr( 0 ) );
-    TPckg<TInt> size( p.Length() );
-    aMessage.WriteL( 0, size );
-    aMessage.Complete( KErrNone );
-    }
-
-// --------------------------------------------------------------------------
-// CHgFswServer::GetBufferL
-// --------------------------------------------------------------------------
-//
-void CHgFswServer::GetBufferL( const RMessage2& aMessage )
-    {
-    if ( !iBuffer )
-        {
-        User::Leave( KErrGeneral );
-        }
-    TPtr8 p( iBuffer->Ptr( 0 ) );
-    // If the size expected by the client does not match indicate it with a leave
-    // so the client can recognize it by checking the return value of SendReceive
-    // and can request the buffer size again.
-    if ( p.Length() != aMessage.Int1() )
-        {
-        User::Leave( KErrArgument );
-        }
-    aMessage.WriteL( 0, p );
-    aMessage.Complete( KErrNone );
-    }
-
-// --------------------------------------------------------------------------
-// CHgFswServer::CloseAppL
-// --------------------------------------------------------------------------
-//
-void CHgFswServer::CloseAppL( TInt aWgId )
-    {
-    iEngine->CloseAppL( aWgId );
-    }
-
-// --------------------------------------------------------------------------
-// CHgFswServer::SwitchToAppL
-// --------------------------------------------------------------------------
-//
-void CHgFswServer::SwitchToAppL( TInt aWgId )
-    {
-    iEngine->SwitchToAppL( aWgId );
-    }
-
-// --------------------------------------------------------------------------
-// CHgFswServer::ForegroundAppUidL
-// --------------------------------------------------------------------------
-//
-void CHgFswServer::ForegroundAppUidL( const RMessage2& aMessage )
-    {
-    TUid uid = iEngine->ForegroundAppUidL( aMessage.Int1() );
-    TPckg<TInt> uidPckg( uid.iUid );
-    aMessage.WriteL( 0, uidPckg );
-    }
-
-// --------------------------------------------------------------------------
-// CHgFswServer::FswDataChanged
-// callback from engine
-// --------------------------------------------------------------------------
-//
-void CHgFswServer::FswDataChanged()
-    {
-    // notify all sessions about the change
-    iSessionIter.SetToFirst();
-    while ( CHgFswSession* session = static_cast<CHgFswSession*>( iSessionIter++ ) )
-        {
-        if ( session->IsListening() )
-            {
-            session->FswDataChanged();
-            }
-        }
-    }
-
-// --------------------------------------------------------------------------
-// CHgFswServer::FswDataListenersCount
-// callback from engine
-// --------------------------------------------------------------------------
-//
-TInt CHgFswServer::FswDataListenerCount()
-    {
-    TInt n = 0;
-    iSessionIter.SetToFirst();
-    while ( CHgFswSession* session = static_cast<CHgFswSession*>( iSessionIter++ ) )
-        {
-        if ( session->IsListening() )
-            {
-            ++n;
-            }
-        }
-    return n;
-    }
-
-// --------------------------------------------------------------------------
-// RunServerL
-// --------------------------------------------------------------------------
-//
-static void RunServerL( CHgFswAppUi& aAppUi, CEikonEnv& aEnv )
-    {
-    // change thread name
-    User::LeaveIfError( RThread::RenameMe( KHgFswServerName ) );
-
-    // set app as hidden
-    CApaWindowGroupName* wgName =
-        CApaWindowGroupName::NewL( aEnv.WsSession(),
-            aEnv.RootWin().Identifier() );
-    wgName->SetHidden( ETrue );
-    wgName->SetWindowGroupName( aEnv.RootWin() );
-    delete wgName;
-
-    // start server
-    CHgFswServer* server = CHgFswServer::NewLC( aAppUi );
-    RProcess::Rendezvous( KErrNone );
-    CActiveScheduler::Start();
-    CleanupStack::PopAndDestroy( server );
-    }
-
-// --------------------------------------------------------------------------
-// E32Main
-// --------------------------------------------------------------------------
-//
-TInt E32Main()
-    {
-    __UHEAP_MARK;
-    CTrapCleanup* cleanup = CTrapCleanup::New();
-    TInt err = KErrNoMemory;
-    if ( cleanup )
-        {
-        CEikonEnv* env = new CEikonEnv;
-        if ( env )
-            {
-            TRAP( err, env->ConstructL() );
-            if ( err == KErrNone )
-                {
-                env->DisableExitChecks( ETrue );
-                CHgFswAppUi* ui = new CHgFswAppUi;
-                if ( ui )
-                    {
-                    TRAP( err, ui->ConstructL() );
-                    if ( err == KErrNone )
-                        {
-                        // hide from tasklist and prevent from coming foreground
-                        env->RootWin().SetOrdinalPosition( 0,
-                            ECoeWinPriorityNeverAtFront );
-                        // set as system app so will not be closed when memory is low
-                        env->SetSystem( ETrue );
-                        
-                        RFbsSession::Connect();
-                        
-                        TRAP( err, RunServerL( *ui, *env ) );
-                        
-                        RFbsSession::Disconnect();
-                        
-                        ui->PrepareToExit();
-                        }
-                    }
-                }
-            env->DestroyEnvironment();
-            }
-        delete cleanup;
-        }
-    __UHEAP_MARKEND;
-    return err;
-    }
-
-
-// end of file