aboutsummaryrefslogtreecommitdiff
path: root/extension/curlthread.h
diff options
context:
space:
mode:
authorsappho <sappho@sappho.io>2023-07-14 07:19:14 -0400
committerGitHub <noreply@github.com>2023-07-14 07:19:14 -0400
commit7b92e4acf6dea29348efeb4c0cc89e3071aee56e (patch)
tree069032a9c6eb3ccc8f0089d8bbbb9ffe8ccacdd3 /extension/curlthread.h
parent581d1e994692f9ce4e5d8071e8edba1e71412bac (diff)
ci fixes and repo cleanup + small tweaks and first release (#2)v2.0.0-beta
* Update docker_build.yml * Update docker_build.yml * Update docker_build.yml * attempt to lint * use tags * Update docker_build.yml * reorganize repo * correct typo with build dir * hacky chmod/chown for docker builds * more hacks for chmod * try to hack docker to work again * fix invalid syntax * remove extension in repo, remove spaces, fixup gitignore * twiddle around with making releases with commits * more ci testing to use non deprecated actions * Update docker_build.yml * more ci twiddling (ugh) * more lint and run the actual job now * lint more and use deb slim * autogen rel notes (?) * fixup bad quotes * sigh. fix quotes again * save beta autotagging for a later date * gitignore * fix so users don't use removed hash funcs * add max dbg info to ext * update versionings
Diffstat (limited to 'extension/curlthread.h')
-rw-r--r--extension/curlthread.h49
1 files changed, 49 insertions, 0 deletions
diff --git a/extension/curlthread.h b/extension/curlthread.h
new file mode 100644
index 0000000..ddb0c57
--- /dev/null
+++ b/extension/curlthread.h
@@ -0,0 +1,49 @@
+#ifndef _INCLUDE_SOURCEMOD_EXTENSION_CURLTHREAD_H_
+#define _INCLUDE_SOURCEMOD_EXTENSION_CURLTHREAD_H_
+
+#include "extension.h"
+#include "curlmanager.h"
+#include <curl/curl.h>
+
+
+class cURLThread : public IThread
+{
+ friend class cURLManager;
+
+public:
+ cURLThread(cURLHandle *_handle, cURLThread_Type _type);
+ ~cURLThread();
+ cURLHandle *GetHandle();
+ cURLThread_Type GetRunType();
+ void EventSignal();
+ void EventWait();
+ bool IsWaiting();
+ char *GetReceiveBuffer();
+ void SetRecvBufferSize(unsigned int size);
+ void SetSenRecvAction(SendRecv_Act act);
+
+public:
+ void RunThread(IThreadHandle *pHandle);
+ void OnTerminate(IThreadHandle *pHandle, bool cancel);
+
+public:
+ void RunThread_Perform();
+ void RunThread_Send_Recv();
+
+private:
+ bool waiting;
+ cURLHandle *handle;
+ cURLThread_Type type;
+ IEventSignal *event;
+ char *recv_buffer;
+ unsigned int recv_buffer_size;
+ unsigned int _current_recv_buffer_size;
+ SendRecv_Act send_recv_act;
+
+public:
+ size_t last_iolen;
+};
+
+
+#endif
+