project_files/frontlib/model/schemelist.h
changeset 7464 859ab6859854
parent 7320 e704706008d4
child 7482 d70a5b0d1190
equal deleted inserted replaced
7461:38acbfdb484f 7464:859ab6859854
    27 #define SCHEMELIST_H_
    27 #define SCHEMELIST_H_
    28 
    28 
    29 #include "scheme.h"
    29 #include "scheme.h"
    30 
    30 
    31 typedef struct {
    31 typedef struct {
    32 	int _referenceCount;
       
    33 	int schemeCount;
    32 	int schemeCount;
    34 	flib_scheme **schemes;
    33 	flib_scheme **schemes;
    35 } flib_schemelist;
    34 } flib_schemelist;
    36 
    35 
    37 /**
    36 /**
    58  * Returns 0 on success.
    57  * Returns 0 on success.
    59  */
    58  */
    60 int flib_schemelist_insert(flib_schemelist *list, flib_scheme *cfg, int pos);
    59 int flib_schemelist_insert(flib_schemelist *list, flib_scheme *cfg, int pos);
    61 
    60 
    62 /**
    61 /**
    63  * Delete a cfg from the list at position pos, moving down all higher schemes.
    62  * Delete a scheme from the list at position pos, moving down all higher schemes.
    64  * The scheme is released automatically.
    63  * The scheme is released automatically.
    65  * Returns 0 on success.
    64  * Returns 0 on success.
    66  */
    65  */
    67 int flib_schemelist_delete(flib_schemelist *list, int pos);
    66 int flib_schemelist_delete(flib_schemelist *list, int pos);
    68 
    67 
    70  * Find the scheme with a specific name
    69  * Find the scheme with a specific name
    71  */
    70  */
    72 flib_scheme *flib_schemelist_find(flib_schemelist *list, const char *name);
    71 flib_scheme *flib_schemelist_find(flib_schemelist *list, const char *name);
    73 
    72 
    74 /**
    73 /**
    75  * Increase the reference count of the object. Call this if you store a pointer to it somewhere.
    74  * Free this schemelist.
    76  * Returns the parameter.
       
    77  */
    75  */
    78 flib_schemelist *flib_schemelist_retain(flib_schemelist *list);
    76 void flib_schemelist_destroy(flib_schemelist *list);
    79 
       
    80 /**
       
    81  * Decrease the reference count of the object and free it if this was the last reference.
       
    82  */
       
    83 void flib_schemelist_release(flib_schemelist *list);
       
    84 
    77 
    85 
    78 
    86 #endif /* SCHEMELIST_H_ */
    79 #endif /* SCHEMELIST_H_ */