MCPcopy Create free account
hub / github.com/acl-dev/acl / role

Method role

lib_acl_cpp/src/redis/redis_role.cpp:23–58  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

21}
22
23bool redis_role::role()
24{
25 const char* argv[1];
26 size_t lens[1];
27
28 argv[0] = "ROLE";
29 lens[0] = sizeof("ROLE") - 1;
30
31 build_request(1, argv, lens);
32 const redis_result* result = run();
33 if (result == NULL || result->get_type() != REDIS_RESULT_ARRAY) {
34 return false;
35 }
36
37 size_t size;
38 const redis_result** children = result->get_children(&size);
39 if (children == NULL || size == 0) {
40 return false;
41 }
42
43 const redis_result* first = children[0];
44 first->argv_to_string(role_name_);
45
46 if (role_name_.equal("sentinel", false)) {
47 return role_sentinel(children, size);
48 } else if (role_name_.equal("master", false)) {
49 return role_master(children, size);
50 } else if (role_name_.equal("slave", false)) {
51 return role_slave(children, size);
52 } else {
53 logger_error("unknown role name=%s", role_name_.c_str());
54 return false;
55 }
56
57 return true;
58}
59
60bool redis_role::role_sentinel(const redis_result** a, size_t n)
61{

Callers 1

testFunction · 0.80

Calls 7

equalMethod · 0.80
build_requestFunction · 0.50
runFunction · 0.50
get_typeMethod · 0.45
get_childrenMethod · 0.45
argv_to_stringMethod · 0.45
c_strMethod · 0.45

Tested by

no test coverage detected