taskswitcher/contextengine/tsfswserver/server/src/tsfswserver.cpp
branchv5backport
changeset 14 1abc632eb502
parent 13 6205fd287e8a
child 20 636d517f67e6
--- a/taskswitcher/contextengine/tsfswserver/server/src/tsfswserver.cpp	Thu Mar 18 14:45:17 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,282 +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:  server implementation
- *
-*/
-
-
-#include "tsfswserver.h"
-#include "tsfswsession.h"
-#include "tsfswappui.h"
-#include "tsfswengine.h"
-
-#include <s32mem.h>
-#include <eikenv.h>
-#include <apgwgnam.h>
-
-// --------------------------------------------------------------------------
-// CTsFswServer::CTsFswServer
-// --------------------------------------------------------------------------
-//
-CTsFswServer::CTsFswServer( TInt aPriority, CTsFswAppUi& aAppUi )
-        : CServer2( aPriority ), iAppUi( aAppUi )
-    {
-    }
-
-// --------------------------------------------------------------------------
-// CTsFswServer::NewLC
-// --------------------------------------------------------------------------
-//
-CTsFswServer* CTsFswServer::NewLC( CTsFswAppUi& aAppUi )
-    {
-    CTsFswServer* self = new ( ELeave ) CTsFswServer(
-        EPriorityNormal, aAppUi );
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    return self;
-    }
-
-// --------------------------------------------------------------------------
-// CTsFswServer::ConstructL
-// --------------------------------------------------------------------------
-//
-void CTsFswServer::ConstructL()
-    {
-    StartL( KTsFswServerName );
-    iEngine = CTsFswEngine::NewL( *this );
-    iAppUi.SetTaskListObserver( *iEngine );
-    iAppUi.SetResourceObserver( *iEngine );
-    }
-
-// --------------------------------------------------------------------------
-// CTsFswServer::~CTsFswServer
-// --------------------------------------------------------------------------
-//
-CTsFswServer::~CTsFswServer()
-    {
-    delete iBuffer;
-    delete iEngine;
-    }
-
-// --------------------------------------------------------------------------
-// CTsFswServer::NewSessionL
-// --------------------------------------------------------------------------
-//
-CSession2* CTsFswServer::NewSessionL( const TVersion&,
-        const RMessage2& ) const
-    {
-    return new ( ELeave ) CTsFswSession;
-    }
-
-// --------------------------------------------------------------------------
-// CTsFswServer::AddSession
-// --------------------------------------------------------------------------
-//
-void CTsFswServer::AddSession()
-    {
-    ++iSessionCount;
-    }
-
-// --------------------------------------------------------------------------
-// CTsFswServer::DropSession
-// --------------------------------------------------------------------------
-//
-void CTsFswServer::DropSession()
-    {
-    --iSessionCount;
-    }
-
-// --------------------------------------------------------------------------
-// CTsFswServer::SerializeAndGetBufferSizeL
-// --------------------------------------------------------------------------
-//
-void CTsFswServer::SerializeAndGetBufferSizeL( const RMessage2& aMessage )
-    {
-    const TInt KBufferExpandSize = 128;
-    const RTsFswArray& array( iEngine->FswDataL() );
-    delete iBuffer; iBuffer = NULL;
-    iBuffer = CBufFlat::NewL( KBufferExpandSize );
-    RBufWriteStream ws;
-    CleanupClosePushL( ws );
-    ws.Open( *iBuffer );
-    CTsFswEntry::ExternalizeArrayL( ws, array );
-    CleanupStack::PopAndDestroy( &ws );
-    TPtr8 p( iBuffer->Ptr( 0 ) );
-    TPckg<TInt> size( p.Length() );
-    aMessage.WriteL( 0, size );
-    aMessage.Complete( KErrNone );
-    }
-
-// --------------------------------------------------------------------------
-// CTsFswServer::GetBufferL
-// --------------------------------------------------------------------------
-//
-void CTsFswServer::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 );
-    }
-
-// --------------------------------------------------------------------------
-// CTsFswServer::CloseAppL
-// --------------------------------------------------------------------------
-//
-void CTsFswServer::CloseAppL( TInt aWgId )
-    {
-    iEngine->CloseAppL( aWgId );
-    }
-
-// --------------------------------------------------------------------------
-// CTsFswServer::SwitchToAppL
-// --------------------------------------------------------------------------
-//
-void CTsFswServer::SwitchToAppL( TInt aWgId )
-    {
-    iEngine->SwitchToAppL( aWgId );
-    }
-
-// --------------------------------------------------------------------------
-// CTsFswServer::ForegroundAppUidL
-// --------------------------------------------------------------------------
-//
-void CTsFswServer::ForegroundAppUidL( const RMessage2& aMessage )
-    {
-    TUid uid = iEngine->ForegroundAppUidL( aMessage.Int1() );
-    TPckg<TInt> uidPckg( uid.iUid );
-    aMessage.WriteL( 0, uidPckg );
-    }
-
-// --------------------------------------------------------------------------
-// CTsFswServer::FswDataChanged
-// callback from engine
-// --------------------------------------------------------------------------
-//
-void CTsFswServer::FswDataChanged()
-    {
-    // notify all sessions about the change
-    iSessionIter.SetToFirst();
-    while ( CTsFswSession* session = static_cast<CTsFswSession*>( iSessionIter++ ) )
-        {
-        if ( session->IsListening() )
-            {
-            session->FswDataChanged();
-            }
-        }
-    }
-
-// --------------------------------------------------------------------------
-// CTsFswServer::FswDataListenersCount
-// callback from engine
-// --------------------------------------------------------------------------
-//
-TInt CTsFswServer::FswDataListenerCount()
-    {
-    TInt n = 0;
-    iSessionIter.SetToFirst();
-    while ( CTsFswSession* session = static_cast<CTsFswSession*>( iSessionIter++ ) )
-        {
-        if ( session->IsListening() )
-            {
-            ++n;
-            }
-        }
-    return n;
-    }
-
-// --------------------------------------------------------------------------
-// RunServerL
-// --------------------------------------------------------------------------
-//
-static void RunServerL( CTsFswAppUi& aAppUi, CEikonEnv& aEnv )
-    {
-    // change thread name
-    User::LeaveIfError( RThread::RenameMe( KTsFswServerName ) );
-
-    // set app as hidden
-    CApaWindowGroupName* wgName =
-        CApaWindowGroupName::NewL( aEnv.WsSession(),
-            aEnv.RootWin().Identifier() );
-    wgName->SetHidden( ETrue );
-    wgName->SetWindowGroupName( aEnv.RootWin() );
-    delete wgName;
-
-    // start server
-    CTsFswServer* server = CTsFswServer::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 );
-                CTsFswAppUi* ui = new CTsFswAppUi;
-                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