Home
Roadside
Carputer
geoHist
software
FRC
Blog
Now you can download a copy of these docs so you can use them offline!
Download now
Main Page
Related Pages
Classes
Files
File List
networktables2
AbstractNetworkTableEntryStore.h
1
/*
2
* AbstractNetworkTableEntryStore.h
3
*
4
* Created on: Sep 16, 2012
5
* Author: Mitchell Wills
6
*/
7
8
#ifndef ABSTRACTNETWORKTABLEENTRYSTORE_H_
9
#define ABSTRACTNETWORKTABLEENTRYSTORE_H_
10
11
12
13
class
TableListenerManager
;
14
class
AbstractNetworkTableEntryStore
;
15
16
17
#include "OSAL/Synchronized.h"
18
#include <string>
19
#include "networktables2/NetworkTableEntry.h"
20
#include "networktables2/IncomingEntryReceiver.h"
21
#include "networktables2/OutgoingEntryReceiver.h"
22
#include "networktables2/type/NetworkTableEntryType.h"
23
#include "tables/ITable.h"
24
#include "tables/ITableListener.h"
25
#include <map>
26
#include <vector>
27
28
29
30
class
TableListenerManager
{
31
public
:
32
virtual
~
TableListenerManager
(){}
33
virtual
void
FireTableListeners(std::string& name,
EntryValue
value,
bool
isNew) = 0;
34
};
35
36
class
AbstractNetworkTableEntryStore
:
public
IncomingEntryReceiver
{
37
protected
:
38
std::map<EntryId,NetworkTableEntry*> idEntries;
39
std::map<std::string,NetworkTableEntry*> namedEntries;
40
TableListenerManager
& listenerManager;
41
42
AbstractNetworkTableEntryStore
(
TableListenerManager
& lstnManager);
43
44
OutgoingEntryReceiver
* outgoingReceiver;
45
OutgoingEntryReceiver
* incomingReceiver;
46
47
48
49
virtual
bool
addEntry(
NetworkTableEntry
* entry) = 0;
50
virtual
bool
updateEntry(
NetworkTableEntry
* entry, SequenceNumber sequenceNumber,
EntryValue
value) = 0;
51
52
public
:
53
virtual
~
AbstractNetworkTableEntryStore
();
54
55
NTReentrantSemaphore
LOCK;
56
NetworkTableEntry
* GetEntry(EntryId entryId);
57
NetworkTableEntry
* GetEntry(std::string& name);
58
59
std::vector<std::string>* keys();
60
void
clearEntries
();
61
void
clearIds
();
62
63
void
SetOutgoingReceiver(
OutgoingEntryReceiver
* receiver);
64
void
SetIncomingReceiver(
OutgoingEntryReceiver
* receiver);
65
66
void
PutOutgoing
(std::string& name,
NetworkTableEntryType
* type,
EntryValue
value);
67
void
PutOutgoing
(
NetworkTableEntry
* tableEntry,
EntryValue
value);
68
69
70
void
offerIncomingAssignment(
NetworkTableEntry
* entry);
71
void
offerIncomingUpdate(
NetworkTableEntry
* entry, EntryId sequenceNumber,
EntryValue
value);
72
73
void
notifyEntries
(
ITable
* table,
ITableListener
* listener);
74
75
};
76
77
78
#endif
/* ABSTRACTNETWORKTABLEENTRYSTORE_H_ */
AbstractNetworkTableEntryStore::notifyEntries
void notifyEntries(ITable *table, ITableListener *listener)
Definition:
AbstractNetworkTableEntryStore.cpp:204
NTReentrantSemaphore
Definition:
OSAL/Synchronized.h:43
IncomingEntryReceiver
Definition:
IncomingEntryReceiver.h:14
ITable
Definition:
ITable.h:26
NetworkTableEntryType
Definition:
NetworkTableEntryType.h:33
AbstractNetworkTableEntryStore
Definition:
AbstractNetworkTableEntryStore.h:36
OutgoingEntryReceiver
Definition:
OutgoingEntryReceiver.h:17
AbstractNetworkTableEntryStore::PutOutgoing
void PutOutgoing(std::string &name, NetworkTableEntryType *type, EntryValue value)
Definition:
AbstractNetworkTableEntryStore.cpp:120
NetworkTableEntry
Definition:
NetworkTableEntry.h:30
AbstractNetworkTableEntryStore::clearIds
void clearIds()
Definition:
AbstractNetworkTableEntryStore.cpp:89
TableListenerManager
Definition:
AbstractNetworkTableEntryStore.h:30
EntryValue
Definition:
ITable.h:13
ITableListener
Definition:
ITableListener.h:26
AbstractNetworkTableEntryStore::clearEntries
void clearEntries()
Definition:
AbstractNetworkTableEntryStore.cpp:78
Generated on Sat Apr 26 2014 12:26:45 for WPILibC++ by
1.8.6
© 2006-2009 Dustin Spicuzza. All rights reserved.
Powered by Onnac
I do not condone or encourage graffiti. Please paint responsibly.