source: DataSource, Frame, SourceConfig and the registry (unused yet)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
1 parent
71b904a93b
commit
3896f404a9
11 files changed
+445
-3
No files matched your search
@@ -0,0 +1,34 @@
|
||||
// SPDX-License-Identifier: MIT
|
||||
// SPDX-FileCopyrightText: 2026 Martino Ferrari
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "source/source_kind.hpp"
|
||||
|
||||
#include <cstdint>
|
||||
#include <memory>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
namespace udpscope {
|
||||
|
||||
/// Takes ownership. A second kind with the same id is ignored.
|
||||
void register_kind(std::unique_ptr<SourceKind> kind);
|
||||
SourceKind* find_kind(const std::string& id);
|
||||
/// In registration order (the chooser's dropdown order).
|
||||
const std::vector<SourceKind*>& kinds();
|
||||
/// Registers the built-in kinds; idempotent. No static-init self-registration, which a linker
|
||||
/// may drop. A later `dlopen` loader would only call `register_kind()`.
|
||||
void register_builtin_sources();
|
||||
|
||||
/// The built-in kinds, each defined in its own file (`udps_kind.cpp`, `probe_source.cpp`).
|
||||
std::unique_ptr<SourceKind> make_udps_kind();
|
||||
std::unique_ptr<SourceKind> make_probe_kind();
|
||||
|
||||
/// The (host, port) pair that names a source's session file. UDPS keeps its legacy
|
||||
/// `server`/`port`; any other kind is `"<kind>-<identity>"` (characters outside `[A-Za-z0-9._-]`
|
||||
/// become `_`) on port 1 -- not 0, which the session-file parser rejects and waveform mode uses.
|
||||
std::string session_host(const std::string& kind_id, const SourceConfig& cfg);
|
||||
std::uint16_t session_port(const std::string& kind_id, const SourceConfig& cfg);
|
||||
|
||||
} // namespace udpscope
|
||||
Reference in new issue
Block a user