Id Collections of Collections

Id Collections of Collections — Collections of Collections

Stability Level

Unstable, unless otherwise indicated

Synopsis

#include <mlib.h>

struct              MICollections;
#define             M_ICOLLECTIONS                      (data)
#define             M_ICOLLECTIONS_TO_ICOLLECTIONQ      (collection,
                                                         id)
#define             M_ICOLLECTIONS_DATA                 (collection,
                                                         type,
                                                         id_collection,
                                                         id)
#define             M_ICOLLECTIONS_PRIMI                (collection,
                                                         type,
                                                         id_collection,
                                                         id)
#define             M_ICOLLECTIONS_user                 (data)
MICollections *     m_icollections_new                  (void);
MId                 m_icollections_insert_collection_info
                                                        (MICollections *icollections,
                                                         MICollectionsInfo *info);
MId                 m_icollections_insert_collection    (MICollections *icollections,
                                                         mchars string,
                                                         MIdOffSet offset,
                                                         msize s_type,
                                                         MInizialize inizialize,
                                                         MDestroy destroy);
MId                 m_icollections_remove_collection    (MICollections *icollections,
                                                         MId id);
MId                 m_icollections_insert_element       (MICollections *icollections,
                                                         MId id,
                                                         mpointer data);
MId                 m_icollections_remove_element       (MICollections *icollections,
                                                         MId id_collection,
                                                         MId id);
#define             m_c_icollections_insert_collection_info(icollections,
                                                         info)
#define             m_c_icollections_insert_collection  (icollections,
                                                         string,
                                                         offset,
                                                         s_type,
                                                         inizialize,
                                                         destroy)
#define             m_c_icollections_remove_collection  (icollections,
                                                         id)
#define             m_c_icollections_insert_element     (icollections,
                                                         id,
                                                         data)
#define             m_c_icollections_remove_element     (icollections,
                                                         id_collection,
                                                         id)

Description

Attraverso le strutture MICollections è possibile gestire collezzioni di collezzioni archiviati, utilizzando al posto dei puntarori degli identificativi univoci di tipo MId.

Nota: la collezione principale è del tipo MICollection mentre gli array archiviati sono del tipo MICollectionQuark.

Details

struct MICollections

struct MICollections {
};

contiene una lista di puntatori a collezzioni di dati indefiniti

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

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!


M_ICOLLECTIONS()

    #define M_ICOLLECTIONS(data)     ds_CAST (MICollections*,data)

stability: Unstable

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

data :

struttura derivata

M_ICOLLECTIONS_TO_ICOLLECTIONQ()

#define             M_ICOLLECTIONS_TO_ICOLLECTIONQ(collection,id)

ritorna l'indirizzo della collezione di tipo MICollectionQuark archiviato in un MICollections.

collection :

un MICollections valido

id :

identificativo della collezione archiviata

M_ICOLLECTIONS_DATA()

#define             M_ICOLLECTIONS_DATA(collection,type,id_collection,id)

ritorna la posizione di un blocco di dati archiviato in un MICollectionQuark castando e referenziando l'array.

Utilizzato nei casi in cui l' MICollectionQuark archivi dati struttura (struct)

collection :

un MICollections valido

type :

tipo di dati archiviato nella MICollectionQuark

id_collection :

identificativo della collezione archiviata

id :

identificativo del blocco di dati archiviato nella collezione di tipo MICollectionQuark

M_ICOLLECTIONS_PRIMI()

#define             M_ICOLLECTIONS_PRIMI(collection,type,id_collection,id)

ritorna la posizione di un dato archiviato in un MICollectionQuark castando e referenziando l'array.

Utilizzato nei casi in cui l' MICollectionQuark archivi dati primitivi (int,char,etc.)

collection :

un MICollections valido

type :

tipo di dati archiviato nella MICollectionQuark

id_collection :

identificativo della collezione archiviata

id :

identificativo del dato archiviato della collezione di tipo MICollectionQuark

M_ICOLLECTIONS_user()

    #define M_ICOLLECTIONS_user(data)     ds_GET_PROPERTY(M_ICOLLECTIONS(data),user)

stability: Unstable

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

data :

una struttura derivata

m_icollections_new ()

MICollections *     m_icollections_new                  (void);

Crea un nuovo MICollections.

Returns :

un nuovo MICollections o NULL in caso di errore.

Since 0.0.2


m_icollections_insert_collection_info ()

