php_wddx_api.h 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. /*
  2. +----------------------------------------------------------------------+
  3. | PHP Version 7 |
  4. +----------------------------------------------------------------------+
  5. | Copyright (c) 1997-2018 The PHP Group |
  6. +----------------------------------------------------------------------+
  7. | This source file is subject to version 3.01 of the PHP license, |
  8. | that is bundled with this package in the file LICENSE, and is |
  9. | available through the world-wide-web at the following url: |
  10. | http://www.php.net/license/3_01.txt |
  11. | If you did not receive a copy of the PHP license and are unable to |
  12. | obtain it through the world-wide-web, please send a note to |
  13. | license@php.net so we can mail you a copy immediately. |
  14. +----------------------------------------------------------------------+
  15. | Author: Andrei Zmievski <andrei@ispi.net> |
  16. +----------------------------------------------------------------------+
  17. */
  18. #ifndef PHP_WDDX_API_H
  19. #define PHP_WDDX_API_H
  20. #include "zend_smart_str_public.h"
  21. #define WDDX_ARRAY_S "<array length='%d'>"
  22. #define WDDX_ARRAY_E "</array>"
  23. #define WDDX_BINARY_S "<binary>"
  24. #define WDDX_BINARY_E "</binary>"
  25. #define WDDX_BOOLEAN_TRUE "<boolean value='true'/>"
  26. #define WDDX_BOOLEAN_FALSE "<boolean value='false'/>"
  27. #define WDDX_CHAR "<char code='%02X'/>"
  28. #define WDDX_COMMENT_S "<comment>"
  29. #define WDDX_COMMENT_E "</comment>"
  30. #define WDDX_DATA_S "<data>"
  31. #define WDDX_DATA_E "</data>"
  32. #define WDDX_HEADER "<header/>"
  33. #define WDDX_HEADER_S "<header>"
  34. #define WDDX_HEADER_E "</header>"
  35. #define WDDX_NULL "<null/>"
  36. #define WDDX_NUMBER "<number>%s</number>"
  37. #define WDDX_PACKET_S "<wddxPacket version='1.0'>"
  38. #define WDDX_PACKET_E "</wddxPacket>"
  39. #define WDDX_STRING_S "<string>"
  40. #define WDDX_STRING_E "</string>"
  41. #define WDDX_STRUCT_S "<struct>"
  42. #define WDDX_STRUCT_E "</struct>"
  43. #define WDDX_VAR_S "<var name='%s'>"
  44. #define WDDX_VAR_E "</var>"
  45. #define php_wddx_add_chunk(packet, str) smart_str_appends(packet, str)
  46. #define php_wddx_add_chunk_ex(packet, str, len) smart_str_appendl(packet, str, len)
  47. #define php_wddx_add_chunk_static(packet, str) smart_str_appendl(packet, str, sizeof(str)-1)
  48. typedef smart_str wddx_packet;
  49. wddx_packet* php_wddx_constructor(void);
  50. void php_wddx_destructor(wddx_packet *packet);
  51. void php_wddx_packet_start(wddx_packet *packet, char *comment, size_t comment_len);
  52. void php_wddx_packet_end(wddx_packet *packet);
  53. void php_wddx_serialize_var(wddx_packet *packet, zval *var, zend_string *name);
  54. int php_wddx_deserialize_ex(const char *, size_t, zval *return_value);
  55. #define php_wddx_gather(packet) estrndup(packet->c, packet->len)
  56. #endif /* PHP_WDDX_API_H */