diff options
| author | andreas | 2026-05-31 11:01:13 +0200 |
|---|---|---|
| committer | andreas | 2026-05-31 11:01:13 +0200 |
| commit | 699d70ef7acfc38a49f21bf5793f3f2772d24c22 (patch) | |
| tree | 8b7227a24f2520451137fe3cf6d5180a838f5d37 | |
| parent | 0fcb5d81ee0cba4b3dd509f7a013d6b34e0f2bae (diff) | |
| download | Qntan-699d70ef7acfc38a49f21bf5793f3f2772d24c22.tar.gz Qntan-699d70ef7acfc38a49f21bf5793f3f2772d24c22.zip | |
Add more call macros. GuessFix userconfig include.
| -rw-r--r-- | include/qntan/Qntan.h | 223 |
1 files changed, 212 insertions, 11 deletions
diff --git a/include/qntan/Qntan.h b/include/qntan/Qntan.h index 77db54c..8ed8788 100644 --- a/include/qntan/Qntan.h +++ b/include/qntan/Qntan.h @@ -20,7 +20,7 @@ #endif #ifdef Qntan_USERCONFIG -Qntan_USERCONFIG +# include "qntan_userconfig.h" #endif #include <stddef.h> /* size_t */ @@ -41,8 +41,15 @@ extern "C" { /* * "Cls" aka "Closure". The userdata type to pass around for callbacks etc. */ -#define Qntan_Cls uintptr_t -#define QNTAN_CLS(OBJ) ((Qntan_Cls)OBJ) +#ifndef Qntan_Cls +# define Qntan_Cls uintptr_t +#else +STATIC_ASSERT(sizeof Qntan_Cls >= sizeof uintptr_t); +#endif +/**/ +#ifndef QNTAN_CLS +# define QNTAN_CLS(OBJ) ((Qntan_Cls)OBJ) +#endif @@ -358,6 +365,25 @@ struct Qntan_Logger { +#ifndef Qntan_IoMux_read +# define Qntan_IoMux_read(A, B, C, D, E, F, G) (*A)->read(A, B, C, D, E, F, G) +#endif +#ifndef Qntan_IoMux_write +# define Qntan_IoMux_write(A, B, C, D, E, F, G) (*A)->write(A, B, C, D, E, F, G) +#endif +#ifndef Qntan_IoMux_flush +# define Qntan_IoMux_flush(A, B, C, D) (*A)->flush(A, B, C, D) +#endif +#ifndef Qntan_IoMux_send +# define Qntan_IoMux_send(A, B, C, D, E, F, G) (*A)->send(A, B, C, D, E, F, G) +#endif +#ifndef Qntan_IoMux_recv +# define Qntan_IoMux_recv(A, B, C, D, E, F, G) (*A)->recv(A, B, C, D, E, F, G) +#endif +#ifndef Qntan_IoMux_accept +# define Qntan_IoMux_accept(A, B, C, D, E) (*A)->accept(A, B, C, D, E) +#endif + struct Qntan_IoMux { /* An IO Multiplexer. * @@ -485,6 +511,25 @@ struct Qntan_IoMux { +#ifndef Qntan_File_flush +# define Qntan_File_flush(A, B, C) (*A)->flush(A, B, C) +#endif +#ifndef Qntan_File_write +# define Qntan_File_write(A, B, C, D, E, F) (*A)->write(A, B, C, D, E, F) +#endif +#ifndef Qntan_File_read +# define Qntan_File_read(A, B, C, D, E, F) (*A)->read(A, B, C, D, E, F) +#endif +#ifndef Qntan_File_seek +# define Qntan_File_seek(A, B, C, D, E) (*A)->seek(A, B, C, D, E) +#endif +#ifndef Qntan_File_tell +# define Qntan_File_tell(A, B, C) (*A)->tell(A, B, C) +#endif +#ifndef Qntan_File_truncate +# define Qntan_File_truncate(A, B, C, D) (*A)->truncate(A, B, C, D) +#endif + struct Qntan_File { /**/ void (*flush)( @@ -678,6 +723,8 @@ struct Qntan_FourierTransform { /* WARN: There may be implementations producing odd results if * 'samples' and 'output' overlap. * @return negative values on erorr. Zero on success. + * + * TODO: Make this async. */ }; @@ -852,6 +899,16 @@ struct Qntan_Socket { +#ifndef Qntan_TarEnc_nextEntry +# define Qntan_TarEnc_nextEntry(A, B, C, D) (*A)->nextEntry(A, B, C, D) +#endif +#ifndef Qntan_TarEnc_write +# define Qntan_TarEnc_write(A, B, C, D, E, F) (*A)->write(A, B, C, D, E, F) +#endif +#ifndef Qntan_TarEnc_getLastErrorStr +# define Qntan_TarEnc_getLastErrorStr(A) (*A)->getLastErrorStr(A) +#endif + struct Qntan_TarEnc_Hdr { char const*path; int path_len; unsigned mode; @@ -915,6 +972,13 @@ struct Qntan_TarEnc { +#ifndef Qntan_TarDec_hextHdr +# define Qntan_TarDec_hextHdr(A, B, C) (*A)->hextHdr(A, B, C) +#endif +#ifndef Qntan_TarDec_readBody +# define Qntan_TarDec_readBody(A, B, C, D, E) (*A)->readBody(A, B, C, D, E) +#endif + struct Qntan_TarDec_Hdr { char const*path; int path_len; unsigned mode; @@ -1016,7 +1080,7 @@ struct Qntan_Cond { #ifndef Qntan_Mutx_unlock # define Qntan_Mutx_unlock(A) (*(A))->unlock(A) #endif -/**/ + struct Qntan_Mutx { /* Same idea as a `pthread_mutex_t`, just using virtual funcs, to * increase overkill and make some people sad :D @@ -1043,6 +1107,10 @@ struct Qntan_Mutx { +#ifndef Qntan_Networker_getaddrinfo +# define Qntan_Networker_getaddrinfo(A, B, C, D, E, F, G, H) (*A)->getaddrinfo(A, B, C, D, E, F, G, H) +#endif + struct Qntan_Networker { /**/ void (*getaddrinfo)( @@ -1155,12 +1223,12 @@ struct Qntan_CsvIStream { */ }; -#ifndef Qntan_CsvIStream_Mentor_onCsvDocEnd -# define Qntan_CsvIStream_Mentor_onCsvDocEnd(A, B, C) (*A)->onCsvDocEnd(A, B, C) -#endif #ifndef Qntan_CsvIStream_Mentor_onCsvRow # define Qntan_CsvIStream_Mentor_onCsvRow(A, B, C, D, E, F, G) (*A)->onCsvRow(A, B, C, D, E, F, G) #endif +#ifndef Qntan_CsvIStream_Mentor_onCsvDocEnd +# define Qntan_CsvIStream_Mentor_onCsvDocEnd(A, B, C) (*A)->onCsvDocEnd(A, B, C) +#endif struct Qntan_CsvIStream_Mentor { /**/ @@ -1210,9 +1278,6 @@ struct Qntan_CsvIStream_Mentor { #ifndef Qntan_CsvEnc_appendRowsStrz # define Qntan_CsvEnc_appendRowsStrz(A, B, C, D) (*A)->appendRowsStrz(A, B, C, D) #endif -#ifndef Qntan_CsvEnc_beginNextRow -# define Qntan_CsvEnc_beginNextRow(A, B, C) (*A)->beginNextRow(A, B, C) -#endif struct Qntan_CsvEnc { /* WARN: pre-alpha! Not usable yet. @@ -1250,6 +1315,40 @@ struct Qntan_CsvEnc { +#ifndef Qntan_JsonEnc_reset +# define Qntan_JsonEnc_reset(A) (*A)->reset(A) +#endif +#ifndef Qntan_JsonEnc_flush +# define Qntan_JsonEnc_flush(A) (*A)->flush(A) +#endif +#ifndef Qntan_JsonEnc_objBeg +# define Qntan_JsonEnc_objBeg(A) (*A)->objBeg(A) +#endif +#ifndef Qntan_JsonEnc_objEnd +# define Qntan_JsonEnc_objEnd(A) (*A)->objEnd(A) +#endif +#ifndef Qntan_JsonEnc_arrBeg +# define Qntan_JsonEnc_arrBeg(A) (*A)->arrBeg(A) +#endif +#ifndef Qntan_JsonEnc_arrEnd +# define Qntan_JsonEnc_arrEnd(A) (*A)->arrEnd(A) +#endif +#ifndef Qntan_JsonEnc_key +# define Qntan_JsonEnc_key(A, B, C, D) (*A)->key(A, B, C, D) +#endif +#ifndef Qntan_JsonEnc_string +# define Qntan_JsonEnc_string(A, B, C, D) (*A)->string(A, B, C, D) +#endif +#ifndef Qntan_JsonEnc_number +# define Qntan_JsonEnc_number(A, B) (*A)->number(A, B) +#endif +#ifndef Qntan_JsonEnc_boolean +# define Qntan_JsonEnc_boolean(A, B) (*A)->boolean(A, B) +#endif +#ifndef Qntan_JsonEnc_null +# define Qntan_JsonEnc_null(A) (*A)->null(A) +#endif + struct Qntan_JsonEnc { /**/ void (*reset)( struct Qntan_JsonEnc** ); @@ -1295,9 +1394,13 @@ struct Qntan_JsonEnc { +#ifndef Qntan_JsonDec_write +# define Qntan_JsonDec_write(A, B, C, D, E, F) (*A)->write(A, B, C, D, E, F) +#endif + struct Qntan_JsonDec { /**/ - void (*write)(struct Qntan_JsonDec**, void const*buf, int buf_len, int flgs, + void (*write)( struct Qntan_JsonDec**, void const*buf, int buf_len, int flgs, void(*onDone)(int ret,Qntan_Cls), Qntan_Cls ); /* @param flgs * 0x4 set means this is last chunk. @@ -1305,6 +1408,39 @@ struct Qntan_JsonDec { */ }; +#ifndef Qntan_JsonDec_Mentor_onError +# define Qntan_JsonDec_Mentor_onError(A, B) (*A)->onError(A, B) +#endif +#ifndef Qntan_JsonDec_Mentor_onsonDocEnd +# define Qntan_JsonDec_Mentor_onsonDocEnd(A, B, C) (*A)->onsonDocEnd(A, B, C) +#endif +#ifndef Qntan_JsonDec_Mentor_onJsonObjBeg +# define Qntan_JsonDec_Mentor_onJsonObjBeg(A) (*A)->onJsonObjBeg(A) +#endif +#ifndef Qntan_JsonDec_Mentor_onJsonObjEnd +# define Qntan_JsonDec_Mentor_onJsonObjEnd(A) (*A)->onJsonObjEnd(A) +#endif +#ifndef Qntan_JsonDec_Mentor_onJsonArrBeg +# define Qntan_JsonDec_Mentor_onJsonArrBeg(A) (*A)->onJsonArrBeg(A) +#endif +#ifndef Qntan_JsonDec_Mentor_onJsonArrEnd +# define Qntan_JsonDec_Mentor_onJsonArrEnd(A) (*A)->onJsonArrEnd(A) +#endif +#ifndef Qntan_JsonDec_Mentor_onJsonNull +# define Qntan_JsonDec_Mentor_onJsonNull(A) (*A)->onJsonNull(A) +#endif +#ifndef Qntan_JsonDec_Mentor_onJsonBool +# define Qntan_JsonDec_Mentor_onJsonBool(A, B) (*A)->onJsonBool(A, B) +#endif +#ifndef Qntan_JsonDec_Mentor_onJsonNumber +# define Qntan_JsonDec_Mentor_onJsonNumber(A, B) (*A)->onJsonNumber(A, B) +#endif +#ifndef Qntan_JsonDec_Mentor_onJsonStringKeyChunk +# define Qntan_JsonDec_Mentor_onJsonStringKeyChunk(A, B, C) (*A)->onJsonStringKeyChunk(A, B, C) +#endif +#ifndef Qntan_JsonDec_Mentor_onJsonStringChunk +# define Qntan_JsonDec_Mentor_onJsonStringChunk(A, B, C) (*A)->onJsonStringChunk(A, B, C) +#endif struct Qntan_JsonDec_Mentor { /**/ @@ -1379,6 +1515,10 @@ struct Qntan_JsonTreeDec_JsonNode { }; }; +#ifndef Qntan_JsonTreeDec_write +# define Qntan_JsonTreeDec_write(A, B, C, D, E, F) (*A)->write(A, B, C, D, E, F) +#endif + struct Qntan_JsonTreeDec { /**/ void (*write)( struct Qntan_JsonTreeDec**, void const*buf, int buf_len, int flg, @@ -1396,6 +1536,16 @@ struct Qntan_JsonTreeDec { +#ifndef Qntan_XmlDec_pause +# define Qntan_XmlDec_pause(A) (*A)->pause(A) +#endif +#ifndef Qntan_XmlDec_resume +# define Qntan_XmlDec_resume(A) (*A)->resume(A) +#endif +#ifndef Qntan_XmlDec_write +# define Qntan_XmlDec_write(A, B, C, D, E, F) (*A)->write(A, B, C, D, E, F) +#endif + struct Qntan_XmlDec { /**/ void (*pause)( struct Qntan_XmlDec** ); @@ -1411,6 +1561,21 @@ struct Qntan_XmlDec { */ }; +#ifndef Qntan_XmlDec_Mentor_onXmlDocEnd +# define Qntan_XmlDec_Mentor_onXmlDocEnd(A) (*A)->onXmlDocEnd(A) +#endif +#ifndef Qntan_XmlDec_Mentor_onElemBeg +# define Qntan_XmlDec_Mentor_onElemBeg(A, B, C) (*A)->onElemBeg(A, B, C) +#endif +#ifndef Qntan_XmlDec_Mentor_onElemEnd +# define Qntan_XmlDec_Mentor_onElemEnd(A, B, C) (*A)->onElemEnd(A, B, C) +#endif +#ifndef Qntan_XmlDec_Mentor_onAttr +# define Qntan_XmlDec_Mentor_onAttr(A, B, C) (*A)->onAttr(A, B, C) +#endif +#ifndef Qntan_XmlDec_Mentor_onChunk +# define Qntan_XmlDec_Mentor_onChunk(A, B, C) (*A)->onChunk(A, B, C) +#endif struct Qntan_XmlDec_Mentor { /**/ @@ -1435,6 +1600,13 @@ struct Qntan_XmlDec_Mentor { +#ifndef Qntan_HttpClient_Exchg_Opts_onRspHdr +# define Qntan_HttpClient_Exchg_Opts_onRspHdr(A, B, C, D, E) (*A)->onRspHdr(A, B, C, D, E) +#endif +#ifndef Qntan_HttpClient_Exchg_Opts_onBodyChunk +# define Qntan_HttpClient_Exchg_Opts_onBodyChunk(A, B, C, D) (*A)->onBodyChunk(A, B, C, D) +#endif + struct Qntan_HttpClient_Exchg_Opts { /* WARN: HTTP IS EXPERMIMENTAL! DO NOT TRUST ANYTHING HERE! */ @@ -1480,6 +1652,16 @@ struct Qntan_HttpClient_Exchg_Opts { */ }; +#ifndef Qntan_HttpClient_Exchg_write +# define Qntan_HttpClient_Exchg_write(A, B, C, D, E, F) (*A)->write(A, B, C, D, E, F) +#endif +#ifndef Qntan_HttpClient_Exchg_pause +# define Qntan_HttpClient_Exchg_pause(A) (*A)->pause(A) +#endif +#ifndef Qntan_HttpClient_Exchg_resume +# define Qntan_HttpClient_Exchg_resume(A) (*A)->resume(A) +#endif + struct Qntan_HttpClient_Exchg { /* WARN: HTTP IS EXPERMIMENTAL! DO NOT TRUST ANYTHING HERE! */ @@ -1499,6 +1681,10 @@ struct Qntan_HttpClient_Exchg { */ }; +#ifndef Qntan_HttpClient_httpReq +# define Qntan_HttpClient_httpReq(A, B, C, D) (*A)->httpReq(A, B, C, D) +#endif + struct Qntan_HttpClient { /* WARN: HTTP IS EXPERMIMENTAL! DO NOT TRUST ANYTHING HERE! */ @@ -1612,6 +1798,10 @@ struct Qntan_GfxRenderer { +#ifndef Qntan_JavaBytecodeParser_write +# define Qntan_JavaBytecodeParser_write(A, B, C, D, E, F) (*A)->write(A, B, C, D, E, F) +#endif + struct Qntan_JavaBytecodeParser { /**/ void (*write)( @@ -1761,6 +1951,13 @@ struct Qntan_CamtTransaction { int qrRef_cap , qrRef_len ; char *qrRef ; }; +#ifndef Qntan_CamtDec_Mentor_onAccount +# define Qntan_CamtDec_Mentor_onAccount(A, B, C, D) (*A)->onAccount(A, B, C, D) +#endif +#ifndef Qntan_CamtDec_Mentor_onRecord +# define Qntan_CamtDec_Mentor_onRecord(A, B, C, D) (*A)->onRecord(A, B, C, D) +#endif + struct Qntan_CamtDec_Mentor { /**/ void (*onAccount)( struct Qntan_CamtDec_Mentor**, @@ -1771,6 +1968,10 @@ struct Qntan_CamtDec_Mentor { /**/ }; +#ifndef Qntan_CamtDec_write +# define Qntan_CamtDec_write(A, B, C, D, E, F) (*A)->write(A, B, C, D, E, F) +#endif + struct Qntan_CamtDec { /**/ void (*write)( |
