Id Archive

Id Archive — Archive of id

Stability Level

Unstable, unless otherwise indicated

Synopsis

#include <mlib.h>

struct              MIdArchiveData;
struct              MIdArchive;
#define             M_IDARCHIVE                         (data)
#define             M_IDARCHIVE_user                    (data)
#define             M_IDARCHIVE_master                  (data)
#define             M_IDARCHIVE_data                    (_data)
#define             M_IDARCHIVE_GET_SUBMASTER_FROM_IDELEMENT(idarchive,
                                                         idelement)
#define             M_IDARCHIVE_GET_SUBMASTER_TYPE_FROM_IDELEMENT(idarchive,
                                                         type,
                                                         idelement)
#define             M_IDARCHIVE_GET_LABEL_FROM_IDELEMENT(idarchive,
                                                         idelement)
#define             M_IDARCHIVE_GET_ID_FROM_IDELEMENT   (idarchive,
                                                         idelement)
#define             M_IDARCHIVE_GET_SUBMASTER_FROM_LABEL(idarchive,
                                                         label)
#define             M_IDARCHIVE_GET_SUBMASTER_TYPE_FROM_LABEL(idarchive,
                                                         type,
                                                         label)
#define             M_IDARCHIVE_GET_ID_FROM_LABEL       (idarchive,
                                                         label)
MIdArchive *        m_idarchive_new                     (mpointer master);
MStatus             m_idarchive_free                    (MIdArchive *idarchive);
MId                 m_idarchive_insert_id               (MIdArchive *idarchive,
                                                         mpointer submaster,
                                                         const mchar *label,
                                                         MId id);
MId                 m_idarchive_get_idelement_from_label
                                                        (MIdArchive *idarchive,
                                                         const mchar *label);
const mchar *       m_idarchive_get_label_from_submaster_to_id
                                                        (MIdArchive *idarchive,
                                                         mpointer submaster,
                                                         MId id);
MId                 m_idarchive_remove_id_from_idelement
                                                        (MIdArchive *idarchive,
                                                         MId idelement);
MId                 m_idarchive_remove_id_from_label    (MIdArchive *idarchive,
                                                         const mchar *label);

Description

Attraverso le strutture MIdArchive è possibile gestire collezzioni di id archiviati.

Details

struct MIdArchiveData

struct MIdArchiveData {
        mpointer            submaster;

        const mchar*        label;

        MId                 id;
};

Utilizzata nell'archiviazione di identificativi del tipo MId in strutture derivate MIdArchive.

mpointer submaster;

un array, lista, collezione relativa ad id

const mchar *label;

una stringa univoca che identifica l'identificativo id

MId id;

un identificativo univoco relativo a submaster

struct MIdArchive

struct MIdArchive {
        mpointer const      master;

        MPublic             data;
};

contiene una collezione di identificativi relativi a dati indefiniti

Se utilizzata in una struttura non e' necessario che questa contenga una MDefine poiche' gia' presente nella MIdArchive.

Questa è una struttura derivata ed è diretta evoluzione della struttura MICollection, della quale eredita le proprietà.

Attenzione: non è possibile utilizzare questa struttura come se fosse una MICollection!

mpointer const       master;

un array, lista, collezione principale - only Read

MPublic data;

puntatore di tipo generico MPublic utilizzato a discrezione dell'user - Read / Write

M_IDARCHIVE()

    #define M_IDARCHIVE(data)     ds_CAST (MIdArchive*,data)

stability: Unstable

Provvede al casting di una struttura data ritornando una struttura di tipo MIdArchive

data :

struttura derivata

M_IDARCHIVE_user()

    #define M_IDARCHIVE_user(data)     ds_GET_PROPERTY(M_IDARCHIVE(data),user)

stability: Unstable

Provvede al casting di un dato data ritornando la proprietà "user"

data :

una struttura derivata

M_IDARCHIVE_master()

    #define M_IDARCHIVE_master(data)     ds_GET_PROPERTY(M_IDARCHIVE(data),master)

stability: Unstable

Provvede al casting di un dato data ritornando la proprietà "master"

data :

una struttura derivata

M_IDARCHIVE_data()

    #define M_IDARCHIVE_data(_data)     ds_GET_PROPERTY(M_IDARCHIVE(_data),data)

stability: Unstable

Provvede al casting di un dato _data ritornando la proprietà "data"

_data :

una struttura derivata

M_IDARCHIVE_GET_SUBMASTER_FROM_IDELEMENT()

#define             M_IDARCHIVE_GET_SUBMASTER_FROM_IDELEMENT(idarchive,idelement)

stability: Unstable

Provvede al casting di un archivio idarchive ritornando un submaster archiviato nella posizione idelement.

idarchive :

un archivio di tipo MIdArchive allocato e inizializzato

idelement :

un identificativo valido

M_IDARCHIVE_GET_SUBMASTER_TYPE_FROM_IDELEMENT()

#define             M_IDARCHIVE_GET_SUBMASTER_TYPE_FROM_IDELEMENT(idarchive,type,idelement)

stability: Unstable

Provvede al casting di un archivio idarchive ritornando un submaster castato, archiviato nella posizione idelement.

idarchive :

