diff --git a/src/modb_p.c b/src/modb_p.c new file mode 100644 index 0000000..7048155 --- /dev/null +++ b/src/modb_p.c @@ -0,0 +1,27 @@ +#include "modb_p.h" +#include "strext.h" + +char *modbTableName(struct modb_t *modb, const char *suffix, size_t suffix_len) +{ + str_builder *sb; + char *str; + size_t len; + + if ((sb = strbld_create()) == 0) { + return 0; + } + + modbTableName_sb(sb, modb, suffix, suffix_len); + + if (strbld_finalize_or_destroy(&sb, &str, &len) != 0) { + return 0; + } + + return str; +} + +void modbTableName_sb(str_builder *sb, struct modb_t *modb, const char *suffix, size_t suffix_len) +{ + strbld_str(sb, modb->name, modb->name_len); + strbld_str(sb, suffix, suffix_len); +} diff --git a/src/modb_p.h b/src/modb_p.h new file mode 100644 index 0000000..be3da44 --- /dev/null +++ b/src/modb_p.h @@ -0,0 +1,27 @@ +#ifndef H__MODB_P__ +#define H__MODB_P__ + +#include + +#include "modb_types.h" + + +#define SYS_TABLE "_sys" +#define META_TABLE "_meta" +#define OBJECTS_TABLE "_objects" +#define MDO_GROUPS_TABLE "_mdo_groups" + +#define USERS_TABLE "_users" +#define GROUPS_TABLE "_groups" +#define USER_GROUPS_TABLE "_user_groups" + +#define META_EXT_TABLE "_meta_ext" + + +typedef struct str_builder_t str_builder; + +char *modbTableName(struct modb_t *modb, const char *suffix, size_t suffix_len); +void modbTableName_sb(str_builder *sb, struct modb_t *modb, const char *suffix, size_t suffix_len); + + +#endif // H__MODB_P__