diff -r 000000000000 -r bde4ae8d615e os/security/cryptomgmtlibs/securitycommonutils/inc/cleanuputils.inl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/os/security/cryptomgmtlibs/securitycommonutils/inc/cleanuputils.inl Fri Jun 15 03:10:57 2012 +0200 @@ -0,0 +1,76 @@ +/* +* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the License "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: +* +*/ + + +#ifndef CLEANUPUTILS_INL +#define CLEANUPUTILS_INL + +#include + +template +class CleanupResetAndDestroy + { +public: + inline static void PushL(T& aRef); +private: + static void ResetAndDestroy(TAny *aPtr); + }; + +template +inline void CleanupResetAndDestroy::PushL(T& aRef) + { + CleanupStack::PushL(TCleanupItem(&ResetAndDestroy,&aRef)); + } + +template +void CleanupResetAndDestroy::ResetAndDestroy(TAny *aPtr) + { + static_cast(aPtr)->ResetAndDestroy(); + } + +template +inline void CleanupResetAndDestroyPushL(T& aRef) + { + CleanupResetAndDestroy::PushL(aRef); + } + +template +inline void DeleteObjectZ(T*& aPtr) + { + delete aPtr; + aPtr=NULL; + } + +inline HBufC8* ConvertBufferTo8bitL(const TDesC& aBuffer) + { + HBufC8* buf8 = HBufC8::NewLC(aBuffer.Length()); + TPtr8 bufPtr8(buf8->Des()); + bufPtr8.Copy(aBuffer); + CleanupStack::Pop(buf8); + return buf8; + } + +inline HBufC* ConvertBufferTo16bitL(const TDesC8& aBuffer) + { + HBufC* buf = HBufC::NewLC(aBuffer.Length()); + TPtr bufPtr(buf->Des()); + bufPtr.Copy(aBuffer); + CleanupStack::Pop(buf); + return buf; + } + +#endif /* CLEANUPUTILS_INL */