travis: kill memcached
[m6w6/libmemcached] / testing / lib / MemcachedCluster.hpp
index 685cf6fbef22564c1ad4625bbb2fc6ed8a4169d2..ee2dfdd2fa91f4ffbd69c1e74542c40fe9a93f7f 100644 (file)
@@ -2,51 +2,8 @@
 
 #include "common.hpp"
 #include "Cluster.hpp"
+#include "ReturnMatcher.hpp"
 
-class ReturnMatcher : public Catch::MatcherBase<memcached_return_t> {
-public:
-  explicit ReturnMatcher(const memcached_st *memc_, memcached_return_t expected_ = MEMCACHED_SUCCESS)
-      : memc{memc_}
-      , expected{expected_}
-  {}
-
-  ReturnMatcher(const ReturnMatcher &) = default;
-  ReturnMatcher &operator = (const ReturnMatcher &) = default;
-
-  ReturnMatcher(ReturnMatcher &&rm) {
-    *this = move(rm);
-  }
-  ReturnMatcher &operator = (ReturnMatcher &&rm) {
-    memc = exchange(rm.memc, nullptr);
-    expected = rm.expected;
-    return *this;
-  }
-
-  bool match(const memcached_return_t &arg) const override {
-    return arg == expected;
-  }
-
-  ReturnMatcher success() {
-    return ReturnMatcher{memc};
-  }
-
-  ReturnMatcher operator () (memcached_return_t expected_) {
-    return ReturnMatcher{memc, expected_};
-  }
-
-protected:
-  string describe() const override {
-    return string{"is "}
-           + to_string(expected)
-           + " (" + memcached_strerror(memc, expected) + ") "
-           + "\n\tlast error: "
-      + memcached_last_error_message(memc);
-  }
-
-private:
-  const memcached_st *memc;
-  memcached_return_t expected;
-};
 
 class MemcachedCluster {
 public:
@@ -62,20 +19,12 @@ public:
   MemcachedCluster(const MemcachedCluster &) = delete;
   MemcachedCluster &operator=(const MemcachedCluster &) = delete;
 
-  MemcachedCluster(MemcachedCluster &&mc)
-  : cluster{Server{}}
-  {
-    *this = move(mc);
-  };
-  MemcachedCluster &operator=(MemcachedCluster &&mc)
-  {
-    cluster = move(mc.cluster);
-    memcached_clone(&memc, &mc.memc);
-    returns = ReturnMatcher{&memc};
-    return *this;
-  }
+  MemcachedCluster(MemcachedCluster &&mc);;
+  MemcachedCluster &operator=(MemcachedCluster &&mc);
 
   void enableBinaryProto(bool enable = true);
+  void enableBuffering(bool enable = true);
+  void enableReplication();
   void flush();
 
   static MemcachedCluster mixed();