--- a/javauis/m2g_qt/inc/JcfAutoPtr.h Fri Jul 23 12:27:20 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,147 +0,0 @@
-/*
-* Copyright (c) 2009 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:
-*
-*/
-
-#ifndef JCFAUTOPTR_H
-#define JCFAUTOPTR_H
-
-#include <e32base.h>
-
-/**
- * Functionality of this auto ptr class is same as stl's auto_ptr class
- * except this works with cleanup stack.
- * Implementation of the example operation with "traditional" way:
- * void bar()
- * {
- * CFoo* myFoo = CFoo::NewL();
- * CleanupStack::PushL(myFoo);
- * myFoo->DoSomeThingL();
- * CleanupStack::PopAndDestroy(1); //myFoo
- * }
- * Implementation of the same function with auto pointer class:
- * void bar()
- * {
- * jcfcommon::auto_ptr<CFoo> myFoo(CFoo::NewL());
- * myFoo->DoSomeThingL();
- * }
- *
- */
-namespace jcfcommon
-{
-
-template<class X> class auto_ptr
-{
-public:
- typedef X element_type;
-
- auto_ptr(X* aPtr = 0): iPtr(aPtr),iCloseCalledFlag(EFalse)
- {
- CleanupStack::PushL(TCleanupItem(Close, (void*)this));
- }
-
- /**
- * Copy constructor was commented out because current
- * implementation doesn't support situation where auto_ptr
- * is returned as return value of the function. Problem is that
- * orig. auto_ptr is deleted when getBar() operation has been
- * executed and this deleted local reference has been stored to the
- * cleanup stack.
- * E.g:
- * void foo()
- * {
- * auto_ptr<bar> barObj = getBar();
- * .
- * .
- * .
- * User::Leave(KErrNotFound);
- * }
- */
- /*auto_ptr(auto_ptr& aPtr): iPtr(aPtr.release())
- {
- CleanupStack::PushL(TCleanupItem(Close, (void*)this));
- }*/
-
- auto_ptr<X>& operator=(auto_ptr<X>& aRhs)
- {
- if (&aRhs != this)
- {
- delete iPtr;
- iPtr = aRhs.release();
- }
- return (*this);
- }
-
- ~auto_ptr()
- {
- if (!iCloseCalledFlag)
- {
- CleanupStack::Pop();
- delete iPtr;
- }
- }
-
- X& operator *() const
- {
- return *iPtr;
- }
- X* operator ->() const
- {
- return iPtr;
- }
-
- X* get() const
- {
- return iPtr;
- }
-
- X* release()
- {
- X* result = iPtr;
- iPtr = 0;
- return result;
- }
-
- void reset(X* aPtr = 0)
- {
- if (aPtr != iPtr)
- {
- delete iPtr;
- iPtr = aPtr;
- }
- }
-
-private:
- static void Close(void* aPtr)
- {
- auto_ptr<X>* self = (auto_ptr<X>*)aPtr;
- delete self->iPtr;
- self->iPtr = 0;
- self->iCloseCalledFlag = ETrue;
- }
-
- //Not implemented.
- auto_ptr(auto_ptr& aPtr);
-
-private:
- X* iPtr;
- TBool iCloseCalledFlag;
-};
-
-}//end jcfcommon
-
-#endif // JCFAUTOPTR_H
-
-