diff -r 000000000000 -r 09774dfdd46b presetserver/clientsrc/Psservsession.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/presetserver/clientsrc/Psservsession.cpp Mon Apr 19 14:01:53 2010 +0300 @@ -0,0 +1,143 @@ +/* +* Copyright (c) 2006-2006 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: Implementation of RPSServSession +* +*/ + + +#include +#include + +#include "psservsession.h" + +// --------------------------------------------------------------------------- +// Constructor. +// --------------------------------------------------------------------------- +// +RPSServSession::RPSServSession( RPSServ& aServ, TInt aId ) + : iPresetServ( aServ ), iId( aId ) + { + } + +// --------------------------------------------------------------------------- +// Closes the session. +// --------------------------------------------------------------------------- +// +void RPSServSession::Close() + { + Rollback(); + } + +// --------------------------------------------------------------------------- +// Begins a transaction. +// --------------------------------------------------------------------------- +// +void RPSServSession::BeginTransactionL() + { + User::LeaveIfError( iPresetServ.SendReceive( EPSOpStartTransaction, TIpcArgs( iId ) ) ); + } + +// --------------------------------------------------------------------------- +// Commits the transaction. +// --------------------------------------------------------------------------- +// +void RPSServSession::CommitL() + { + User::LeaveIfError( iPresetServ.SendReceive( EPSOpCommitTransaction, TIpcArgs( iId ) ) ); + } + +// --------------------------------------------------------------------------- +// Reverts all changes done during the transaction. +// --------------------------------------------------------------------------- +// +void RPSServSession::Rollback() + { + iPresetServ.Send( EPSOpRollbackTransaction, TIpcArgs( iId ) ); + } + +// --------------------------------------------------------------------------- +// Sets an integer value. +// --------------------------------------------------------------------------- +// +void RPSServSession::SetL( TPSOpCode aServerCommand, TInt aValue ) + { + User::LeaveIfError( iPresetServ.SendReceive( aServerCommand, TIpcArgs( iId, aValue ) ) ); + } + +// --------------------------------------------------------------------------- +// Gets an integer value. +// --------------------------------------------------------------------------- +// +void RPSServSession::GetL( TPSOpCode aServerCommand, TInt& aValue ) + { + TPckgBuf value; + User::LeaveIfError( iPresetServ.SendReceive( aServerCommand, TIpcArgs( iId, &value) ) ); + aValue = value(); + } + +// --------------------------------------------------------------------------- +// Sets an 8-bit descriptor value. +// --------------------------------------------------------------------------- +// +void RPSServSession::SetL( TPSOpCode aServerCommand, const TDesC8& aValue ) + { + User::LeaveIfError( iPresetServ.SendReceive( aServerCommand, TIpcArgs( iId, &aValue) ) ); + } + +// --------------------------------------------------------------------------- +// Gets a 8-bit descriptor value. +// --------------------------------------------------------------------------- +// +void RPSServSession::GetL( TPSOpCode aServerCommand, TPSOpCode aLengthCommand, HBufC8*& aValue ) + { + TPckgBuf length; + User::LeaveIfError( iPresetServ.SendReceive( aLengthCommand, TIpcArgs( iId, &length ) ) ); + + HBufC8* buf = HBufC8::NewLC( length() ); + TPtr8 ptr( buf->Des() ); + + User::LeaveIfError( iPresetServ.SendReceive( aServerCommand, TIpcArgs( iId, &ptr ) ) ); + + CleanupStack::Pop( buf ); + + aValue = buf; + } + +// --------------------------------------------------------------------------- +// Sets a 16-bit descriptor value. +// --------------------------------------------------------------------------- +// +void RPSServSession::SetL( TPSOpCode aServerCommand, const TDesC& aValue ) + { + User::LeaveIfError( iPresetServ.SendReceive( aServerCommand, TIpcArgs( iId, &aValue) ) ); + } + +// --------------------------------------------------------------------------- +// Gets a 16-bit descriptor value. +// --------------------------------------------------------------------------- +// +void RPSServSession::GetL( TPSOpCode aServerCommand, TPSOpCode aLengthCommand, HBufC*& aValue ) + { + TPckgBuf length; + User::LeaveIfError( iPresetServ.SendReceive( aLengthCommand, TIpcArgs( iId, &length ) ) ); + + HBufC* buf = HBufC::NewLC( length() ); + TPtr ptr( buf->Des() ); + + User::LeaveIfError( iPresetServ.SendReceive( aServerCommand, TIpcArgs( iId, &ptr ) ) ); + + CleanupStack::Pop( buf ); + + aValue = buf; + }