69 lines
2.4 KiB
C
69 lines
2.4 KiB
C
#ifndef JSONFILE_H
|
|
#define JSONFILE_H
|
|
|
|
#include <json-c/json.h>
|
|
|
|
/**
|
|
* @brief Verifica se un file esiste sul disco.
|
|
* @param fname Percorso del file da controllare.
|
|
* @return 1 se il file esiste ed è accessibile, 0 altrimenti.
|
|
*/
|
|
int existsFile(const char *fname);
|
|
|
|
/**
|
|
* @brief Crea un nuovo file JSON inizializzandolo con un array vuoto ([]).
|
|
* @param fname Percorso del file da creare.
|
|
* @return 0 in caso di successo, -1 in caso di errore.
|
|
*/
|
|
int createFile(const char *fname);
|
|
|
|
/**
|
|
* @brief Rinomina o sposta un file esistente.
|
|
* @param oldName Vecchio percorso/nome del file.
|
|
* @param newName Nuovo percorso/nome del file.
|
|
* @return 0 in caso di successo, -1 in caso di errore.
|
|
*/
|
|
int renameDataFile(const char *oldName, const char *newName);
|
|
|
|
/**
|
|
* @brief Carica un array JSON da file. Se il file non esiste, lo crea automaticamente.
|
|
* @param fname Percorso del file JSON.
|
|
* @return Puntatore all'oggetto JSON (array) caricato, oppure NULL in caso di errore.
|
|
*/
|
|
json_object *loadJsonArray(const char *fname);
|
|
|
|
/**
|
|
* @brief Salva un array JSON su file formattandolo in modo leggibile (indentato).
|
|
* @param fname Percorso del file di destinazione.
|
|
* @param arr L'oggetto JSON (array) da salvare.
|
|
* @return 0 in caso di successo, -1 in caso di errore.
|
|
*/
|
|
int saveJsonArray(const char *fname, json_object *arr);
|
|
|
|
/**
|
|
* @brief Cerca un oggetto all'interno di un array JSON basandosi sul campo "name".
|
|
* @param arr L'array JSON in cui effettuare la ricerca.
|
|
* @param name La stringa del nome da cercare.
|
|
* @return Puntatore all'oggetto JSON trovato, oppure NULL se non esiste.
|
|
*/
|
|
json_object *findItemByName(json_object *arr, const char *name);
|
|
|
|
/**
|
|
* @brief Rimuove un oggetto da un array JSON basandosi sul campo "name".
|
|
* @param arr L'array JSON da cui rimuovere l'elemento.
|
|
* @param name Il nome dell'elemento da eliminare.
|
|
* @return 0 in caso di successo, 1 se l'elemento non viene trovato, -1 in caso di errore.
|
|
*/
|
|
int removeItemByName(json_object *arr, const char *name);
|
|
|
|
/**
|
|
* @brief Modifica il campo "name" di un elemento all'interno di un array JSON.
|
|
* @param arr L'array JSON contenente l'elemento.
|
|
* @param oldName Il nome attuale dell'elemento da rinominare.
|
|
* @param newName Il nuovo nome da assegnare.
|
|
* @return 0 in caso di successo, 1 se l'elemento non viene trovato, -1 in caso di errore.
|
|
*/
|
|
int renameItemByName(json_object *arr, const char *oldName, const char *newName);
|
|
|
|
#endif
|