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
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
11
class
AbstractNetworkTableEntryStore
;
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
32
class
WriteManager
:
public
OutgoingEntryReceiver
,
public
PeriodicRunnable
{
33
private
:
34
const
static
size_t
queueSize = 500;
35
36
NTReentrantSemaphore
transactionsLock;
37
38
NTThread
* thread;
39
40
FlushableOutgoingEntryReceiver
& receiver;
41
NTThreadManager
& threadManager;
42
AbstractNetworkTableEntryStore
& entryStore;
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_ */
NTReentrantSemaphore
Definition:
OSAL/Synchronized.h:43
NTThreadManager
Definition:
NTThreadManager.h:22
WriteManager::stop
void stop()
Definition:
WriteManager.cpp:46
WriteManager
Definition:
WriteManager.h:32
FlushableOutgoingEntryReceiver
Definition:
FlushableOutgoingEntryReceiver.h:15
WriteManager::start
void start()
Definition:
WriteManager.cpp:39
AbstractNetworkTableEntryStore
Definition:
AbstractNetworkTableEntryStore.h:36
WriteManager::WriteManager
WriteManager(FlushableOutgoingEntryReceiver &receiver, NTThreadManager &threadManager, AbstractNetworkTableEntryStore &entryStore, unsigned long keepAliveDelay)
Definition:
WriteManager.cpp:15
OutgoingEntryReceiver
Definition:
OutgoingEntryReceiver.h:17
PeriodicRunnable
Definition:
PeriodicRunnable.h:17
WriteManager::run
void run()
Definition:
WriteManager.cpp:80
NTThread
Definition:
NTThread.h:16
NetworkTableEntry
Definition:
NetworkTableEntry.h:30
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.