Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- struct EventListItem
- {
- EventListItem *prev;
- EventListItem *next;
- abstract_event *event;
- EventListItem() = default;
- EventListItem(abstract_event *event) : event(event) { }
- };
- struct EventList
- {
- EventListItem *terminator;
- EventList() {
- terminator = new EventListItem();
- terminator->prev = terminator;
- terminator->next = terminator;
- }
- ~EventList() {
- while (!this->empty()){
- this->pop_front();
- }
- delete terminator;
- }
- void push_back(EventListItem *item) {
- item->next = this->terminator->prev;
- this->terminator->prev = item;
- }
- EventListItem *front() {
- return terminator->next;
- }
- void pop_front() {
- if (!empty()) {
- EventListItem *tmp = this->terminator->next;
- this->terminator->next = tmp->next;
- delete tmp;
- }
- }
- inline bool empty() {
- return this->terminator->prev == this->terminator->next;
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment