diff -r 000000000000 -r 99ef825efeca rtsecuritymanager/rtsecuritymanagerutil/src/rtsecmgrmsg.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/rtsecuritymanager/rtsecuritymanagerutil/src/rtsecmgrmsg.cpp Mon Mar 30 12:51:20 2009 +0300 @@ -0,0 +1,120 @@ +/* +* Copyright (c) 2007-2008 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the License "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: Defines rtsecmgr common client server message types + * +*/ + + + + + + + +#include "rtsecmgrmsg.h" + +CRTSecMgrRegisterScriptMsg::CRTSecMgrRegisterScriptMsg(TPolicyID aPolicyID) : + iPolicyID(aPolicyID) + { + // No implementation required + } + +EXPORT_C CRTSecMgrRegisterScriptMsg::~CRTSecMgrRegisterScriptMsg() + { + if ( iHashMarker) + { + delete iHashMarker; + } + } + +EXPORT_C CRTSecMgrRegisterScriptMsg* CRTSecMgrRegisterScriptMsg::NewLC( + TPolicyID aPolicyID, const TDesC& aHashValue) + { + CRTSecMgrRegisterScriptMsg* self = new (ELeave)CRTSecMgrRegisterScriptMsg(aPolicyID); + CleanupStack::PushL (self); + self->ConstructL (aHashValue); + return self; + } + +EXPORT_C CRTSecMgrRegisterScriptMsg* CRTSecMgrRegisterScriptMsg::NewL( + TPolicyID aPolicyID, const TDesC& aHashValue) + { + CRTSecMgrRegisterScriptMsg* self=CRTSecMgrRegisterScriptMsg::NewLC ( + aPolicyID, aHashValue); + CleanupStack::Pop (self); // self; + return self; + } + +// Creates a CRTSecMgrRegisterScriptMsg initialized with the contents of the +// descriptor parameter +EXPORT_C CRTSecMgrRegisterScriptMsg* CRTSecMgrRegisterScriptMsg::NewLC(const TDesC8& aStreamData) + { + // Reads descriptor data from a stream + // and creates a new CRTSecMgrRegisterScriptMsg object + CRTSecMgrRegisterScriptMsg* self = new (ELeave) CRTSecMgrRegisterScriptMsg(); + CleanupStack::PushL (self); + + // Open a read stream for the descriptor + RDesReadStream stream(aStreamData); + CleanupClosePushL (stream); + self->InternalizeL (stream); + CleanupStack::PopAndDestroy (&stream); // finished with the stream + return (self); + } + +void CRTSecMgrRegisterScriptMsg::ConstructL(const TDesC& aHashValue) + { + if ( iHashMarker) + { + delete iHashMarker; + iHashMarker = NULL; + } + + iHashMarker = aHashValue.AllocL (); + } + +// Creates and returns a heap descriptor which holds contents of ’this’ +EXPORT_C HBufC8* CRTSecMgrRegisterScriptMsg::PackMsgL() const + { + // Dynamic data buffer + CBufFlat* buf = CBufFlat::NewL(KMaxMsgLength); + CleanupStack::PushL(buf); + RBufWriteStream stream(*buf); // Stream over the buffer + CleanupClosePushL(stream); + ExternalizeL(stream); + CleanupStack::PopAndDestroy(&stream); + // Create a heap descriptor from the buffer + HBufC8* des = HBufC8::NewL(buf->Size()); + TPtr8 ptr(des->Des()); + buf->Read(0, ptr, buf->Size()); + CleanupStack::PopAndDestroy(buf); // Finished with the buffer + return (des); + } + +// Writes ’this’ to aStream +void CRTSecMgrRegisterScriptMsg::ExternalizeL(RWriteStream& aStream) const + { + if ( iHashMarker) + aStream << *iHashMarker; + else + aStream << KNullDesC8; + + aStream.WriteInt32L (iPolicyID); // Write iPolicyID to the stream + } + +// Initializes ’this’ with the contents of aStream +void CRTSecMgrRegisterScriptMsg::InternalizeL(RReadStream& aStream) + { + iHashMarker = HBufC::NewL (aStream, KMaxHashValueDesLen); + iPolicyID = aStream.ReadInt32L (); // Read iPolicyID + }