X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=testing%2Flib%2FMemcachedCluster.hpp;h=7286e69f9424c0141e549dcdac815347e5e45c09;hb=c0b779f4045f4858701b3741af805414bc066717;hp=685cf6fbef22564c1ad4625bbb2fc6ed8a4169d2;hpb=42f32d1f7926663821f7a76a34584484f7a4b412;p=awesomized%2Flibmemcached diff --git a/testing/lib/MemcachedCluster.hpp b/testing/lib/MemcachedCluster.hpp index 685cf6fb..7286e69f 100644 --- a/testing/lib/MemcachedCluster.hpp +++ b/testing/lib/MemcachedCluster.hpp @@ -13,39 +13,26 @@ public: 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_}; - } + ReturnMatcher(ReturnMatcher &&rm); + ReturnMatcher &operator = (ReturnMatcher &&rm); + + bool match(const memcached_return_t &arg) const override; + ReturnMatcher success(); + ReturnMatcher operator () (memcached_return_t expected_); protected: - string describe() const override { - return string{"is "} - + to_string(expected) - + " (" + memcached_strerror(memc, expected) + ") " - + "\n\tlast error: " - + memcached_last_error_message(memc); - } + string describe() const override; private: const memcached_st *memc; - memcached_return_t expected; + memcached_return_t expected{MEMCACHED_SUCCESS}; +}; + +class LoneReturnMatcher { +public: + ReturnMatcher returns; + explicit LoneReturnMatcher(const memcached_st *memc) : returns{memc} + {} }; class MemcachedCluster { @@ -62,18 +49,8 @@ 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 flush();