diff -r 6369bfd1b60d -r 08b5eae9f9ff upnpharvester/mdhserver/src/server/mdhserver.cpp --- a/upnpharvester/mdhserver/src/server/mdhserver.cpp Mon Nov 01 13:44:24 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,341 +0,0 @@ -/* -* Copyright (c) 2006-2007 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 core -* -*/ - - - - - - -#include - -#include "mdhserver.h" -#include "mdhcommon.h" -#include "mdhserversession.h" -#include "mdhmediaservercontainer.h" - -#include "msdebug.h" - -// ============================ MEMBER FUNCTIONS ============================= - -// --------------------------------------------------------------------------- -// CCmMdhServer::CCmMdhServer -// constructor -// --------------------------------------------------------------------------- -// -CCmMdhServer::CCmMdhServer() - : CPolicyServer( CActive::EPriorityHigh, KCmMdhServerPolicy ) - { - LOG(_L("[CmMdh Server]\t CCmMdhServer::CCmMdhServer")); - iServerState = ECmMdhServerStateIdle; - } - -// --------------------------------------------------------------------------- -// CCmMdhServer::ConstructL -// 2nd phase constructor -// --------------------------------------------------------------------------- -// -void CCmMdhServer::ConstructL() - { - LOG(_L("[CmMdh Server]\t CCmMdhServer::ConstructL")); - - iSessionCount = 0; - - StartL( KCmMdhServerName ); - - LOG(_L("[CmMdh Server]\t CCmMdhServer::ConstructL end")); - } - -// --------------------------------------------------------------------------- -// CCmMdhServer::NewLC -// (other items were commented in a header). -// --------------------------------------------------------------------------- -// -CCmMdhServer* CCmMdhServer::NewLC() - { - LOG(_L("[CmMdh Server]\t CCmMdhServer::NewLC")); - CCmMdhServer *self = new (ELeave) CCmMdhServer(); - CleanupStack::PushL( self ); - self->ConstructL(); - return self; - } - -// --------------------------------------------------------------------------- -// CCmMdhServer::~CCmMdhServer -// destructor -// (other items were commented in a header). -// --------------------------------------------------------------------------- -// -CCmMdhServer::~CCmMdhServer() - { - LOG(_L("[CmMdh Server]\t CCmMdhServer::~CCmMdhServer")); - delete iMediaserverContainer; - LOG(_L("[CmMdh Server]\t CCmMdhServer::~CCmMdhServer end")); - } - -// --------------------------------------------------------------------------- -// CCmMdhServer:: -// -// (other items were commented in a header). -// --------------------------------------------------------------------------- -// -void CCmMdhServer::CreateMediaserverContainerL() - { - LOG(_L("[CmMdh Server]\t CCmMdhServer::CreateMediaserverContainerL")); - - if ( !iMediaserverContainer ) - { - iMediaserverContainer = - CCmMdhMediaserverContainer::NewL( *this ); - LOG(_L("[CmMdh Server]\t MediaserverContainer created")); - } - - } - -// --------------------------------------------------------------------------- -// CCmMdhServer::DestroyMediaserverContainer -// -// (other items were commented in a header). -// --------------------------------------------------------------------------- -// -void CCmMdhServer::DestroyMediaserverContainer() - { - LOG(_L("[CmMdh Server]\t CCmMdhServer::DestroyMediaserverContainer")); - - if ( iMediaserverContainer ) - { - delete iMediaserverContainer; iMediaserverContainer = NULL; - LOG(_L("[CmMdh Server]\t MediaserverContainer destroyed")); - } - } - -// --------------------------------------------------------------------------- -// CCmMdhServer::MediaserverContainer -// -// (other items were commented in a header). -// --------------------------------------------------------------------------- -// -CCmMdhMediaserverContainer& CCmMdhServer::MediaserverContainer() - { - return *iMediaserverContainer; - } - -// --------------------------------------------------------------------------- -// CCmMdhServer::NewSessionL -// Creates a new session to the server if version information is correct. -// (other items were commented in a header). -// --------------------------------------------------------------------------- -// -CSession2* CCmMdhServer::NewSessionL( const TVersion & aVersion, - const RMessage2 &/*aMessage*/) const - { - LOG(_L("[CmMdh Server]\t CCmMdhServer::NewSessionL")); - -#ifdef _DEBUG - - TInt alloc; - TInt cells = User::Heap().AllocSize( alloc ); - TInt size = User::Heap().Size(); - TRACE( Print( - _L("[CmMdh Server]\t NewSessionL allocsize %d, size %d, cells %d"), - alloc, - size, - cells ) ); - -#endif - - // check we're the right version - TVersion version( KCmMdhServerMajor, - KCmMdhServerMinor, - KCmMdhServerBuild); - - if( !User::QueryVersionSupported( version, aVersion ) ) - { - User::Leave( KErrNotSupported ); - } - // make new session - return CCmMdhSession::NewL( iMediaserverContainer, - *const_cast(this) ); - } - -// --------------------------------------------------------------------------- -// CCmMdhServer::SetServerStateL -// -// (other items were commented in a header). -// --------------------------------------------------------------------------- -// -void CCmMdhServer::SetServerStateL( TCmMdhServerState aServerState, - TInt aErrCode /* = KErrNone */) - { - LOG(_L("[CmMdh Server]\t CCmMdhServer::SetServerState")); - TRACE( Print( _L("[CmMdh Server]\t Setting server state from %d to %d"), - iServerState, aServerState)); - - if ( iServerState == aServerState ) - { - return; - } - - TBool validTransition = EFalse; - - switch ( iServerState ) - { - case ECmMdhServerStateIdle: - if ( aServerState ) // search or harvest started - { - validTransition = ETrue; - } - break; - case ECmMdhServerStateSearching: - if ( aServerState == ECmMdhServerStateIdle ) // search complete - { - if ( aErrCode ) - { - //DestroyMediaserverContainer(); - } - iCurrentAsyncMsg.Complete( aErrCode ); - validTransition = ETrue; - } - break; - case ECmMdhServerStateHarvesting: - if ( aServerState == ECmMdhServerStateIdle ) // harvest complete - { - //DestroyMediaserverContainer(); - LOG(_L("[CmMdh Server]\t Completing...")); - iCurrentAsyncMsg.Complete( aErrCode ); - LOG(_L("[CmMdh Server]\t Completed...")); - validTransition = ETrue; - if ( iSessionCount <= 0) - { - // shutdown server - LOG(_L("[CmMdh Server]\t Harvest complete, \ - shutting down..")); - CActiveScheduler::Stop(); - } - } - break; - default: - // nothing - break; - } - if (validTransition) - { - iServerState = aServerState; - } - else - { - User::Leave( KErrNotReady ); - } - } - -// --------------------------------------------------------------------------- -// CCmMdhServer::DecrementSessions -// -// (other items were commented in a header). -// --------------------------------------------------------------------------- -// -void CCmMdhServer::DecrementSessions() - { - LOG(_L("[CmMdh Server]\t CCmMdhServer::DecrementSessions")); - - if ( --( iSessionCount) <= 0 - && iServerState!= ECmMdhServerStateHarvesting ) - { - LOG(_L("[CmMdh Server]\t Destroying media server container...")); - DestroyMediaserverContainer(); - // shutdown server - LOG(_L("[CmMdh Server]\t No sessions left, shutting down..")); - CActiveScheduler::Stop(); - } -#ifdef _DEBUG - - TInt alloc; - TInt cells = User::Heap().AllocSize( alloc ); - TInt size = User::Heap().Size(); - TRACE( Print( - _L( - "[CmMdh Server]\t DecrementSessions allocsize %d, size %d, cells %d" - ), - alloc, - size, - cells )); -#endif - } - -// -------------------------------------------------------------------------- -// CCmMdhServer::IncrementSessions -// -------------------------------------------------------------------------- -void CCmMdhServer::IncrementSessions() - { - LOG(_L("[CmMdh Server]\t CCmMdhServer::IncrementSessions")) - ++iSessionCount; - } - -// --------------------------------------------------------------------------- -// CCmMdhServer::ServerState -// -// (other items were commented in a header). -// --------------------------------------------------------------------------- -// -TCmMdhServerState CCmMdhServer::ServerState() - { - LOG(_L("[CmMdh Server]\t CCmMdhServer::ServerState")); - return iServerState; - } - -// --------------------------------------------------------------------------- -// CCmMdhServer::SetCurrentAsyncMsg -// -// (other items were commented in a header). -// --------------------------------------------------------------------------- -// -void CCmMdhServer::SetCurrentAsyncMsg( const RMessage2& aMessage ) - { - LOG(_L("[CmMdh Server]\t CCmServer::SetCurrentAsyncMsg")); - iCurrentAsyncMsg = aMessage; - } - - -// ========================== OTHER EXPORTED FUNCTIONS ======================= - -// --------------------------------------------------------------------------- -// PanicServer -// Server panic handler -// Panic our own thread -// --------------------------------------------------------------------------- -// -void PanicServer(TInt aPanic) - { - TRACE(Print(_L("[CmMdh Server]\t PanicServer: Reason = %d\n"), aPanic)); - User::Panic( KCmMdhServerPanic, aPanic ); - } - -// --------------------------------------------------------------------------- -// PanicClient -// Client panic handler -// RMessage2::Panic() also completes the message. This is: -// (a) important for efficient cleanup within the kernel -// (b) a problem if the message is completed a second time -// (other items were commented in a header). -// --------------------------------------------------------------------------- -// -void PanicClient( const RMessage2& aMessage, TInt aPanic ) - { - TRACE(Print(_L("[CmMdh Server]\t PanicClient: Reason = %d\n"), aPanic)); - aMessage.Panic( KCmMdhServerPanic, aPanic ); - } - -// End of File