Program Listing for File EntityBase.h
↰ Return to documentation for file (include/mola_kernel/entities/EntityBase.h
)
/* -------------------------------------------------------------------------
* A Modular Optimization framework for Localization and mApping (MOLA)
* Copyright (C) 2018-2024 Jose Luis Blanco, University of Almeria
* See LICENSE for license information.
* ------------------------------------------------------------------------- */
#pragma once
#include <mola_kernel/LazyLoadResource.h>
#include <mola_kernel/id.h>
#include <mrpt/core/Clock.h>
#include <mrpt/serialization/CSerializable.h>
#include <map>
namespace mola
{
using annotations_data_t = std::map<std::string, LazyLoadResource>;
class EntityBase : public mrpt::serialization::CSerializable
{
DEFINE_VIRTUAL_SERIALIZABLE(EntityBase);
public:
EntityBase();
virtual ~EntityBase();
mola::id_t my_id_{mola::INVALID_ID};
mrpt::Clock::time_point timestamp_{};
annotations_data_t annotations_;
void load();
void unload();
bool is_unloaded() const;
protected:
// Derived classes mus call these methods to serialize the common data in
// this base class:
void baseSerializeTo(mrpt::serialization::CArchive& out) const;
void baseSerializeFrom(mrpt::serialization::CArchive& in);
};
} // namespace mola