Skip to content
Snippets Groups Projects

Minimal c interface

Merged Timm Fitschen requested to merge f-extern-c into dev
All threads resolved!
1 file
+ 5
36
Compare changes
  • Side-by-side
  • Inline
+ 5
36
#include "ccaosdb.h"
#include "caosdb/constants.h"
#include <stdio.h>
#include <stdlib.h>
#include <stdio.h> // for printf
#include "caosdb/constants.h" // for LIBCAOSDB_VERSION_MAJOR, LIBCAOSDB_VER...
#include "ccaosdb.h" // for caosdb_info_version_info, caosdb_conne...
int main(void) {
printf(
"CaosDB C client (libcaosdb %d.%d.%d)\nWe don't miss the H of caos.\n\n",
LIBCAOSDB_VERSION_MAJOR, LIBCAOSDB_VERSION_MINOR, LIBCAOSDB_VERSION_PATCH);
const char *host =
caosdb_utility_get_env_var("CAOSDB_SERVER_HOST", "localhost");
const char *port_str =
caosdb_utility_get_env_var("CAOSDB_SERVER_GRPC_PORT_HTTPS", "8443");
char *end = NULL;
const int port = (int)strtol(port_str, &end, 10);
const char *cacert = caosdb_utility_get_env_var("CAOSDB_SERVER_CERT", "");
const char *username = caosdb_utility_get_env_var("CAOSDB_USER", "admin");
const char *password =
caosdb_utility_get_env_var("CAOSDB_PASSWORD", "caosdb");
printf("Connecting to %s:%d as %s: ...", host, port, username);
caosdb_connection_certificate_provider provider;
caosdb_connection_create_pem_file_certificate_provider(&provider, cacert);
caosdb_authentication_authenticator authenticator;
caosdb_authentication_create_plain_password_authenticator(&authenticator,
username, password);
caosdb_connection_connection_configuration configuration;
caosdb_connection_create_tls_connection_configuration(
&configuration, host, port, &authenticator, &provider);
caosdb_connection_connection connection;
caosdb_connection_create_connection(&connection, &configuration);
caosdb_connection_connection_manager_get_default_connection(&connection);
caosdb_info_version_info version_info;
caosdb_connection_get_version_info(&version_info, &connection);
printf("\b\b\bSuccess!\nServer version: %d.%d.%d-%s-%s\n", version_info.major,
printf("Server version: %d.%d.%d-%s-%s\n", version_info.major,
version_info.minor, version_info.patch, version_info.pre_release,
version_info.build);
caosdb_connection_delete_connection(&connection);
caosdb_connection_delete_connection_configuration(&configuration);
caosdb_connection_delete_certificate_provider(&provider);
caosdb_authentication_delete_authenticator(&authenticator);
return 0;
}
Loading