--- 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" );