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}
}}};
}
MEMCACHED_BEHAVIOR_BINARY_PROTOCOL, enable));
}
-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;
-}
-
-ReturnMatcher &ReturnMatcher::operator=(ReturnMatcher &&rm) {
- memc = exchange(rm.memc, nullptr);
- expected = rm.expected;
- return *this;
-}
-
-bool ReturnMatcher::match(const memcached_return_t &arg) const {
- return arg == expected;
-}
-
-ReturnMatcher ReturnMatcher::success() {
- return ReturnMatcher{memc};
-}
-
-ReturnMatcher ReturnMatcher::operator()(memcached_return_t expected_) {
- return ReturnMatcher{memc, expected_};
+void MemcachedCluster::enableBuffering(bool enable) {
+ REQUIRE(MEMCACHED_SUCCESS == memcached_behavior_set(&memc,
+ MEMCACHED_BEHAVIOR_BUFFER_REQUESTS, enable));
}
-string ReturnMatcher::describe() const {
- return "is " + to_string(expected)
- + "\n actual: " + memcached_last_error_message(memc);
+void MemcachedCluster::enableReplication() {
+ REQUIRE(MEMCACHED_SUCCESS == memcached_behavior_set(&memc,
+ MEMCACHED_BEHAVIOR_NUMBER_OF_REPLICAS, memcached_server_count(&memc)));
}
-ReturnMatcher::ReturnMatcher(ReturnMatcher &&rm) {
- *this = move(rm);
-}