diff -r 13d7c31c74e0 -r b183ec05bd8c remotemgmt_plat/common_agent_util_and_definitions_api/inc/nsmlconstants.h --- a/remotemgmt_plat/common_agent_util_and_definitions_api/inc/nsmlconstants.h Thu Aug 19 10:44:50 2010 +0300 +++ b/remotemgmt_plat/common_agent_util_and_definitions_api/inc/nsmlconstants.h Tue Aug 31 16:04:06 2010 +0300 @@ -216,8 +216,10 @@ { public: inline static void PushL(T* aPtr); + inline static void PushL(T& aRef); private: static void RPtrArrayDelete(TAny *aPtr); + static void LocalRPtrArrayDelete(TAny *aPtr); }; template @@ -227,6 +229,12 @@ } template +inline void CleanupRPtrArrayDelete::PushL(T& aRef) + { + CleanupStack::PushL(TCleanupItem(&LocalRPtrArrayDelete,&aRef)); + } + +template void CleanupRPtrArrayDelete::RPtrArrayDelete(TAny *aPtr) { T* ptr = STATIC_CAST(T*,aPtr); @@ -235,44 +243,23 @@ } template +void CleanupRPtrArrayDelete::LocalRPtrArrayDelete(TAny *aPtr) + { + T* ptr = STATIC_CAST(T*,aPtr); + ptr->ResetAndDestroy(); + } + +template inline void CleanupRPtrArrayPushL(T* aPtr) { 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); - } - +inline void CleanupRPtrArrayPushL(T& aRef) + { + CleanupRPtrArrayDelete::PushL(aRef); + } // Table names _LIT( KNSmlTableVersion, "Version" );