36 lines
No EOL
937 B
C++
36 lines
No EOL
937 B
C++
|
|
#pragma once
|
|
|
|
#include "core/Object.hpp"
|
|
|
|
namespace obj {
|
|
|
|
enum ListMethods {
|
|
LISTOBJECT_PUSH_BACK,
|
|
LISTOBJECT_GET_LENGTH,
|
|
};
|
|
|
|
struct ListObject : Object {
|
|
static ObjectType TypeData;
|
|
static void constructor(Object* self);
|
|
static void copy(Object* self, const Object* in);
|
|
static void destructor(Object* self);
|
|
|
|
static tp::alni allocated_size_recursive(ListObject* self);
|
|
static tp::alni allocated_size(ListObject* self);
|
|
static tp::Buffer<Object*> childs_retrival(ListObject* self);
|
|
static void load(ArchiverIn& file_self, ListObject* self);
|
|
static void save(ListObject* self, ArchiverOut& file_self);
|
|
static tp::alni save_size(ListObject* self);
|
|
|
|
[[nodiscard]] const tp::List<Object*>& getItems() const;
|
|
|
|
void pushBack(Object* obj);
|
|
void pushFront(Object* obj);
|
|
void popBack();
|
|
void delNode(tp::List<Object*>::Node*);
|
|
|
|
private:
|
|
tp::List<Object*> items;
|
|
};
|
|
}; |