psmservices/psmserver/src/client/psmclientimpl.cpp
changeset 0 4e1aa6a622a0
child 8 8d1d8440b626
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/psmservices/psmserver/src/client/psmclientimpl.cpp	Tue Feb 02 00:53:00 2010 +0200
@@ -0,0 +1,184 @@
+/*
+* Copyright (c) 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:  Power save mode client class
+*
+*/
+
+
+#include <psmclientobserver.h>
+#include "psmclientimpl.h"
+#include "psmsettingsimpl.h"
+#include "psmclientactive.h"
+#include "psmtrace.h"
+
+// -----------------------------------------------------------------------------
+// CPsmClientImpl::CPsmClientImpl
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+CPsmClientImpl::CPsmClientImpl( MPsmClientObserver& aObserver ) :
+    iObserver( aObserver )
+    {
+    COMPONENT_TRACE( ( _L( "PSM Client - CPsmClientImpl::CPsmClientImpl()" ) ) );
+    COMPONENT_TRACE( ( _L( "PSM Client - CPsmClientImpl::CPsmClientImpl - return" ) ) );
+    }
+
+// -----------------------------------------------------------------------------
+// CPsmClientImpl::ConstructL
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+void CPsmClientImpl::ConstructL()
+    {
+    COMPONENT_TRACE( ( _L( "PSM Client - CPsmClientImpl::ConstructL()" ) ) );
+    
+    // Connect to PSM server
+    User::LeaveIfError( iPsmServer.Connect() );
+
+    // Create an instance of settings provider
+    iSettings = new ( ELeave ) CPsmSettingsImpl( iPsmServer );
+
+    // Create active object
+    iActive = new ( ELeave ) CPsmClientActive( iObserver );
+
+    COMPONENT_TRACE( ( _L( "PSM Client - CPsmClientImpl::ConstructL - return" ) ) );
+    }
+
+// -----------------------------------------------------------------------------
+// CPsmClientImpl::~CPsmClientImpl
+// Destructor
+// -----------------------------------------------------------------------------
+//
+CPsmClientImpl::~CPsmClientImpl()
+    {
+    COMPONENT_TRACE( ( _L( "PSM Client - CPsmClientImpl::~CPsmClientImpl()" ) ) );
+
+    if ( iActive->IsActive() )
+        {
+        CancelPowerSaveModeChange();
+        }
+
+    if ( iActive )
+        {
+        delete iActive;
+        iActive = NULL;
+        }
+
+    if ( iSettings )
+        {
+        delete iSettings;
+        iSettings = NULL;
+        }
+
+    iPsmServer.Close();
+
+    COMPONENT_TRACE( ( _L( "PSM Client - CPsmClientImpl::~CPsmClientImpl - return" ) ) );
+    }
+
+// -----------------------------------------------------------------------------
+// CPsmClientImpl::ChangePowerSaveMode
+// -----------------------------------------------------------------------------
+//
+void CPsmClientImpl::ChangePowerSaveMode( const TInt aPsmMode )
+    {
+    COMPONENT_TRACE( ( _L( "PSM Client - CPsmClientImpl::ChangePowerSaveMode()" ) ) );
+
+    if ( iActive->IsActive() )
+        {
+        COMPONENT_TRACE( ( _L( "PSM Client - CPsmClientImpl::ChangePowerSaveMode() - Already active!" ) ) );
+        iActive->Cancel();
+        }
+
+    // Send asynchronous message and set this object to active
+    iPsmServer.SendReceiveAsync( 
+                    EPsmServerNotifyModeChange, 
+                    TIpcArgs( aPsmMode ), 
+                    iActive->RequestStatus() );
+
+    iActive->SetActive();
+
+    COMPONENT_TRACE( ( _L( "PSM Client - CPsmClientImpl::ChangePowerSaveMode - return" ) ) );
+    }
+
+// -----------------------------------------------------------------------------
+// CPsmClientImpl::CancelPowerSaveModeChange
+// -----------------------------------------------------------------------------
+//
+void CPsmClientImpl::CancelPowerSaveModeChange()
+    {
+    COMPONENT_TRACE( ( _L( "PSM Client - CPsmClientImpl::CancelPowerSaveModeChange()" ) ) );
+
+    if ( iActive->IsActive() )
+        {
+        // Send cancel asynchronous message
+        iPsmServer.SendReceiveSync( EPsmServerCancelModeChange, TIpcArgs() );
+        }
+
+    COMPONENT_TRACE( ( _L( "PSM Client - CPsmClientImpl::CancelPowerSaveModeChange - return" ) ) );
+    }
+
+// -----------------------------------------------------------------------------
+// CPsmClientImpl::RequestPowerSaveModeNotification
+// -----------------------------------------------------------------------------
+//
+void CPsmClientImpl::RequestPowerSaveModeNotification()
+    {
+    COMPONENT_TRACE( ( _L( "PSM Client - CPsmClientImpl::RequestPowerSaveModeNotification()" ) ) );
+
+    if ( iActive->IsActive() )
+        {
+        COMPONENT_TRACE( ( _L( "PSM Client - CPsmClientImpl::RequestPowerSaveModeNotification() - Already active!" ) ) );
+        iActive->Cancel();
+        }
+
+    // Send asynchronous message and set this object to active
+    iPsmServer.SendReceiveAsync( 
+                    EPsmServerModeChangeNotificationRequest, 
+                    TIpcArgs(), 
+                    iActive->RequestStatus() );
+
+    iActive->SetActive();
+
+    COMPONENT_TRACE( ( _L( "PSM Client - CPsmClientImpl::RequestPowerSaveModeNotification - return" ) ) );
+    }
+
+// -----------------------------------------------------------------------------
+// CPsmClientImpl::CancelPowerSaveModeNotificationRequest
+// -----------------------------------------------------------------------------
+//
+void CPsmClientImpl::CancelPowerSaveModeNotificationRequest()
+    {
+    COMPONENT_TRACE( ( _L( "PSM Client - CPsmClientImpl::CancelPowerSaveModeNotificationRequest()" ) ) );
+
+    if ( iActive->IsActive() )
+        {
+        // Send cancel asynchronous message
+        iPsmServer.SendReceiveSync( EPsmServerCancelModeChangeNotificationRequest, TIpcArgs() );
+        }
+
+    COMPONENT_TRACE( ( _L( "PSM Client - CPsmClientImpl::CancelPowerSaveModeNotificationRequest - return" ) ) );
+    }
+
+// -----------------------------------------------------------------------------
+// CPsmClientImpl::PsmSettings
+// -----------------------------------------------------------------------------
+//
+CPsmSettings& CPsmClientImpl::PsmSettings() const
+    {
+    COMPONENT_TRACE( ( _L( "PSM Client - CPsmClientImpl::PsmSettings()" ) ) );
+    COMPONENT_TRACE( ( _L( "PSM Client - CPsmClientImpl::PsmSettings - return" ) ) );
+    return *iSettings;
+    }
+
+// End of file