Peter Johnson
3bc5699ba1
Storage: Provide accessor for global mutex.
2015-07-26 09:42:14 -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
4aa2d65bba
Storage: Use std::forward and emplace for updates.
2015-07-21 22:43:44 -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
21b7acc397
Storage: Make testable, make EntriesMap typedef private.
2015-07-19 16:36:30 -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
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
9ee3070667
Storage: Make entries private, add accessors.
...
Use range-based for in SavePersistent.
Change-Id: If43ed97379114b3bf8a5e95da99103791cd09d4d
2015-07-11 09:33:33 -07:00
Peter Johnson
69e91244f4
Rename make_StringRef to MakeStringRef.
...
Change-Id: I18ca471c6e31f79956bcab9d4405afc355238a8f
2015-07-11 09:33:33 -07:00
Peter Johnson
d7ca3343bc
File renames.
...
Change-Id: I3fa88f94593941a25f65eaabfcbbca2428613e6c
2015-07-11 09:33:33 -07:00