8 #include "networktables/NetworkTableSubListenerAdapter.h"
19 prefix(_prefix), targetSource(_targetSource), targetListener(_targetListener){}
21 NetworkTableSubListenerAdapter::~NetworkTableSubListenerAdapter(){}
24 if(key.compare(0,prefix.size(),prefix)==0){
25 std::string relativeKey = key.substr(prefix.length()+1);
27 for(
unsigned int i = 0; i<relativeKey.length(); ++i){
28 if(relativeKey.at(i)==NetworkTable::PATH_SEPARATOR_CHAR){
34 std::string subTableKey = relativeKey.substr(0, endSubTable);
35 if(notifiedTables.find(subTableKey)==notifiedTables.end()){
36 notifiedTables.insert(subTableKey);
38 eValue.ptr = targetSource->
GetSubTable(subTableKey);
39 targetListener->
ValueChanged(targetSource, subTableKey, eValue,
true);
NetworkTable * GetSubTable(std::string key)
void ValueChanged(ITable *source, const std::string &key, EntryValue value, bool isNew)
virtual void ValueChanged(ITable *source, const std::string &key, EntryValue value, bool isNew)=0
NetworkTableSubListenerAdapter(std::string &prefix, NetworkTable *targetSource, ITableListener *targetListener)