Skip to content
Snippets Groups Projects

ENH: Add datatypes and value classes to Extern C interface

3 files
+ 688
880
Compare changes
  • Side-by-side
  • Inline

Files

+ 104
173
@@ -137,8 +137,7 @@ int caosdb_connection_create_pem_file_certificate_provider(
@@ -137,8 +137,7 @@ int caosdb_connection_create_pem_file_certificate_provider(
*
*
* EXPERT USE ONLY. Only use it when you know what you are doing.
* EXPERT USE ONLY. Only use it when you know what you are doing.
*/
*/
int caosdb_connection_delete_certificate_provider(
int caosdb_connection_delete_certificate_provider(caosdb_connection_certificate_provider *provider);
caosdb_connection_certificate_provider *provider);
/**
/**
* Create a tls-secured connection configuration.
* Create a tls-secured connection configuration.
@@ -153,8 +152,8 @@ int caosdb_connection_delete_certificate_provider(
@@ -153,8 +152,8 @@ int caosdb_connection_delete_certificate_provider(
* Only use it when you know what you are doing.
* Only use it when you know what you are doing.
*/
*/
int caosdb_connection_create_tls_connection_configuration(
int caosdb_connection_create_tls_connection_configuration(
caosdb_connection_connection_configuration *out, const char *host,
caosdb_connection_connection_configuration *out, const char *host, const int port,
const int port, caosdb_authentication_authenticator *authenticator,
caosdb_authentication_authenticator *authenticator,
caosdb_connection_certificate_provider *provider);
caosdb_connection_certificate_provider *provider);
/**
/**
@@ -173,8 +172,7 @@ int caosdb_connection_create_tls_connection_configuration(
@@ -173,8 +172,7 @@ int caosdb_connection_create_tls_connection_configuration(
* Only use it when you know what you are doing.
* Only use it when you know what you are doing.
*/
*/
int caosdb_connection_create_insecure_connection_configuration(
int caosdb_connection_create_insecure_connection_configuration(
caosdb_connection_connection_configuration *out, const char *host,
caosdb_connection_connection_configuration *out, const char *host, const int port);
const int port);
/**
/**
* Destructor function for the caosdb_connection_connection_configuration
* Destructor function for the caosdb_connection_connection_configuration
@@ -192,8 +190,7 @@ int caosdb_connection_delete_connection_configuration(
@@ -192,8 +190,7 @@ int caosdb_connection_delete_connection_configuration(
* @param cacert path to a pem-file.
* @param cacert path to a pem-file.
*/
*/
int caosdb_connection_configuration_add_cacert(
int caosdb_connection_configuration_add_cacert(
caosdb_connection_connection_configuration *configuration,
caosdb_connection_connection_configuration *configuration, const char *cacert);
const char *cacert);
/**
/**
* Create a plain password authenticator.
* Create a plain password authenticator.
@@ -206,16 +203,14 @@ int caosdb_connection_configuration_add_cacert(
@@ -206,16 +203,14 @@ int caosdb_connection_configuration_add_cacert(
* Only use it when you know what you are doing.
* Only use it when you know what you are doing.
*/
*/
int caosdb_authentication_create_plain_password_authenticator(
int caosdb_authentication_create_plain_password_authenticator(
caosdb_authentication_authenticator *out, const char *username,
caosdb_authentication_authenticator *out, const char *username, const char *password);
const char *password);
/**
/**
* Destructor function for the caosdb_authentication_authenticator struct.
* Destructor function for the caosdb_authentication_authenticator struct.
*
*
* EXPERT USE ONLY. Only use it when you know what you are doing.
* EXPERT USE ONLY. Only use it when you know what you are doing.
*/
*/
int caosdb_authentication_delete_authenticator(
int caosdb_authentication_delete_authenticator(caosdb_authentication_authenticator *authenticator);
caosdb_authentication_authenticator *authenticator);
/**
/**
* Create a connection instance.
* Create a connection instance.
@@ -239,31 +234,28 @@ int caosdb_connection_create_connection(
@@ -239,31 +234,28 @@ int caosdb_connection_create_connection(
*
*
* EXPERT USE ONLY. Only use it when you know what you are doing.
* EXPERT USE ONLY. Only use it when you know what you are doing.
*/
*/
int caosdb_connection_delete_connection(
int caosdb_connection_delete_connection(caosdb_connection_connection *connection);
caosdb_connection_connection *connection);
/**
/**
* Request the version of the server.
* Request the version of the server.
*/
*/
int caosdb_connection_get_version_info(
int caosdb_connection_get_version_info(caosdb_info_version_info *out,
caosdb_info_version_info *out,
const caosdb_connection_connection *connection);
const caosdb_connection_connection *connection);
/**
/**
* Get the default connection from the ConnectionManager.
* Get the default connection from the ConnectionManager.
*
*
* The default connection is to be specified in a configuration file.
* The default connection is to be specified in a configuration file.
*/
*/
int caosdb_connection_connection_manager_get_default_connection(
int caosdb_connection_connection_manager_get_default_connection(caosdb_connection_connection *out);
caosdb_connection_connection *out);
/**
/**
* Get a named connection from the ConnectionManager.
* Get a named connection from the ConnectionManager.
*
*
* The named connection is to be specified in a configuration file.
* The named connection is to be specified in a configuration file.
*/
*/
int caosdb_connection_connection_manager_get_connection(
int caosdb_connection_connection_manager_get_connection(caosdb_connection_connection *out,
caosdb_connection_connection *out, const char *name);
const char *name);
/****************************************************************************
/****************************************************************************
* ENTITY STUFF AND TRANSACTIONS
* ENTITY STUFF AND TRANSACTIONS
@@ -282,19 +274,16 @@ typedef struct {
@@ -282,19 +274,16 @@ typedef struct {
* This transaction has to be deleted manually by
* This transaction has to be deleted manually by
* caosdb_transaction_delete_transaction() later on.
* caosdb_transaction_delete_transaction() later on.
*/
*/
int caosdb_connection_connection_create_transaction(
int caosdb_connection_connection_create_transaction(caosdb_connection_connection *connection,
caosdb_connection_connection *connection,
caosdb_transaction_transaction *out);
caosdb_transaction_transaction *out);
int caosdb_transaction_delete_transaction(caosdb_transaction_transaction *transaction);
int caosdb_transaction_delete_transaction(
int caosdb_transaction_transaction_retrieve_by_id(caosdb_transaction_transaction *transaction,
caosdb_transaction_transaction *transaction);
const char *id);
int caosdb_transaction_transaction_retrieve_by_id(
int caosdb_transaction_transaction_retrieve_by_ids(caosdb_transaction_transaction *transaction,
caosdb_transaction_transaction *transaction, const char *id);
const char *ids[], int length);
int caosdb_transaction_transaction_retrieve_by_ids(
int caosdb_transaction_transaction_query(caosdb_transaction_transaction *transaction,
caosdb_transaction_transaction *transaction, const char *ids[], int length);
const char *query);
int caosdb_transaction_transaction_query(
int caosdb_transaction_transaction_execute(caosdb_transaction_transaction *transaction);
caosdb_transaction_transaction *transaction, const char *query);
int caosdb_transaction_transaction_execute(
caosdb_transaction_transaction *transaction);
// TODO(fspreck) execute_asynchronously may be added as a separate
// TODO(fspreck) execute_asynchronously may be added as a separate
// function once we actually support asynchronous execution.
// function once we actually support asynchronous execution.
@@ -303,12 +292,11 @@ typedef struct {
@@ -303,12 +292,11 @@ typedef struct {
bool _deletable = false;
bool _deletable = false;
} caosdb_transaction_result_set;
} caosdb_transaction_result_set;
int caosdb_transaction_transaction_get_result_set(
int caosdb_transaction_transaction_get_result_set(caosdb_transaction_transaction *transaction,
caosdb_transaction_transaction *transaction,
caosdb_transaction_result_set *out);
caosdb_transaction_result_set *out);
int caosdb_transaction_transaction_get_count_result(
int caosdb_transaction_transaction_get_count_result(caosdb_transaction_transaction *transaction,
caosdb_transaction_transaction *transaction, long *out);
long *out);
typedef struct {
typedef struct {
void *wrapped_entity;
void *wrapped_entity;
@@ -317,8 +305,7 @@ typedef struct {
@@ -317,8 +305,7 @@ typedef struct {
int caosdb_transaction_result_set_at(caosdb_transaction_result_set *result_set,
int caosdb_transaction_result_set_at(caosdb_transaction_result_set *result_set,
caosdb_entity_entity *entity, int index);
caosdb_entity_entity *entity, int index);
int caosdb_transaction_result_set_size(
int caosdb_transaction_result_set_size(caosdb_transaction_result_set *result_set, int *out);
caosdb_transaction_result_set *result_set, int *out);
typedef struct {
typedef struct {
void *wrapped_property;
void *wrapped_property;
@@ -337,90 +324,60 @@ typedef struct {
@@ -337,90 +324,60 @@ typedef struct {
int caosdb_entity_entity_get_id(caosdb_entity_entity *entity, char **out);
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_role(caosdb_entity_entity *entity, char **out);
int caosdb_entity_entity_get_name(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,
int caosdb_entity_entity_get_description(caosdb_entity_entity *entity, char **out);
char **out);
int caosdb_entity_entity_get_datatype(caosdb_entity_entity *entity, char **out);
int caosdb_entity_entity_get_datatype(caosdb_entity_entity *entity, char **out);
int caosdb_entity_entity_get_unit(caosdb_entity_entity *entity, char **out);
int caosdb_entity_entity_get_unit(caosdb_entity_entity *entity, char **out);
int caosdb_entity_entity_get_int_value(caosdb_entity_entity *entity, long *out);
int caosdb_entity_entity_get_int_value(caosdb_entity_entity *entity, long *out);
int caosdb_entity_entity_get_double_value(caosdb_entity_entity *entity,
int caosdb_entity_entity_get_double_value(caosdb_entity_entity *entity, double *out);
double *out);
int caosdb_entity_entity_get_boolean_value(caosdb_entity_entity *entity, bool *out);
int caosdb_entity_entity_get_boolean_value(caosdb_entity_entity *entity,
int caosdb_entity_entity_get_string_value(caosdb_entity_entity *entity, char **out);
bool *out);
int caosdb_entity_entity_get_int_list_value(caosdb_entity_entity *entity, long *out);
int caosdb_entity_entity_get_string_value(caosdb_entity_entity *entity,
int caosdb_entity_entity_get_double_list_value(caosdb_entity_entity *entity, double *out);
char **out);
int caosdb_entity_entity_get_boolean_list_value(caosdb_entity_entity *entity, bool *out);
int caosdb_entity_entity_get_int_list_value(caosdb_entity_entity *entity,
int caosdb_entity_entity_get_string_list_value(caosdb_entity_entity *entity, char **out);
long *out);
int caosdb_entity_entity_get_value_list_length(caosdb_entity_entity *entity, int *out);
int caosdb_entity_entity_get_double_list_value(caosdb_entity_entity *entity,
double *out);
int caosdb_entity_entity_get_version_id(caosdb_entity_entity *entity, char **out);
int caosdb_entity_entity_get_boolean_list_value(caosdb_entity_entity *entity,
int caosdb_entity_entity_get_errors_size(caosdb_entity_entity *entity, int *out);
bool *out);
int caosdb_entity_entity_get_error(caosdb_entity_entity *entity, caosdb_entity_message *out,
int caosdb_entity_entity_get_string_list_value(caosdb_entity_entity *entity,
int index);
char **out);
int caosdb_entity_entity_get_warnings_size(caosdb_entity_entity *entity, int *out);
int caosdb_entity_entity_get_value_list_length(caosdb_entity_entity *entity,
int caosdb_entity_entity_get_warning(caosdb_entity_entity *entity, caosdb_entity_message *out,
int *out);
int index);
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, int index);
int caosdb_entity_entity_get_warnings_size(caosdb_entity_entity *entity,
int *out);
int caosdb_entity_entity_get_warning(caosdb_entity_entity *entity,
caosdb_entity_message *out, int index);
int caosdb_entity_entity_get_infos_size(caosdb_entity_entity *entity, int *out);
int caosdb_entity_entity_get_infos_size(caosdb_entity_entity *entity, int *out);
int caosdb_entity_entity_get_info(caosdb_entity_entity *entity,
int caosdb_entity_entity_get_info(caosdb_entity_entity *entity, caosdb_entity_message *out,
caosdb_entity_message *out, int index);
int index);
int caosdb_entity_entity_get_properties_size(caosdb_entity_entity *entity,
int caosdb_entity_entity_get_properties_size(caosdb_entity_entity *entity, int *out);
int *out);
int caosdb_entity_entity_get_property(caosdb_entity_entity *entity, caosdb_entity_property *out,
int caosdb_entity_entity_get_property(caosdb_entity_entity *entity,
int index);
caosdb_entity_property *out, int index);
int caosdb_entity_entity_get_parents_size(caosdb_entity_entity *entity, int *out);
int caosdb_entity_entity_get_parents_size(caosdb_entity_entity *entity,
int caosdb_entity_entity_get_parent(caosdb_entity_entity *entity, caosdb_entity_parent *out,
int *out);
int index);
int caosdb_entity_entity_get_parent(caosdb_entity_entity *entity,
caosdb_entity_parent *out, int index);
int caosdb_entity_property_get_id(caosdb_entity_property *property, char **out);
int caosdb_entity_property_get_id(caosdb_entity_property *property, char **out);
int caosdb_entity_property_get_name(caosdb_entity_property *property,
int caosdb_entity_property_get_name(caosdb_entity_property *property, char **out);
char **out);
int caosdb_entity_property_get_description(caosdb_entity_property *property, char **out);
int caosdb_entity_property_get_description(caosdb_entity_property *property,
int caosdb_entity_property_get_importance(caosdb_entity_property *property, char **out);
char **out);
int caosdb_entity_property_get_datatype(caosdb_entity_property *property, char **out);
int caosdb_entity_property_get_importance(caosdb_entity_property *property,
int caosdb_entity_property_get_unit(caosdb_entity_property *property, char **out);
char **out);
int caosdb_entity_property_get_datatype(caosdb_entity_property *property,
int caosdb_entity_property_get_int_value(caosdb_entity_property *property, long *out);
char **out);
int caosdb_entity_property_get_double_value(caosdb_entity_property *property, double *out);
int caosdb_entity_property_get_unit(caosdb_entity_property *property,
int caosdb_entity_property_get_boolean_value(caosdb_entity_property *property, bool *out);
char **out);
int caosdb_entity_property_get_string_value(caosdb_entity_property *property, char **out);
int caosdb_entity_property_get_int_list_value(caosdb_entity_property *property, long **out);
int caosdb_entity_property_get_int_value(caosdb_entity_property *property,
int caosdb_entity_property_get_double_list_value(caosdb_entity_property *property, double *out);
long *out);
int caosdb_entity_property_get_boolean_list_value(caosdb_entity_property *property, bool *out);
int caosdb_entity_property_get_double_value(caosdb_entity_property *property,
int caosdb_entity_property_get_string_list_value(caosdb_entity_property *property, char ***out);
double *out);
int caosdb_entity_property_get_value_list_length(caosdb_entity_property *property, int *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(caosdb_entity_property *property,
long **out);
int caosdb_entity_property_get_double_list_value(
caosdb_entity_property *property, double *out);
int caosdb_entity_property_get_boolean_list_value(
caosdb_entity_property *property, bool *out);
int caosdb_entity_property_get_string_list_value(
caosdb_entity_property *property, char ***out);
int caosdb_entity_property_get_value_list_length(
caosdb_entity_property *property, int *out);
int caosdb_entity_parent_get_id(caosdb_entity_parent *parent, char **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_name(caosdb_entity_parent *parent, char **out);
int caosdb_entity_parent_get_description(caosdb_entity_parent *parent,
int caosdb_entity_parent_get_description(caosdb_entity_parent *parent, char **out);
char **out);
int caosdb_entity_message_get_code(caosdb_entity_message *message, int *out);
int caosdb_entity_message_get_code(caosdb_entity_message *message, int *out);
int caosdb_entity_message_get_description(caosdb_entity_message *message,
int caosdb_entity_message_get_description(caosdb_entity_message *message, char **out);
char **out);
// CONSTRUCTORS AND DESTRUCTORS
// CONSTRUCTORS AND DESTRUCTORS
int caosdb_entity_create_entity(caosdb_entity_entity *out);
int caosdb_entity_create_entity(caosdb_entity_entity *out);
@@ -431,78 +388,52 @@ int caosdb_entity_create_parent(caosdb_entity_parent *out);
@@ -431,78 +388,52 @@ int caosdb_entity_create_parent(caosdb_entity_parent *out);
int caosdb_entity_delete_parent(caosdb_entity_parent *out);
int caosdb_entity_delete_parent(caosdb_entity_parent *out);
// SETTERS FOR EVERYTHING THAT MAY BE SET
// SETTERS FOR EVERYTHING THAT MAY BE SET
int caosdb_entity_entity_set_role(caosdb_entity_entity *entity,
int caosdb_entity_entity_set_role(caosdb_entity_entity *entity, const char *role);
const char *role);
int caosdb_entity_entity_set_name(caosdb_entity_entity *entity, const char *name);
int caosdb_entity_entity_set_name(caosdb_entity_entity *entity,
int caosdb_entity_entity_set_description(caosdb_entity_entity *entity, const char *description);
const char *name);
int caosdb_entity_entity_set_datatype(caosdb_entity_entity *entity, const char *datatype);
int caosdb_entity_entity_set_description(caosdb_entity_entity *entity,
int caosdb_entity_entity_set_unit(caosdb_entity_entity *entity, const char *unit);
const char *description);
int caosdb_entity_entity_set_datatype(caosdb_entity_entity *entity,
const char *datatype);
int caosdb_entity_entity_set_unit(caosdb_entity_entity *entity,
const char *unit);
// TODO(fspreck) replace by more specific setters
// TODO(fspreck) replace by more specific setters
int caosdb_entity_entity_set_int_value(caosdb_entity_entity *entity,
int caosdb_entity_entity_set_int_value(caosdb_entity_entity *entity, const long value);
const long value);
int caosdb_entity_entity_set_double_value(caosdb_entity_entity *entity, const double value);
int caosdb_entity_entity_set_double_value(caosdb_entity_entity *entity,
int caosdb_entity_entity_set_boolean_value(caosdb_entity_entity *entity, const bool value);
const double value);
int caosdb_entity_entity_set_string_value(caosdb_entity_entity *entity, const char *value);
int caosdb_entity_entity_set_boolean_value(caosdb_entity_entity *entity,
int caosdb_entity_entity_set_int_list_value(caosdb_entity_entity *entity, const long *value,
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 long *value,
const int length);
const int length);
int caosdb_entity_entity_set_double_list_value(caosdb_entity_entity *entity,
int caosdb_entity_entity_set_double_list_value(caosdb_entity_entity *entity, const double *value,
const double *value,
const int length);
const int length);
int caosdb_entity_entity_set_boolean_list_value(caosdb_entity_entity *entity,
int caosdb_entity_entity_set_boolean_list_value(caosdb_entity_entity *entity, const bool *value,
const bool *value,
const int length);
const int length);
int caosdb_entity_entity_set_string_list_value(caosdb_entity_entity *entity,
int caosdb_entity_entity_set_string_list_value(caosdb_entity_entity *entity, const char **value,
const char **value,
const int length);
const int length);
int caosdb_entity_entity_append_parent(caosdb_entity_entity *entity,
int caosdb_entity_entity_append_parent(caosdb_entity_entity *entity, caosdb_entity_parent *parent);
caosdb_entity_parent *parent);
int caosdb_entity_entity_remove_parent(caosdb_entity_entity *entity, int index);
int caosdb_entity_entity_remove_parent(caosdb_entity_entity *entity, int index);
int caosdb_entity_entity_append_property(caosdb_entity_entity *entity,
int caosdb_entity_entity_append_property(caosdb_entity_entity *entity,
caosdb_entity_property *property);
caosdb_entity_property *property);
int caosdb_entity_entity_remove_property(caosdb_entity_entity *entity,
int caosdb_entity_entity_remove_property(caosdb_entity_entity *entity, int index);
int index);
int caosdb_entity_property_set_id(caosdb_entity_property *property, const char *id);
int caosdb_entity_property_set_id(caosdb_entity_property *property,
int caosdb_entity_property_set_name(caosdb_entity_property *property, const char *name);
const char *id);
int caosdb_entity_property_set_datatype(caosdb_entity_property *property, const char *datatype);
int caosdb_entity_property_set_name(caosdb_entity_property *property,
int caosdb_entity_property_set_importance(caosdb_entity_property *property, const char *importance);
const char *name);
int caosdb_entity_property_set_unit(caosdb_entity_property *property, const char *unit);
int caosdb_entity_property_set_datatype(caosdb_entity_property *property,
const char *datatype);
int caosdb_entity_property_set_int_value(caosdb_entity_property *property, const long value);
int caosdb_entity_property_set_importance(caosdb_entity_property *property,
int caosdb_entity_property_set_double_value(caosdb_entity_property *property, const double value);
const char *importance);
int caosdb_entity_property_set_boolean_value(caosdb_entity_property *property, const bool value);
int caosdb_entity_property_set_unit(caosdb_entity_property *property,
int caosdb_entity_property_set_string_value(caosdb_entity_property *property, const char *value);
const char *unit);
int caosdb_entity_property_set_int_list_value(caosdb_entity_property *property, const long *value,
int caosdb_entity_property_set_int_value(caosdb_entity_property *property,
const long 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 long *value,
const int length);
const int length);
int caosdb_entity_property_set_double_list_value(
int caosdb_entity_property_set_double_list_value(caosdb_entity_property *property,
caosdb_entity_property *property, const double *value, const int length);
const double *value, const int length);
int caosdb_entity_property_set_boolean_list_value(
int caosdb_entity_property_set_boolean_list_value(caosdb_entity_property *property,
caosdb_entity_property *property, const bool *value, const int length);
const bool *value, const int length);
int caosdb_entity_property_set_string_list_value(
int caosdb_entity_property_set_string_list_value(caosdb_entity_property *property,
caosdb_entity_property *property, const char **value, const int length);
const char **value, const int length);
int caosdb_entity_parent_set_id(caosdb_entity_parent *parent, const char *id);
int caosdb_entity_parent_set_id(caosdb_entity_parent *parent, const char *id);
int caosdb_entity_parent_set_name(caosdb_entity_parent *parent,
int caosdb_entity_parent_set_name(caosdb_entity_parent *parent, const char *name);
const char *name);
#ifdef __cplusplus
#ifdef __cplusplus
}
}
Loading