Libs/Analyze/MeshWorkQueue.h
Namespaces
Name |
---|
shapeworks User usage reporting (telemetry) |
Classes
Name | |
---|---|
class | shapeworks::MeshWorkItem Provides concurrent access to a list of shapes to work needing reconstruction. |
class | shapeworks::MeshWorkQueue |
Functions
Name | |
---|---|
Q_DECLARE_METATYPE(shapeworks::MeshWorkItem ) |
Functions Documentation
function Q_DECLARE_METATYPE
Q_DECLARE_METATYPE(
shapeworks::MeshWorkItem
)
Source code
#pragma once
// stl
#include <list>
// qt
#include <QMetaType>
#include <QMutex>
// eigen
#include <Eigen/Eigen>
namespace shapeworks {
class MeshWorkItem {
public:
std::string filename;
Eigen::VectorXd points;
int domain{0};
size_t memory_size{0};
friend bool operator<(const MeshWorkItem &a, const MeshWorkItem &b);
friend bool operator==(const MeshWorkItem &a, const MeshWorkItem &b);
};
class MeshWorkQueue {
public:
using WorkList = std::list<MeshWorkItem>;
MeshWorkQueue();
~MeshWorkQueue();
void push(const MeshWorkItem &item);
MeshWorkItem *get_next_work_item();
bool is_inside(const MeshWorkItem &item);
void remove(const MeshWorkItem &item);
bool is_empty();
int size();
private:
bool in_inside_list(const MeshWorkItem &item, const WorkList &list);
// for concurrent access
QMutex mutex_;
WorkList work_list_;
WorkList processing_list_;
};
} // namespace shapeworks
Q_DECLARE_METATYPE(shapeworks::MeshWorkItem);
Updated on 2024-03-17 at 12:58:44 -0600