epoc32/include/mw/cstack.h
branchSymbian2
changeset 3 e1b950c65cb4
parent 2 2fe1408b6811
child 4 837f303aceeb
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/epoc32/include/mw/cstack.h	Wed Mar 31 12:27:01 2010 +0100
     1.3 @@ -0,0 +1,54 @@
     1.4 +// Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies).
     1.5 +// All rights reserved.
     1.6 +// This component and the accompanying materials are made available
     1.7 +// under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members
     1.8 +// which accompanies this distribution, and is available
     1.9 +// at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
    1.10 +//
    1.11 +// Initial Contributors:
    1.12 +// Nokia Corporation - initial contribution.
    1.13 +//
    1.14 +// Contributors:
    1.15 +//
    1.16 +// Description:
    1.17 +// A template class to provide a classic stack like interface & functionality
    1.18 +// The entries on the stack are owned (i.e. deleted) by the stack if the 
    1.19 +// StackOwnsEntry argument is ETrue
    1.20 +// 
    1.21 +//
    1.22 +
    1.23 +#ifndef __CSTACK_H__
    1.24 +#define __CSTACK_H__
    1.25 +
    1.26 +#include <e32base.h>
    1.27 +
    1.28 +#pragma warning (disable : 4127) // conditional expression is constant
    1.29 +
    1.30 +
    1.31 +/**	
    1.32 +	@file
    1.33 +	@publishedAll
    1.34 +	@released
    1.35 +*/
    1.36 +
    1.37 +
    1.38 +template <class T, TBool StackOwnsEntry>
    1.39 +class CStack : /*protected CArrayPtrSeg<T>*/ public CArrayPtrSeg<T>
    1.40 +	{
    1.41 +public:
    1.42 +	inline CStack();
    1.43 +	inline ~CStack();
    1.44 +
    1.45 +	inline void Clear();		
    1.46 +	inline TBool IsEmpty() const;
    1.47 +	inline void PushL(T* aItem);
    1.48 +	inline T* Pop();
    1.49 +	inline T* Head() const;
    1.50 +	inline T* Last() const;		
    1.51 +	};
    1.52 +
    1.53 +#include <cstack.inl>
    1.54 +
    1.55 +#pragma warning ( default : 4127 ) // conditional expression is constant
    1.56 +
    1.57 +#endif // __CSTACK_H__