Peter Johnson
6bccf528d7
ITableListener.h: Forward declare ITable.
2015-07-23 21:41:30 -07:00
Peter Johnson
1fc03803cd
ITableListener::ValueChanged: Don't make key const.
2015-07-23 21:40:24 -07:00
Peter Johnson
8fa0e6c914
Add shims for old NetworkTable interface.
...
This provides classes for virtual subtables using path delimiters within
the global NetworkTable namespace.
2015-07-23 01:23:09 -07:00
Peter Johnson
6f940bcaaf
Add immediate_notify and is_new to entry listener.
...
On the callback function, is_new indicates the value is newly added.
On adding a callback function, immediate_notify indicates the callback
should be called once (with is_new=true) for each matching entry that
already exists.
2015-07-23 01:02:53 -07:00
Peter Johnson
79f732f239
Import llvm::SmallString and dependencies.
...
Update StringRef and StringExtras with SmallVector functions.
2015-07-22 22:29:46 -07:00
Peter Johnson
593bc28446
Move StringMap.h and StringExtras.h to public includes.
...
While these aren't required by the public interface, they are generally
useful classes for users of the library.
2015-07-22 22:10:56 -07:00
Peter Johnson
9c204533e8
Value: Disambiguate std::string&& and StringRef.
...
Making the former a template causes the compiler to prefer the latter
when given a bare C string.
2015-07-22 22:08:13 -07:00
Peter Johnson
4c14f7823a
ntcore_cpp.h: Comment cleanup.
2015-07-22 21:41:25 -07:00
Peter Johnson
4aa2d65bba
Storage: Use std::forward and emplace for updates.
2015-07-21 22:43:44 -07:00
Peter Johnson
bb5848a033
ConcurrentQueue: Add emplace function.
...
Also use std::forward for rvalue push.
2015-07-21 22:43:02 -07:00
Peter Johnson
9f728b850e
Add MSVC specific compiler flags.
2015-07-21 21:14:22 -07:00
Peter Johnson
b4c65dc210
Make global instance init thread-safe.
...
Use local statics except for Visual C++ < 2015.
2015-07-20 23:36:22 -07:00
Peter Johnson
5df62ac172
Storage: Disable use of update queue by default.
...
This ensures we don't "leak" memory for local use when the dispatch thread
is not running.
2015-07-20 22:24:47 -07:00
Peter Johnson
0979c1c9ca
Storage, NetworkConnection: Don't in-place construct atomics.
...
Visual C++ 2013 doesn't support this.
2015-07-20 20:52:26 -07:00
Peter Johnson
8bbe5f9fdb
ArrayRef: Add portability checks for constexpr.
2015-07-20 20:49:49 -07:00
Peter Johnson
3cd3d1691e
Message: Use #define instead of constexpr.
2015-07-20 20:34:19 -07:00
Peter Johnson
6b2fb02bed
Dispatcher: Don't in-place construct atomics.
...
Visual C++ 2013 doesn't support this.
2015-07-20 20:21:37 -07:00
Peter Johnson
8938a19810
Dispatcher: Avoid warning by using for(;;) instead of while(true).
2015-07-20 20:20:01 -07:00
Peter Johnson
158ae61811
Dispatcher::SetUpdateRate(): Explicitly convert to int.
2015-07-20 20:19:01 -07:00
Peter Johnson
98d45777c6
Remove unnecessary llvm qualifier.
2015-07-20 00:19:20 -07:00
Peter Johnson
d059022071
Add logging to TODO.
2015-07-19 23:52:12 -07:00
Peter Johnson
c9260ea785
Change GetEntryTypeFunc to std::function.
...
Also implement it as a member function of Dispatcher.
2015-07-19 23:17:14 -07:00
Peter Johnson
c9ca2f902e
Add TODO list.
2015-07-19 22:56:48 -07:00
Peter Johnson
29691e0ac5
StorageTest: Add LoadPersistent and SavePersistent coverage.
2015-07-19 22:45:20 -07:00
Peter Johnson
a3fcce891f
LoadPersistent: Fix various bugs.
2015-07-19 22:44:34 -07:00
Peter Johnson
8db016c223
SavePersistent: Sort in name order, fix list commas.
2015-07-19 21:10:20 -07:00
Peter Johnson
b0802f3e26
StorageTest: Add fixture classes, add GetEntryInfo test.
2015-07-19 19:43:27 -07:00
Peter Johnson
e4731a4e4e
Storage::GetEntryInfo: Actually filter on types.
2015-07-19 19:42:13 -07:00
Peter Johnson
67ae9e1ba7
Add initial set of unit tests for Storage.
2015-07-19 18:11:36 -07:00
Peter Johnson
d6afbc56c4
Storage: Delete functions now delete from map.
...
This is ok due to the map storing shared_ptr.
2015-07-19 18:10:26 -07:00
Peter Johnson
ffb54872c0
Storage::SetEntryFlags(): Fix deadlock, check for empty name.
2015-07-19 17:50:31 -07:00
Peter Johnson
ead6b4960f
Storage: Use make_shared instead of reset.
2015-07-19 16:46:59 -07:00
Peter Johnson
21b7acc397
Storage: Make testable, make EntriesMap typedef private.
2015-07-19 16:36:30 -07:00
Peter Johnson
173111c64c
ConcurrentQueue: Make mutex mutable.
2015-07-19 16:36:08 -07:00
Peter Johnson
cf18355fe2
Unit tests: Prefer constructor to SetUp() in fixtures.
2015-07-19 16:30:04 -07:00
Peter Johnson
1cc148848b
StartServer: Take persist_filename as a StringRef.
2015-07-19 16:11:56 -07:00
Peter Johnson
ec54904347
Tighten up C++ API implementation a bit.
2015-07-19 16:09:59 -07:00
Peter Johnson
0a18d2e57b
Storage: Make individual entries thread safe.
...
Also use shared_ptr to refer to entries rather than names.
2015-07-19 16:02:21 -07:00
Peter Johnson
c08e2ed8fc
ConcurrentQueue: Add size() function.
2015-07-18 01:32:21 -07:00
Peter Johnson
2437f06c7f
Implement majority of Storage functionality.
...
It's also now thread-safe.
2015-07-18 01:29:51 -07:00
Peter Johnson
9b7e265762
Continue implementing client.
2015-07-18 01:29:24 -07:00
Peter Johnson
c4a7f6ec9b
SavePersistent: Safely save through temp file.
...
Also change SavePersistent and LoadPersistent to take StringRef.
2015-07-18 00:39:08 -07:00
Peter Johnson
d05656b716
StorageEntry: Make data public, remove accessors.
...
Also add id and seq_num fields.
2015-07-17 23:41:25 -07:00
Peter Johnson
04789d9ae4
SequenceNumber: Add default constructor.
2015-07-17 23:41:05 -07:00
Peter Johnson
77acf1f35b
Implement Flush() API.
2015-07-17 22:40:00 -07:00
Peter Johnson
412e8034de
Start implementing client and server.
2015-07-17 22:39:36 -07:00
Peter Johnson
a6162ba990
NetworkConnection: Trigger threads as necessary in Stop().
2015-07-17 22:28:47 -07:00
Peter Johnson
7c51178608
TCPAcceptor: Add shutdown() function.
2015-07-17 22:28:13 -07:00
Peter Johnson
899c489124
TCPStream: Shutdown on close.
2015-07-17 22:27:49 -07:00
Peter Johnson
3062e1e740
Message: Add data accessors.
2015-07-17 19:41:40 -07:00