Intro

Il framework di Colibri contiene alcune classi per la configurazione dell’ambiente software; una di queste, PARAMLIST, viene presentata in questo articolo.

PARAM_LIST è utilizzata per salvare e richiamare parametri di configurazione del software: ad esempio, per conservare le informazioni sull’ultima directory usata per salvare i file tif; L

PARAM_LIST gestisce una lista di parametri dei seguenti tipi:

  • STRING
  • int
  • float
  • void *mem

STRING è una stringa di caratteri TCHAR di lunghezza qualunque, int e float sono i tipi C /C++ equivalenti, void *mem è un blocco di memoria di mem_size byte;

identificatore del parametro

Ogni parametro è associato ad un id univoco, usato per la lettura/scrittura; le funzioni PARAM_LIST::Get e PARAM_LIST::Put richiedono come primo argomento l’identificatore  del parametro

Salvare un parametro

Le funzioni PARAM_LIST::Put permettono di salvare un parametro;  In particolare notare che la funzione 

Put(STRING id, void *ptr, int mem_size) ; 

richiede oltre all’identificatore ed al puntatore alla memoria, anche le dimensioni dal leggere; il puntatore ptr può essere, ad esempio, una struttura dati i cui campi contigui hanno dimensione fissa (quindi non puntatori allocati..)

Leggere un parametro

Per recuperare il valore di un parametro usare la funzione

PARAM_LIST::Get

Se il parametro cercato non è stato ancora memorizzato, le funzioni Get(..) rimandano un valore di default 0 per i tipi float e int, rimanda invece 0 nel caso di un parametro stringa o puntatore void *mem; in questo caso occorrerà gestire il risultato da parte del programmatore;

Leggere/Salvare un parametro con interfaccia FILE_ITF

Le classi che hanno interfaccia FILE_ITF possono essere utilizzate come parametri gestiti da PARAM_LIST; ad esempio, tutte le classi derivata da DOCUMENT posseggono questa interfaccia, quindi potranno essere usate come parametri gestibili in PARAM_LIST.

Il vantaggio principale in questo caso è nel fatto che le funzioni virtuali Read e Write di queste classi sono in grado di gestire anche la revisione della classe, e questo permette di alterare nel tempo facilmente il contenuto della classe, cosa che non è prevista per i parametri di tipo struc.

Salvataggio e scrittura su file

La scrittura su file della classe PARAMLIST è effettuata attraverso le funzioni

bool Load(STRING path);

bool Save(STRING path);

path è il percorso completo del file da generare/leggere; Il salvataggio avviene automaticamente sul file precedente, se presente, senza richiesta di conferma;

PARAM_LIST è una classe d’uso generale, ed il fatto che sia derivata da TAG  fa intuire che la stessa sia usata anche per salvare configurazioni all’interno di altri file (ad esempio è usata nella classe DOCUMENT per salvare informazioni sul trattamento di uno specifico documento).

%d bloggers like this:
Skip to toolbar