#include "administration.hpp" #include administration g_administration; void init_administration_obj() { list_init(&g_administration.contacts); } void destroy_administration_obj() { list_destroy(&g_administration.contacts); } bool create_contact(contact data) { contact* new_contact = (contact*)malloc(sizeof(contact)); memcpy((void*)new_contact, (void*)&data, sizeof(contact)); list_append(&g_administration.contacts, new_contact); g_administration.next_id++; return true; } bool update_contact(contact data) { list_iterator_start(&g_administration.contacts); while (list_iterator_hasnext(&g_administration.contacts)) { contact* c = (contact *)list_iterator_next(&g_administration.contacts); if (strcmp(c->id, data.id) == 0) { memcpy(c, &data, sizeof(data)); return true; } } list_iterator_stop(&g_administration.contacts); return false; } void remove_contact(int index) { list_delete_at(&g_administration.contacts, index); }