|
An entity over a period of time. More...
#include <RobotAPI/libraries/armem/core/base/EntityBase.h>
Classes | |
struct | UpdateResult |
Public Types | |
using | ChildT = EntitySnapshotT |
using | EntityInstanceT = typename EntitySnapshotT::EntityInstanceT |
using | EntitySnapshotT = _EntitySnapshotT |
![]() | |
using | ContainerT = std::map< Time, _EntitySnapshotT > |
using | DerivedT = _Derived |
Public Member Functions | |
EntitySnapshotT & | addSnapshot (const EntitySnapshotT &snapshot) |
Copy and insert a snapshot. More... | |
EntitySnapshotT & | addSnapshot (const Time ×tamp) |
Add a snapshot at the given time. More... | |
template<class... Args> | |
EntitySnapshotT & | addSnapshot (const Time ×tamp, Args... args) |
Insert a snapshot in-place. More... | |
EntitySnapshotT & | addSnapshot (EntitySnapshotT &&snapshot) |
Move and insert a snapshot. More... | |
template<class OtherDerivedT > | |
void | append (const OtherDerivedT &other) |
EntityBase () | |
EntityBase (const EntityBase &other)=default | |
EntityBase (const MemoryID &id) | |
EntityBase (const std::string &name, const MemoryID &parentID={}) | |
EntityBase (EntityBase &&other)=default | |
bool | equalsDeep (const DerivedT &other) const |
EntitySnapshotT * | findFirstSnapshot () |
Return the snapshot with the least recent timestamp. More... | |
const EntitySnapshotT * | findFirstSnapshot () const |
const EntitySnapshotT * | findFirstSnapshotAfter (const Time &time) const |
Return first snapshot after time. More... | |
const EntitySnapshotT * | findFirstSnapshotAfterOrAt (const Time &time) const |
Return first snapshot after or at time. More... | |
auto * | findLatestInstance (int instanceIndex=0) |
const auto * | findLatestInstance (int instanceIndex=0) const |
EntitySnapshotT * | findLatestSnapshot () |
Return the snapshot with the most recent timestamp. More... | |
const EntitySnapshotT * | findLatestSnapshot () const |
const EntitySnapshotT * | findLatestSnapshotBefore (const Time &time) const |
Return the lastest snapshot before time. More... | |
const EntitySnapshotT * | findLatestSnapshotBeforeOrAt (const Time &time) const |
Return the latest snapshot before or at time. More... | |
EntitySnapshotT * | findSnapshot (const MemoryID &snapshotID) |
const EntitySnapshotT * | findSnapshot (const MemoryID &snapshotID) const |
EntitySnapshotT * | findSnapshot (const Time ×tamp) |
const EntitySnapshotT * | findSnapshot (const Time ×tamp) const |
template<class InstanceFunctionT > | |
bool | forEachInstanceIn (const MemoryID &id, InstanceFunctionT &&func) |
template<class InstanceFunctionT > | |
bool | forEachInstanceIn (const MemoryID &id, InstanceFunctionT &&func) const |
template<class SnapshotFunctionT > | |
bool | forEachSnapshot (SnapshotFunctionT &&func) |
template<class SnapshotFunctionT > | |
bool | forEachSnapshot (SnapshotFunctionT &&func) const |
template<class FunctionT > | |
void | forEachSnapshotBefore (const Time &time, FunctionT &&func) const |
Return all snapshots before (excluding) time. More... | |
template<class FunctionT > | |
void | forEachSnapshotBeforeOrAt (const Time &time, FunctionT &&func) const |
Return all snapshots before or at time. More... | |
template<class SnapshotFunctionT > | |
bool | forEachSnapshotIn (const MemoryID &id, SnapshotFunctionT &&func) |
template<class SnapshotFunctionT > | |
bool | forEachSnapshotIn (const MemoryID &id, SnapshotFunctionT &&func) const |
template<class FunctionT > | |
void | forEachSnapshotInIndexRange (long first, long last, FunctionT &&func) const |
Return all snapshots from first to last index. More... | |
template<class FunctionT > | |
void | forEachSnapshotInTimeRange (const Time &min, const Time &max, FunctionT &&func) const |
Return all snapshots between, including, min and max. More... | |
EntitySnapshotT & | getFirstSnapshot () |
Return the snapshot with the least recent timestamp. More... | |
const EntitySnapshotT & | getFirstSnapshot () const |
Time | getFirstTimestamp () const |
Get the oldest timestamp. More... | |
std::string | getKeyString () const |
Time | getLatestTimestamp () const |
Get the latest timestamp. More... | |
EntitySnapshotT & | getSnapshot (const MemoryID &snapshotID) |
const EntitySnapshotT & | getSnapshot (const MemoryID &snapshotID) const |
EntitySnapshotT & | getSnapshot (const Time &time) |
Get a snapshot. More... | |
const EntitySnapshotT & | getSnapshot (const Time &time) const |
std::vector< Time > | getTimestamps () const |
Get all timestamps in the history. More... | |
bool | hasSnapshot (const MemoryID &snapshotID) const |
Indicate whether a snapshot with the given ID exists. More... | |
bool | hasSnapshot (const Time &time) const |
Indicate whether a snapshot at the given time exists. More... | |
bool | hasSnapshots () const |
Indicate whether the entity has any snapshots. More... | |
std::string & | name () |
const std::string & | name () const |
EntityBase & | operator= (const EntityBase &other)=default |
EntityBase & | operator= (EntityBase &&other)=default |
UpdateResult | update (const EntityUpdate &update) |
Add the given update to this entity's history. More... | |
![]() | |
ContainerT::iterator | begin () |
ContainerT::const_iterator | begin () const |
void | clear () |
bool | empty () const |
ContainerT::iterator | end () |
ContainerT::const_iterator | end () const |
bool | forEachChild (ChildFunctionT &&func) |
bool | forEachChild (ChildFunctionT &&func) const |
MemoryContainerBase () | |
MemoryContainerBase (const MemoryContainerBase &other)=default | |
MemoryContainerBase (const MemoryID &id) | |
MemoryContainerBase (MemoryContainerBase &&other)=default | |
MemoryContainerBase & | operator= (const MemoryContainerBase &other)=default |
MemoryContainerBase & | operator= (MemoryContainerBase &&other)=default |
std::size_t | size () const |
![]() | |
MemoryID & | id () |
const MemoryID & | id () const |
MemoryItem () | |
MemoryItem (const MemoryID &id) | |
MemoryItem (const MemoryItem &other)=default | |
MemoryItem (MemoryItem &&other)=default | |
MemoryItem & | operator= (const MemoryItem &other)=default |
MemoryItem & | operator= (MemoryItem &&other)=default |
![]() | |
bool | forEachInstance (InstanceFunctionT &&func) |
bool | forEachInstance (InstanceFunctionT &&func) const |
bool | forEachInstanceAs (AronDtoFunctionT &&func) const |
Call func on the data of each instance converted to Aron DTO class. More... | |
bool | forEachInstanceWithDataAs (EntityInstanceBaseAronDtoFunctionT &&func) const |
Call func on each instance with its data converted to Aron DTO class. More... | |
![]() | |
auto * | findInstance (const MemoryID &instanceID) |
Find an entity instance. More... | |
const auto * | findInstance (const MemoryID &instanceID) const |
auto & | getInstance (const MemoryID &instanceID) |
Retrieve an entity instance. More... | |
const auto & | getInstance (const MemoryID &instanceID) const |
bool | hasInstance (const MemoryID &instanceID) const |
Indicate whether this container has an instance with the given ID. More... | |
bool | hasInstances () const |
Indicate whether this container contains at least one entity instance. More... | |
![]() | |
auto & | getLatestInstance (int instanceIndex=0) |
Retrieve the latest entity instance. More... | |
const auto & | getLatestInstance (int instanceIndex=0) const |
![]() | |
auto & | getLatestSnapshot (int snapshotIndex=0) |
Retrieve the latest entity snapshot. More... | |
const auto & | getLatestSnapshot (int snapshotIndex=0) const |
Static Public Member Functions | |
static std::string | getLevelName () |
Additional Inherited Members | |
![]() | |
ChildT & | _addChild (const KeyT &key, ChildArgs... childArgs) |
void | _checkContainerName (const std::string &gottenName, const std::string &actualName, bool emptyOk=true) const |
DerivedT & | _derived () |
const DerivedT & | _derived () const |
ContainerT & | container () |
const ContainerT & | container () const |
![]() | |
~MemoryItem () | |
![]() | |
ContainerT | _container |
![]() | |
MemoryID | _id |
An entity over a period of time.
An entity should be a physical thing or abstract concept existing (and potentially evolving) over time.
Examples are:
At each point in time (EntitySnapshot
), the entity can have a (potentially variable) number of instances (EntityInstance
), each containing a single AronData
object of a specific AronType
.
Definition at line 43 of file EntityBase.h.
using ChildT = EntitySnapshotT |
Definition at line 59 of file EntityBase.h.
using EntityInstanceT = typename EntitySnapshotT::EntityInstanceT |
Definition at line 57 of file EntityBase.h.
using EntitySnapshotT = _EntitySnapshotT |
Definition at line 56 of file EntityBase.h.
|
inline |
Definition at line 71 of file EntityBase.h.
|
inlineexplicit |
Definition at line 75 of file EntityBase.h.
|
inlineexplicit |
Definition at line 80 of file EntityBase.h.
|
default |
|
default |
|
inline |
Copy and insert a snapshot.
Definition at line 636 of file EntityBase.h.
|
inline |
Add a snapshot at the given time.
Definition at line 629 of file EntityBase.h.
|
inline |
Insert a snapshot in-place.
Definition at line 652 of file EntityBase.h.
|
inline |
Move and insert a snapshot.
Definition at line 643 of file EntityBase.h.
|
inline |
Definition at line 608 of file EntityBase.h.
|
inline |
Definition at line 662 of file EntityBase.h.
|
inline |
Return the snapshot with the least recent timestamp.
Definition at line 244 of file EntityBase.h.
|
inline |
Definition at line 250 of file EntityBase.h.
|
inline |
Return first snapshot after time.
time | The time. |
Definition at line 349 of file EntityBase.h.
|
inline |
Return first snapshot after or at time.
time | The time. |
Definition at line 330 of file EntityBase.h.
|
inline |
|
inline |
Definition at line 362 of file EntityBase.h.
|
inline |
Return the snapshot with the most recent timestamp.
Definition at line 228 of file EntityBase.h.
|
inline |
Definition at line 234 of file EntityBase.h.
|
inline |
Return the lastest snapshot before time.
time | The time. |
Definition at line 286 of file EntityBase.h.
|
inline |
Return the latest snapshot before or at time.
time | The time. |
Definition at line 319 of file EntityBase.h.
|
inline |
Definition at line 170 of file EntityBase.h.
|
inline |
Definition at line 177 of file EntityBase.h.
|
inline |
|
inline |
Definition at line 135 of file EntityBase.h.
|
inline |
func | Function like void process(EntityInstanceT& instance)> |
Definition at line 538 of file EntityBase.h.
|
inline |
func | Function like void process(EntityInstanceT& instance)> |
Definition at line 553 of file EntityBase.h.
|
inline |
func | Function like: bool process(EntitySnapshotT& snapshot) |
Definition at line 390 of file EntityBase.h.
|
inline |
func | Function like void process(const EntitySnapshotT& snapshot) |
Definition at line 400 of file EntityBase.h.
|
inline |
Return all snapshots before (excluding) time.
time | The time. |
Definition at line 442 of file EntityBase.h.
|
inline |
Return all snapshots before or at time.
time | The time. |
Definition at line 464 of file EntityBase.h.
|
inline |
func | Function like: bool process(EntitySnapshotT& snapshot) |
Definition at line 410 of file EntityBase.h.
|
inline |
func | Function like void process(const EntitySnapshotT& snapshot) |
Definition at line 420 of file EntityBase.h.
|
inline |
Return all snapshots from first to last index.
Negative index are counted from the end, e.g. last == -1 results in getting all queries until the end.
first | The first index to include. |
first | The last index to include. |
Definition at line 507 of file EntityBase.h.
|
inline |
Return all snapshots between, including, min and max.
min | The lowest time to include. |
min | The highest time to include. |
Definition at line 477 of file EntityBase.h.
|
inline |
Return the snapshot with the least recent timestamp.
<tt>armem::error::EntityHistoryEmpty</tt> | If the history is empty. |
Definition at line 261 of file EntityBase.h.
|
inline |
Definition at line 268 of file EntityBase.h.
|
inline |
Get the oldest timestamp.
<tt>armem::error::EntityHistoryEmpty</tt> | If the history is empty. |
Definition at line 218 of file EntityBase.h.
|
inline |
Definition at line 684 of file EntityBase.h.
|
inline |
Get the latest timestamp.
<tt>armem::error::EntityHistoryEmpty</tt> | If the history is empty. |
Definition at line 208 of file EntityBase.h.
|
inlinestatic |
Definition at line 690 of file EntityBase.h.
|
inline |
Definition at line 185 of file EntityBase.h.
|
inline |
Definition at line 192 of file EntityBase.h.
|
inline |
Get a snapshot.
time | The time. |
<tt>armem::error::MissingEntry</tt> | If there is no such entry. |
Definition at line 149 of file EntityBase.h.
|
inline |
Definition at line 159 of file EntityBase.h.
|
inline |
Get all timestamps in the history.
Definition at line 566 of file EntityBase.h.
|
inline |
Indicate whether a snapshot with the given ID exists.
Definition at line 122 of file EntityBase.h.
|
inline |
Indicate whether a snapshot at the given time exists.
Definition at line 114 of file EntityBase.h.
|
inline |
Indicate whether the entity has any snapshots.
Definition at line 106 of file EntityBase.h.
|
inline |
|
inline |
Definition at line 99 of file EntityBase.h.
|
default |
|
default |
|
inline |
Add the given update to this entity's history.
update | The update. |
Definition at line 579 of file EntityBase.h.