Now you can download a copy of these docs so you can use them offline! Download now
WriteManager.h
1 /*
2  * WriteManager.h
3  *
4  * Created on: Sep 25, 2012
5  * Author: Mitchell Wills
6  */
7 
8 #ifndef WRITEMANAGER_H_
9 #define WRITEMANAGER_H_
10 
12 class WriteManager;
13 
14 
15 #include "networktables2/thread/PeriodicRunnable.h"
16 #include "networktables2/OutgoingEntryReceiver.h"
17 #include "networktables2/thread/NTThread.h"
18 #include "networktables2/thread/NTThreadManager.h"
19 #include "networktables2/FlushableOutgoingEntryReceiver.h"
20 #include "networktables2/NetworkTableEntry.h"
21 #include <queue>
22 #include "OSAL/Synchronized.h"
23 
24 
25 
33 private:
34  const static size_t queueSize = 500;
35 
36  NTReentrantSemaphore transactionsLock;
37 
38  NTThread* thread;
39 
41  NTThreadManager& threadManager;
43 
44  unsigned long keepAliveDelay;
45 
46  volatile std::queue<NetworkTableEntry*>* incomingAssignmentQueue;
47  volatile std::queue<NetworkTableEntry*>* incomingUpdateQueue;
48  volatile std::queue<NetworkTableEntry*>* outgoingAssignmentQueue;
49  volatile std::queue<NetworkTableEntry*>* outgoingUpdateQueue;
50 
51  unsigned long lastWrite;
52 
53 
54 public:
62  WriteManager(FlushableOutgoingEntryReceiver& receiver, NTThreadManager& threadManager, AbstractNetworkTableEntryStore& entryStore, unsigned long keepAliveDelay);
63  virtual ~WriteManager();
67  void start();
71  void stop();
72 
73 
74  void offerOutgoingAssignment(NetworkTableEntry* entry);
75 
76 
77  void offerOutgoingUpdate(NetworkTableEntry* entry);
78 
79 
83  void run();
84 
85 };
86 
87 #endif /* WRITEMANAGER_H_ */
WriteManager(FlushableOutgoingEntryReceiver &receiver, NTThreadManager &threadManager, AbstractNetworkTableEntryStore &entryStore, unsigned long keepAliveDelay)

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