25 #define SIZOFINTERN 10
115 #define ASSERT_STRICT_GBDATA_TYPES // just for refactoring/debugging (slow)
118 #if defined(ASSERT_STRICT_GBDATA_TYPES)
119 #define gb_strict_assert(cond) gb_assert(cond)
121 #define gb_strict_assert(cond)
127 #define GB_GBM_INDEX(gbd) ((gbd)->flags2.gbm_index)
201 bool is_entry()
const;
221 inline char *
alloc_data(
long Size,
long Memsize);
242 bool is_container()
const;
259 if (!index_of_touched_one_son || index_of_touched_one_son == idx+1) {
260 index_of_touched_one_son = idx+1;
263 index_of_touched_one_son = -1;
301 #define GB_GET_SECURITY_READ(gb) ((gb)->flags.security_read)
302 #define GB_GET_SECURITY_WRITE(gb) ((gb)->flags.security_write)
303 #define GB_GET_SECURITY_DELETE(gb) ((gb)->flags.security_delete)
305 #define GB_PUT_SECURITY_READ(gb, i) ((gb)->flags.security_read = (i))
306 #define GB_PUT_SECURITY_WRITE(gb, i) ((gb)->flags.security_write = (i))
307 #define GB_PUT_SECURITY_DELETE(gb, i) ((gb)->flags.security_delete = (i))
327 #error gb_data.h included twice
void SET_GB_DATA_LIST_HEADER(gb_data_list &dl, gb_header_list *head)
#define GB_GBM_INDEX(gbd)
unsigned int security_read
gb_data_base_type_union info
GB_MAIN_TYPE * GB_MAIN(GBDATA *gbd)
void insert_data(const char *Data, long Size, long Memsize)
GBCONTAINER * expect_container() const
__ATTR__USERESULT GB_ERROR gb_commit_transaction_local_rek(GBCONTAINER *&gbc, long mode, int *pson_created)
unsigned int folded_container
void touch_update(long udate)
CONSTEXPR_INLINE GBCONTAINER * GB_GRANDPA(GBDATA *gbd)
void gb_abort_transaction_local_rek(GBCONTAINER *&gbc)
GB_REL_CONTAINER rel_father
CONSTEXPR_INLINE gb_header_list * GB_DATA_LIST_HEADER(gb_data_list &dl)
#define CONSTEXPR_INLINE_Cxx14
#define gb_strict_assert(cond)
GB_MAIN_TYPE * GBCONTAINER_MAIN(GBCONTAINER *gbc)
long creation_date() const
unsigned int last_updated
GB_MAIN_TYPE * GB_MAIN_NO_FATHER(GBDATA *gbd)
bool is_indexable() const
void GBK_terminate(const char *error) __ATTR__NORETURN
static GBENTRY * as_entry(GBDATA *gbd)
GBENTRY * expect_entry() const
bool is_container() const
void set_touched_idx(int idx)
unsigned int update_in_server
static GBCONTAINER * as_container(GBDATA *gbd)
unsigned int security_delete
GBCONTAINER * as_container() const
char * alloc_data(long Size, long Memsize)
unsigned int should_be_indexed
gb_transaction_save * get_oldData() const
void * gbm_get_mem(size_t size, long index)
long index_of_touched_one_son
CONSTEXPR_INLINE GBCONTAINER * GB_FATHER(GBDATA *gbd)
bool knownNonNull(const void *nonnull)
#define GB_SETREL(struct_add, member_name, address)
gb_callback_list * callback
void touch_creation(long cdate)
CONSTEXPR_INLINE_Cxx14 void SET_GB_FATHER(GBDATA *gbd, GBCONTAINER *father)
bool stored_external() const
size_t uncompressed_size() const
#define __ATTR__USERESULT
void touch_creation_and_update(long date)
gb_transaction_save * old
bool stored_internal() const
GBENTRY * as_entry() const
#define GB_RESOLVE(typ, struct_add, member_name)
void gbm_free_mem(void *block, size_t size, long index)
unsigned int header_changed
unsigned int security_write
GBCONTAINER * get_father()
unsigned int compressed_data
gb_callback_list * get_callbacks() const
GB_MAIN_TYPE * gb_main_array[]
void set_data(char *data)