aos_define.h 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. #ifndef LIBAOS_DEFINE_H
  2. #define LIBAOS_DEFINE_H
  3. #include <stdint.h>
  4. #include <stdlib.h>
  5. #include <assert.h>
  6. #include <string.h>
  7. #include <ctype.h>
  8. #include <time.h>
  9. #include <apr_time.h>
  10. #include <apr_strings.h>
  11. #include <apr_pools.h>
  12. #include <apr_tables.h>
  13. #include <apr_file_io.h>
  14. #include <curl/curl.h>
  15. #ifdef __cplusplus
  16. # define AOS_CPP_START extern "C" {
  17. # define AOS_CPP_END }
  18. #else
  19. # define AOS_CPP_START
  20. # define AOS_CPP_END
  21. #endif
  22. typedef enum {
  23. HTTP_GET,
  24. HTTP_HEAD,
  25. HTTP_PUT,
  26. HTTP_POST,
  27. HTTP_DELETE
  28. } http_method_e;
  29. typedef enum {
  30. AOSE_OK = 0,
  31. AOSE_OUT_MEMORY = -1000,
  32. AOSE_OVER_MEMORY = -999,
  33. AOSE_FAILED_CONNECT = -998,
  34. AOSE_ABORT_CALLBACK = -997,
  35. AOSE_INTERNAL_ERROR = -996,
  36. AOSE_REQUEST_TIMEOUT = -995,
  37. AOSE_INVALID_ARGUMENT = -994,
  38. AOSE_INVALID_OPERATION = -993,
  39. AOSE_CONNECTION_FAILED = -992,
  40. AOSE_FAILED_INITIALIZE = -991,
  41. AOSE_NAME_LOOKUP_ERROR = -990,
  42. AOSE_FAILED_VERIFICATION = -989,
  43. AOSE_WRITE_BODY_ERROR = -988,
  44. AOSE_READ_BODY_ERROR = -987,
  45. AOSE_SERVICE_ERROR = -986,
  46. AOSE_OPEN_FILE_ERROR = -985,
  47. AOSE_FILE_SEEK_ERROR = -984,
  48. AOSE_FILE_INFO_ERROR = -983,
  49. AOSE_FILE_READ_ERROR = -982,
  50. AOSE_FILE_WRITE_ERROR = -981,
  51. AOSE_XML_PARSE_ERROR = -980,
  52. AOSE_UTF8_ENCODE_ERROR = -979,
  53. AOSE_CRC_INCONSISTENT_ERROR = -978,
  54. AOSE_FILE_FLUSH_ERROR = -977,
  55. AOSE_FILE_TRUNC_ERROR = -976,
  56. AOSE_UNKNOWN_ERROR = -100
  57. } aos_error_code_e;
  58. typedef apr_pool_t aos_pool_t;
  59. typedef apr_table_t aos_table_t;
  60. typedef apr_table_entry_t aos_table_entry_t;
  61. typedef apr_array_header_t aos_array_header_t;
  62. #define aos_table_elts(t) apr_table_elts(t)
  63. #define aos_is_empty_table(t) apr_is_empty_table(t)
  64. #define aos_table_make(p, n) apr_table_make(p, n)
  65. #define aos_table_add_int(t, key, value) do { \
  66. char value_str[64]; \
  67. apr_snprintf(value_str, sizeof(value_str), "%d", value);\
  68. apr_table_add(t, key, value_str); \
  69. } while(0)
  70. #define aos_table_add_int64(t, key, value) do { \
  71. char value_str[64]; \
  72. apr_snprintf(value_str, sizeof(value_str), "%" APR_INT64_T_FMT, value);\
  73. apr_table_add(t, key, value_str); \
  74. } while(0)
  75. #define aos_table_set_int64(t, key, value) do { \
  76. char value_str[64]; \
  77. apr_snprintf(value_str, sizeof(value_str), "%" APR_INT64_T_FMT, value);\
  78. apr_table_set(t, key, value_str); \
  79. } while(0)
  80. #define aos_pool_create(n, p) apr_pool_create(n, p)
  81. #define aos_pool_destroy(p) apr_pool_destroy(p)
  82. #define aos_palloc(p, s) apr_palloc(p, s)
  83. #define aos_pcalloc(p, s) apr_pcalloc(p, s)
  84. #define AOS_INIT_WINSOCK 1
  85. #define AOS_MD5_STRING_LEN 32
  86. #define AOS_MAX_URI_LEN 2048
  87. #define AOS_MAX_HEADER_LEN 8192
  88. #define AOS_MAX_QUERY_ARG_LEN 1024
  89. #define AOS_MAX_GMT_TIME_LEN 128
  90. #define AOS_MAX_XML_NODE_VALUE_LEN 1024
  91. #define AOS_MAX_INT64_STRING_LEN 64
  92. #define AOS_CONNECT_TIMEOUT 10
  93. #define AOS_DNS_CACHE_TIMOUT 60
  94. #define AOS_MIN_SPEED_LIMIT 1024
  95. #define AOS_MIN_SPEED_TIME 15
  96. #define AOS_MAX_MEMORY_SIZE 1024*1024*1024L
  97. #define AOS_MAX_PART_SIZE 512*1024*1024L
  98. #define AOS_DEFAULT_PART_SIZE 1024*1024L
  99. #define AOS_REQUEST_STACK_SIZE 32
  100. #define aos_abs(value) (((value) >= 0) ? (value) : - (value))
  101. #define aos_max(val1, val2) (((val1) < (val2)) ? (val2) : (val1))
  102. #define aos_min(val1, val2) (((val1) > (val2)) ? (val2) : (val1))
  103. #define LF (char) 10
  104. #define CR (char) 13
  105. #define CRLF "\x0d\x0a"
  106. #define AOS_VERSION "3.4.3"
  107. #define AOS_VER "aliyun-sdk-c/" AOS_VERSION
  108. #define AOS_HTTP_PREFIX "http://"
  109. #define AOS_HTTPS_PREFIX "https://"
  110. #define AOS_RTMP_PREFIX "rtmp://"
  111. #define AOS_TEMP_FILE_SUFFIX ".tmp"
  112. #define AOS_FALSE 0
  113. #define AOS_TRUE 1
  114. # ifndef WIN32
  115. # ifndef __LONG_LONG_MAX__
  116. # define __LONG_LONG_MAX__ 9223372036854775807LL
  117. # endif
  118. # ifndef LLONG_MIN
  119. # define LLONG_MIN (-LLONG_MAX-1)
  120. # endif
  121. # ifndef LLONG_MAX
  122. # define LLONG_MAX __LONG_LONG_MAX__
  123. # endif
  124. # ifndef ULLONG_MAX
  125. # define ULLONG_MAX (LLONG_MAX * 2ULL + 1)
  126. # endif
  127. # endif
  128. #endif