Update contrib.
1 // Copyright (c) 2001-2009 Nokia Corporation and/or its subsidiary(-ies).
2 // All rights reserved.
3 // This component and the accompanying materials are made available
4 // under the terms of "Eclipse Public License v1.0"
5 // which accompanies this distribution, and is available
6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
8 // Initial Contributors:
9 // Nokia Corporation - initial contribution.
19 // standard EPOC include header files
25 Class for storing stream data
27 class TMMFFifoItemBase
30 static const TInt iOffset;
36 class TMMFFifoItem : public TMMFFifoItemBase
39 inline TMMFFifoItem(T& aData);
46 Class for processing stream data queue (add, get, remove etc)
48 class CMMFFifoBase : public CBase
51 virtual ~CMMFFifoBase();
53 void AddToFifo(TMMFFifoItemBase& aItem);
56 void RemoveFirstItemBase();
57 TMMFFifoItemBase* GetBase();
59 TSglQue<TMMFFifoItemBase> iFifo;
60 TSglQueIter<TMMFFifoItemBase> iFifoIter;
64 class CMMFFifo : public CMMFFifoBase
67 inline void RemoveFirstItem();
68 inline TMMFFifoItem<T>* Get();
73 TMMFFifoItem<T>::TMMFFifoItem(T& aData)
78 T& TMMFFifoItem<T>::GetData()
84 void CMMFFifo<T>::RemoveFirstItem()
85 { RemoveFirstItemBase(); }
88 inline TMMFFifoItem<T>* CMMFFifo<T>::Get()
89 { return STATIC_CAST(TMMFFifoItem<T>*, GetBase()); }