16#include <dfx-fdwatch/InotifyWatcher.hpp>
17#include <dfx-fdwatch/OwnedFd.hpp>
18#include <dfx-fdwatch/Timer.hpp>
19#include <dfx-magic/Context.hpp>
21#include <dfx-utilities/FileSystem.hpp>
46 FileSource(
Id id, std::string
name);
57 void _onInotifyEvent(fs::path
const & p, uint32_t mask);
59 std::size_t _readOnceInto(std::vector<uint8_t> & buffer);
62 bool _sendNextBlock();
68 std::unique_ptr<FdWatch::InotifyWatcher> _watcher;
72 EmitMode _emitMode = EmitMode::Whole;
73 Trigger _trigger = Trigger::OneShot;
74 std::string _delimiter =
"\n";
75 std::size_t _blockSize = 4096;
76 std::chrono::milliseconds _interval{10};
79 std::vector<uint8_t> _buffer;
Macro-based enum <-> string utilities for dfx.
#define DECLARE_ENUM_STRING_FUNCTIONS(E)
Declare the enum string API (and std::formatter) for enum type E.
Definition EnumString.hpp:327
Base class for all runtime-executed nodes in a dfx dataflow graph.
#define DFX_NODE(typeName)
Convenience macro to declare the node type string and metadata/schema hooks.
Definition Node.hpp:501
Abstract base class for all nodes in the dfx runtime.
Definition Node.hpp:91
uint32_t Id
Node identifier type (unique and stable within a graph instance).
Definition Node.hpp:113
nlohmann::json const & config() const noexcept
Get the node configuration.
Definition Node.hpp:138
std::string const & name() const noexcept
Get the node name.
Definition Node.hpp:134
Owning RAII wrapper around a file descriptor.
Definition OwnedFd.hpp:36
FD-integrated timer utility (timerfd-backed).
Definition Timer.hpp:52
RAII wrapper around a libmagic "magic_set" context.
Definition Context.hpp:49
void handleMessage(Core::InputPort const &port, Core::MessagePtr message) override
Handle an incoming message on an input port.
void initializeImpl(nlohmann::json config) override
Called by initialize; derived nodes must parse config here.
void startImpl() override
Called by start before the node is marked running.
void stopImpl() override
Called by stop before the node is marked stopped.
std::unique_ptr< Message > MessagePtr
Unique ownership handle for messages.
Definition Message.hpp:27
Definition MimeTypeRouter.hpp:18