Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/phpredis/phpredis.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormichael-grunder <michael.grunder@gmail.com>2021-04-19 01:27:59 +0300
committermichael-grunder <michael.grunder@gmail.com>2021-06-22 20:16:23 +0300
commit4cb4cd0ee26fdd1a07f468b976f990dbb9de7ed0 (patch)
tree16046fc52ef712839ae0a252d20e9a9dacb69c21 /redis.c
parent2d72c55d7d0402bfdf147ba71cead38d2573e203 (diff)
Separate compression and create utility methods
This commit splits compression and serialization into two distinct parts and adds some utility functions so the user can compress/uncompress or pack/unpack data explicily. See #1939
Diffstat (limited to 'redis.c')
-rw-r--r--redis.c49
1 files changed, 49 insertions, 0 deletions
diff --git a/redis.c b/redis.c
index 230859db..bbf5bd89 100644
--- a/redis.c
+++ b/redis.c
@@ -286,6 +286,10 @@ static zend_function_entry redis_functions[] = {
PHP_ME(Redis, _prefix, arginfo_key, ZEND_ACC_PUBLIC)
PHP_ME(Redis, _serialize, arginfo_value, ZEND_ACC_PUBLIC)
PHP_ME(Redis, _unserialize, arginfo_value, ZEND_ACC_PUBLIC)
+ PHP_ME(Redis, _pack, arginfo_value, ZEND_ACC_PUBLIC)
+ PHP_ME(Redis, _unpack, arginfo_value, ZEND_ACC_PUBLIC)
+ PHP_ME(Redis, _compress, arginfo_value, ZEND_ACC_PUBLIC)
+ PHP_ME(Redis, _uncompress, arginfo_value, ZEND_ACC_PUBLIC)
PHP_ME(Redis, acl, arginfo_acl, ZEND_ACC_PUBLIC)
PHP_ME(Redis, append, arginfo_key_value, ZEND_ACC_PUBLIC)
PHP_ME(Redis, auth, arginfo_auth, ZEND_ACC_PUBLIC)
@@ -3294,6 +3298,51 @@ PHP_METHOD(Redis, _unserialize) {
redis_exception_ce);
}
+PHP_METHOD(Redis, _compress) {
+ RedisSock *redis_sock;
+
+ // Grab socket
+ if ((redis_sock = redis_sock_get_instance(getThis(), 0)) == NULL) {
+ RETURN_FALSE;
+ }
+
+ redis_compress_handler(INTERNAL_FUNCTION_PARAM_PASSTHRU, redis_sock);
+}
+
+PHP_METHOD(Redis, _uncompress) {
+ RedisSock *redis_sock;
+
+ // Grab socket
+ if ((redis_sock = redis_sock_get_instance(getThis(), 0)) == NULL) {
+ RETURN_FALSE;
+ }
+
+ redis_uncompress_handler(INTERNAL_FUNCTION_PARAM_PASSTHRU, redis_sock,
+ redis_exception_ce);
+}
+
+PHP_METHOD(Redis, _pack) {
+ RedisSock *redis_sock;
+
+ // Grab socket
+ if ((redis_sock = redis_sock_get_instance(getThis(), 0)) == NULL) {
+ RETURN_FALSE;
+ }
+
+ redis_pack_handler(INTERNAL_FUNCTION_PARAM_PASSTHRU, redis_sock);
+}
+
+PHP_METHOD(Redis, _unpack) {
+ RedisSock *redis_sock;
+
+ // Grab socket
+ if ((redis_sock = redis_sock_get_instance(getThis(), 0)) == NULL) {
+ RETURN_FALSE;
+ }
+
+ redis_unpack_handler(INTERNAL_FUNCTION_PARAM_PASSTHRU, redis_sock);
+}
+
/* {{{ proto Redis::getLastError() */
PHP_METHOD(Redis, getLastError) {
zval *object;