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 = 1ULL * 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::list < 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 91 of file time_cache.h.
typedef std::list<TransformStorage> tf2::TimeCache::L_TransformStorage [private] | 
        
Definition at line 116 of file time_cache.h.
| TimeCache::TimeCache | ( | ros::Duration | max_storage_time = ros::Duration().fromNSec(DEFAULT_MAX_STORAGE_TIME) | ) | 
| void TimeCache::clearList | ( | ) |  [virtual] | 
        
Clear the list of stored values.
Implements tf2::TimeCacheInterface.
| uint8_t TimeCache::findClosest | ( | TransformStorage *& | one, | 
| TransformStorage *& | two, | ||
| ros::Time | target_time, | ||
| std::string * | error_str | ||
| ) |  [inline, private] | 
        
| bool TimeCache::getData | ( | ros::Time | time, | 
| TransformStorage & | data_out, | ||
| std::string * | error_str = 0  | 
        ||
| ) |  [virtual] | 
        
| P_TimeAndFrameID 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 TimeCache::getLatestTimestamp | ( | ) |  [virtual] | 
        
Get the latest timestamp cached.
Implements tf2::TimeCacheInterface.
| unsigned int TimeCache::getListLength | ( | ) |  [virtual] | 
        
Debugging information methods.
Implements tf2::TimeCacheInterface.
| ros::Time TimeCache::getOldestTimestamp | ( | ) |  [virtual] | 
        
Get the oldest timestamp cached.
Implements tf2::TimeCacheInterface.
| CompactFrameID TimeCache::getParent | ( | ros::Time | time, | 
| std::string * | error_str | ||
| ) |  [virtual] | 
        
Retrieve the parent at a specific time.
Implements tf2::TimeCacheInterface.
| bool TimeCache::insertData | ( | const TransformStorage & | new_data | ) |  [virtual] | 
        
Insert data into the cache.
Implements tf2::TimeCacheInterface.
| void TimeCache::interpolate | ( | const TransformStorage & | one, | 
| const TransformStorage & | two, | ||
| ros::Time | time, | ||
| TransformStorage & | output | ||
| ) |  [inline, private] | 
        
| void TimeCache::pruneList | ( | ) |  [private] | 
        
const int64_t tf2::TimeCache::DEFAULT_MAX_STORAGE_TIME = 1ULL * 1000000000LL [static] | 
        
default value of 10 seconds storage
Definition at line 96 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 95 of file time_cache.h.
Definition at line 119 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 94 of file time_cache.h.
L_TransformStorage tf2::TimeCache::storage_ [private] | 
        
Definition at line 117 of file time_cache.h.