From b432ca196ea55fa4263bb530566c63d7ad8263c8 Mon Sep 17 00:00:00 2001
From: florian <f.spreckelsen@inidscale.com>
Date: Fri, 13 Aug 2021 12:51:38 +0200
Subject: [PATCH] ENH: Add OTHER_CLIENT_ERROR to EXTERN C interface

---
 include/ccaosdb.h     | 6 ++++++
 src/ccaosdb.cpp       | 4 ++++
 test/test_ccaosdb.cpp | 5 +++++
 3 files changed, 15 insertions(+)

diff --git a/include/ccaosdb.h b/include/ccaosdb.h
index 1ab0a8a..4597690 100644
--- a/include/ccaosdb.h
+++ b/include/ccaosdb.h
@@ -52,6 +52,12 @@ int caosdb_constants_COMPATIBLE_SERVER_VERSION_PATCH();
  */
 const char *caosdb_constants_COMPATIBLE_SERVER_VERSION_PRE_RELEASE();
 
+/**
+ * Return the status code reserved for errors in clients wrapping this
+ * interface.
+ */
+int caosdb_status_code_OTHER_CLIENT_ERROR();
+
 /**
  * A wrapper of the C++ Connection class.
  *
diff --git a/src/ccaosdb.cpp b/src/ccaosdb.cpp
index b104c30..e42d04b 100644
--- a/src/ccaosdb.cpp
+++ b/src/ccaosdb.cpp
@@ -164,6 +164,10 @@ const char *caosdb_constants_COMPATIBLE_SERVER_VERSION_PRE_RELEASE() {
   return caosdb::COMPATIBLE_SERVER_VERSION_PRE_RELEASE;
 }
 
+int caosdb_status_code_OTHER_CLIENT_ERROR() {
+  return caosdb::StatusCode::OTHER_CLIENT_ERROR;
+}
+
 const char *caosdb_utility_get_env_var(const char *name, const char *fallback) {
   return caosdb::utility::get_env_var(name, fallback);
 }
diff --git a/test/test_ccaosdb.cpp b/test/test_ccaosdb.cpp
index 4bdc6a9..1009cc5 100644
--- a/test/test_ccaosdb.cpp
+++ b/test/test_ccaosdb.cpp
@@ -50,6 +50,11 @@ TEST_F(test_ccaosdb, test_get_env_var) {
   EXPECT_EQ("fall-back", some_var);
 }
 
+TEST_F(test_ccaosdb, test_other_client_error) {
+  EXPECT_EQ(caosdb_status_code_OTHER_CLIENT_ERROR(),
+            caosdb::StatusCode::OTHER_CLIENT_ERROR);
+}
+
 TEST_F(test_ccaosdb, test_get_default_connection) {
   caosdb_connection_connection out;
 
-- 
GitLab