From 4cb4cd0ee26fdd1a07f468b976f990dbb9de7ed0 Mon Sep 17 00:00:00 2001 From: michael-grunder Date: Sun, 18 Apr 2021 15:27:59 -0700 Subject: 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 --- redis_cluster.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'redis_cluster.c') diff --git a/redis_cluster.c b/redis_cluster.c index 402c23b7..8c451994 100644 --- a/redis_cluster.c +++ b/redis_cluster.c @@ -110,6 +110,10 @@ zend_function_entry redis_cluster_functions[] = { PHP_ME(RedisCluster, _redir, arginfo_void, ZEND_ACC_PUBLIC) PHP_ME(RedisCluster, _serialize, arginfo_value, ZEND_ACC_PUBLIC) PHP_ME(RedisCluster, _unserialize, arginfo_value, ZEND_ACC_PUBLIC) + PHP_ME(RedisCluster, _compress, arginfo_value, ZEND_ACC_PUBLIC) + PHP_ME(RedisCluster, _uncompress, arginfo_value, ZEND_ACC_PUBLIC) + PHP_ME(RedisCluster, _pack, arginfo_value, ZEND_ACC_PUBLIC) + PHP_ME(RedisCluster, _unpack, arginfo_value, ZEND_ACC_PUBLIC) PHP_ME(RedisCluster, acl, arginfo_acl_cl, ZEND_ACC_PUBLIC) PHP_ME(RedisCluster, append, arginfo_key_value, ZEND_ACC_PUBLIC) PHP_ME(RedisCluster, bgrewriteaof, arginfo_key_or_address, ZEND_ACC_PUBLIC) @@ -1970,6 +1974,27 @@ PHP_METHOD(RedisCluster, _unserialize) { } /* }}} */ +PHP_METHOD(RedisCluster, _compress) { + redisCluster *c = GET_CONTEXT(); + redis_compress_handler(INTERNAL_FUNCTION_PARAM_PASSTHRU, c->flags); +} + +PHP_METHOD(RedisCluster, _uncompress) { + redisCluster *c = GET_CONTEXT(); + redis_uncompress_handler(INTERNAL_FUNCTION_PARAM_PASSTHRU, c->flags, + redis_cluster_exception_ce); +} + +PHP_METHOD(RedisCluster, _pack) { + redisCluster *c = GET_CONTEXT(); + redis_pack_handler(INTERNAL_FUNCTION_PARAM_PASSTHRU, c->flags); +} + +PHP_METHOD(RedisCluster, _unpack) { + redisCluster *c = GET_CONTEXT(); + redis_unpack_handler(INTERNAL_FUNCTION_PARAM_PASSTHRU, c->flags); +} + /* {{{ proto array RedisCluster::_masters() */ PHP_METHOD(RedisCluster, _masters) { redisCluster *c = GET_CONTEXT(); -- cgit v1.2.3