diff -r 000000000000 -r 4e1aa6a622a0 commonservices/commonengine/diskspacereserver/src/shareddataclient.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/commonservices/commonengine/diskspacereserver/src/shareddataclient.cpp Tue Feb 02 00:53:00 2010 +0200 @@ -0,0 +1,179 @@ +/* +* Copyright (c) 2002 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: +* This module offers an interface for applications to access other +* applications' settings which are meant to have shared access. +* +* +*/ + + +// INCLUDE FILES +#include "shareddataclient.h" +#include "dosclishareddata.h" +#include +#include "tracemacros.h" +// CONSTANTS + +// CLASS DECLARATION + +class CDosWrapper : public CBase + { + public: + CDosWrapper() {}; + ~CDosWrapper() {}; + + public: // data + RDosServer iDosSession; + RDosSharedData iDosSubsession; +}; + + +// ================= MEMBER FUNCTIONS ========================================== + +EXPORT_C RSharedDataClient::RSharedDataClient() + { + iDosWrapper = NULL; + } + +// ----------------------------------------------------------------------------- +// RSharedDataClient::Connect() +// Connects to the server - default number of message slots = 2 +// ----------------------------------------------------------------------------- + +EXPORT_C TInt RSharedDataClient::Connect() + { + COMMONENGINE_RDEBUG(_L("RSharedDataClient::Connect()")); + TInt err(KErrNone); + + if( !iDosWrapper ) + { + iDosWrapper = new CDosWrapper(); + if ( !iDosWrapper ) + { + COMMONENGINE_RDEBUG(_L("RSharedDataClient::Connect() - Could not create iDosWrapper, return KErrCouldNotConnect")); + return KErrCouldNotConnect; + } + COMMONENGINE_RDEBUG(_L("RSharedDataClient::Connect() - iDosWrapper created")); + } + + err = iDosWrapper->iDosSession.Connect(); + COMMONENGINE_RDEBUG_INT(_L("RSharedDataClient::Connect() - iDosSession.Connect() returned %d"), err); + if ( err != KErrNone ) + { + COMMONENGINE_RDEBUG(_L("RSharedDataClient::Connect() - Could not connect iDosSession, return KErrCouldNotConnect")); + return KErrCouldNotConnect; + } + + err = iDosWrapper->iDosSubsession.Open(iDosWrapper->iDosSession); + COMMONENGINE_RDEBUG_INT(_L("RSharedDataClient::Connect() - iDosSubSession.Open() returned %d"), err); + + if ( err != KErrNone ) + { + COMMONENGINE_RDEBUG(_L("RSharedDataClient::Connect() - Could not open iDosSubSession, return KErrCouldNotConnect")); + return KErrCouldNotConnect; + } + + COMMONENGINE_RDEBUG(_L("RSharedDataClient::Connect() - return")); + + return err; + } + +// ----------------------------------------------------------------------------- +// RSharedDataClient::Close() +// Closes a client session. +// ----------------------------------------------------------------------------- + +EXPORT_C void RSharedDataClient::Close() + { + COMMONENGINE_RDEBUG(_L("RSharedDataClient::Close()")); + if ( iDosWrapper ) + { + iDosWrapper->iDosSubsession.Close(); + iDosWrapper->iDosSession.Close(); + delete iDosWrapper; + iDosWrapper = NULL; + } + COMMONENGINE_RDEBUG(_L("RSharedDataClient::Close() - return")); + } + +// ----------------------------------------------------------------------------- +// RSharedDataClient::RequestFreeDiskSpaceLC() +// ----------------------------------------------------------------------------- + +EXPORT_C void RSharedDataClient::RequestFreeDiskSpaceLC( const TInt aAmount ) + const + { + COMMONENGINE_RDEBUG_INT(_L("RSharedDataClient::RequestFreeDiskSpaceLC( %d )"), aAmount); + CleanupStack::PushL( + TCleanupItem( CleanupFreeDiskSpaceRequest, + CONST_CAST( RSharedDataClient*, this ) ) ); + + COMMONENGINE_RDEBUG_INT(_L("RSharedDataClient::RequestFreeDiskSpaceLC - calling RequestFreeDiskSpace( %d )"), + aAmount); + RequestFreeDiskSpace( aAmount ); + COMMONENGINE_RDEBUG(_L("RSharedDataClient::RequestFreeDiskSpaceLC() - return")); + } + +// ----------------------------------------------------------------------------- +// RSharedDataClient::RequestFreeDiskSpace() +// ----------------------------------------------------------------------------- + +EXPORT_C void RSharedDataClient::RequestFreeDiskSpace( const TInt aAmount ) + const + { + COMMONENGINE_RDEBUG_INT(_L("RSharedDataClient::RequestFreeDiskSpace( %d )"), aAmount); + TInt amount(aAmount); + if ( iDosWrapper ) + { + iDosWrapper->iDosSubsession.RequestFreeDiskSpace( amount ); //Use the subsession. + COMMONENGINE_RDEBUG(_L("RSharedDataClient::RequestFreeDiskSpace() - return")); + } + else + { + COMMON_RDEBUG(_L("RSharedDataClient::RequestFreeDiskSpace() - Not connected to the server, return!")); + } + } + +// ----------------------------------------------------------------------------- +// RSharedDataClient::CancelFreeDiskSpaceRequest() +// ----------------------------------------------------------------------------- + +EXPORT_C void RSharedDataClient::CancelFreeDiskSpaceRequest() const + { + COMMONENGINE_RDEBUG(_L("RSharedDataClient::CancelFreeDiskSpaceRequest()")); + if ( iDosWrapper ) + { + iDosWrapper->iDosSubsession.RequestFreeDiskSpaceCancel(); //Use the subsession. + COMMONENGINE_RDEBUG(_L("RSharedDataClient::CancelFreeDiskSpaceRequest() - return")); + } + else + { + COMMON_RDEBUG(_L("RSharedDataClient::RequestFreeDiskSpace() - Not connected to the server, return!")); + } + } + +// ----------------------------------------------------------------------------- +// RSharedDataClient::CleanupFreeDiskSpaceRequest() +// ----------------------------------------------------------------------------- + +void RSharedDataClient::CleanupFreeDiskSpaceRequest( TAny* aAny ) + { + COMMONENGINE_RDEBUG(_L("RSharedDataClient::CleanupFreeDiskSpaceRequest()")); + REINTERPRET_CAST( RSharedDataClient*, aAny )->CancelFreeDiskSpaceRequest(); + COMMONENGINE_RDEBUG(_L("RSharedDataClient::CleanupFreeDiskSpaceRequest() - return")); + } + + +// End of File