devicediagnosticsfw/diagframework/inc/diagcleanupresetanddestroy.h
changeset 0 b497e44ab2fc
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/devicediagnosticsfw/diagframework/inc/diagcleanupresetanddestroy.h	Thu Dec 17 09:07:52 2009 +0200
@@ -0,0 +1,68 @@
+/*
+* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Provides ResetAndDestroy for RPointerArrays.
+*
+*/
+
+
+#ifndef DIAGCLEANUPRESETANDDESTROY_H
+#define DIAGCLEANUPRESETANDDESTROY_H
+
+// SYSTEM INCLUDES
+#include <e32def.h>                 // TAny
+
+// FORWARD DECLARATION
+template< class T >
+class RPointerArray;
+
+namespace DiagFwInternal
+    {
+
+    /**
+    * Cleanup function for RPointerArray or any other types with ResetAndDestroy()
+    *   @usage
+    *   RPointerArray< CDiagResultsDatabaseItem > myArray;
+    *   CleanupStack::PushL( TCleanupItem( 
+    *       DiagFwInternal::CleanupResetAndDestroy< RPointerArray< CDiagResultsDatabaseItem > >,
+    *       &myArray ) );
+    *    
+    *   ...
+    *
+    *   CleanupStack::PopAndDestroy( &myArray );
+    */
+    template< class T >
+    inline void CleanupResetAndDestroy( TAny* aObj );
+
+    /**
+    * Push a RPointerArray of templated type to cleanup stack
+    *   @usage
+    *   RPointerArray< CDiagResultsDatabaseItem > myArray;
+    *   DiagFwInternal::CleanupRPointerArrayPushL< CDiagResultsDatabaseItem >( &myArray );
+    *
+    *   ...
+    *   
+    *   CleanupStack::PopAndDestroy( &myArray );
+    */
+    template< class T >
+    inline void CleanupRPointerArrayPushL( RPointerArray< T >* aObj );
+
+    }
+
+// Inline methods
+#include "diagcleanupresetanddestroy.inl"
+
+#endif // DIAGCLEANUPRESETANDDESTROY_H
+
+// End of File
+