Tao He
39be27e021
Add a sync variant of lock on async client. ( #163 )
...
Resolves #139 .
Lock is special, as it may cause the thread resources (in the pplx
thread pool) to be exhausted.
Signed-off-by: Tao He <sighingnow@gmail.com>
2022-09-20 21:20:58 +08:00
Tao He
ed7ab08ef7
Limit C++ flags to this library itself.
...
Resolves #159 .
Signed-off-by: Tao He <sighingnow@gmail.com>
2022-09-20 20:11:10 +08:00
Tao He
89ae8a5ee4
Define "NOMINMAX" to ensure `<limits>` works.
...
See also: https://stackoverflow.com/questions/2561368/illegal-token-on-right-side-of
Resolves #149 .
Signed-off-by: Tao He <sighingnow@gmail.com>
2022-08-17 11:34:28 +08:00
Tao He
ca2553e30d
Enable C++11 when testing grpc features. ( #146 )
...
Signed-off-by: Tao He <sighingnow@gmail.com>
2022-07-31 16:58:53 +08:00
Tao He
2ed6cacce9
Add more variants for etcd::Watcher's constructor. ( #144 )
...
* Add more variants for etcd::Watcher's constructor.
* Use ASAN for testing on CI.
* Revert "Use ASAN for testing on CI."
This reverts commit 6ccc2161da .
2022-07-19 20:42:44 +08:00
Tao He
7c9b9e5699
Enable grpc timeout support in keepalive's refresh.
...
Signed-off-by: Tao He <sighingnow@gmail.com>
2022-05-24 00:20:55 +08:00
Tao He
2437a08e72
No timeout for leaserevoke.
...
Signed-off-by: Tao He <sighingnow@gmail.com>
2022-05-23 15:13:47 +08:00
Tao He
e5f1167c69
Implements the timeout feature to the etcd client.
...
Signed-off-by: Tao He <sighingnow@gmail.com>
2022-05-22 22:57:38 +08:00
Tao He
8da8946409
Refactor the implementation of sync-client and async-client.
...
Signed-off-by: Tao He <sighingnow@gmail.com>
2022-05-22 21:42:06 +08:00
Tao He
9a5267286b
Use a explicit copy constructor as we noticed stack-buffer-overflow inside the copy ctor when ASAN is enabled
...
Signed-off-by: Tao He <sighingnow@gmail.com>
2022-04-24 10:30:10 +08:00
Tao He
bd4ec37ff4
Use int64_t for etcd revisions/indexes.
...
Signed-off-by: Tao He <sighingnow@gmail.com>
2022-04-21 18:52:34 +08:00
Tao He
680e8ad5c6
Replace Tabs in sources and README with spaces.
...
Signed-off-by: Tao He <sighingnow@gmail.com>
2022-04-08 20:49:56 +08:00
Tao He
56c7189f92
Revisit the watcher's reconnect functionality.
...
Address #73 , #76 , #117 and #118 .
Signed-off-by: Tao He <sighingnow@gmail.com>
2022-04-08 19:55:31 +08:00
Tao He
f70255c8b0
Revert "Add support to re-activate watcher from wait_callback in watcher async wait."
...
This reverts commit 0467c0eef3 .
2022-04-08 19:55:31 +08:00
Tao He
d4975f84b3
Return complete meta information of HEAD. ( #123 )
...
* Return complete meta information of HEAD.
* Fixes the CI by revisiting the LD_LIBRARY_PATH.
Signed-off-by: Tao He <sighingnow@gmail.com>
2022-04-06 16:01:49 +08:00
David Pastor
0467c0eef3
Add support to re-activate watcher from wait_callback in watcher async wait.
...
Returns wait result when cancelling watcher.
2022-03-29 19:39:04 +08:00
Tao He
345380a83a
Allow specifying the auth token TTL when auth with password. ( #109 )
...
* Allow specifying the auth token TTL when auth with password.
* Fixes.
Resolves #107 .
Signed-off-by: Tao He <sighingnow@gmail.com>
2021-12-22 14:30:45 +08:00
Tao He
405383c0ba
Add a new API to `client.observe()` that accepts a callback.
...
Resolves #108 .
Signed-off-by: Tao He <sighingnow@gmail.com>
2021-12-22 10:30:46 +08:00
Tao He
6a0b6696e5
Fixes the hardcode language standard in CMakeLists.txt.
...
Signed-off-by: Tao He <sighingnow@gmail.com>
2021-12-22 10:16:38 +08:00
Tao He
0d672ffa1c
Accept an `grpc::ChannelArguments` argument in client's constructors. ( #104 )
...
* Accept an `grpc::ChannelArguments` argument in client's constructors.
Resolves #103 .
* Backwards compatibility with Ubuntu 18.04.
Signed-off-by: Tao He <sighingnow@gmail.com>
2021-11-09 00:31:59 +08:00
Matthew Fioravante
bfb56be151
Expose key version in etcd::Value ( #97 )
2021-10-27 12:49:34 +08:00
Matthew Fioravante
1118222b3d
Make revision numbers 64 bit to match proto spec ( #96 )
...
* Make Response::index() 64 bit
* make compact_revision 64 bit
* Make input revision params 64 bit
* make Transaction mod revision 64 bit
* Make Value created and modified index 64 bit
* Fix tests
2021-10-27 10:51:49 +08:00
Tao He
d29e05545d
Implements the put action.
...
Signed-off-by: Tao He <sighingnow@gmail.com>
2021-10-12 10:17:25 +08:00
Matthew Fioravante
e9db91b335
Allow changing Transaction key ( #93 )
...
* Allow changing Transaction key
* Fixes the compilation errors.
Signed-off-by: Matthew Fioravante <fmatthew5876@gmail.com>
Co-authored-by: Tao He <sighingnow@gmail.com>
2021-10-08 11:12:35 +08:00
Tao He
b99dc2024e
Include compact revision for cancelled watch response. ( #91 )
...
Signed-off-by: Tao He <sighingnow@gmail.com>
2021-09-28 11:24:11 +08:00
Tao He
a949dec288
Add an optional `target_name_override` to support multiple-endpoints with SSL. ( #89 )
...
Resolves #87 .
Signed-off-by: Tao He <sighingnow@gmail.com>
2021-09-24 02:41:46 +08:00
Tao He
6eed82a766
Fixes memory leak in shutting down gRPC streams. ( #88 )
...
* Fixes memory leak in shutting down gRPC streams.
Resolve #86 .
Signed-off-by: Tao He <sighingnow@gmail.com>
2021-09-23 14:51:29 +08:00
mszy
d386bb96b0
Removing memory-leak, fixes #83 . ( #85 )
...
Co-authored-by: morgan.szygenda <morgan.szygenda@scle.fr>
2021-09-22 10:50:33 +08:00
Tao He
cda80854eb
Implements "v3election.proto" APIs. ( #84 )
...
Resolves #81 .
Signed-off-by: Tao He <sighingnow@gmail.com>
2021-09-16 00:46:21 +08:00
Tao He
116b49b784
Lint source code, improve the quality and readability. ( #82 )
...
* Lint the source first, prepare for implementing #81 .
Signed-off-by: Tao He <sighingnow@gmail.com>
2021-09-15 14:59:55 +08:00
Tao He
efcecb7731
Add a "head" method on the client the retrieve the latest revision.
...
Signed-off-by: Tao He <sighingnow@gmail.com>
2021-06-16 17:10:32 +08:00
Tao He
68c5626d2c
Keepalive: join the thread outside the background job itself.
...
Fixes #67 , when etcd server stops, the keepalive action will crash.
Signed-off-by: Tao He <sighingnow@gmail.com>
2021-06-15 12:03:35 +08:00
Tao He
230ebfd08b
Avoid duplicate const string tags. ( #62 )
...
On behalf of Asplund, Rickard, thanks!
Signed-off-by: Tao He <sighingnow@gmail.com>
2021-05-28 23:22:32 +08:00
Tao He
e80709418b
Avoid including protobuf & grpc headers in our interface files.
...
Signed-off-by: Tao He <sighingnow@gmail.com>
2021-05-27 22:10:24 +08:00
Tao He
9e77fdb2ee
Fixes lock, and the underlying keepalive implmentation. ( #60 )
...
* Fixes lock, and the underlying keepalive implmentation.
The previous implementation is buggy when a lot of locks happen at the same time,
as the cpprestsdk's threadpool use a fixed number of thread for posix platform:
https://github.com/microsoft/cpprestsdk/blob/master/Release/src/pplx/threadpool.cpp#L198
Signed-off-by: Tao He <sighingnow@gmail.com>
2021-05-21 18:05:35 +08:00
Tao He
bb22ef4d7f
Revert "Wait: wait without callback, otherwise there will be use-after-dtor."
...
This reverts commit 7b16ce6770 .
That patch is invalid.
2021-04-28 17:36:27 +08:00
Tao He
7b16ce6770
Wait: wait without callback, otherwise there will be use-after-dtor.
...
Signed-off-by: Tao He <sighingnow@gmail.com>
2021-04-27 22:24:04 +08:00
Nils Carlson
ad2da0ac7e
Change KeepAlive lease expiry to throw std::out_of_range ( #55 )
...
Update documentation to show different exceptions used by KeepAlive as well.
2021-04-08 10:18:26 +08:00
Tao He
3e30c4c61d
Optimize the implementation of error handling in keep alive. ( #54 )
...
Signed-off-by: Tao He <sighingnow@gmail.com>
2021-04-07 23:20:33 +08:00
Tao He
cee938fb0a
Use UTF-8 char U+0000 as terminate charactor.
...
Allow setting range end as `NULL`, see also #50 .
Signed-off-by: Tao He <sighingnow@gmail.com>
2021-04-07 15:08:51 +08:00
Tao He
62a846d798
Handling (or checking) possible failure in lease's KeepAlive. ( #53 )
...
* Handling (or checking) possible failure in lease's KeepAlive.
* Add documentation.
* Enhance documentations.
Signed-off-by: Tao He <sighingnow@gmail.com>
2021-04-02 17:15:27 +08:00
Tao He
27e6e2ac11
Watch on range by specifying `rang_end`. ( #52 )
...
Follow-up work on #51 , and fixes #50 .
Signed-off-by: Tao He <sighingnow@gmail.com>
2021-04-02 01:34:58 +08:00
Tao He
1b24751b9d
List/delete/watch on exact range. ( #51 )
...
Signed-off-by: Tao He <sighingnow@gmail.com>
2021-04-01 14:50:50 +08:00
rockeet
9339b6dee4
class Value: remove unused code ( #48 )
2021-03-29 18:53:56 +08:00
Tao He
c927b395cb
Set DESTINATION for older versions of CMake.
...
Signed-off-by: Tao He <linzhu.ht@alibaba-inc.com>
2021-03-01 18:11:23 +08:00
Tao He
38366fc5c3
Handle watching on compacted revisions cases.
...
Fixes #43 .
Signed-off-by: Tao He <linzhu.ht@alibaba-inc.com>
2021-02-15 00:13:38 +08:00
Tao He
4f31000cf4
Set a proper upper bound for `ls` request, and remove the default sort options. ( #46 )
...
Signed-off-by: Tao He <linzhu.ht@alibaba-inc.com>
2021-02-12 15:56:09 +08:00
Tao He
c9f82b46d4
Allows specify a lease TTL for lock.
...
Signed-off-by: Tao He <linzhu.ht@alibaba-inc.com>
2021-02-08 11:07:23 +08:00
Tao He
842372d86d
Conformate the C++ compiler on Ubuntu-18.04.
...
Signed-off-by: Tao He <linzhu.ht@alibaba-inc.com>
2021-02-07 01:40:07 +08:00
Tao He
03baacf9ea
Support secure transport and certificate-based authentication. ( #42 )
...
Signed-off-by: Tao He <linzhu.ht@alibaba-inc.com>
2021-02-07 01:35:37 +08:00