--- a/emailservices/emailstore/base_plugin/inc/baseplugincommonutils.h Tue Jul 06 14:04:34 2010 +0300
+++ b/emailservices/emailstore/base_plugin/inc/baseplugincommonutils.h Wed Aug 18 09:37:47 2010 +0300
@@ -49,4 +49,29 @@
CleanupResetAndDestroyClose<T>::PushL(aRef);
}
+/**
+* Cleanup support for owning pointer arrays
+*/
+
+template<class T>
+class CleanupResetAndDestroy
+{
+private:
+ inline static void ResetAndDestroy( TAny *aPtr )
+ {
+ reinterpret_cast<T*>( aPtr )->ResetAndDestroy();
+ };
+public:
+ inline static void PushL( T& aItem )
+ {
+ TCleanupItem item( &CleanupResetAndDestroy::ResetAndDestroy, &aItem );
+ CleanupStack::PushL( item );
+ };
+} ;
+
+template <class T>
+inline void CleanupResetAndDestroyPushL( T& aRef )
+ {
+ CleanupResetAndDestroy<T>::PushL( aRef );
+ }
#endif