Fawkes API Fawkes Development Version
pcl_db_merge_thread.h
1
2/***************************************************************************
3 * pcl_db_merge_thread.h - Restore and merge point clouds from MongoDB
4 *
5 * Created: Wed Nov 28 10:53:14 2012 (Freiburg)
6 * Copyright 2012 Tim Niemueller [www.niemueller.de]
7 ****************************************************************************/
8
9/* This program is free software; you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License as published by
11 * the Free Software Foundation; either version 2 of the License, or
12 * (at your option) any later version.
13 *
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU Library General Public License for more details.
18 *
19 * Read the full text in the LICENSE.GPL file in the doc directory.
20 */
21
22#ifndef _PLUGINS_PERCEPTION_PCL_DB_MERGE_PCL_DB_MERGE_THREAD_H_
23#define _PLUGINS_PERCEPTION_PCL_DB_MERGE_PCL_DB_MERGE_THREAD_H_
24
25#include "pcl_db_merge_pipeline.h"
26
27#include <aspect/blackboard.h>
28#include <aspect/clock.h>
29#include <aspect/configurable.h>
30#include <aspect/logging.h>
31#include <aspect/pointcloud.h>
32#include <aspect/tf.h>
33#include <core/threading/thread.h>
34#include <pcl/point_cloud.h>
35#include <pcl/point_types.h>
36#include <plugins/mongodb/aspect/mongodb.h>
37
38namespace fawkes {
39class PclDatabaseMergeInterface;
40class BlackBoardOnMessageWaker;
41#ifdef USE_TIMETRACKER
42class TimeTracker;
43#endif
44} // namespace fawkes
45
54{
55public:
58
59 virtual void init();
60 virtual void loop();
61 virtual void finalize();
62
63 /** Stub to see name in backtrace for easier debugging. @see Thread::run() */
64protected:
65 virtual void
67 {
68 Thread::run();
69 }
70
71private: // members
72 fawkes::PclDatabaseMergeInterface *merge_if_;
74
77
78 std::string cfg_database_;
79 std::string cfg_output_id_;
80
83};
84
85#endif
Thread to merge point clouds from database on request.
virtual void run()
Stub to see name in backtrace for easier debugging.
virtual ~PointCloudDBMergeThread()
Destructor.
virtual void loop()
Code to execute in the thread.
virtual void finalize()
Finalize the thread.
virtual void init()
Initialize the thread.
Thread aspect to access to BlackBoard.
Definition: blackboard.h:34
Wake threads on receiving a blackboard message.
Thread aspect that allows to obtain the current time from the clock.
Definition: clock.h:34
Thread aspect to access configuration data.
Definition: configurable.h:33
Thread aspect to log output.
Definition: logging.h:33
Thread aspect to access MongoDB.
Definition: mongodb.h:39
Thread aspect to provide and access point clouds.
Definition: pointcloud.h:38
RefPtr<> is a reference-counting shared smartpointer.
Definition: refptr.h:50
Thread class encapsulation of pthreads.
Definition: thread.h:46
Thread aspect to access the transform system.
Definition: tf.h:39
Fawkes library namespace.