Skip to content
Snippets Groups Projects

API: Introduce value and datatype structs to Extern C

Merged Florian Spreckelsen requested to merge f-value-data-structs into dev
All threads resolved!
1 file
+ 10
0
Compare changes
  • Side-by-side
  • Inline
+ 63
78
@@ -264,8 +264,6 @@ int caosdb_connection_connection_manager_get_connection(caosdb_connection_connec
* ENTITY STUFF AND TRANSACTIONS
****************************************************************************/
// TODO(fspreck) implementations needed, and probably these declarations are
// not sufficient yet.
typedef struct caosdb_transaction_transaction {
void *wrapped_transaction;
bool _deletable = false;
@@ -363,33 +361,25 @@ typedef struct caosdb_entity_message {
bool _deletable = false;
} caosdb_entity_message;
typedef struct caosdb_entity_value {
void *wrapped_value;
bool _deletable = false;
} caosdb_entity_value;
typedef struct caosdb_entity_datatype {
void *wrapped_datatype;
bool _deletable = false;
} caosdb_entity_datatype;
// GETTERS FOR EVERYTHING
int caosdb_entity_entity_get_id(caosdb_entity_entity *entity, char **out);
int caosdb_entity_entity_get_role(caosdb_entity_entity *entity, char **out);
int caosdb_entity_entity_get_name(caosdb_entity_entity *entity, char **out);
int caosdb_entity_entity_get_description(caosdb_entity_entity *entity, char **out);
int caosdb_entity_entity_get_local_path(caosdb_entity_entity *entity, char **out);
/**
* Get the name of the entity's datatype, whether it is a reference, and whether it is a list.
*/
int caosdb_entity_entity_get_datatype(caosdb_entity_entity *entity, char **name, bool *is_ref,
bool *is_list);
int caosdb_entity_entity_get_datatype(caosdb_entity_entity *entity, caosdb_entity_datatype *out);
int caosdb_entity_entity_get_unit(caosdb_entity_entity *entity, char **out);
int caosdb_entity_entity_get_int_value(caosdb_entity_entity *entity, int64_t *out);
int caosdb_entity_entity_get_double_value(caosdb_entity_entity *entity, double *out);
int caosdb_entity_entity_get_boolean_value(caosdb_entity_entity *entity, bool *out);
int caosdb_entity_entity_get_string_value(caosdb_entity_entity *entity, char **out);
int caosdb_entity_entity_get_int_list_value_at(caosdb_entity_entity *entity, int64_t *out,
const int index);
int caosdb_entity_entity_get_double_list_value_at(caosdb_entity_entity *entity, double *out,
const int index);
int caosdb_entity_entity_get_boolean_list_value_at(caosdb_entity_entity *entity, bool *out,
const int index);
int caosdb_entity_entity_get_string_list_value_at(caosdb_entity_entity *entity, char **out,
const int index);
int caosdb_entity_entity_get_value_list_length(caosdb_entity_entity *entity, int *out);
int caosdb_entity_entity_get_value(caosdb_entity_entity *entity, caosdb_entity_value *out);
int caosdb_entity_entity_get_version_id(caosdb_entity_entity *entity, char **out);
int caosdb_entity_entity_get_errors_size(caosdb_entity_entity *entity, int *out);
int caosdb_entity_entity_get_error(caosdb_entity_entity *entity, caosdb_entity_message *out,
@@ -411,27 +401,10 @@ int caosdb_entity_property_get_id(caosdb_entity_property *property, char **out);
int caosdb_entity_property_get_name(caosdb_entity_property *property, char **out);
int caosdb_entity_property_get_description(caosdb_entity_property *property, char **out);
int caosdb_entity_property_get_importance(caosdb_entity_property *property, char **out);
/**
* Get the name of the property's datatype, whether it is a reference, and whether it is a list.
*/
int caosdb_entity_property_get_datatype(caosdb_entity_property *property, char **name, bool *is_ref,
bool *is_list);
int caosdb_entity_property_get_datatype(caosdb_entity_property *property,
caosdb_entity_datatype *out);
int caosdb_entity_property_get_unit(caosdb_entity_property *property, char **out);
int caosdb_entity_property_get_int_value(caosdb_entity_property *property, int64_t *out);
int caosdb_entity_property_get_double_value(caosdb_entity_property *property, double *out);
int caosdb_entity_property_get_boolean_value(caosdb_entity_property *property, bool *out);
int caosdb_entity_property_get_string_value(caosdb_entity_property *property, char **out);
int caosdb_entity_property_get_int_list_value_at(caosdb_entity_property *property, int64_t *out,
const int index);
int caosdb_entity_property_get_double_list_value_at(caosdb_entity_property *property, double *out,
const int index);
int caosdb_entity_property_get_boolean_list_value_at(caosdb_entity_property *property, bool *out,
const int index);
int caosdb_entity_property_get_string_list_value_at(caosdb_entity_property *property, char **out,
const int index);
int caosdb_entity_property_get_value_list_length(caosdb_entity_property *property, int *out);
int caosdb_entity_property_get_value(caosdb_entity_property *property, caosdb_entity_value *out);
int caosdb_entity_parent_get_id(caosdb_entity_parent *parent, char **out);
int caosdb_entity_parent_get_name(caosdb_entity_parent *parent, char **out);
int caosdb_entity_parent_get_description(caosdb_entity_parent *parent, char **out);
@@ -439,6 +412,26 @@ int caosdb_entity_parent_get_description(caosdb_entity_parent *parent, char **ou
int caosdb_entity_message_get_code(caosdb_entity_message *message, int *out);
int caosdb_entity_message_get_description(caosdb_entity_message *message, char **out);
int caosdb_entity_datatype_is_atomic(caosdb_entity_datatype *datatype, bool *out);
int caosdb_entity_datatype_is_reference(caosdb_entity_datatype *datatype, bool *out);
int caosdb_entity_datatype_is_list_of_atomic(caosdb_entity_datatype *datatype, bool *out);
int caosdb_entity_datatype_is_list_of_reference(caosdb_entity_datatype *datatype, bool *out);
int caosdb_entity_datatype_get_datatype_name(caosdb_entity_datatype *datatype, char **out);
int caosdb_entity_value_is_null(caosdb_entity_value *value, bool *out);
int caosdb_entity_value_is_string(caosdb_entity_value *value, bool *out);
int caosdb_entity_value_is_double(caosdb_entity_value *value, bool *out);
int caosdb_entity_value_is_integer(caosdb_entity_value *value, bool *out);
int caosdb_entity_value_is_bool(caosdb_entity_value *value, bool *out);
int caosdb_entity_value_is_vector(caosdb_entity_value *value, bool *out);
int caosdb_entity_value_get_as_string(caosdb_entity_value *value, char **out);
int caosdb_entity_value_get_as_double(caosdb_entity_value *value, double *out);
int caosdb_entity_value_get_as_integer(caosdb_entity_value *value, int64_t *out);
int caosdb_entity_value_get_as_bool(caosdb_entity_value *value, bool *out);
int caosdb_entity_value_get_as_vector_size(caosdb_entity_value *value, int *out);
int caosdb_entity_value_get_as_vector_at(caosdb_entity_value *value, caosdb_entity_value *out,
const int index);
// CONSTRUCTORS AND DESTRUCTORS
int caosdb_entity_create_entity(caosdb_entity_entity *out);
int caosdb_entity_delete_entity(caosdb_entity_entity *out);
@@ -447,31 +440,38 @@ int caosdb_entity_delete_property(caosdb_entity_property *out);
int caosdb_entity_create_parent(caosdb_entity_parent *out);
int caosdb_entity_delete_parent(caosdb_entity_parent *out);
// DATATYPE CONSTRUCTORS for atomic and reference datatypes and lists thereof
int caosdb_entity_create_atomic_datatype(caosdb_entity_datatype *out, const char *name);
int caosdb_entity_create_reference_datatype(caosdb_entity_datatype *out, const char *name);
int caosdb_entity_create_atomic_list_datatype(caosdb_entity_datatype *out, const char *name);
int caosdb_entity_create_reference_list_datatype(caosdb_entity_datatype *out, const char *name);
int caosdb_entity_delete_datatype(caosdb_entity_datatype *out);
// VALUE CONSTRUCTORS (resolve overloaded constructors)
int caosdb_entity_create_int_value(caosdb_entity_value *out, const int64_t value);
int caosdb_entity_create_string_value(caosdb_entity_value *out, const char *value);
int caosdb_entity_create_double_value(caosdb_entity_value *out, const double value);
int caosdb_entity_create_bool_value(caosdb_entity_value *out, const bool value);
int caosdb_entity_create_int_vector_value(caosdb_entity_value *out, const int64_t *value,
const int length);
int caosdb_entity_create_string_vector_value(caosdb_entity_value *out, const char **value,
const int length);
int caosdb_entity_create_double_vector_value(caosdb_entity_value *out, const double *value,
const int length);
int caosdb_entity_create_bool_vector_value(caosdb_entity_value *out, const bool *value,
const int length);
int caosdb_entity_delete_value(caosdb_entity_value *out);
// SETTERS FOR EVERYTHING THAT MAY BE SET
int caosdb_entity_entity_set_role(caosdb_entity_entity *entity, const char *role);
int caosdb_entity_entity_set_name(caosdb_entity_entity *entity, const char *name);
int caosdb_entity_entity_set_description(caosdb_entity_entity *entity, const char *description);
int caosdb_entity_entity_set_local_path(caosdb_entity_entity *entity, const char *name);
int caosdb_entity_entity_set_file_path(caosdb_entity_entity *entity, const char *name);
/**
* Set the entity's datatype by name, and whether it is a reference or a list.
*/
int caosdb_entity_entity_set_datatype(caosdb_entity_entity *entity, const char *datatype,
const bool is_ref, const bool is_list);
int caosdb_entity_entity_set_datatype(caosdb_entity_entity *entity,
caosdb_entity_datatype *datatype);
int caosdb_entity_entity_set_unit(caosdb_entity_entity *entity, const char *unit);
// TODO(fspreck) replace by more specific setters
int caosdb_entity_entity_set_int_value(caosdb_entity_entity *entity, const int64_t value);
int caosdb_entity_entity_set_double_value(caosdb_entity_entity *entity, const double value);
int caosdb_entity_entity_set_boolean_value(caosdb_entity_entity *entity, const bool value);
int caosdb_entity_entity_set_string_value(caosdb_entity_entity *entity, const char *value);
int caosdb_entity_entity_set_int_list_value(caosdb_entity_entity *entity, const int64_t *value,
const int length);
int caosdb_entity_entity_set_double_list_value(caosdb_entity_entity *entity, const double *value,
const int length);
int caosdb_entity_entity_set_boolean_list_value(caosdb_entity_entity *entity, const bool *value,
const int length);
int caosdb_entity_entity_set_string_list_value(caosdb_entity_entity *entity, const char **value,
const int length);
int caosdb_entity_entity_set_value(caosdb_entity_entity *entity, caosdb_entity_value *value);
int caosdb_entity_entity_append_parent(caosdb_entity_entity *entity, caosdb_entity_parent *parent);
int caosdb_entity_entity_remove_parent(caosdb_entity_entity *entity, int index);
@@ -481,26 +481,11 @@ int caosdb_entity_entity_remove_property(caosdb_entity_entity *entity, int index
int caosdb_entity_property_set_id(caosdb_entity_property *property, const char *id);
int caosdb_entity_property_set_name(caosdb_entity_property *property, const char *name);
/**
* Set the property's datatype by name, and whether it is a reference or a list.
*/
int caosdb_entity_property_set_datatype(caosdb_entity_property *property, const char *datatype,
const bool is_ref, const bool is_list);
int caosdb_entity_property_set_datatype(caosdb_entity_property *property,
caosdb_entity_datatype *datatype);
int caosdb_entity_property_set_importance(caosdb_entity_property *property, const char *importance);
int caosdb_entity_property_set_unit(caosdb_entity_property *property, const char *unit);
int caosdb_entity_property_set_int_value(caosdb_entity_property *property, const int64_t value);
int caosdb_entity_property_set_double_value(caosdb_entity_property *property, const double value);
int caosdb_entity_property_set_boolean_value(caosdb_entity_property *property, const bool value);
int caosdb_entity_property_set_string_value(caosdb_entity_property *property, const char *value);
int caosdb_entity_property_set_int_list_value(caosdb_entity_property *property,
const int64_t *value, const int length);
int caosdb_entity_property_set_double_list_value(caosdb_entity_property *property,
const double *value, const int length);
int caosdb_entity_property_set_boolean_list_value(caosdb_entity_property *property,
const bool *value, const int length);
int caosdb_entity_property_set_string_list_value(caosdb_entity_property *property,
const char **value, const int length);
int caosdb_entity_property_set_value(caosdb_entity_property *property, caosdb_entity_value *value);
int caosdb_entity_parent_set_id(caosdb_entity_parent *parent, const char *id);
int caosdb_entity_parent_set_name(caosdb_entity_parent *parent, const char *name);
Loading