Program Listing for File Synchronizer.h
↰ Return to documentation for file (include/mola_kernel/utils/Synchronizer.h)
/* -------------------------------------------------------------------------
* A Modular Optimization framework for Localization and mApping (MOLA)
* Copyright (C) 2018-2025 Jose Luis Blanco, University of Almeria
* See LICENSE for license information.
* ------------------------------------------------------------------------- */
#pragma once
#include <mrpt/obs/obs_frwds.h>
#include <map>
#include <memory>
#include <optional>
#include <set>
#include <string>
namespace mola
{
class Synchronizer
{
public:
Synchronizer() = default;
struct Parameters
{
Parameters() = default;
double window_length = 2.0;
double synchronization_tolerance = 0.05;
std::size_t minimum_observation_count = 2;
std::set<std::string> expected_observation_labels;
};
Parameters parameters;
using NamedObservationSet = std::map<std::string, std::shared_ptr<mrpt::obs::CObservation>>;
void add(const std::shared_ptr<mrpt::obs::CObservation>& obs);
std::optional<NamedObservationSet> getObservationGroup();
void clear();
private:
std::map<double, NamedObservationSet> buffer_;
};
} // namespace mola