--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/rtsecuritymanager/rtsecuritymanagerutil/src/rtsecmgrscript.cpp Mon Mar 30 12:51:20 2009 +0300
@@ -0,0 +1,240 @@
+/*
+* Copyright (c) 2009 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:
+*
+*/
+
+
+
+
+
+#include <rtsecmgrutility.h>
+#include <rtsecmgrscript.h>
+#include <s32mem.H>
+
+const TReal DEFAULT_VERSION(1.0);
+// ---------------------------------------------------------------------------
+// Destructor
+// ---------------------------------------------------------------------------
+//
+EXPORT_C CScript::~CScript()
+ {
+ delete iPermissionSet;
+ if(iHashMark)
+ delete iHashMark;
+ }
+
+// ---------------------------------------------------------------------------
+// Two-phased constructor
+// ---------------------------------------------------------------------------
+//
+EXPORT_C CScript* CScript::NewL(TPolicyID aPolicyID,TExecutableID aScriptID)
+ {
+ CScript* self = CScript::NewLC(aPolicyID,aScriptID);
+ CleanupStack::Pop(self);
+ return self;
+ }
+
+// ---------------------------------------------------------------------------
+// Two-phased constructor
+// ---------------------------------------------------------------------------
+//
+EXPORT_C CScript* CScript::NewLC(TPolicyID aPolicyID,TExecutableID aScriptID)
+ {
+ CScript* self = new (ELeave) CScript(aPolicyID,aScriptID);
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ return self;
+ }
+
+// ---------------------------------------------------------------------------
+// Two-phased constructor
+// ---------------------------------------------------------------------------
+//
+void CScript::ConstructL()
+ {
+ iPermissionSet = CPermissionSet::NewL ();
+ }
+
+// ---------------------------------------------------------------------------
+// Overloaded assignment operator
+// ---------------------------------------------------------------------------
+//
+EXPORT_C const CScript& CScript::operator=(const CScript& aRhs)
+ {
+ if(iPermissionSet )
+ {
+ delete iPermissionSet;
+ iPermissionSet = NULL;
+ }
+
+ iPermissionSet = CPermissionSet::NewL(*aRhs.iPermissionSet);
+ iScriptID = aRhs.iScriptID;
+ iPolicyID = aRhs.iPolicyID;
+ iPermGrant = aRhs.iPermGrant;
+ iPermDenied = aRhs.iPermDenied;
+
+ if(iHashMark)
+ {
+ delete iHashMark;
+ iHashMark = NULL;
+ }
+
+ if(aRhs.iHashMark)
+ {
+ iHashMark = aRhs.iHashMark->AllocLC();
+ CleanupStack::Pop(iHashMark);
+ }
+ return *this;
+ }
+
+// ---------------------------------------------------------------------------
+// Gets script identifier
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TExecutableID CScript::ScriptID() const
+ {
+ return iScriptID;
+ }
+
+// ---------------------------------------------------------------------------
+// Gets policy identifier
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TPolicyID CScript::PolicyID() const
+ {
+ return iPolicyID;
+ }
+
+// ---------------------------------------------------------------------------
+// Sets permission set data of the script
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CScript::SetPermissionSet(const CPermissionSet& aPermSet)
+ {
+ if ( iPermissionSet)
+ {
+ delete iPermissionSet;
+ iPermissionSet=NULL;
+ }
+
+ iPermissionSet = CPermissionSet::NewL (aPermSet);
+ }
+
+// ---------------------------------------------------------------------------
+// Gets permission set data of the script
+// ---------------------------------------------------------------------------
+//
+EXPORT_C const CPermissionSet& CScript::PermissionSet() const
+ {
+ return *iPermissionSet;
+ }
+// ---------------------------------------------------------------------------
+// Gets permission set data of the script
+// ---------------------------------------------------------------------------
+//
+EXPORT_C CPermissionSet& CScript::PermissionSet()
+ {
+ return *iPermissionSet;
+ }
+
+// ---------------------------------------------------------------------------
+// Gets permanently granted permissions of the script
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TPermGrant CScript::PermGranted() const
+ {
+ return iPermGrant;
+ }
+
+// ---------------------------------------------------------------------------
+// Gets permanently denied permissions of the script
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TPermGrant CScript::PermDenied() const
+ {
+ return iPermDenied;
+ }
+
+// ---------------------------------------------------------------------------
+// ExternalizeLs script data to stream
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CScript::ExternalizeL(RWriteStream& aSink) const
+ {
+ aSink.WriteReal32L(DEFAULT_VERSION);
+ iPermissionSet->ExternalizeL (aSink);
+ aSink.WriteInt32L (iScriptID);
+ aSink.WriteInt32L (iPolicyID);
+ aSink.WriteUint32L (iPermGrant);
+ aSink.WriteUint32L (iPermDenied);
+ if(iHashMark)
+ {
+ aSink.WriteUint32L(iHashMark->Length());
+ aSink.WriteL(*iHashMark,iHashMark->Length());
+ }
+ else
+ aSink.WriteInt32L(0);
+ }
+
+// ---------------------------------------------------------------------------
+// InternalizeLs script data from stream
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CScript::InternalizeL(RReadStream& aSource)
+ {
+ if ( iPermissionSet)
+ {
+ delete iPermissionSet;
+ iPermissionSet=NULL;
+ iPermissionSet = CPermissionSet::NewL ();
+ }
+ TReal version(aSource.ReadReal32L());
+ iPermissionSet->InternalizeL (aSource);
+ iScriptID = aSource.ReadInt32L ();
+ iPolicyID = aSource.ReadInt32L ();
+ iPermGrant = aSource.ReadUint32L ();
+ iPermDenied = aSource.ReadUint32L ();
+ TInt hashMarkLen(aSource.ReadUint32L());
+ if(iHashMark)
+ {
+ delete iHashMark;
+ iHashMark = NULL;
+ }
+
+ if(hashMarkLen)
+ {
+ iHashMark = HBufC::NewL(hashMarkLen);
+ TPtr ptr(iHashMark->Des());
+ aSource.ReadL(ptr,hashMarkLen);
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// Sets permanently granted permissions of the script
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CScript::SetPermGranted(TPermGrant aPermGrant)
+ {
+ iPermGrant = aPermGrant;
+ }
+
+// ---------------------------------------------------------------------------
+// Sets permanently denied permissions of the script
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CScript::SetPermDenied(TPermGrant aPermDenied)
+ {
+ iPermDenied = aPermDenied;
+ }