1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- #ifndef SP_PST_H
- #define SP_PST_H
- #pragma once
- //TODO: CrossPlaform 文件移除,没有使用,待讨论确认 [Gifur@202584]
- #ifdef __cplusplus
- extern "C" {
- #endif
- /* persist storage */
- typedef struct sp_pst_tree_t sp_pst_tree_t;
- typedef struct sp_pst_elem_t sp_pst_elem_t;
- #define SP_PST_T_UNKNOWN 0
- #define SP_PST_T_STR 1
- #define SP_PST_T_I1 2
- #define SP_PST_T_I2 3
- #define SP_PST_T_I4 4
- #define SP_PST_T_I8 5
- #define SP_PST_T_OBJ 6
- #define SP_PST_T_BUF 7
- #define SP_PST_T_ARR_STR 8
- #define SP_PST_T_ARR_I1 9
- #define SP_PST_T_ARR_I2 10
- #define SP_PST_T_ARR_I4 11
- #define SP_PST_T_ARR_I8 12
- #define SP_PST_T_ARR_OBJ 13
- #include "array.h"
- int sp_pst_tree_create(sp_pst_tree_t **p_tree);
- void sp_pst_tree_destroy(sp_pst_tree_t *tree);
- sp_pst_elem_t *sp_pst_tree_get_root(sp_pst_tree_t *tree);
- int sp_pst_tree_set_root(sp_pst_tree_t *tree, sp_pst_elem_t *elem);
- sp_pst_elem_t *sp_pst_elem_create(sp_pst_elem_t *parent, const char *key);
- void sp_pst_elem_destroy(sp_pst_elem_t *elem);
- int sp_pst_elem_set_value(sp_pst_elem_t *elem, int type, const void *value, int value_len);
- sp_pst_elem_t *sp_pst_elem_get_parent(sp_pst_elem_t *elem);
- const char *sp_pst_elem_get_key(sp_pst_elem_t *elem);
- int sp_pst_elem_get_type(sp_pst_elem_t *elem);
- const void *sp_pst_elem_get_value(sp_pst_elem_t *elem);
- int sp_pst_elem_get_value_len(sp_pst_elem_t *elem);
- int sp_pst_elem_append_child(sp_pst_elem_t *elem, sp_pst_elem_t *new_elem);
- int sp_pst_elem_remove_child_by_key(sp_pst_elem_t *elem, const char *key);
- int sp_pst_elem_remove(sp_pst_elem_t *elem);
- sp_pst_elem_t *sp_pst_elem_find_child(sp_pst_elem_t *elem, const char *key);
- int sp_pst_elem_insert_before(sp_pst_elem_t *pos, sp_pst_elem_t *new_elem);
- int sp_pst_elem_insert_after(sp_pst_elem_t *pos, sp_pst_elem_t *new_elem);
- sp_pst_elem_t *sp_pst_elem_first_child(sp_pst_elem_t *parent_elem);
- sp_pst_elem_t *sp_pst_elem_last_child(sp_pst_elem_t *parent_elem);
- sp_pst_elem_t *sp_pst_elem_next_sibling(sp_pst_elem_t *iter_elem);
- sp_pst_elem_t *sp_pst_elem_last_sibling(sp_pst_elem_t *iter_elem);
- int sp_pst_tree_load(const char *base_dir, const char *ent, const char *cls, const char *obj, sp_pst_tree_t **p_tree);
- int sp_pst_tree_save(const char *base_dir, const char *ent, const char *cls, const char *obj, sp_pst_tree_t *tree);
- int sp_pst_get_object_count(const char *base_dir, const char *ent, const char *cls, int *p_cnt);
- array_header_t* sp_pst_get_object_keys(const char *base_dir, const char *ent, const char *cls);
- int sp_pst_delete_object(const char *base_dir, const char *ent, const char *cls, const char *obj);
- int sp_pst_delete_class_objects(const char *base_dir, const char *ent, const char *cls);
- SPBASE_API void sp_pst_recover(const char *base_dir);
- #ifdef __cplusplus
- } // extern "C" {
- #endif
- #endif // SP_PST_H
|