summaryrefslogtreecommitdiff
path: root/libbridge/src/main/cpp/helpers.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libbridge/src/main/cpp/helpers.cpp')
-rw-r--r--libbridge/src/main/cpp/helpers.cpp160
1 files changed, 0 insertions, 160 deletions
diff --git a/libbridge/src/main/cpp/helpers.cpp b/libbridge/src/main/cpp/helpers.cpp
deleted file mode 100644
index 04befc6..0000000
--- a/libbridge/src/main/cpp/helpers.cpp
+++ /dev/null
@@ -1,160 +0,0 @@
-#include <inttypes.h>
-#include <unistd.h>
-#include <stdint.h>
-#include <stdbool.h>
-#include <stddef.h>
-#include <vector>
-#include <string>
-#include "helpers.hpp"
-#include <set>
-#include <sstream>
-#include <cstring>
-
-const char* vectorToString(const std::vector<std::string>& vec, const std::string separator) {
- // Concatenate all strings in the vector
- std::string result;
- for (const auto& str : vec) {
- result += str;
- result += separator;
- }
- const char* cstr = result.c_str();
- return cstr;
-}
-
-const char* vectorToString(const std::vector<uint32_t>& vec, const std::string separator) {
- // Calculate the size needed for the result string
- size_t size = 0;
- for (size_t i = 0; i < vec.size(); ++i) {
- // Calculate the number of digits in each element
- size += snprintf(nullptr, 0, "%u", vec[i]);
- // Add comma and space for all elements except the last one
- if (i < vec.size() - 1) {
- size += separator.size(); // comma and space
- }
- }
-
- // Allocate memory for the result string
- char* result = static_cast<char*>(malloc(size + 1));
- if (result == nullptr) {
- // Handle memory allocation failure
- return nullptr;
- }
-
- // Fill in the result string
- char* current = result;
- for (size_t i = 0; i < vec.size(); ++i) {
- // Convert each element to string and copy to the result string
- int written = snprintf(current, size + 1, "%u", vec[i]);
- current += written;
- // Add comma and space for all elements except the last one
- if (i < vec.size() - 1) {
- strcpy(current, separator.c_str());
- current += separator.size();
- }
- }
-
- return result;
-}
-
-const char* vectorToString(const std::vector<uint64_t>& vec, const std::string separator) {
- // Calculate the size needed for the result string
- size_t size = 0;
- for (size_t i = 0; i < vec.size(); ++i) {
- // Calculate the number of digits in each element
- size += snprintf(nullptr, 0, "%lu", vec[i]);
- // Add comma and space for all elements except the last one
- if (i < vec.size() - 1) {
- size += separator.size(); // comma and space
- }
- }
-
- // Allocate memory for the result string
- char* result = static_cast<char*>(malloc(size + 1));
- if (result == nullptr) {
- // Handle memory allocation failure
- return nullptr;
- }
-
- // Fill in the result string
- char* current = result;
- for (size_t i = 0; i < vec.size(); ++i) {
- // Convert each element to string and copy to the result string
- int written = snprintf(current, size + 1, "%lu", vec[i]);
- current += written;
- // Add comma and space for all elements except the last one
- if (i < vec.size() - 1) {
- strcpy(current, separator.c_str());
- current += separator.size();
- }
- }
-
- return result;
-}
-
-const char* vectorToString(const std::vector<std::set<uint32_t>>& vec, const std::string separator) {
- // Check if the vector is empty
- if (vec.empty()) {
- return "";
- }
-
- // Use a stringstream to concatenate sets with commas and individual elements with spaces
- std::ostringstream oss;
- oss << "{";
- for (auto it = vec.begin(); it != vec.end(); ++it) {
- if (it != vec.begin()) {
- oss << separator;
- }
-
- oss << "{";
- for (auto setIt = it->begin(); setIt != it->end(); ++setIt) {
- if (setIt != it->begin()) {
- oss << separator;
- }
- oss << *setIt;
- }
- oss << "}";
- }
- oss << "}";
- std::string str = oss.str();
- const std::string::size_type size = str.size();
- char *buffer = new char[size + 1]; //we need extra char for NUL
- memcpy(buffer, str.c_str(), size + 1);
- return buffer;
-}
-
-// Function to convert std::set<uint32_t> to a string
-const char* vectorToString(const std::set<uint32_t>& intSet, const std::string separator) {
- // Check if the set is empty
- if (intSet.empty()) {
- return "";
- }
-
- // Use a stringstream to concatenate elements with commas
- std::ostringstream oss;
- auto it = intSet.begin();
- oss << *it;
- for (++it; it != intSet.end(); ++it) {
- oss << ", " << *it;
- }
-
- std::string str = oss.str();
- const std::string::size_type size = str.size();
- char *buffer = new char[size + 1]; //we need extra char for NUL
- memcpy(buffer, str.c_str(), size + 1);
- return buffer;
-}
-
-std::set<std::string> splitString(const std::string& str, const std::string& delim) {
- std::set<std::string> tokens;
- if (str.empty()) return tokens;
- size_t pos = 0;
- std::string token;
- std::string content = str; // Copy of str so we can safely erase content
- while ((pos = content.find(delim)) != std::string::npos) {
- token = content.substr(0, pos);
- tokens.insert(token);
- content.erase(0, pos + delim.length());
- }
- tokens.insert(content); // Inserting the last token
- return tokens;
-} \ No newline at end of file