testing: replication
[awesomized/libmemcached] / test / lib / MemcachedCluster.hpp
1 #pragma once
2
3 #include "common.hpp"
4 #include "Cluster.hpp"
5 #include "ReturnMatcher.hpp"
6
7
8 class MemcachedCluster {
9 public:
10 Cluster cluster;
11 memcached_st memc{empty_memc};
12 ReturnMatcher returns{&memc};
13
14 MemcachedCluster();
15 explicit
16 MemcachedCluster(Cluster &&cluster);
17 ~MemcachedCluster();
18
19 MemcachedCluster(const MemcachedCluster &) = delete;
20 MemcachedCluster &operator=(const MemcachedCluster &) = delete;
21
22 MemcachedCluster(MemcachedCluster &&mc);;
23 MemcachedCluster &operator=(MemcachedCluster &&mc);
24
25 void enableBinaryProto(bool enable = true);
26 void enableBuffering(bool enable = true);
27 void enableReplication();
28 void enableUdp(bool enable = true);
29 void flush();
30
31 static MemcachedCluster mixed();
32 static MemcachedCluster network();
33 static MemcachedCluster socket();
34 static MemcachedCluster udp();
35
36 #if LIBMEMCACHED_WITH_SASL_SUPPORT
37 static MemcachedCluster sasl();
38 #endif
39
40 void killOneServer();
41
42 private:
43 static const memcached_st empty_memc;
44
45 void init();
46 };