diff options
author | Cyrille Bagard <nocbos@gmail.com> | 2019-10-19 12:50:37 (GMT) |
---|---|---|
committer | Cyrille Bagard <nocbos@gmail.com> | 2019-10-19 12:50:37 (GMT) |
commit | d7c69bcb27a7d06932cd25021144b6cbbe4eb82f (patch) | |
tree | b014aa31a1c9d9ce4afddf505b727cabacf15e44 /src/analysis/db/snapshot.c | |
parent | bcdf953ef6616c404d013f3473fb12a7bf43440b (diff) |
Exchanged the list of all snapshots.
Diffstat (limited to 'src/analysis/db/snapshot.c')
-rw-r--r-- | src/analysis/db/snapshot.c | 63 |
1 files changed, 62 insertions, 1 deletions
diff --git a/src/analysis/db/snapshot.c b/src/analysis/db/snapshot.c index 6b762b7..79128ef 100644 --- a/src/analysis/db/snapshot.c +++ b/src/analysis/db/snapshot.c @@ -82,6 +82,9 @@ static snapshot_node_t *find_snapshot_node(snapshot_node_t *, const snapshot_id_ /* Ajoute un instantané comme prolongement d'un instantané. */ static void add_snapshot_node(snapshot_node_t *, snapshot_node_t *); +/* Collecte les descriptions d'une arborescence d'instantanés. */ +static bool pack_snapshot_node(const snapshot_node_t *, packed_buffer *); + /* --------------------- MANIPULATIONS D'ENSEMBLE D'INSTANTANES --------------------- */ @@ -378,7 +381,7 @@ static DBError save_snapshot_node(const snapshot_node_t *node, xmlDocPtr xdoc, x goto exit; } - created = get_snapshot_info_creation(&node->info); + created = get_snapshot_info_created(&node->info); status = _add_uint64_attribute_to_node(xml_node, "created", created); @@ -497,13 +500,47 @@ static snapshot_node_t *find_snapshot_node(snapshot_node_t *node, const snapshot static void add_snapshot_node(snapshot_node_t *node, snapshot_node_t *child) { + snapshot_id_t *src; /* Identifiant d'instantané #0 */ + snapshot_id_t *dest; /* Identifiant d'instantané #1 */ + node->children = realloc(node->children, ++node->count * sizeof(snapshot_node_t *)); node->children[node->count - 1] = child; + src = get_snapshot_info_id(&node->info); + dest = get_snapshot_info_parent_id(&child->info); + + copy_snapshot_id(dest, src); + } +/****************************************************************************** +* * +* Paramètres : node = définition d'instantané à consulter. * +* pbuf = paquet de données où venir inscrire des infos. * +* * +* Description : Collecte les descriptions d'une arborescence d'instantanés. * +* * +* Retour : Bilan du déroulement des opérations. * +* * +* Remarques : - * +* * +******************************************************************************/ + +static bool pack_snapshot_node(const snapshot_node_t *node, packed_buffer *pbuf) +{ + bool result; /* Bilan à retourner */ + size_t i; /* Boucle de parcours */ + + result = pack_snapshot_info(&node->info, pbuf); + + for (i = 0; i < node->count && result; i++) + result = pack_snapshot_node(node->children[i], pbuf); + + return result; + +} @@ -1044,3 +1081,27 @@ sqlite3 *g_db_snapshot_get_database(const GDbSnapshot *snap, const snapshot_id_t return result; } + + +/****************************************************************************** +* * +* Paramètres : snap = gestionnaire d'instantanés à consulter. * +* pbuf = paquet de données où venir inscrire des infos. * +* * +* Description : Collecte les descriptions de l'ensemble des instantanés. * +* * +* Retour : Bilan du déroulement des opérations. * +* * +* Remarques : - * +* * +******************************************************************************/ + +bool g_db_snapshot_pack_all(const GDbSnapshot *snap, packed_buffer *pbuf) +{ + bool result; /* Bilan à retourner */ + + result = pack_snapshot_node(snap->nodes, pbuf); + + return result; + +} |