58 const int DEFAULTCACHE = 10;
99 CNode *Prev()
const {
return m_pPrev; };
103 CNode *Next()
const {
return m_pNext; };
107 void SetPrev(
CNode *p) { m_pPrev = p; };
111 void SetNext(
CNode *p) { m_pNext = p; };
115 void *GetData()
const {
return m_pObject; };
119 void SetData(
void *p) { m_pObject = p; };
125 CNodeCache(INT iCacheSize) : m_iCacheSize(iCacheSize),
130 CNode *pNode = m_pHead;
132 CNode *pCurrent = pNode;
133 pNode = pNode->Next();
137 void AddToCache(
CNode *pNode)
139 if (m_iUsed < m_iCacheSize) {
140 pNode->SetNext(m_pHead);
147 CNode *RemoveFromCache()
149 CNode *pNode = m_pHead;
151 m_pHead = pNode->Next();
153 ASSERT(m_iUsed >= 0);
155 ASSERT(m_iUsed == 0);
218 int GetCountI()
const;
476 #define TRAVERSELIST(list, cursor) \ 477 for ( cursor = (list).GetHeadPosition() \ 479 ; cursor = (list).Next(cursor) \ 486 #define REVERSETRAVERSELIST(list, cursor) \ 487 for ( cursor = (list).GetTailPosition() \ 489 ; cursor = (list).Prev(cursor) \ 500 BOOL bAlert = FALSE) :
502 UNREFERENCED_PARAMETER(bAlert);
503 UNREFERENCED_PARAMETER(bLock);
511 int GetCount()
const {
return m_Count; }
513 OBJECT *GetNext(
POSITION& rp)
const {
return (OBJECT *) GetNextI(rp); }
515 OBJECT *Get(
POSITION p)
const {
return (OBJECT *) GetI(p); }
516 OBJECT *GetHead()
const {
return Get(GetHeadPosition()); }
518 OBJECT *RemoveHead() {
return (OBJECT *) RemoveHeadI(); }
520 OBJECT *RemoveTail() {
return (OBJECT *) RemoveTailI(); }
522 OBJECT *Remove(
POSITION p) {
return (OBJECT *) RemoveI(p); }
523 POSITION AddBefore(
POSITION p, OBJECT * pObj) {
return AddBeforeI(p, pObj); }
525 POSITION AddHead(OBJECT * pObj) {
return AddHeadI(pObj); }
526 POSITION AddTail(OBJECT * pObj) {
return AddTailI(pObj); }
528 {
return CBaseList::AddTail((
CBaseList *) pList); }
530 {
return CBaseList::AddHead((
CBaseList *) pList); }
532 {
return CBaseList::AddAfter(p, (
CBaseList *) pList); };
534 {
return CBaseList::AddBefore(p, (
CBaseList *) pList); };
535 POSITION Find( OBJECT * pObj)
const {
return FindI(pObj); }
Definition: combase.h:159