12 namespace SWC {
namespace client {
18 : queues(new Comm::client::ConnQueues(
19 Comm::client::Serialized::Ptr(new Comm::client::Serialized(
27 settings.get<Config::Property::Value_int32_g>(
28 "swc.client.Mngr.connection.timeout"),
29 settings.get<Config::Property::Value_uint16_g>(
30 "swc.client.Mngr.connection.probes"),
31 settings.get<Config::Property::Value_int32_g>(
32 "swc.client.Mngr.connection.keepalive"),
33 settings.get<Config::Property::Value_int32_g>(
34 "swc.client.request.again.delay")
36 groups(Mngr::Groups::Ptr(new Mngr::Groups(settings))->init()),
37 master_ranges_cache(settings) {
43 if(endpoints.
empty()) {
44 groups->select(cid, endpoints);
45 if(endpoints.
empty()) {
46 if(clients->stopping() || !req->valid()) {
47 req->handle_no_conn();
50 clients, cid, req)->run();
55 queues->get(endpoints)->put(req);
63 if(endpoints.
empty()) {
65 if(endpoints.
empty()) {
66 if(clients->stopping() || !req->valid()) {
67 req->handle_no_conn();
75 queues->get(endpoints)->put(req);
94 for(
auto it = cbegin(); it != cend(); ++it) {
107 const int64_t revision) {
110 for(
auto it = cbegin(); it != cend(); ++it) {
116 for(
auto it = begin(); it != cend(); ++it) {
119 it->change(ts, rid, range_begin, range_end, endpoints, revision);
122 insert(it, ts, rid, range_begin, range_end, endpoints, revision);
128 push_back(ts, rid, range_begin, range_end, endpoints, revision);
140 for(
auto it = cbegin(); it != cend(); ++it) {
141 if((it->key_begin.empty() || range_end.
empty() ||
145 (it->key_end.empty() || range_begin.
empty() ||
151 offset.
copy(it->key_begin);
152 endpoints = it->endpoints;
153 revision = it->revision;
154 is_end = it->key_end.
empty();
168 for(
auto it = cbegin(); it != cend(); ++it) {
170 if(it->key_end.empty() || key.
empty() ||
176 key_end.
copy(it->key_end);
177 endpoints = it->endpoints;
178 revision = it->revision;