15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Summary: minimal HTTP implementation
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Description: minimal HTTP implementation allowing to fetch resources
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *              like external subset.
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Copy: See Copyright for the status of this software.
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Author: Daniel Veillard
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef __NANO_HTTP_H__
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define __NANO_HTTP_H__
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <libxml/xmlversion.h>
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef LIBXML_HTTP_ENABLED
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef __cplusplus
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern "C" {
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)XMLPUBFUN void XMLCALL
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	xmlNanoHTTPInit		(void);
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)XMLPUBFUN void XMLCALL
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	xmlNanoHTTPCleanup	(void);
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)XMLPUBFUN void XMLCALL
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	xmlNanoHTTPScanProxy	(const char *URL);
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)XMLPUBFUN int XMLCALL
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	xmlNanoHTTPFetch	(const char *URL,
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)				 const char *filename,
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)				 char **contentType);
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)XMLPUBFUN void * XMLCALL
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	xmlNanoHTTPMethod	(const char *URL,
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)				 const char *method,
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)				 const char *input,
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)				 char **contentType,
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)				 const char *headers,
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)				 int   ilen);
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)XMLPUBFUN void * XMLCALL
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	xmlNanoHTTPMethodRedir	(const char *URL,
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)				 const char *method,
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)				 const char *input,
425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)				 char **contentType,
435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)				 char **redir,
445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)				 const char *headers,
455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)				 int   ilen);
465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)XMLPUBFUN void * XMLCALL
475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	xmlNanoHTTPOpen		(const char *URL,
485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)				 char **contentType);
495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)XMLPUBFUN void * XMLCALL
505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	xmlNanoHTTPOpenRedir	(const char *URL,
515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)				 char **contentType,
525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)				 char **redir);
535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)XMLPUBFUN int XMLCALL
545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	xmlNanoHTTPReturnCode	(void *ctx);
555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)XMLPUBFUN const char * XMLCALL
565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	xmlNanoHTTPAuthHeader	(void *ctx);
575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)XMLPUBFUN const char * XMLCALL
585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	xmlNanoHTTPRedir	(void *ctx);
595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)XMLPUBFUN int XMLCALL
605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	xmlNanoHTTPContentLength( void * ctx );
615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)XMLPUBFUN const char * XMLCALL
625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	xmlNanoHTTPEncoding	(void *ctx);
635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)XMLPUBFUN const char * XMLCALL
645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	xmlNanoHTTPMimeType	(void *ctx);
655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)XMLPUBFUN int XMLCALL
665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	xmlNanoHTTPRead		(void *ctx,
675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)				 void *dest,
685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)				 int len);
695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef LIBXML_OUTPUT_ENABLED
705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)XMLPUBFUN int XMLCALL
715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	xmlNanoHTTPSave		(void *ctxt,
725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)				 const char *filename);
735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif /* LIBXML_OUTPUT_ENABLED */
745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)XMLPUBFUN void XMLCALL
755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	xmlNanoHTTPClose	(void *ctx);
765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef __cplusplus
775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif /* LIBXML_HTTP_ENABLED */
815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif /* __NANO_HTTP_H__ */
82