un archivio di tipo MIdArchive allocato e inizializzato

type :

tipo di dato submaster

idelement :

un identificativo valido

M_IDARCHIVE_GET_LABEL_FROM_IDELEMENT()

#define             M_IDARCHIVE_GET_LABEL_FROM_IDELEMENT(idarchive,idelement)

stability: Unstable

Provvede al casting di un archivio idarchive ritornando una etichetta archiviata nella posizione idelement.

idarchive :

un archivio di tipo MIdArchive allocato e inizializzato

idelement :

un identificativo valido

M_IDARCHIVE_GET_ID_FROM_IDELEMENT()

#define             M_IDARCHIVE_GET_ID_FROM_IDELEMENT(idarchive,idelement)

stability: Unstable

Provvede al casting di un archivio idarchive ritornando un id archiviato nella posizione idelement.

idarchive :

un archivio di tipo MIdArchive allocato e inizializzato

idelement :

un identificativo valido

M_IDARCHIVE_GET_SUBMASTER_FROM_LABEL()

#define             M_IDARCHIVE_GET_SUBMASTER_FROM_LABEL(idarchive,label)

stability: Unstable

Provvede al casting di un archivio idarchive ritornando un submaster.

idarchive :

un archivio di tipo MIdArchive allocato e inizializzato

label :

una stringa univoca che identifica un identificativo id archiviato

M_IDARCHIVE_GET_SUBMASTER_TYPE_FROM_LABEL()

#define             M_IDARCHIVE_GET_SUBMASTER_TYPE_FROM_LABEL(idarchive,type,label)

stability: Unstable

Provvede al casting di un archivio idarchive ritornando un submaster castato.

idarchive :

un archivio di tipo MIdArchive allocato e inizializzato

type :

tipo di dato submaster

label :

una stringa univoca che identifica un identificativo id archiviato

M_IDARCHIVE_GET_ID_FROM_LABEL()

#define             M_IDARCHIVE_GET_ID_FROM_LABEL(idarchive,label)

stability: Unstable

Provvede al casting di un archivio idarchive ritornando un id archiviato.

idarchive :

un archivio di tipo MIdArchive allocato e inizializzato

label :

una stringa univoca che identifica un identificativo id archiviato

m_idarchive_new ()

MIdArchive *        m_idarchive_new                     (mpointer master);

Crea un nuovo MIdArchive.

master :

un array, lista, collezione principale

Returns :

un nuovo MIdArchive o NULL in caso di errore.

Since 0.0.1


m_idarchive_free ()

MStatus             m_idarchive_free                    (MIdArchive *idarchive);

stability: Unstable

Libera la memoria allocata per una MIdArchive.

idarchive :

indirizzo ad una struttura derivata allocata di tipo MIdArchive

Returns :

MCORRECT o MERROR in caso di errore.

Since 0.0.1


m_idarchive_insert_id ()

MId                 m_idarchive_insert_id               (MIdArchive *idarchive,
                                                         mpointer submaster,
                                                         const mchar *label,
                                                         MId id);

Inserisce un id in un MIdArchive al quale associa una stringa di identificazione label.

idarchive :

un MIdArchive inizializzato

submaster :

un array, lista, collezione relativa ad id

label :

una stringa univoca che identifica l'identificativo id

id :

un identificativo univoco relativo a submaster

Returns :

un identificativo valido o MERROR in caso di errore

Since 0.0.1


m_idarchive_get_idelement_from_label ()

MId                 m_idarchive_get_idelement_from_label
                                                        (MIdArchive *idarchive,
                                                         const mchar *label);

Cerca un elemento contenente una etichetta, archiviato in un MIdArchive.

idarchive :

un MIdArchive inizializzato

label :

una stringa univoca che identifica un identificativo id archiviato

Returns :

l' id dell'elemento contenente l'etichetta label o MERROR in caso di errore

Since 0.0.1


m_idarchive_get_label_from_submaster_to_id ()

const mchar *       m_idarchive_get_label_from_submaster_to_id
                                                        (MIdArchive *idarchive,
                                                         mpointer submaster,
                                                         MId id);

Cerca un elemento contenente un submaster collegato ad un id, archiviati in un MIdArchive.

idarchive :

un MIdArchive inizializzato

submaster :

un array, lista, collezione relativa ad id

id :

un identificativo univoco relativo a submaster

Returns :

l'etichetta label identificativa dell' id o MERROR in caso di errore

Since 0.0.1


m_idarchive_remove_id_from_idelement ()

MId                 m_idarchive_remove_id_from_idelement
                                                        (MIdArchive *idarchive,
                                                         MId idelement);

Rimuove un id da un MIdArchive.

idarchive :

un MIdArchive inizializzato

idelement :

un identificativo univoco valido

Returns :

l' idelement rimosso o MERROR in caso di errore

Since 0.0.1


m_idarchive_remove_id_from_label ()

MId                 m_idarchive_remove_id_from_label    (MIdArchive *idarchive,
                                                         const mchar *label);

Rimuove un id da un MIdArchive.

idarchive :

un MIdArchive inizializzato

label :

una stringa univoca che identifica un identificativo id archiviato

Returns :

l' id rimosso o MERROR in caso di errore

Since 0.0.1