Peter Johnson
fb1b82e239
StorageEntry: Also store copy of name here.
...
This wastes a bit of space but is necessary for assign message generation.
2015-07-26 10:28:20 -07:00
Peter Johnson
18659257d3
Storage: Make setters globally atomic.
...
Previously, setters were locally but not globally atomic because they
used GetEntry() (globally atomic) in conjunction with locally atomic
gets/sets to the StorageEntry. To support synchronizing network handshakes
they need to be globally atomic.
GetEntry() has been removed due to this issue, so a helper was added to
StorageTest instead.
2015-07-26 09:27:23 -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
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
e4731a4e4e
Storage::GetEntryInfo: Actually filter on types.
2015-07-19 19:42:13 -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
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
2437f06c7f
Implement majority of Storage functionality.
...
It's also now thread-safe.
2015-07-18 01:29:51 -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
fcbd2751ba
Provide C++ API. Move all classes to "nt" namespace.
...
The C API is now just simple wrappers around the C++ API.
2015-07-17 07:21:07 -07:00
Peter Johnson
9906116d23
Don't base Value on NT_Value.
...
Also use std::string instead of NT_String.
Conversions to/from the internal structures will be done at the interface.
2015-07-16 01:38:27 -07:00
Peter Johnson
4d3fb3c497
Storage: Use unique_ptr for instance.
2015-07-14 23:15:08 -07:00
Peter Johnson
b66fb68f29
Finish LoadPersistent().
...
Change-Id: I5c4c439dc3d2585f2edae74f78c14f826b091186
2015-07-11 09:33:33 -07:00
Peter Johnson
cb30bb5d70
Rename base64 to Base64.
...
Change-Id: I0dea9f77ca898ab1a278a0b0163418f96f823725
2015-07-11 09:33:33 -07:00
Peter Johnson
40ebb9a844
C++-ify base64 functions.
...
Change-Id: I5cf7a8971b18b7a2700fe8d616733e32fa1e3282
2015-07-11 09:33:33 -07:00
Peter Johnson
b7a87bb6f9
Make StringValue noncopyable.
...
Change-Id: I5b02cf988aaa15c467fa62c96c951d2891bc43db
2015-07-11 09:33:33 -07:00
Peter Johnson
f6deafee22
Add type-safe wrapper around NT_Value and NT_String.
...
Change-Id: Ib7ef5a6de9c8c7a1f5f6432083d1fb38328438dc
2015-07-11 09:33:33 -07:00
Peter Johnson
8d6a0786c8
Move all C api functions to ntcore.cpp.
...
Change-Id: I17b4f5fec30ecd684cf04af2bbd6b7346bfcd683
2015-07-11 09:33:33 -07:00
Peter Johnson
d7ca3343bc
File renames.
...
Change-Id: I3fa88f94593941a25f65eaabfcbbca2428613e6c
2015-07-11 09:33:33 -07:00