aboutsummaryrefslogtreecommitdiff
path: root/curlthread.h
diff options
context:
space:
mode:
authorstephanie sappho lenzo <sappho@sappho.io>2023-07-13 06:11:48 -0400
committerstephanie sappho lenzo <sappho@sappho.io>2023-07-13 06:11:48 -0400
commitd643bdb4bd5cda1bed5c8de79de456782c785dff (patch)
tree014d40ad802c2495ee36212be40dab75c623d754 /curlthread.h
inital commit
Diffstat (limited to 'curlthread.h')
-rw-r--r--curlthread.h49
1 files changed, 49 insertions, 0 deletions
diff --git a/curlthread.h b/curlthread.h
new file mode 100644
index 0000000..ddb0c57
--- /dev/null
+++ b/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
+