view include/TaskManager/MemList.h @ 0:04e28d8d3c6f

first commit
author Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
date Mon, 08 Nov 2010 01:23:25 +0900
parents
children
line wrap: on
line source

#ifndef MEMLIST
#define MEMLIST

#include <stdlib.h>
#include "MemorySegment.h"

class MemList : public MemorySegment {
public:
    MemorySegment* pool;
    MemorySegment* first;
    MemorySegment* last;

    // TaskManager 側で create する
    //MemList* createMemList(uint32 size, uint32 count);

    MemList(MemorySegment* ms) {
        first = last = this;
        next = prev = this;
        pool = ms;
    }

    ~MemList() {
        free(pool);
    }

    void addFirst(MemorySegment* e);
    void addLast(MemorySegment* e);
    MemorySegment* getFirst();
    MemorySegment* getLast();
    int remove(MemorySegment* e);
    MemorySegment* poll();
    void moveToFirst(MemorySegment* e); // or use();
    MemorySegment* get(int index);
};

#endif