diff --git a/src/shared/gatt-db.c b/src/shared/gatt-db.c
index e56b381..b057c15 100644
--- a/src/shared/gatt-db.c
+++ b/src/shared/gatt-db.c
*
*/
+#include <stdbool.h>
+
#include "src/shared/util.h"
+#include "src/shared/queue.h"
#include "src/shared/gatt-db.h"
struct gatt_db {
uint16_t next_handle;
+ struct queue *services;
+};
+
+struct gatt_db_attribute {
+};
+
+struct gatt_db_service {
+ uint16_t num_handles;
+ struct gatt_db_attribute **attributes;
};
struct gatt_db *gatt_db_new(void)
if (!db)
return NULL;
+ db->services = queue_new();
+ if (!db->services) {
+ free(db);
+ return NULL;
+ }
+
db->next_handle = 0x0001;
return db;
}
+static void gatt_db_service_destroy(void *data)
+{
+ struct gatt_db_service *service = data;
+ int i;
+
+ for (i = 0; i < service->num_handles; i++)
+ free(service->attributes[i]);
+
+ free(service->attributes);
+ free(service);
+}
+
void gatt_db_destroy(struct gatt_db *db)
{
+ queue_destroy(db->services, gatt_db_service_destroy);
free(db);
}