MemcachedCluster::MemcachedCluster()
: cluster{Server{
- getenv_else("MEMCACHED_BINARY", "memcached"),
+ MEMCACHED_BINARY,
{random_socket_or_port_arg()}
}}
{
}
MemcachedCluster::MemcachedCluster(Cluster &&cluster_)
-: cluster{forward<Cluster>(cluster_)}
+: cluster{move(cluster_)}
{
init();
}
+MemcachedCluster::MemcachedCluster(MemcachedCluster &&mc)
+ : cluster{Server{}}
+{
+ *this = move(mc);
+}
+
+MemcachedCluster &MemcachedCluster::operator=(MemcachedCluster &&mc) {
+ cluster = move(mc.cluster);
+ memcached_clone(&memc, &mc.memc);
+ returns = ReturnMatcher{&memc};
+ return *this;
+}
+
MemcachedCluster MemcachedCluster::mixed() {
return MemcachedCluster{};
}
MemcachedCluster MemcachedCluster::network() {
return MemcachedCluster{Cluster{Server{
- getenv_else("MEMCACHED_BINARY", "memcached"),
+ MEMCACHED_BINARY,
{"-p", random_socket_or_port_string}
}}};
}
MemcachedCluster MemcachedCluster::socket() {
return MemcachedCluster{Cluster{Server{
- getenv_else("MEMCACHED_BINARY", "memcached"),
+ MEMCACHED_BINARY,
{"-s", random_socket_or_port_string}
}}};
}
REQUIRE(MEMCACHED_SUCCESS == memcached_behavior_set(&memc,
MEMCACHED_BEHAVIOR_BINARY_PROTOCOL, enable));
}
+
+void MemcachedCluster::enableBuffering(bool enable) {
+ REQUIRE(MEMCACHED_SUCCESS == memcached_behavior_set(&memc,
+ MEMCACHED_BEHAVIOR_BUFFER_REQUESTS, enable));
+}
+
+void MemcachedCluster::enableReplication() {
+ REQUIRE(MEMCACHED_SUCCESS == memcached_behavior_set(&memc,
+ MEMCACHED_BEHAVIOR_NUMBER_OF_REPLICAS, memcached_server_count(&memc)));
+}
+