A class to keep a sorted linked list in time This builds and maintains a list of timestamped data. And provides lookup functions to get data out as a function of time. More...
#include <time_cache.h>

Public Member Functions | |
| virtual void | clearList () |
| Clear the list of stored values. More... | |
| virtual bool | getData (ros::Time time, TransformStorage &data_out, std::string *error_str=0) |
| Virtual methods. More... | |
| virtual P_TimeAndFrameID | getLatestTimeAndParent () |
| Get the latest time stored in this cache, and the parent associated with it. Returns parent = 0 if no data. More... | |
| virtual ros::Time | getLatestTimestamp () |
| Get the latest timestamp cached. More... | |
| virtual unsigned int | getListLength () |
| Debugging information methods. More... | |
| virtual ros::Time | getOldestTimestamp () |
| Get the oldest timestamp cached. More... | |
| virtual CompactFrameID | getParent (ros::Time time, std::string *error_str) |
| Retrieve the parent at a specific time. More... | |
| virtual bool | insertData (const TransformStorage &new_data, std::string *error_str=0) |
| Insert data into the cache. More... | |
| TimeCache (ros::Duration max_storage_time=ros::Duration().fromNSec(DEFAULT_MAX_STORAGE_TIME)) | |
Static Public Attributes | |
| static const int64_t | DEFAULT_MAX_STORAGE_TIME = 10ULL * 1000000000LL |
| default value of 10 seconds storage More... | |
| static const unsigned int | MAX_LENGTH_LINKED_LIST = 1000000 |
| Maximum length of linked list, to make sure not to be able to use unlimited memory. More... | |
| static const int | MIN_INTERPOLATION_DISTANCE = 5 |
| Number of nano-seconds to not interpolate below. More... | |
Private Types | |
| typedef std::deque< TransformStorage > | L_TransformStorage |
Private Member Functions | |
| uint8_t | findClosest (TransformStorage *&one, TransformStorage *&two, ros::Time target_time, std::string *error_str) |
| A helper function for getData. More... | |
| void | interpolate (const TransformStorage &one, const TransformStorage &two, ros::Time time, TransformStorage &output) |
| void | pruneList () |
Private Attributes | |
| ros::Duration | max_storage_time_ |
| L_TransformStorage | storage_ |
A class to keep a sorted linked list in time This builds and maintains a list of timestamped data. And provides lookup functions to get data out as a function of time.
Definition at line 92 of file time_cache.h.
|
private |
Definition at line 117 of file time_cache.h.
| tf2::TimeCache::TimeCache | ( | ros::Duration | max_storage_time = ros::Duration().fromNSec(DEFAULT_MAX_STORAGE_TIME) | ) |
|
virtual |
Clear the list of stored values.
Implements tf2::TimeCacheInterface.
|
inlineprivate |
|
virtual |
|
virtual |
Get the latest time stored in this cache, and the parent associated with it. Returns parent = 0 if no data.
Implements tf2::TimeCacheInterface.
|
virtual |
Get the latest timestamp cached.
Implements tf2::TimeCacheInterface.
|
virtual |
Debugging information methods.
Implements tf2::TimeCacheInterface.
|
virtual |
Get the oldest timestamp cached.
Implements tf2::TimeCacheInterface.
|
virtual |
Retrieve the parent at a specific time.
Implements tf2::TimeCacheInterface.
|
virtual |
Insert data into the cache.
Implements tf2::TimeCacheInterface.
|
inlineprivate |
|
static |
default value of 10 seconds storage
Definition at line 97 of file time_cache.h.
|
static |
Maximum length of linked list, to make sure not to be able to use unlimited memory.
Definition at line 96 of file time_cache.h.
|
private |
Definition at line 120 of file time_cache.h.
|
static |
Number of nano-seconds to not interpolate below.
Definition at line 95 of file time_cache.h.
|
private |
Definition at line 118 of file time_cache.h.