remotemgmt_plat/common_agent_util_and_definitions_api/inc/nsmlconstants.h
branchRCL_3
changeset 14 504e41245867
parent 9 57a65a3a658c
child 25 b183ec05bd8c
--- a/remotemgmt_plat/common_agent_util_and_definitions_api/inc/nsmlconstants.h	Wed Mar 31 23:00:03 2010 +0300
+++ b/remotemgmt_plat/common_agent_util_and_definitions_api/inc/nsmlconstants.h	Wed Apr 14 16:50:34 2010 +0300
@@ -240,6 +240,40 @@
 	CleanupRPtrArrayDelete<T>::PushL(aPtr);
 	}
 
+// RImplInfoPtrArray cleanup pusher
+template <class T>
+class CleanupRImplInfoPtrArrayDelete
+	{
+public:
+	inline static void PushL(T* aPtr);
+private:
+	static void RImplInfoPtrArrayDelete(TAny *aPtr);
+	};
+
+template <class T>
+inline void CleanupRImplInfoPtrArrayDelete<T>::PushL(T* aPtr)
+	{
+	CleanupStack::PushL(TCleanupItem(&RImplInfoPtrArrayDelete,aPtr));
+	}
+
+template <class T>
+void CleanupRImplInfoPtrArrayDelete<T>::RImplInfoPtrArrayDelete(TAny *aPtr)
+	{
+	if( aPtr )
+		{
+		T* ptr = STATIC_CAST(T*,aPtr);
+		ptr->ResetAndDestroy();
+        ptr->Close();
+		}
+	}
+
+template <class T>
+inline void CleanupRImplInfoPtrArrayPushL(T* aPtr)
+	{
+	CleanupRImplInfoPtrArrayDelete<T>::PushL(aPtr);
+	}
+
+
 // Table names
 _LIT( KNSmlTableVersion, "Version" );