104 lines
4.1 KiB
C
104 lines
4.1 KiB
C
#ifndef H__MODB_METADATA__
|
|
#define H__MODB_METADATA__
|
|
|
|
#include "database.h"
|
|
#include "modb_ref.h"
|
|
|
|
|
|
// Metadata object
|
|
struct metadata_t {
|
|
unsigned int id;
|
|
|
|
char *type;
|
|
size_t type_len;
|
|
|
|
char *title;
|
|
size_t title_len;
|
|
|
|
unsigned int owner_id;
|
|
struct user_t *owner;
|
|
|
|
int64_t created_on;
|
|
int64_t updated_on;
|
|
int64_t deleted_on;
|
|
|
|
unsigned int *group_ids;
|
|
struct group_t **groups;
|
|
size_t n_groups;
|
|
|
|
struct object_t *object;
|
|
struct metadata_ext_t *ext;
|
|
};
|
|
|
|
struct metadata_t *allocMetadata(void);
|
|
struct metadata_t **allocMetadataList(size_t n_metadatas);
|
|
void freeMetadata(struct metadata_t **metadata);
|
|
void freeMetadataList(struct metadata_t ***metadata_list_ptr, size_t n_metadatas);
|
|
|
|
|
|
// MODB Metadata
|
|
int modbMetadataById(stored_conn *sconn, modb_ref *modb, unsigned int id,
|
|
struct metadata_t **metadata);
|
|
|
|
int modbMetadataListByOwnerId(stored_conn *sconn, modb_ref *modb, unsigned int owner_id,
|
|
int with_deleted,
|
|
struct metadata_t ***metadata_list, size_t *n_metadatas);
|
|
int modbMetadataListByGroupId(stored_conn *sconn, modb_ref *modb, unsigned int group_id,
|
|
int with_deleted,
|
|
struct metadata_t ***metadata_list, size_t *n_metadatas);
|
|
|
|
int modbMetadataList(stored_conn *sconn, modb_ref *modb, int with_deleted,
|
|
struct metadata_t ***metadata_list, size_t *n_metadatas);
|
|
|
|
int64_t modbMetadataCreate(stored_conn *sconn, modb_ref *modb,
|
|
const struct metadata_t *const metadata);
|
|
|
|
int64_t modbMetadataReplace(stored_conn *sconn, modb_ref *modb, unsigned int id,
|
|
const struct metadata_t *const metadata);
|
|
int64_t modbMetadataUpdateType(stored_conn *sconn, modb_ref *modb, unsigned int id,
|
|
const char *type, size_t type_len);
|
|
int64_t modbMetadataUpdateTitle(stored_conn *sconn, modb_ref *modb, unsigned int id,
|
|
const char *title, size_t title_len);
|
|
int64_t modbMetadataUpdateOwner(stored_conn *sconn, modb_ref *modb, unsigned int id,
|
|
struct user_t *owner);
|
|
int64_t modbMetadataUpdateOwnerId(stored_conn *sconn, modb_ref *modb, unsigned int id,
|
|
unsigned int owner_id);
|
|
|
|
int modbMetadataDelete(stored_conn *sconn, modb_ref *modb, unsigned int id);
|
|
int modbMetadataDestroy(stored_conn *sconn, modb_ref *modb, unsigned int id);
|
|
|
|
|
|
// MODB Metadata -> Owner
|
|
int64_t modbFetchMetadataOwner(stored_conn *sconn, modb_ref *modb, struct metadata_t *metadata);
|
|
|
|
// MODB Metadata -> Object
|
|
int64_t modbFetchMetadataObject(stored_conn *sconn, modb_ref *modb, struct metadata_t *metadata);
|
|
|
|
// MODB Metadata -> MetadataExtended
|
|
int64_t modbFetchMetadataExtended(stored_conn *sconn, modb_ref *modb, struct metadata_t *metadata);
|
|
|
|
// MODB Metadata -> Groups
|
|
int modbFetchMetadataGroupIds(stored_conn *sconn, modb_ref *modb,
|
|
struct metadata_t *metadata, int with_deleted);
|
|
int modbFetchMetadataGroups(stored_conn *sconn, modb_ref *modb, struct metadata_t *metadata,
|
|
int with_deleted);
|
|
|
|
int modbSyncMetadataGroups(stored_conn *sconn, modb_ref *modb,
|
|
unsigned int metadata_id, size_t n_groups, unsigned int *group_id);
|
|
int modbSyncMetadataGroups_va(stored_conn *sconn, modb_ref *modb,
|
|
unsigned int metadata_id, size_t n_groups, ...);
|
|
|
|
int modbIsLinked_Metadata_Group(stored_conn *sconn, modb_ref *modb,
|
|
unsigned int metadata_id, unsigned int group_id);
|
|
int modbLink_Metadata_Group(stored_conn *sconn, modb_ref *modb,
|
|
unsigned int metadata_id, unsigned int group_id);
|
|
int modbUnlink_Metadata_Group(stored_conn *sconn, modb_ref *modb,
|
|
unsigned int metadata_id, unsigned int group_id);
|
|
|
|
// MODB Group -> Metadatas
|
|
int modbFetchGroupMetadataIds(stored_conn *sconn, modb_ref *modb,
|
|
unsigned int group_id, int with_deleted,
|
|
unsigned int **metadata_ids, size_t *n_ids);
|
|
|
|
#endif // H__MODB_METADATA__
|