ReUseX
0.0.5
3D Point Cloud Processing for Building Reuse
Toggle main menu visibility
Loading...
Searching...
No Matches
format_handler.hpp
Go to the documentation of this file.
1
// SPDX-FileCopyrightText: 2025 Povl Filip Sonne-Frederiksen
2
//
3
// SPDX-License-Identifier: GPL-3.0-or-later
4
5
#pragma once
6
7
#include <cstdint>
8
#include <filesystem>
9
#include <nlohmann/json.hpp>
10
#include <string>
11
#include <variant>
12
#include <vector>
13
14
namespace
rux::database
{
15
19
enum class
OutputFormat
{
20
Binary
,
// Raw binary data (point clouds, meshes, images)
21
JSON
,
// JSON object or array
22
Text
// Plain text (scalar values)
23
};
24
33
using
DataPayload
=
34
std::variant<std::string, std::vector<uint8_t>, nlohmann::json>;
35
42
OutputFormat
detect_format
(
const
DataPayload
&payload);
43
55
void
write_output
(
const
DataPayload
&payload,
bool
force_pretty =
false
);
56
63
void
write_to_file
(
const
DataPayload
&payload,
64
const
std::filesystem::path &file_path);
65
71
bool
is_stdout_tty
();
72
82
std::string
json_to_text
(
const
nlohmann::json &j);
83
84
}
// namespace rux::database
rux::database
Definition
cloud_router.hpp:9
rux::database::detect_format
OutputFormat detect_format(const DataPayload &payload)
Detect format from payload type.
rux::database::is_stdout_tty
bool is_stdout_tty()
Check if stdout is a TTY (for format detection).
rux::database::write_to_file
void write_to_file(const DataPayload &payload, const std::filesystem::path &file_path)
Write data to a file.
rux::database::DataPayload
std::variant< std::string, std::vector< uint8_t >, nlohmann::json > DataPayload
Data payload that can be returned by routers.
Definition
format_handler.hpp:33
rux::database::OutputFormat
OutputFormat
Output format types.
Definition
format_handler.hpp:19
rux::database::OutputFormat::JSON
@ JSON
Definition
format_handler.hpp:21
rux::database::OutputFormat::Binary
@ Binary
Definition
format_handler.hpp:20
rux::database::OutputFormat::Text
@ Text
Definition
format_handler.hpp:22
rux::database::json_to_text
std::string json_to_text(const nlohmann::json &j)
Convert JSON to text (for scalar values).
rux::database::write_output
void write_output(const DataPayload &payload, bool force_pretty=false)
Write data to stdout with appropriate formatting.
apps
rux
include
database
format_handler.hpp
Generated by
1.17.0