Go to the documentation of this file.
5 #ifndef CCF_CONTROL_PROC_THREAD_HPP_H_
6 #define CCF_CONTROL_PROC_THREAD_HPP_H_
20 static const std::string&
GenId(
const uint16_t proc_thread_nb);
28 const double period = 0.1);
73 bool _CheckMessageBus(
bool& new_data_available,
75 void _CopyAndReleaseFrameHandle();
76 void _ExecuteRecipes();
77 void _SubmitAndNotify();
78 void _HandleNewSetup();
80 bool m_allow_frame_skippping;
81 double m_time_for_last_frame_skipping_log;
83 uint16_t m_proc_thread_nb;
85 std::vector<std::string> m_pub_thr_ids;
89 std::list<ccf::common::RecipeBase*> m_recipes;
92 std::map<std::string, ccf::common::RecipeBase*> m_recipe_map;
108 #endif // CCF_CONTROL_PROC_THREAD_HPP_H_
void SetStatus(const ccf::common::ProcStatus status)
Set the Processing Status of this Processing Thread.
Definition: procThread.cpp:279
uint8_t NbOfRecipes() const
Definition: procThread.cpp:324
static const std::string & GenId(const uint16_t proc_thread_nb)
Generate the Processing Thread ID used for the interthread communication.
Definition: procThread.cpp:13
ccf::common::ProcStatus GetStatus() const
Return the Processing Status of this Processing Thread.
Definition: procThread.cpp:305
void SetOutputQ(ccf::common::FrameQueue &queue)
Set reference to the Output Queue of this Processing Thread.
Definition: procThread.cpp:263
virtual void UserLogic()
Implements the user logic, executed periodically.
Definition: procThread.cpp:85
IFW CTD Multiprocessing Toolkit Thread base class.
Definition: thread.hpp:28
Class to be used as parent all CCF classes.
Definition: base.hpp:93
void SetInputQ(ccf::common::FrameQueue &queue)
Set reference to the Application Input Queue from which the thread gets the frames.
Definition: procThread.cpp:247
ProcThread(const std::string &thread_id, ccf::mptk::MessageBus &message_bus, const double period=0.1)
See ccf::mptk::Thread.
Definition: procThread.cpp:40
ccf::common::FrameQueue & GetInputQ()
Get reference to the Application Input Queue from which the thread gets the frames.
Definition: procThread.cpp:255
uint16_t GetProcThreadNb() const
Return the number/index allocated to this Processing Thread.
Definition: procThread.cpp:339
IFW CTD Multiprocessing Toolkit Message Bus.
Definition: messageBus.hpp:30
const std::string & GetProcThreadName() const
Return the name allocated in the cfg to this Processing Thread.
IFW CTD Multiprocessing Toolkit Message class.
Definition: message.hpp:17
void Initialise()
Initialise the thread object.
Definition: procThread.cpp:70
static void SetStatusAll(const ccf::common::ProcStatus status)
Set the status of all Processing Threads running.
Definition: procThread.cpp:23
ProcStatus
Possible states for a Processing Recipe defined.
Definition: base.hpp:191
ccf::common::FrameStatistics & GetFrameStat()
Get reference to frame handling statistics.
Definition: procThread.cpp:344
The FrameQueue class implements a queue, to manage a set of CCF DataFrame instances as a ring buffer.
Definition: frameQueue.hpp:14
Processing Thread MPTK Thread implementation (see also ccf::mptk::Thread).
Definition: procThread.hpp:16
void AddRecipe(ccf::common::RecipeBase *recipe_obj)
Definition: procThread.cpp:310
ccf::common::FrameQueue & GetOutputQ()
Get reference to the Output Queue of this Processing Thread.
Definition: procThread.cpp:271
Processing Recipe base class. All recipes shall be derived from this class.
Definition: recipeBase.hpp:49
Class used by the threads to store info for generating performance statistics.
Definition: utilities.hpp:25
Definition: acqThread.cpp:10
Frame class used to store the data and metadata for one frames received from the camera.
Definition: dataFrame.hpp:15
virtual ~ProcThread()
Definition: procThread.cpp:56
const ccf::common::RecipeBase & GetRecipe(const uint16_t nb)
Definition: procThread.cpp:329