Class Pipeline

Class Documentation

class Pipeline

Public Types

using IntegratorMap = std::unordered_map<std::string, std::unique_ptr<IntegratorBase>>
using OperationsArray = std::vector<std::unique_ptr<MapOperationBase>>

Public Functions

inline explicit Pipeline(MapBase::Ptr occupancy_map, std::shared_ptr<ThreadPool> thread_pool = nullptr)
Pipeline(const Pipeline&) = delete
void clear()

Deregister all measurement integrators and map operations.

bool hasIntegrator(const std::string &integrator_name) const

Returns true if an integrator with the given name has been registered.

bool removeIntegrator(const std::string &integrator_name)

Deregister the integrator with the given name. Returns true if it existed.

IntegratorBase *addIntegrator(const std::string &integrator_name, const param::Value &integrator_params)

Create and register a new integrator.

IntegratorBase *addIntegrator(const std::string &integrator_name, std::unique_ptr<IntegratorBase> integrator)

Register the given integrator, transferring ownership.

IntegratorBase *getIntegrator(const std::string &integrator_name)

Get a pointer to the given integrator, returns nullptr if it does not exist.

inline const IntegratorMap &getIntegrators()

Access all registered integrators (read-only)

inline void clearIntegrators()

Deregister all integrators.

MapOperationBase *addOperation(const param::Value &operation_params)

Create and register a new map operation.

MapOperationBase *addOperation(std::unique_ptr<MapOperationBase> operation)

Register the given map operation, transferring ownership.

inline const OperationsArray &getOperations()

Access all registered map operations (read-only)

inline void clearOperations()

Deregister all map operations.

template<typename MeasurementT>
bool runIntegrators(const std::vector<std::string> &integrator_names, const MeasurementT &measurement)

Integrate a given measurement.

void runOperations(bool force_run_all = false)

Run the map operations.

template<typename MeasurementT>
bool runPipeline(const std::vector<std::string> &integrator_names, const MeasurementT &measurement)

Integrate a given measurement, then run the map operations.