Program Listing for File ThreadedNode.hpp
↰ Return to documentation for file (include/depthai/pipeline/ThreadedNode.hpp)
#pragma once
#include "depthai/log/LogLevel.hpp"
#include "depthai/pipeline/Node.hpp"
#include "depthai/utility/AtomicBool.hpp"
#include "depthai/utility/JoiningThread.hpp"
#include "depthai/utility/spimpl.h"
namespace dai {
class ThreadedNode : public Node {
private:
JoiningThread thread;
AtomicBool running{false};
public:
using Node::Node;
ThreadedNode();
virtual ~ThreadedNode();
virtual void onStart() {}
virtual void onStop() {}
// override the following methods
void start() override;
void wait() override;
void stop() override;
// virtual 'run' method
virtual void run() = 0;
// check if still running
bool isRunning() const;
virtual void setLogLevel(dai::LogLevel level);
virtual dai::LogLevel getLogLevel() const;
class Impl;
spimpl::impl_ptr<Impl> pimpl;
};
} // namespace dai