Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Latest commit

 

History

History
History
111 lines (83 loc) · 3.5 KB

File metadata and controls

111 lines (83 loc) · 3.5 KB
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
#ifndef REDIS_CMD_H
#define REDIS_CMD_H
#include "php.h"
#include <zend_smart_string.h>
#include "common.h"
typedef struct RedisCmd {
RedisSock *redis_sock;
short slot;
smart_string s;
RedisCmdCtx ctx;
uint32_t argc;
char *head;
} RedisCmd;
#define redis_cmd_create_literal(redis_sock, kw) \
redis_cmd_create(redis_sock, kw, sizeof(kw) - 1)
#define redis_cmd_cat_literal(cmd, lit) \
redis_cmd_cat_str(cmd, lit, sizeof(lit) - 1)
#define redis_cmd_cat_literal_if(cmd, opt, lit) do { \
if (opt) \
redis_cmd_cat_str(cmd, lit, sizeof(lit) - 1); \
} while (0)
#define redis_cmd_cat_zstr_if(cmd, opt, zstr) do { \
if (opt) \
redis_cmd_cat_zstr(cmd, zstr); \
} while (0)
RedisCmd *redis_cmd_create(RedisSock *redis_sock, const char *kw, size_t kwlen);
void redis_cmd_reset(RedisCmd *cmd, const char *kw, size_t kwlen);
void redis_cmd_free_ex(RedisCmd *cmd, int free_ctx);
void redis_cmd_free_ctx(RedisCmd *cmd);
static inline RedisCmdCtx redis_cmd_pop_ctx(RedisCmd *cmd) {
RedisCmdCtx ctx = cmd->ctx;
memset(&cmd->ctx, 0, sizeof(RedisCmdCtx));
return ctx;
}
static inline void redis_cmd_free(RedisCmd *cmd) {
redis_cmd_free_ex(cmd, 0);
}
static inline RedisCmd *
redis_cmd_create_zstr(RedisSock *redis_sock, zend_string *kw) {
return redis_cmd_create(redis_sock, ZSTR_VAL(kw), ZSTR_LEN(kw));
}
void redis_cmd_cat_zstr(RedisCmd *cmd, zend_string *str);
void redis_cmd_cat_str(RedisCmd *cmd, const char *str, size_t len);
void redis_cmd_cat_long(RedisCmd *cmd, zend_long lval);
void redis_cmd_cat_ulong(RedisCmd *cmd, zend_ulong ulval);
void redis_cmd_cat_u32(RedisCmd *cmd, uint32_t u32);
void redis_cmd_cat_u64(RedisCmd *cmd, uint64_t u64);
void redis_cmd_cat_double(RedisCmd *cmd, double dval);
zend_bool redis_cmd_cat_key_zval(RedisCmd *cmd, zval *zv);
zend_bool redis_cmd_cat_key_zstr(RedisCmd *cmd, zend_string *key);
zend_bool redis_cmd_cat_key_long(RedisCmd *cmd, zend_long key);
zend_bool redis_cmd_cat_key_str(RedisCmd *cmd, const char *key, size_t len);
zend_bool redis_cmd_cat_key_arrkey(RedisCmd *cmd, zend_string *str, zend_ulong idx);
void redis_cmd_cat_zval(RedisCmd *cmd, zval *zv);
void redis_cmd_cat_zval_zstr(RedisCmd *cmd, zval *zv);
void redis_cmd_cat_arrkey(RedisCmd *cmd, zend_string *str, zend_ulong idx);
void redis_cmd_set_ctx_ex(RedisCmd *cmd, void *ptr, RedisCmdCtxDtor *dtor);
static zend_always_inline void redis_cmd_set_ctx(RedisCmd *cmd, void *ptr) {
redis_cmd_set_ctx_ex(cmd, ptr, NULL);
}
static zend_always_inline void
redis_cmd_set_ctx_u64(RedisCmd *cmd, uint64_t u64) {
redis_cmd_set_ctx(cmd, (void*)(uintptr_t)u64);
}
void redis_cmd_randslot(RedisCmd *cmd);
static inline void redis_cmd_ctx_efree(void *ptr) {
if (ptr) efree(ptr);
}
RedisCmd *redis_cmd_fmt(RedisSock *redis_sock, char *kw, char *fmt, ...);
#define redis_cmd_fmt_literal(redis_sock, kw, fmt, ...) \
redis_cmd_fmt(redis_sock, kw, fmt, ##__VA_ARGS__)
const char *redis_cmd_str(RedisCmd *cmd);
size_t redis_cmd_len(RedisCmd *cmd);
/* Specialized thin wrapper around smart_str for the times we want to construct
* one buffer with 1-N commands */
void resp_str_cat_str(smart_str *s, const char *str, zend_ulong len);
void resp_str_cat_cmd(smart_str *s, zend_ulong argc, const char *kw, size_t len);
void resp_str_cat_zstr(smart_str *s, zend_string *str);
#define resp_str_cat_cmd_literal(s_, kw_, argc_) \
resp_str_cat_cmd(s_, argc_, kw_, sizeof(kw_) - 1)
#define resp_str_cat_literal(s_, lit_) \
resp_str_cat_str(s_, lit_, sizeof(lit_) - 1)
#endif // REDIS_CMD_H
Morty Proxy This is a proxified and sanitized view of the page, visit original site.