diff options
author | michael-grunder <michael.grunder@gmail.com> | 2021-04-19 01:27:59 +0300 |
---|---|---|
committer | michael-grunder <michael.grunder@gmail.com> | 2021-06-22 20:16:23 +0300 |
commit | 4cb4cd0ee26fdd1a07f468b976f990dbb9de7ed0 (patch) | |
tree | 16046fc52ef712839ae0a252d20e9a9dacb69c21 /redis.c | |
parent | 2d72c55d7d0402bfdf147ba71cead38d2573e203 (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.c | 49 |
1 files changed, 49 insertions, 0 deletions
@@ -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; |