@@ -71,6 +71,8 @@ static zend_function_entry redis_functions[] = {
7171 PHP_ME (Redis , append , NULL , ZEND_ACC_PUBLIC )
7272 PHP_ME (Redis , getRange , NULL , ZEND_ACC_PUBLIC )
7373 PHP_ME (Redis , setRange , NULL , ZEND_ACC_PUBLIC )
74+ PHP_ME (Redis , getBit , NULL , ZEND_ACC_PUBLIC )
75+ PHP_ME (Redis , setBit , NULL , ZEND_ACC_PUBLIC )
7476 PHP_ME (Redis , strlen , NULL , ZEND_ACC_PUBLIC )
7577 PHP_ME (Redis , getKeys , NULL , ZEND_ACC_PUBLIC )
7678 PHP_ME (Redis , sort , NULL , ZEND_ACC_PUBLIC )
@@ -1154,6 +1156,60 @@ PHP_METHOD(Redis, setRange)
11541156 REDIS_PROCESS_RESPONSE (redis_long_response );
11551157}
11561158
1159+ PHP_METHOD (Redis , getBit )
1160+ {
1161+ zval * object ;
1162+ RedisSock * redis_sock ;
1163+ char * key = NULL , * cmd ;
1164+ int key_len , cmd_len ;
1165+ long offset ;
1166+
1167+ if (zend_parse_method_parameters (ZEND_NUM_ARGS () TSRMLS_CC , getThis (), "Osl" ,
1168+ & object , redis_ce , & key , & key_len ,
1169+ & offset ) == FAILURE ) {
1170+ RETURN_FALSE ;
1171+ }
1172+
1173+ if (redis_sock_get (object , & redis_sock TSRMLS_CC ) < 0 ) {
1174+ RETURN_FALSE ;
1175+ }
1176+
1177+ cmd_len = redis_cmd_format_static (& cmd , "GETBIT" , "sd" , key , key_len , (int )offset );
1178+ REDIS_PROCESS_REQUEST (redis_sock , cmd , cmd_len );
1179+ IF_ATOMIC () {
1180+ redis_long_response (INTERNAL_FUNCTION_PARAM_PASSTHRU , redis_sock , NULL , NULL );
1181+ }
1182+ REDIS_PROCESS_RESPONSE (redis_long_response );
1183+ }
1184+
1185+ PHP_METHOD (Redis , setBit )
1186+ {
1187+ zval * object ;
1188+ RedisSock * redis_sock ;
1189+ char * key = NULL , * cmd ;
1190+ int key_len , cmd_len ;
1191+ long offset ;
1192+ zend_bool val ;
1193+
1194+ if (zend_parse_method_parameters (ZEND_NUM_ARGS () TSRMLS_CC , getThis (), "Oslb" ,
1195+ & object , redis_ce , & key , & key_len ,
1196+ & offset , & val ) == FAILURE ) {
1197+ RETURN_FALSE ;
1198+ }
1199+
1200+ if (redis_sock_get (object , & redis_sock TSRMLS_CC ) < 0 ) {
1201+ RETURN_FALSE ;
1202+ }
1203+
1204+ cmd_len = redis_cmd_format_static (& cmd , "SETBIT" , "sdd" , key , key_len , (int )offset , (int )val );
1205+ REDIS_PROCESS_REQUEST (redis_sock , cmd , cmd_len );
1206+ IF_ATOMIC () {
1207+ redis_long_response (INTERNAL_FUNCTION_PARAM_PASSTHRU , redis_sock , NULL , NULL );
1208+ }
1209+ REDIS_PROCESS_RESPONSE (redis_long_response );
1210+ }
1211+
1212+
11571213PHP_METHOD (Redis , strlen )
11581214{
11591215 zval * object ;
0 commit comments