Now you can download a copy of these docs so you can use them offline! Download now
ClientNetworkTableEntryStore.cpp
1 /*
2  * ClientNetworkTableEntryStore.cpp
3  *
4  * Created on: Nov 2, 2012
5  * Author: Mitchell Wills
6  */
7 
8 #include "networktables2/client/ClientNetworkTableEntryStore.h"
9 
16 ClientNetworkTableEntryStore::~ClientNetworkTableEntryStore(){}
17 
18 bool ClientNetworkTableEntryStore::addEntry(NetworkTableEntry* newEntry){
19  {
20  NTSynchronized sync(LOCK);
21  NetworkTableEntry* entry = (NetworkTableEntry*)namedEntries[newEntry->name];
22 
23  if(entry!=NULL){
24  if(entry->GetId()!=newEntry->GetId()){
25  idEntries.erase(entry->GetId());
26  if(newEntry->GetId()!=NetworkTableEntry::UNKNOWN_ID){
27  entry->SetId(newEntry->GetId());
28  idEntries[newEntry->GetId()] = entry;
29  }
30  }
31 
32  entry->ForcePut(newEntry->GetSequenceNumber(), newEntry->GetType(), newEntry->GetValue());
33  }
34  else{
35  if(newEntry->GetId()!=NetworkTableEntry::UNKNOWN_ID)
36  idEntries[newEntry->GetId()] = newEntry;
37  namedEntries[newEntry->name] = newEntry;
38  }
39  }
40  return true;
41 }
42 
43 bool ClientNetworkTableEntryStore::updateEntry(NetworkTableEntry* entry, SequenceNumber sequenceNumber, EntryValue value) {
44  {
45  NTSynchronized sync(LOCK);
46  entry->ForcePut(sequenceNumber, value);
47  if(entry->GetId()==NetworkTableEntry::UNKNOWN_ID){
48  return false;
49  }
50  return true;
51  }
52 }
53 
60  {
61  NTSynchronized sync(LOCK);
62  std::map<std::string, NetworkTableEntry*>::iterator itr;
63  for(itr = namedEntries.begin(); itr != namedEntries.end(); itr++)
64  {
65  NetworkTableEntry* entry = (*itr).second;
66  if(entry->GetId()==NetworkTableEntry::UNKNOWN_ID)
67  connection.sendEntryAssignment(*entry);
68  }
69  connection.flush();
70  }
71 }
ClientNetworkTableEntryStore(TableListenerManager &listenerManager)
void ForcePut(SequenceNumber newSequenceNumber, EntryValue newValue)
static const EntryId UNKNOWN_ID
void sendUnknownEntries(NetworkTableConnection &connection)
SequenceNumber GetSequenceNumber()
void SetId(EntryId id)
Definition: ITable.h:13
std::string name

Generated on Sat Apr 26 2014 12:26:45 for WPILibC++ by doxygen 1.8.6