diff -r 86979fe66c4c -r 504e41245867 remotemgmt_plat/common_agent_util_and_definitions_api/inc/nsmlconstants.h --- 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::PushL(aPtr); } +// RImplInfoPtrArray cleanup pusher +template +class CleanupRImplInfoPtrArrayDelete + { +public: + inline static void PushL(T* aPtr); +private: + static void RImplInfoPtrArrayDelete(TAny *aPtr); + }; + +template +inline void CleanupRImplInfoPtrArrayDelete::PushL(T* aPtr) + { + CleanupStack::PushL(TCleanupItem(&RImplInfoPtrArrayDelete,aPtr)); + } + +template +void CleanupRImplInfoPtrArrayDelete::RImplInfoPtrArrayDelete(TAny *aPtr) + { + if( aPtr ) + { + T* ptr = STATIC_CAST(T*,aPtr); + ptr->ResetAndDestroy(); + ptr->Close(); + } + } + +template +inline void CleanupRImplInfoPtrArrayPushL(T* aPtr) + { + CleanupRImplInfoPtrArrayDelete::PushL(aPtr); + } + + // Table names _LIT( KNSmlTableVersion, "Version" );