libmicrohttpd.vapi 3.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. [CCode (cheader_filename = "microhttpd.h")]
  2. namespace MHD {
  3. [CCode (cname = "enum MHD_ValueKind", cprefix = "MHD_")]
  4. public enum ValueKind {
  5. RESPONSE_HEADER_KIND,
  6. HEADER_KIND,
  7. COOKIE_KIND,
  8. POSTDATA_KIND,
  9. GET_ARGUMENT_KIND,
  10. FOOTER_KIND
  11. }
  12. [CCode (cname = "enum MHD_RequestTerminationCode", cprefix = "MHD_REQUEST_TERMINATED_")]
  13. public enum RequestTerminationCode {
  14. COMPLETED_OK,
  15. WITH_ERROR,
  16. TIMEOUT_REACHED,
  17. DAEMON_SHUTDOWN,
  18. READ_ERROR,
  19. CLIENT_ABORT
  20. }
  21. [CCode (cname = "enum MHD_ResponseMemoryMode", cprefix = "MHD_")]
  22. public enum ResponseMemoryMode {
  23. RESPMEM_PERSISTENT,
  24. RESPMEM_MUST_FREE,
  25. RESPMEM_MUST_COPY
  26. }
  27. [CCode (cname = "MHD_USE_SELECT_INTERNALLY")]
  28. public const uint USE_SELECT_INTERNALLY;
  29. [CCode (cname = "MHD_USE_THREAD_PER_CONNECTION")]
  30. public const uint USE_THREAD_PER_CONNECTION;
  31. [CCode (cname = "MHD_USE_DEBUG")]
  32. public const uint USE_DEBUG;
  33. [CCode (cname = "MHD_ALLOW_SUSPEND_RESUME")]
  34. public const uint ALLOW_SUSPEND_RESUME;
  35. [CCode (cname = "MHD_OPTION_END")]
  36. public const int OPTION_END;
  37. [SimpleType]
  38. [CCode (cname = "struct MHD_Connection*")]
  39. public struct Connection {}
  40. [CCode (cname = "int", cprefix = "MHD_")]
  41. public enum Result {
  42. YES = 1,
  43. NO = 0
  44. }
  45. [Compact]
  46. [CCode (cname = "struct MHD_Response", free_function = "MHD_destroy_response")]
  47. public class Response {
  48. [CCode (cname = "MHD_create_response_from_buffer")]
  49. public Response.from_buffer (size_t size, [CCode(array_length=false)] uint8[] buffer, ResponseMemoryMode mode);
  50. [CCode (cname = "MHD_add_response_header")]
  51. public int add_header (string header, string content);
  52. }
  53. [Compact]
  54. [CCode (cname = "struct MHD_Daemon", free_function = "MHD_stop_daemon")]
  55. public class Daemon {
  56. [CCode (cname = "MHD_start_daemon")]
  57. public static Daemon start (uint flags, uint16 port,
  58. AcceptPolicyCallback? apc,
  59. AccessHandlerCallback dh,
  60. ...);
  61. }
  62. [CCode (instance_pos = 0)]
  63. public delegate int AcceptPolicyCallback (void* cls, void* addr, uint addrlen);
  64. [CCode (instance_pos = 0)]
  65. public delegate int AccessHandlerCallback (Connection connection,
  66. string? url, string? method, string? version,
  67. string? upload_data, [CCode(array_length=false)] size_t* upload_data_size,
  68. void** con_cls);
  69. [CCode (cname = "MHD_queue_response")]
  70. public int queue_response (Connection connection, uint status_code, Response response);
  71. [CCode (cname = "MHD_suspend_connection")]
  72. public int suspend_connection (Connection connection);
  73. [CCode (cname = "MHD_resume_connection")]
  74. public int resume_connection (Connection connection);
  75. [CCode (cname = "MHD_lookup_connection_value")]
  76. public unowned string? lookup_connection_value (Connection connection, ValueKind kind, string key);
  77. [CCode (instance_pos = 0)]
  78. public delegate Result KeyValueIterator (void* cls, ValueKind kind, string key, string? value, size_t value_size);
  79. [CCode (cname = "MHD_get_connection_values")]
  80. public int get_connection_values (Connection connection, ValueKind kind, KeyValueIterator? iterator, void* iterator_cls);
  81. }