MId                 m_icollections_insert_collection_info
                                                        (MICollections *icollections,
                                                         MICollectionsInfo *info);

Inserisce una collezione di tipo MICollectionQuark in un MICollections. Provvede a passare i dati info per l'inizializzazione.

icollections :

un MICollections inizializzato

info :

un MICollectionsInfo contenente i dati inerenti

Returns :

un identificativo valido o MERROR in caso di errore

Since 0.0.2


m_icollections_insert_collection ()

MId                 m_icollections_insert_collection    (MICollections *icollections,
                                                         mchars string,
                                                         MIdOffSet offset,
                                                         msize s_type,
                                                         MInizialize inizialize,
                                                         MDestroy destroy);

Inserisce una collezione di tipo MICollectionQuark in un MICollections. Provvede a passare i dati info per l'inizializzazione.

icollections :

un MICollections inizializzato

string :

una stringa da associare all'identificativo della lista.

offset :

quantita' massima di blocchi di dati inseribili

s_type :

grandezza in byte di un tipo di dati personale

inizialize :

funzione da chiamare dopo l'inserimento di un dato

destroy :

funzione da chiamare dopo la rimozione di un dato

Returns :

un identificativo valido o MERROR in caso di errore

Since 0.0.2


m_icollections_remove_collection ()

MId                 m_icollections_remove_collection    (MICollections *icollections,
                                                         MId id);

Rimuove una collezione di tipo MICollectionQuark da un MICollections.

icollections :

un MICollections inizializzato

id :

un identificativo valido

Returns :

il MId dell'elemento rimosso o MERROR in caso di errore

Since 0.0.2


m_icollections_insert_element ()

MId                 m_icollections_insert_element       (MICollections *icollections,
                                                         MId id,
                                                         mpointer data);

Inserisce un elemento in un MICollectionQuark archiviato in un MICollections. Provvede a passare dei dati data per l'inizializzazione.

icollections :

un MICollections inizializzato

id :

identificativo della collezione archiviata

data :

l'indirizzo a un blocco di dati o NULL

Returns :

un identificativo valido o MERROR in caso di errore

Since 0.0.2


m_icollections_remove_element ()

MId                 m_icollections_remove_element       (MICollections *icollections,
                                                         MId id_collection,
                                                         MId id);

Rimuove un elemento da un MICollectionQuark archiviato in un MICollections.

icollections :

un MICollections inizializzato

id_collection :

identificativo della collezione archiviata

id :

identificativo dell'elemento archiviato nella collezione di tipo MICollectionQuark

Returns :

il MId dell'elemento rimosso o MERROR in caso di errore

Since 0.0.1


m_c_icollections_insert_collection_info()

#define             m_c_icollections_insert_collection_info(icollections,info)

stability: Unstable

Come la funzione m_icollections_insert_collection_info() , provvede a passare il dato castato.

icollections :

un MICollections inizializzato

info :

un MICollectionsInfo contenente i dati inerenti

m_c_icollections_insert_collection()

#define             m_c_icollections_insert_collection(icollections,string,offset,s_type,inizialize,destroy)

stability: Unstable

Come la funzione m_icollections_insert_collection() , provvede a passare il dato castato.

icollections :

un MICollections inizializzato

string :

una stringa da associare all'identificativo della lista.

offset :

quantita' massima di blocchi di dati inseribili

s_type :

grandezza in byte di un tipo di dati personale

inizialize :

funzione da chiamare dopo l'inserimento di un dato

destroy :

funzione da chiamare dopo la rimozione di un dato

m_c_icollections_remove_collection()

#define             m_c_icollections_remove_collection(icollections,id)

stability: Unstable

Come la funzione m_icollections_remove_collection() , provvede a passare il dato castato.

icollections :

un MICollections inizializzato

id :

un identificativo valido

m_c_icollections_insert_element()

#define             m_c_icollections_insert_element(icollections,id,data)

stability: Unstable

Come la funzione m_icollections_insert_element() , provvede a passare il dato castato.

icollections :

un MICollections inizializzato

id :

identificativo della collezione archiviata

data :

l'indirizzo a un blocco di dati o NULL

m_c_icollections_remove_element()

#define             m_c_icollections_remove_element(icollections,id_collection,id)

stability: Unstable

Come la funzione m_icollections_remove_element() , provvede a passare il dato castato.

icollections :

un MICollections inizializzato

id_collection :

identificativo della collezione archiviata

id :

identificativo dell'elemento archiviato nella collezione di tipo MICollectionQuark