export meta init/destroy functions

This commit is contained in:
Alexey Fedoseev
2024-04-24 20:44:33 +03:00
parent 8d10fec4fa
commit aeff85570a
2 changed files with 11 additions and 7 deletions

View File

@@ -1234,7 +1234,7 @@ static int cyberiada_graphs_reconstruct_edges(CyberiadaDocument* doc, NamesList*
return CYBERIADA_NO_ERROR; return CYBERIADA_NO_ERROR;
} }
static int cyberiada_destroy_meta(CyberiadaMetainformation* meta) int cyberiada_destroy_meta(CyberiadaMetainformation* meta)
{ {
if (meta) { if (meta) {
if (meta->standard_version) free(meta->standard_version); if (meta->standard_version) free(meta->standard_version);
@@ -2022,18 +2022,16 @@ static int cyberiada_add_default_meta(CyberiadaDocument* doc, const char* sm_nam
if (*sm_name) { if (*sm_name) {
cyberiada_copy_string(&(meta->name), &(meta->name_len), sm_name); cyberiada_copy_string(&(meta->name), &(meta->name_len), sm_name);
} }
doc->meta_info = meta; doc->meta_info = meta;
return CYBERIADA_NO_ERROR; return CYBERIADA_NO_ERROR;
} }
static int cyberiada_encode_meta(CyberiadaDocument* doc, char** meta_body, size_t* meta_body_len) int cyberiada_encode_meta(CyberiadaMetainformation* meta, char** meta_body, size_t* meta_body_len)
{ {
size_t i, buffer_len; size_t i, buffer_len;
int written; int written;
char *buffer, *value; char *buffer, *value;
CyberiadaMetainformation* meta = doc->meta_info;
buffer_len = 1; buffer_len = 1;
for (i = 0; i < sizeof(cyberiada_metadata) / sizeof(MetainfoDeclaration); i++) { for (i = 0; i < sizeof(cyberiada_metadata) / sizeof(MetainfoDeclaration); i++) {
@@ -3624,7 +3622,7 @@ static int cyberiada_update_metainfo_comment(CyberiadaDocument* doc)
sm_node->children = meta_node; sm_node->children = meta_node;
meta_node->next = first_node; meta_node->next = first_node;
} }
cyberiada_encode_meta(doc, cyberiada_encode_meta(doc->meta_info,
&(meta_node->comment_data->body), &(meta_node->comment_data->body),
&(meta_node->comment_data->body_len)); &(meta_node->comment_data->body_len));
return CYBERIADA_NO_ERROR; return CYBERIADA_NO_ERROR;

View File

@@ -303,7 +303,13 @@ typedef enum {
/* Initialize and copy string. Use this function to initialize strings in Cyberiada structures */ /* Initialize and copy string. Use this function to initialize strings in Cyberiada structures */
int cyberiada_copy_string(char** target, size_t* size, const char* source); int cyberiada_copy_string(char** target, size_t* size, const char* source);
/* Encode metainformation to string */
int cyberiada_encode_meta(CyberiadaMetainformation* meta, char** meta_body, size_t* meta_body_len);
/* Free metainformation struct */
int cyberiada_destroy_meta(CyberiadaMetainformation* meta);
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif