cryptoservices/filebasedcertificateandkeystores/source/generic/server/FSRunPackage.h
changeset 8 35751d3474b7
parent 0 2c201484c85f
--- a/cryptoservices/filebasedcertificateandkeystores/source/generic/server/FSRunPackage.h	Tue Jul 21 01:04:32 2009 +0100
+++ b/cryptoservices/filebasedcertificateandkeystores/source/generic/server/FSRunPackage.h	Thu Sep 10 14:01:51 2009 +0300
@@ -1,307 +1,305 @@
-/*
-* Copyright (c) 2005-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: 
-*
-*/
-
-
-
-
-
-
-/**
- @file
- @internalTechnology
-*/
-
-#ifndef _FSRUNPACKAGE_H
-#define _FSRUNPACKAGE_H
-
-#include <e32base.h>
-
-// Disable WINS warning for symbol being too long (especially for template 
-// instantiations)
-#ifdef __WINS__
-#pragma warning(disable : 4786)
-#endif
-
-// The CRunPackage class allows a CActive derived object to "callback"
-// a member function with given parameters when the RunL function is called.
-//
-// It packages up the function call and the parameters into an object.
-// This saves you on having to have all these different member variables
-// to store parameters in an async call.
-//
-// The way this works is to create a member CRunPackage contained in
-// your class. Your RunL would simply be
-//
-// if (iRunPackage)
-//     {
-//     iRunPackage->ExecuteL();
-//     }
-//
-// And you set your iRunPackage by doing
-// iRunPackage = CRunPackage2<....>(this, function, param1, param2);
-//
-// In addition, CRunPackage encapsulates transient variables allocated on
-// the heap which must be destroyed when the CRunPackage object is destroyed.
-//
-// These objects can be added by calling the AddDeleteOnly, AddCloseDelete,
-// and AddReleaseOnly methods. When CRunPackage is destroyed, these objects
-// will be deleted.
-class CRunPackage : public CBase
-	{
-private:
-	// Private classes derived from CBase whose destructors release transient
-	// resources when the RunPackage is destroyed
-	template <class T>
-	class CDeleteOnly : public CBase
-		{
-	public:
-		CDeleteOnly(T* aPtr) : iPtr(aPtr) {}
-		~CDeleteOnly() { delete iPtr; }
-
-	private:
-		T* iPtr;
-		};
-
-	// Close and delete an object - this is required for pointers to R classes
-	template <class T>
-	class CCloseDelete : public CBase
-		{
-	public:
-		CCloseDelete(T* aPtr) : iPtr(aPtr) {}
-		~CCloseDelete() 
-			{
-			iPtr->Close();
-			delete iPtr; 
-			}
-
-	private:
-		T* iPtr;
-		};
-
-	// Release an object
-	template <class T>
-	class CReleaseOnly : public CBase
-		{
-	public:
-		CReleaseOnly(T* aPtr) : iPtr(aPtr) {}
-		~CReleaseOnly() { iPtr->Release(); }
-
-	private:
-		T* iPtr;
-		};
-
-public:
-	// when the destructor is invoked, if there is an iDeleteAction, its
-	// destructor will be invoked 
-	virtual ~CRunPackage();
-	virtual void ExecuteL() = 0;
-
-	// Operations to add delete operations
-	template <class T>
-	TInt AddDeleteOnly(T* aPtr)
-		{
-		return AddDeleteAction(new CDeleteOnly<T>(aPtr));
-		}
-
-	// adds a pointer which is to be closed and deleted
-	template <class T>
-	TInt AddCloseDelete(T* aPtr)
-		{
-		return AddDeleteAction(new CCloseDelete<T>(aPtr));
-		}
-
-	// adds a pointer which is to be released
-	template <class T>
-	TInt AddReleaseOnly(T* aPtr)
-		{
-		return AddDeleteAction(new CReleaseOnly<T>(aPtr));
-		}
-
-private:
-	// Adds a deleted action
-	TInt AddDeleteAction(CBase* aAction);
-
-private:
-	RPointerArray<CBase> iDeleteActions;
-	};
-
-// Implementation of RunPackage where callback takes no parameters
-template <class T>
-class CRunPackage0 : public CRunPackage
-	{
-public:
-	typedef void (T::*TRunFn)();
-
-	CRunPackage0(T& aParent, TRunFn aRunFn)
-		: iParent(aParent), iRunFn(aRunFn) {}
-
-	void ExecuteL() 
-		{ 
-		(iParent.*iRunFn)(); 
-		}
-
-private:
-	T& iParent;
-	TRunFn iRunFn;
-	};
-
-
-// implementation which takes one parameter
-template <class T, class P1>
-class CRunPackage1 : public CRunPackage
-	{
-public:
-	typedef void (T::*TRunFn)(P1);
-
-	CRunPackage1(T& aParent, TRunFn aRunFn, P1 aP1)
-		: iParent(aParent), iRunFn(aRunFn), iP1(aP1) {}
-
-	void ExecuteL() 
-		{ 
-		(iParent.*iRunFn)(iP1); 
-		}
-
-private:
-	T& iParent;
-	TRunFn iRunFn;
-	P1 iP1;
-	};
-
-// implementation which takes two parameters
-template <class T, class P1, class P2>
-class CRunPackage2 : public CRunPackage
-	{
-public:
-	typedef void (T::*TRunFn)(P1, P2);
-
-	CRunPackage2(T& aParent, TRunFn aRunFn, P1 aP1, P2 aP2)
-		: iParent(aParent), iRunFn(aRunFn), iP1(aP1), iP2(aP2) {}
-
-	void ExecuteL() 
-		{ 
-		(iParent.*iRunFn)(iP1, iP2); 
-		}
-
-private:
-	T& iParent;
-	TRunFn iRunFn;
-	P1 iP1;
-	P2 iP2;
-	};
-
-// implementation which takes three parameters
-template <class T, class P1, class P2, class P3>
-class CRunPackage3 : public CRunPackage
-	{
-public:
-	typedef void (T::*TRunFn)(P1, P2, P3);
-
-	CRunPackage3(T& aParent, TRunFn aRunFn, P1 aP1, P2 aP2, P3 aP3)
-		: iParent(aParent), iRunFn(aRunFn), iP1(aP1), iP2(aP2), iP3(aP3) {}
-
-	void ExecuteL() 
-		{ 
-		(iParent.*iRunFn)(iP1, iP2, iP3); 
-		}
-
-private:
-	T& iParent;
-	TRunFn iRunFn;
-	P1 iP1;
-	P2 iP2;
-	P3 iP3;
-	};
-
-// implementation which takes four parameters
-template <class T, class P1, class P2, class P3, class P4>
-class CRunPackage4 : public CRunPackage
-	{
-public:
-	typedef void (T::*TRunFn)(P1, P2, P3, P4);
-
-	CRunPackage4(T& aParent, TRunFn aRunFn, P1 aP1, P2 aP2, P3 aP3, P4 aP4)
-		: iParent(aParent), iRunFn(aRunFn), iP1(aP1), iP2(aP2), iP3(aP3), iP4(aP4) {}
-
-	void ExecuteL() 
-		{ 
-		(iParent.*iRunFn)(iP1, iP2, iP3, iP4);
-		}
-
-private:
-	T& iParent;
-	TRunFn iRunFn;
-	P1 iP1;
-	P2 iP2;
-	P3 iP3;
-	P4 iP4;
-	};
-
-// implementation which takes four parameters
-template <class T, class P1, class P2, class P3, class P4, class P5>
-class CRunPackage5 : public CRunPackage
-	{
-public:
-	typedef void (T::*TRunFn)(P1, P2, P3, P4, P5);
-
-	CRunPackage5(T& aParent, TRunFn aRunFn, P1 aP1, P2 aP2, P3 aP3, P4 aP4, P5 aP5)
-		: iParent(aParent), iRunFn(aRunFn), iP1(aP1), iP2(aP2), iP3(aP3), 
-		  iP4(aP4), iP5(aP5) {}
-
-	void ExecuteL() 
-		{ 
-		(iParent.*iRunFn)(iP1, iP2, iP3, iP4, iP5);
-		}
-
-private:
-	T& iParent;
-	TRunFn iRunFn;
-	P1 iP1;
-	P2 iP2;
-	P3 iP3;
-	P4 iP4;
-	P5 iP5;
-	};
-
-// implementation which takes four parameters
-template <class T, class P1, class P2, class P3, class P4, class P5, class P6>
-class CRunPackage6 : public CRunPackage
-	{
-public:
-	typedef void (T::*TRunFn)(P1, P2, P3, P4, P5, P6);
-
-	CRunPackage6(T& aParent, TRunFn aRunFn, P1 aP1, P2 aP2, P3 aP3, P4 aP4, P5 aP5, P6 aP6)
-		: iParent(aParent), iRunFn(aRunFn), iP1(aP1), iP2(aP2), iP3(aP3), 
-		  iP4(aP4), iP5(aP5), iP6(aP6) {}
-
-	void ExecuteL() 
-		{ 
-		(iParent.*iRunFn)(iP1, iP2, iP3, iP4, iP5, iP6);
-		}
-
-private:
-	T& iParent;
-	TRunFn iRunFn;
-	P1 iP1;
-	P2 iP2;
-	P3 iP3;
-	P4 iP4;
-	P5 iP5;
-	P6 iP6;
-	};
-
-
-#endif
+/*
+* Copyright (c) 2005-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: 
+*
+*/
+
+
+
+
+/**
+ @file
+ @internalTechnology
+*/
+
+#ifndef _FSRUNPACKAGE_H
+#define _FSRUNPACKAGE_H
+
+#include <e32base.h>
+
+// Disable WINS warning for symbol being too long (especially for template 
+// instantiations)
+#ifdef __WINS__
+#pragma warning(disable : 4786)
+#endif
+
+// The CRunPackage class allows a CActive derived object to "callback"
+// a member function with given parameters when the RunL function is called.
+//
+// It packages up the function call and the parameters into an object.
+// This saves you on having to have all these different member variables
+// to store parameters in an async call.
+//
+// The way this works is to create a member CRunPackage contained in
+// your class. Your RunL would simply be
+//
+// if (iRunPackage)
+//     {
+//     iRunPackage->ExecuteL();
+//     }
+//
+// And you set your iRunPackage by doing
+// iRunPackage = CRunPackage2<....>(this, function, param1, param2);
+//
+// In addition, CRunPackage encapsulates transient variables allocated on
+// the heap which must be destroyed when the CRunPackage object is destroyed.
+//
+// These objects can be added by calling the AddDeleteOnly, AddCloseDelete,
+// and AddReleaseOnly methods. When CRunPackage is destroyed, these objects
+// will be deleted.
+class CRunPackage : public CBase
+	{
+private:
+	// Private classes derived from CBase whose destructors release transient
+	// resources when the RunPackage is destroyed
+	template <class T>
+	class CDeleteOnly : public CBase
+		{
+	public:
+		CDeleteOnly(T* aPtr) : iPtr(aPtr) {}
+		~CDeleteOnly() { delete iPtr; }
+
+	private:
+		T* iPtr;
+		};
+
+	// Close and delete an object - this is required for pointers to R classes
+	template <class T>
+	class CCloseDelete : public CBase
+		{
+	public:
+		CCloseDelete(T* aPtr) : iPtr(aPtr) {}
+		~CCloseDelete() 
+			{
+			iPtr->Close();
+			delete iPtr; 
+			}
+
+	private:
+		T* iPtr;
+		};
+
+	// Release an object
+	template <class T>
+	class CReleaseOnly : public CBase
+		{
+	public:
+		CReleaseOnly(T* aPtr) : iPtr(aPtr) {}
+		~CReleaseOnly() { iPtr->Release(); }
+
+	private:
+		T* iPtr;
+		};
+
+public:
+	// when the destructor is invoked, if there is an iDeleteAction, its
+	// destructor will be invoked 
+	virtual ~CRunPackage();
+	virtual void ExecuteL() = 0;
+
+	// Operations to add delete operations
+	template <class T>
+	TInt AddDeleteOnly(T* aPtr)
+		{
+		return AddDeleteAction(new CDeleteOnly<T>(aPtr));
+		}
+
+	// adds a pointer which is to be closed and deleted
+	template <class T>
+	TInt AddCloseDelete(T* aPtr)
+		{
+		return AddDeleteAction(new CCloseDelete<T>(aPtr));
+		}
+
+	// adds a pointer which is to be released
+	template <class T>
+	TInt AddReleaseOnly(T* aPtr)
+		{
+		return AddDeleteAction(new CReleaseOnly<T>(aPtr));
+		}
+
+private:
+	// Adds a deleted action
+	TInt AddDeleteAction(CBase* aAction);
+
+private:
+	RPointerArray<CBase> iDeleteActions;
+	};
+
+// Implementation of RunPackage where callback takes no parameters
+template <class T>
+class CRunPackage0 : public CRunPackage
+	{
+public:
+	typedef void (T::*TRunFn)();
+
+	CRunPackage0(T& aParent, TRunFn aRunFn)
+		: iParent(aParent), iRunFn(aRunFn) {}
+
+	void ExecuteL() 
+		{ 
+		(iParent.*iRunFn)(); 
+		}
+
+private:
+	T& iParent;
+	TRunFn iRunFn;
+	};
+
+
+// implementation which takes one parameter
+template <class T, class P1>
+class CRunPackage1 : public CRunPackage
+	{
+public:
+	typedef void (T::*TRunFn)(P1);
+
+	CRunPackage1(T& aParent, TRunFn aRunFn, P1 aP1)
+		: iParent(aParent), iRunFn(aRunFn), iP1(aP1) {}
+
+	void ExecuteL() 
+		{ 
+		(iParent.*iRunFn)(iP1); 
+		}
+
+private:
+	T& iParent;
+	TRunFn iRunFn;
+	P1 iP1;
+	};
+
+// implementation which takes two parameters
+template <class T, class P1, class P2>
+class CRunPackage2 : public CRunPackage
+	{
+public:
+	typedef void (T::*TRunFn)(P1, P2);
+
+	CRunPackage2(T& aParent, TRunFn aRunFn, P1 aP1, P2 aP2)
+		: iParent(aParent), iRunFn(aRunFn), iP1(aP1), iP2(aP2) {}
+
+	void ExecuteL() 
+		{ 
+		(iParent.*iRunFn)(iP1, iP2); 
+		}
+
+private:
+	T& iParent;
+	TRunFn iRunFn;
+	P1 iP1;
+	P2 iP2;
+	};
+
+// implementation which takes three parameters
+template <class T, class P1, class P2, class P3>
+class CRunPackage3 : public CRunPackage
+	{
+public:
+	typedef void (T::*TRunFn)(P1, P2, P3);
+
+	CRunPackage3(T& aParent, TRunFn aRunFn, P1 aP1, P2 aP2, P3 aP3)
+		: iParent(aParent), iRunFn(aRunFn), iP1(aP1), iP2(aP2), iP3(aP3) {}
+
+	void ExecuteL() 
+		{ 
+		(iParent.*iRunFn)(iP1, iP2, iP3); 
+		}
+
+private:
+	T& iParent;
+	TRunFn iRunFn;
+	P1 iP1;
+	P2 iP2;
+	P3 iP3;
+	};
+
+// implementation which takes four parameters
+template <class T, class P1, class P2, class P3, class P4>
+class CRunPackage4 : public CRunPackage
+	{
+public:
+	typedef void (T::*TRunFn)(P1, P2, P3, P4);
+
+	CRunPackage4(T& aParent, TRunFn aRunFn, P1 aP1, P2 aP2, P3 aP3, P4 aP4)
+		: iParent(aParent), iRunFn(aRunFn), iP1(aP1), iP2(aP2), iP3(aP3), iP4(aP4) {}
+
+	void ExecuteL() 
+		{ 
+		(iParent.*iRunFn)(iP1, iP2, iP3, iP4);
+		}
+
+private:
+	T& iParent;
+	TRunFn iRunFn;
+	P1 iP1;
+	P2 iP2;
+	P3 iP3;
+	P4 iP4;
+	};
+
+// implementation which takes four parameters
+template <class T, class P1, class P2, class P3, class P4, class P5>
+class CRunPackage5 : public CRunPackage
+	{
+public:
+	typedef void (T::*TRunFn)(P1, P2, P3, P4, P5);
+
+	CRunPackage5(T& aParent, TRunFn aRunFn, P1 aP1, P2 aP2, P3 aP3, P4 aP4, P5 aP5)
+		: iParent(aParent), iRunFn(aRunFn), iP1(aP1), iP2(aP2), iP3(aP3), 
+		  iP4(aP4), iP5(aP5) {}
+
+	void ExecuteL() 
+		{ 
+		(iParent.*iRunFn)(iP1, iP2, iP3, iP4, iP5);
+		}
+
+private:
+	T& iParent;
+	TRunFn iRunFn;
+	P1 iP1;
+	P2 iP2;
+	P3 iP3;
+	P4 iP4;
+	P5 iP5;
+	};
+
+// implementation which takes four parameters
+template <class T, class P1, class P2, class P3, class P4, class P5, class P6>
+class CRunPackage6 : public CRunPackage
+	{
+public:
+	typedef void (T::*TRunFn)(P1, P2, P3, P4, P5, P6);
+
+	CRunPackage6(T& aParent, TRunFn aRunFn, P1 aP1, P2 aP2, P3 aP3, P4 aP4, P5 aP5, P6 aP6)
+		: iParent(aParent), iRunFn(aRunFn), iP1(aP1), iP2(aP2), iP3(aP3), 
+		  iP4(aP4), iP5(aP5), iP6(aP6) {}
+
+	void ExecuteL() 
+		{ 
+		(iParent.*iRunFn)(iP1, iP2, iP3, iP4, iP5, iP6);
+		}
+
+private:
+	T& iParent;
+	TRunFn iRunFn;
+	P1 iP1;
+	P2 iP2;
+	P3 iP3;
+	P4 iP4;
+	P5 iP5;
+	P6 iP6;
+	};
+
+
+#endif