MLib Reference Manual | ||||
---|---|---|---|---|
Top | Description |
#include <mlib.h> struct MIdList; #define M_IDLIST (data) #define M_IDLIST_id (data) #define M_IDLIST_len (data) #define M_IDLIST_user (data) #define MIDLIST_MAX #define MID_TO_MAX typedef MLId; #define MLId_new (name) MIdList * m_idlist_new (MIdOffSet offset
); MStatus m_idlist_free (MIdList *idlist
); MId m_idlist_insert_element (MIdList *idlist
); MId m_idlist_remove_element (MIdList *idlist
,MId id
); MStatus m_idlist_remove_element0 (MIdList *idlist
,MId *id
); MId m_idlist_get_offset_element (MIdList *idlist
); MLId m_lid_new (void
); MId m_lidlist_insert_element (MIdList *idlist
,MLId lid
); MId m_lidlist_remove_element (MIdList *idlist
,MLId lid
); MStatus m_lidlist_remove_element0 (MIdList *idlist
,MLId lid
); #define m_c_idlist_insert_element (idlist) #define m_c_idlist_remove_element (idlist, id) #define m_c_idlist_remove_element0 (idlist, id) #define m_c_idlist_get_offset_element (idlist) #define m_c_lidlist_insert_element (idlist, lid) #define m_c_lidlist_remove_element (idlist, lid) #define m_c_lidlist_remove_element0 (idlist, lid) mboolean m_id_equal_id (MId id1
,MId id2
); mboolean m_lid_equal_list (MLId lid1
,MLId lid2
); mboolean m_lid_equal_id (MLId lid1
,MLId lid2
);
MLib offre un metodo semplice e pratico per l'ottenimento di identificativi numerici univoci utilizzabili ad esempio per l'archiviazione sicura dei dati.
Gli identificativi sono valori numerici interi del tipo MId e vengono associati a delle liste di tipo MIdList.
Example 15. Using MIdList
#include <mlib.h> #include <mlib/mprintf.h> int m_main ( argc, argv ) { m_main_init ( argc, argv ); MIdList* idlist = m_idlist_new ( 5 ); MId id[5] = { 0, 0, 0, 0, 0 }; cicloindex ( 5, index, { id[index] = m_idlist_insert_element (idlist); } ); cicloindex ( 5, index, { g_printf ( "\n id[%u]: %u \n", index, id[index] ); } ); m_idlist_remove_element0 ( idlist, &(id[2]) ); m_idlist_remove_element0 ( idlist, &(id[3]) ); m_idlist_remove_element0 ( idlist, &(id[4]) ); id[2] = m_idlist_insert_element (idlist); id[3] = m_idlist_insert_element (idlist); id[4] = m_idlist_insert_element (idlist); cicloindex ( 5, index, { g_printf ( "\n id[%u]: %u \n", index, id[index] ); } ); g_printf ( "\n len: %u \n", M_IDLIST_len (idlist) ); m_idlist_free ( idlist ); return MCORRECT; }
struct MIdList { const MId id; const muint len; };
Questa struttura contiene le informazioni riguardo un gruppo di identificativi in relazione tra loro dall'appartenenza ad uno stesso insieme.
La MIdList mantiene riservati e non visibili i dati riguardanti gli id rimossi.
Se utilizzata in una struttura non e' necessario che questa contenga una MDefine poiche' gia' presente nella MIdList.
Questa è una struttura derivata ed è diretta evoluzione della struttura MBoxData, della quale eredita le proprietà.
#define M_IDLIST(data) ds_CAST (MIdList*,data)
stability
: Unstable
Provvede al casting di una struttura data
ritornando una struttura di tipo MIdList
|
struttura derivata |
#define M_IDLIST_id(data) ds_GET_PROPERTY(M_IDLIST(data),id)
stability
: Unstable
Provvede al casting di un dato data
ritornando la proprietà "id"
|
una struttura derivata |
#define M_IDLIST_len(data) ds_GET_PROPERTY(M_IDLIST(data),len)
stability
: Unstable
Provvede al casting di un dato data
ritornando la proprietà "len"
|
una struttura derivata |
#define M_IDLIST_user(data) ds_GET_PROPERTY(M_IDLIST(data),user)
stability
: Unstable
Provvede al casting di un dato data
ritornando la proprietà "user"
|
una struttura derivata |
#define MIDLIST_MAX INT_MAX
Quantita' massima di MIdList allocabili
tramite la funzione m_idlist_new()
#define MID_TO_MAX INT_MAX
Quantita' massima di MId inseribili in
una MIdList attraverso la funzione m_idlist_insert_element()
typedef MId* MLId;
Versione piu' avanzata del tipo MId.
Attraverso l' MLId e' possibile conoscere oltre l'identificativo, anche a quale MIdList esso sia associato.
#define MLId_new(name) MLId name = m_lid_new()
stability
: Unstable
Declare and define a new MLId structure pointer.
|
name of a new MLId structure pointer |
MIdList * m_idlist_new (MIdOffSet offset
);
stability
: Unstable
Crea una nuova MIdList.
offset
non puo' essere superiore a MID_TO_MAX.
|
quantita' massima di identificativi inseribili nella rispettiva MIdList. |
Returns : |
un nuovo MIdList o NULL in caso di errore.
|
Since 0.0.2
MStatus m_idlist_free (MIdList *idlist
);
stability
: Unstable
Libera la memoria allocata per una MIdList.
|
indirizzo ad una struttura derivata allocata di tipo MIdList |
Returns : |
MCORRECT o MERROR in caso di errore.
|
Since 0.0.2
MId m_idlist_insert_element (MIdList *idlist
);
stability
: Unstable
Inserisce un nuovo identificativo univoco in una MIdList.
|
lista dove inserire il prossimo identificativo |
Returns : |
un nuovo MId o MERROR in caso di errore.
|
Since 0.0.2
MId m_idlist_remove_element (MIdList *idlist
,MId id
);
stability
: Unstable
Rimuove un identificativo univoco in una MIdList.
|
lista dalla quale rimuovere l' identificativo |
|
un identificativo valido |
Returns : |
il MId rimosso o MERROR in caso di errore.
|
Since 0.0.2
MStatus m_idlist_remove_element0 (MIdList *idlist
,MId *id
);
stability
: Unstable
Rimuove un identificativo univoco in una MIdList.
Se la funzione ha successo id
viene impostato a MNOID.
|
lista dalla quale rimuovere l' identificativo |
|
un puntatore ad un identificativo valido |
Returns : |
MCORRECT in caso di corretta esecuzione
MERROR in caso di errore
|
Since 0.0.2
MId m_idlist_get_offset_element (MIdList *idlist
);
stability
: Unstable
ritorna l' identificativo di piu' alto valore
inserito nella lista ( non necessariamente risulta
essere l'ultimo identificativo ritornato dalla
funzione m_idlist_insert_element()
.
Since 0.0.2
MLId m_lid_new (void
);
stability
: Unstable
Crea un nuovo MLId.
Returns : |
un nuovo MLId |
Since 0.0.1
MId m_lidlist_insert_element (MIdList *idlist
,MLId lid
);
stability
: Unstable
Inserisce un nuovo identificativo univoco in una MIdList.
L'identificativo viene inserito nella variabile lid
la
quale contiene inoltre l'identificativo della MIdList utilizzata.
|
lista dove inserire il prossimo identificativo |
|
una variabile MLId |
Returns : |
un nuovo MLId o MERROR in caso di errore.
|
Since 0.0.2
MId m_lidlist_remove_element (MIdList *idlist
,MLId lid
);
stability
: Unstable
Rimuove un identificativo univoco in una MIdList.
|
lista dalla quale rimuovere l' identificativo |
|
un identificativo valido |
Returns : |
il MId rimosso o MERROR in caso di errore.
|
Since 0.0.2
MStatus m_lidlist_remove_element0 (MIdList *idlist
,MLId lid
);
stability
: Unstable
Rimuove un identificativo univoco in una MIdList.
Se la funzione ha successo lid
viene impostato a MNOID.
|
lista dalla quale rimuovere l' identificativo |
|
un identificativo valido |
Returns : |
MCORRECT in caso di corretta esecuzione
MERROR in caso di errore
|
Since 0.0.2
#define m_c_idlist_insert_element(idlist)
stability
: Unstable
Come la funzione m_idlist_insert_element()
, provvede a passare il dato castato.
|
lista dove inserire il prossimo identificativo |
#define m_c_idlist_remove_element(idlist,id)
stability
: Unstable
Come la funzione m_idlist_remove_element()
, provvede a passare il dato castato.
|
lista dalla quale rimuovere l' identificativo |
|
un identificativo valido |
#define m_c_idlist_remove_element0(idlist,id)
stability
: Unstable
Come la funzione m_idlist_remove_element0()
, provvede a passare il dato castato.
|
lista dalla quale rimuovere l' identificativo |
|
un puntatore ad un identificativo valido |
#define m_c_idlist_get_offset_element(idlist)
stability
: Unstable
Come la funzione m_idlist_get_offset_element()
, provvede a passare il dato castato.
|
una lista valida |
#define m_c_lidlist_insert_element(idlist,lid)
stability
: Unstable
Come la funzione m_lidlist_insert_element()
, provvede a passare il dato castato.
|
lista dove inserire il prossimo identificativo |
|
una variabile MLId |
#define m_c_lidlist_remove_element(idlist,lid)
stability
: Unstable
Come la funzione m_lidlist_remove_element()
, provvede a passare il dato castato.
|
lista dalla quale rimuovere l' identificativo |
|
un identificativo valido |
#define m_c_lidlist_remove_element0(idlist,lid)
stability
: Unstable
Come la funzione m_lidlist_remove_element0()
, provvede a passare il dato castato.
|
lista dalla quale rimuovere l' identificativo |
|
un identificativo valido |
mboolean m_id_equal_id (MId id1
,MId id2
);
stability
: Unstable
Verifica l'uguaglianza tra due identificativi.
|
un identificativo valido |
|
un identificativo valido |
Returns : |
TRUE in caso di uguaglianza, FALSE nel caso opposto.
|
Since 0.0.1
mboolean m_lid_equal_list (MLId lid1
,MLId lid2
);
stability
: Unstable
Verifica la stessa appartenenza ad una MIdList di due identificativi.
|
un identificativo valido |
|
un identificativo valido |
Returns : |
TRUE in caso di appartenenza, FALSE nel caso opposto.
|
Since 0.0.1