23#ifndef _PLUGINS_LASER_FILTER_FILTER_THREAD_H_
24#define _PLUGINS_LASER_FILTER_FILTER_THREAD_H_
26#include "filters/filter.h"
28#include <aspect/blackboard.h>
29#include <aspect/blocked_timing.h>
30#include <aspect/configurable.h>
31#include <aspect/logging.h>
32#include <core/threading/thread.h>
34# include <aspect/tf.h>
42class Laser360Interface;
43class Laser720Interface;
44class Laser1080Interface;
83 void open_interfaces(std::string prefix,
84 std::vector<LaserInterface> & ifs,
85 std::vector<LaserDataFilter::Buffer *> &bufs,
89 std::string filter_type,
91 unsigned int in_data_size,
92 std::vector<LaserDataFilter::Buffer *> &inbufs);
103 std::vector<LaserInterface> in_;
104 std::vector<LaserInterface> out_;
106 std::vector<LaserDataFilter::Buffer *> in_bufs_;
107 std::vector<LaserDataFilter::Buffer *> out_bufs_;
111 std::string cfg_name_;
112 std::string cfg_prefix_;
114 std::list<LaserFilterThread *> wait_threads_;
virtual void init()
Initialize the thread.
void set_wait_barrier(fawkes::Barrier *barrier)
Set wait barrier.
void set_wait_threads(std::list< LaserFilterThread * > &threads)
Set threads to wait for in loop.
virtual void loop()
Code to execute in the thread.
virtual void finalize()
Finalize the thread.
void wait_done()
Wait until thread is done.
LaserFilterThread(std::string &cfg_name, std::string &cfg_prefix)
Constructor.
virtual void run()
Stub to see name in backtrace for easier debugging.
A barrier is a synchronization tool which blocks until a given number of threads have reached the bar...
Thread aspect to access to BlackBoard.
Thread aspect to use blocked timing.
Thread aspect to access configuration data.
Base class for all Fawkes BlackBoard interfaces.
Laser1080Interface Fawkes BlackBoard Interface.
Laser360Interface Fawkes BlackBoard Interface.
Laser720Interface Fawkes BlackBoard Interface.
Thread aspect to log output.
Mutex mutual exclusion lock.
Thread class encapsulation of pthreads.
Wait until a given condition holds.
Fawkes library namespace.