ReUseX  0.0.5
3D Point Cloud Processing for Building Reuse
Loading...
Searching...
No Matches
input_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 "format_handler.hpp"
8
9#include <filesystem>
10#include <optional>
11#include <string>
12#include <vector>
13
14namespace rux::database {
15
19enum class InputSource {
20 Stdin, // Read from stdin (pipe or redirection)
21 Inline, // Inline value from command line argument
22 None // No input provided (error condition)
23};
24
34public:
42 static DataPayload read_input(const std::optional<std::string> &inline_value);
43
49 static bool is_stdin_available();
50
56 static std::vector<uint8_t> read_binary_from_stdin();
57
63 static std::string read_text_from_stdin();
64
71 static InputSource
72 detect_source(const std::optional<std::string> &inline_value);
73};
74
75} // namespace rux::database
Handles input for set operations.
static DataPayload read_input(const std::optional< std::string > &inline_value)
Detect and read input.
static bool is_stdin_available()
Check if stdin is available (redirected or piped).
static std::string read_text_from_stdin()
Read text data from stdin.
static std::vector< uint8_t > read_binary_from_stdin()
Read binary data from stdin.
static InputSource detect_source(const std::optional< std::string > &inline_value)
Detect input source.
InputSource
Input source for set operations.
std::variant< std::string, std::vector< uint8_t >, nlohmann::json > DataPayload
Data payload that can be returned by routers.