mirror of
https://github.com/rehlds/rehlds.git
synced 2025-03-26 04:09:17 +03:00
44 lines
915 B
C++
44 lines
915 B
C++
#ifndef OBJECTLIST_H
|
|
#define OBJECTLIST_H
|
|
#ifdef _WIN32
|
|
#pragma once
|
|
#endif
|
|
|
|
#include "IObjectContainer.h"
|
|
|
|
class ObjectList: public IObjectContainer {
|
|
public:
|
|
void Init();
|
|
bool Add(void *newObject);
|
|
void *GetFirst();
|
|
void *GetNext();
|
|
|
|
ObjectList();
|
|
virtual ~ObjectList();
|
|
|
|
void Clear(bool freeElementsMemory = false);
|
|
int CountElements();
|
|
void *RemoveTail();
|
|
void *RemoveHead();
|
|
|
|
bool AddTail(void *newObject);
|
|
bool AddHead(void *newObject);
|
|
bool Remove(void *object);
|
|
bool Contains(void *object);
|
|
bool IsEmpty();
|
|
|
|
typedef struct element_s {
|
|
element_s *prev; // pointer to the last element or NULL
|
|
element_s *next; // pointer to the next elemnet or NULL
|
|
void *object; // the element's object
|
|
} element_t;
|
|
|
|
protected:
|
|
element_t *head; // first element in list
|
|
element_t *tail; // last element in list
|
|
element_t *current; // current element in list
|
|
int number;
|
|
};
|
|
|
|
#endif // OBJECTLIST_H
|