Ajout de PRIVATE, PUBLIC et PROTECTED

This commit is contained in:
Antoine Bartuccio 2018-06-05 00:34:30 +02:00
parent 551bf2cd51
commit 3232ac1ec6
Signed by: klmp200
GPG Key ID: E7245548C53F904B
3 changed files with 20 additions and 17 deletions

View File

@ -10,19 +10,19 @@ typedef struct o_List List;
#include "List.h"
struct o_Element {
List *list;
void *data;
struct o_Element *next;
struct o_Element *previous;
PRIVATE List *list;
PRIVATE void *data;
PRIVATE struct o_Element *next;
PRIVATE struct o_Element *previous;
struct o_Element *(*get_next)(O_THIS(Element));
struct o_Element *(*get_previous)(O_THIS(Element));
void *(*get_data)(O_THIS(Element));
PUBLIC struct o_Element *(*get_next)(O_THIS(Element));
PUBLIC struct o_Element *(*get_previous)(O_THIS(Element));
PUBLIC void *(*get_data)(O_THIS(Element));
void (*set_previous)(O_THIS(Element), struct o_Element *previous);
void (*set_next)(O_THIS(Element), struct o_Element *next);
PUBLIC void (*set_previous)(O_THIS(Element), struct o_Element *previous);
PUBLIC void (*set_next)(O_THIS(Element), struct o_Element *next);
void (*$_free_)(O_THIS(Element));
PUBLIC void (*$_free_)(O_THIS(Element));
};
Element *$_init_Element(void *data, size_t size, List *list);

View File

@ -14,14 +14,14 @@ typedef struct o_Element Element;
#define WRONG_ELEMENT CRASH("This element is not within the list\n")
struct o_List {
Element *head;
Element *tail;
int size;
PRIVATE Element *head;
PRIVATE Element *tail;
PRIVATE int size;
Element *(*get_head)(O_THIS(List));
Element *(*get_tail)(O_THIS(List));
int (*get_size)(O_THIS(List));
void (*$_free_)(O_THIS(List));
PUBLIC Element *(*get_head)(O_THIS(List));
PUBLIC Element *(*get_tail)(O_THIS(List));
PUBLIC int (*get_size)(O_THIS(List));
PUBLIC void (*$_free_)(O_THIS(List));
};
List *$_init_List();

View File

@ -15,6 +15,9 @@
#define CRASH(message) perror(message)
#define SYNCHRONIZE
#define PRIVATE
#define PUBLIC
#define PROTECTED
#define LINK(type, obj, method) obj->method = method##_##type;
#define GETTER(obj_type, variable_type, variable) variable_type get_##variable##_##obj_type(obj_type *this){\