23 #ifndef _PLUGINS_MONGODB_LOG_MONGODB_LOG_IMAGE_THREAD_H_
24 #define _PLUGINS_MONGODB_LOG_MONGODB_LOG_IMAGE_THREAD_H_
26 #include <aspect/blocked_timing.h>
27 #include <aspect/clock.h>
28 #include <aspect/configurable.h>
29 #include <aspect/logging.h>
30 #include <aspect/pointcloud.h>
31 #include <core/threading/mutex.h>
32 #include <core/threading/thread.h>
33 #include <plugins/mongodb/aspect/mongodb.h>
36 #include <mongocxx/client.hpp>
37 #include <mongocxx/gridfs/bucket.hpp>
42 namespace firevision {
43 class SharedMemoryImageBuffer;
80 void get_sets(std::set<std::string> &missing_images, std::set<std::string> &unbacked_images);
86 std::string topic_name;
91 std::map<std::string, ImageInfo> imgs_;
95 mongocxx::client * mongodb_;
96 mongocxx::gridfs::bucket gridfs_;
97 std::string collection_;
98 std::string database_;
103 std::vector<std::string> includes_;
104 std::vector<std::string> excludes_;
106 unsigned int cfg_chunk_size_;
107 float cfg_storage_interval_;
ImageInfo representation for JSON transfer.
Thread to export Fawkes images to MongoDB.
virtual void finalize()
Finalize the thread.
virtual void init()
Initialize the thread.
virtual void run()
Stub to see name in backtrace for easier debugging.
MongoLogImagesThread()
Constructor.
virtual bool prepare_finalize_user()
Prepare finalization user implementation.
virtual ~MongoLogImagesThread()
Destructor.
virtual void loop()
Code to execute in the thread.
Thread aspect that allows to obtain the current time from the clock.
Thread aspect to access configuration data.
Thread aspect to log output.
Thread aspect to access MongoDB.
Mutex mutual exclusion lock.
Thread class encapsulation of pthreads.
A class for handling time.
Shared memory image buffer.
Fawkes library namespace.