1 #ifndef PHP_TNT_MSGPACK_H 2 #define PHP_TNT_MSGPACK_H 3 4 #include "php_tarantool.h" 5 6 #define PHP_MP_SERIALIZABLE_P(v) (Z_TYPE_P(v) == IS_NULL || \ 7 Z_TYPE_P(v) == IS_LONG || \ 8 Z_TYPE_P(v) == IS_DOUBLE || \ 9 Z_TYPE_P(v) == IS_FALSE || \ 10 Z_TYPE_P(v) == IS_TRUE || \ 11 Z_TYPE_P(v) == IS_ARRAY || \ 12 Z_TYPE_P(v) == IS_STRING || \ 13 Z_TYPE_P(v) == IS_REFERENCE) 14 15 size_t php_mp_check (const char *str, size_t str_size); 16 void php_mp_pack (smart_string *buf, zval *val ); 17 ssize_t php_mp_unpack (zval *oval, char **str ); 18 size_t php_mp_sizeof (zval *val); 19 20 void php_mp_pack_package_size (smart_string *str, size_t val); 21 void php_mp_pack_package_size_basic (char *pos, size_t val); 22 size_t php_mp_unpack_package_size (char *buf); 23 24 int php_mp_is_hash(zval *val); 25 26 void php_mp_pack_nil(smart_string *str); 27 void php_mp_pack_long_pos(smart_string *str, long val); 28 void php_mp_pack_long_neg(smart_string *str, long val); 29 void php_mp_pack_long(smart_string *str, long val); 30 void php_mp_pack_double(smart_string *str, double val); 31 void php_mp_pack_bool(smart_string *str, unsigned char val); 32 void php_mp_pack_string(smart_string *str, const char *c, size_t len); 33 void php_mp_pack_hash(smart_string *str, size_t len); 34 void php_mp_pack_array(smart_string *str, size_t len); 35 void php_mp_pack_array_recursively(smart_string *str, zval *val); 36 void php_mp_pack_hash_recursively(smart_string *str, zval *val); 37 38 size_t php_mp_sizeof_nil(); 39 size_t php_mp_sizeof_long_pos(long val); 40 size_t php_mp_sizeof_long_neg(long val); 41 size_t php_mp_sizeof_long(long val); 42 size_t php_mp_sizeof_double(double val); 43 size_t php_mp_sizeof_bool(unsigned char val); 44 size_t php_mp_sizeof_string(size_t len); 45 size_t php_mp_sizeof_hash(size_t len); 46 size_t php_mp_sizeof_array(size_t len); 47 size_t php_mp_sizeof_array_recursively(zval *val); 48 size_t php_mp_sizeof_hash_recursively(zval *val); 49 50 int smart_string_ensure(smart_string *str, size_t len); 51 void smart_string_nullify(smart_string *str); 52 #endif /* PHP_TNT_MSGPACK_H */ 53