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. | |
virtual bool | getData (ros::Time time, TransformStorage &data_out, std::string *error_str=0) |
Virtual methods. | |
virtual P_TimeAndFrameID | getLatestTimeAndParent () |
Get the latest time stored in this cache, and the parent associated with it. Returns parent = 0 if no data. | |
virtual ros::Time | getLatestTimestamp () |
Get the latest timestamp cached. | |
virtual unsigned int | getListLength () |
Debugging information methods. | |
virtual ros::Time | getOldestTimestamp () |
Get the oldest timestamp cached. | |
virtual CompactFrameID | getParent (ros::Time time, std::string *error_str) |
Retrieve the parent at a specific time. | |
virtual bool | insertData (const TransformStorage &new_data) |
Insert data into the cache. | |
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 | |
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. | |
static const int | MIN_INTERPOLATION_DISTANCE = 5 |
Number of nano-seconds to not interpolate below. | |
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. | |
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 94 of file time_cache.h.
typedef std::deque<TransformStorage> tf2::TimeCache::L_TransformStorage [private] |
Definition at line 119 of file time_cache.h.
tf2::TimeCache::TimeCache | ( | ros::Duration | max_storage_time = ros::Duration().fromNSec(DEFAULT_MAX_STORAGE_TIME) | ) |
void tf2::TimeCache::clearList | ( | ) | [virtual] |
Clear the list of stored values.
Implements tf2::TimeCacheInterface.
uint8_t tf2::TimeCache::findClosest | ( | TransformStorage *& | one, |
TransformStorage *& | two, | ||
ros::Time | target_time, | ||
std::string * | error_str | ||
) | [inline, private] |
bool tf2::TimeCache::getData | ( | ros::Time | time, |
TransformStorage & | data_out, | ||
std::string * | error_str = 0 |
||
) | [virtual] |
P_TimeAndFrameID tf2::TimeCache::getLatestTimeAndParent | ( | ) | [virtual] |
Get the latest time stored in this cache, and the parent associated with it. Returns parent = 0 if no data.
Implements tf2::TimeCacheInterface.
ros::Time tf2::TimeCache::getLatestTimestamp | ( | ) | [virtual] |
Get the latest timestamp cached.
Implements tf2::TimeCacheInterface.
unsigned int tf2::TimeCache::getListLength | ( | ) | [virtual] |
Debugging information methods.
Implements tf2::TimeCacheInterface.
ros::Time tf2::TimeCache::getOldestTimestamp | ( | ) | [virtual] |
Get the oldest timestamp cached.
Implements tf2::TimeCacheInterface.
CompactFrameID tf2::TimeCache::getParent | ( | ros::Time | time, |
std::string * | error_str | ||
) | [virtual] |
Retrieve the parent at a specific time.
Implements tf2::TimeCacheInterface.
bool tf2::TimeCache::insertData | ( | const TransformStorage & | new_data | ) | [virtual] |
Insert data into the cache.
Implements tf2::TimeCacheInterface.
void tf2::TimeCache::interpolate | ( | const TransformStorage & | one, |
const TransformStorage & | two, | ||
ros::Time | time, | ||
TransformStorage & | output | ||
) | [inline, private] |
void tf2::TimeCache::pruneList | ( | ) | [private] |
const int64_t tf2::TimeCache::DEFAULT_MAX_STORAGE_TIME = 10ULL * 1000000000LL [static] |
default value of 10 seconds storage
Definition at line 99 of file time_cache.h.
const unsigned int tf2::TimeCache::MAX_LENGTH_LINKED_LIST = 1000000 [static] |
Maximum length of linked list, to make sure not to be able to use unlimited memory.
Definition at line 98 of file time_cache.h.
Definition at line 122 of file time_cache.h.
const int tf2::TimeCache::MIN_INTERPOLATION_DISTANCE = 5 [static] |
Number of nano-seconds to not interpolate below.
Definition at line 97 of file time_cache.h.
L_TransformStorage tf2::TimeCache::storage_ [private] |
Definition at line 120 of file time_cache.h.