sysstatemgmt/systemstatemgr/sus/src/ssmsupinfo.cpp
changeset 0 4e1aa6a622a0
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysstatemgmt/systemstatemgr/sus/src/ssmsupinfo.cpp	Tue Feb 02 00:53:00 2010 +0200
@@ -0,0 +1,129 @@
+// Copyright (c) 2007-2009 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:
+//
+
+#include <s32strm.h>
+#include <ssm/ssmsupinfo.h>
+
+/**
+ Default constructor.
+ */
+EXPORT_C TSsmSupInfo::TSsmSupInfo() 
+	: iFileName(KNullDesC), iNewLOrdinal(1), iIdentity(KNullUid), iSpare(0)
+	{
+	}
+
+/**
+ Constructor that lets you specify a DLL file name only.
+ The DLL file name should not include the path or drive. Utility Plugin DLLs
+ will only be loaded from the Z: drive.
+ 
+ The optional iIdentity member will be set to KNullUid and iNewLOrdinal will default to 1.
+ 
+ @param aFileName A Utility Plugin  DLL file name without drive or path
+ */
+EXPORT_C TSsmSupInfo::TSsmSupInfo(const TDesC& aFileName) 
+	: iFileName(aFileName), iNewLOrdinal(1), iIdentity(KNullUid), iSpare(0)
+	{
+	}
+
+/**
+ Constructor that lets you specify a DLL file name and ordinal function of 
+ the DLL which provides the static MSsmUtility* NewL() function. The DLL file name 
+ should not include the path or drive.  Utility Plugin DLLs will only be loaded 
+ from the Z: drive.
+ 
+ @param aFileName 		A Utility Plugin DLL file name without drive or path
+ @param aNewLOrdinal	The ordinal number of the static MSsmUtility* NewL() function
+ */
+EXPORT_C TSsmSupInfo::TSsmSupInfo(const TDesC& aFileName, TInt aNewLOrdinal) 
+	: iFileName(aFileName), iNewLOrdinal(aNewLOrdinal), iIdentity(KNullUid), iSpare(0)
+	{
+	}
+
+/**
+ Constructor that lets you specify a DLL file name, the UID3 you expect it to have and
+ which ordinal function of the DLL provides the static MSsmUtility* NewL() function. 
+ The Utility Plugin DLL must match both filename and expected UID.  The DLL file name 
+ should not include the path or drive.  Utility Plugin DLLs will only be loaded from 
+ the Z: drive.
+ 
+ @param aFileName 		A Utility Plugin DLL file name without drive or path
+ @param aNewLOrdinal	The ordinal number of the static MSsmUtility* NewL() function
+ @param aIdentityUid	The expected UID3 in the DLL specified by @c aFileName
+ */
+EXPORT_C TSsmSupInfo::TSsmSupInfo(const TDesC& aFileName, TInt aNewLOrdinal, const TUid& aIdentityUid) 
+	: iFileName(aFileName), iNewLOrdinal(aNewLOrdinal), iIdentity(aIdentityUid), iSpare(0)
+	{
+	}
+
+/**
+ Destructor.
+ */
+EXPORT_C TSsmSupInfo::~TSsmSupInfo() 
+	{
+	}
+
+/**
+ Setter for member data.
+ @param aFileName 		A Utility Plugin DLL file name without drive or path
+ @param aNewLOrdinal	The ordinal number of the static MSsmUtility* NewL() function
+ @param aIdentityUid	The expected UID3 in the DLL specified by @c aFileName, or KNullUid 
+ 						to skip this optional security check.
+ */
+EXPORT_C void TSsmSupInfo::SetL(const TDesC& aFileName, TInt aNewLOrdinal, const TUid& aIdentityUid)
+	{
+	iFileName = aFileName;
+	iNewLOrdinal = aNewLOrdinal;
+	iIdentity = aIdentityUid;
+	}
+
+/**
+ @return The Uid stored in this object
+ */
+EXPORT_C TUid TSsmSupInfo::Identity() const
+	{
+	return iIdentity;
+	}
+
+/**
+ @return A const reference to the filename stored in this object
+ */
+EXPORT_C const TFileName& TSsmSupInfo::FileName() const
+	{
+	return iFileName;
+	}
+
+/**
+ @return The ordinal number stored in this object
+ */
+EXPORT_C TInt TSsmSupInfo::NewLOrdinal() const
+	{
+	return iNewLOrdinal;
+	}
+
+EXPORT_C void TSsmSupInfo::InternalizeL( RReadStream& aReadStream )
+	{
+	aReadStream >> iFileName;
+	aReadStream >> iIdentity;
+	aReadStream >> iNewLOrdinal;
+	}
+
+EXPORT_C void TSsmSupInfo::ExternalizeL( RWriteStream& aWriteStream ) const
+	{
+	aWriteStream << iFileName;
+	aWriteStream << iIdentity;
+	aWriteStream << iNewLOrdinal;
+	}
+