sm-ext-AsyncSocket/extension/context.h

47 lines
868 B
C
Raw Normal View History

2015-05-21 19:29:14 +02:00
#ifndef ASYNC_SOCKET_CONTEXT_H
#define ASYNC_SOCKET_CONTEXT_H
#include <stdlib.h>
#include <uv.h>
#include "smsdk_ext.h"
class CAsyncSocketContext
{
2015-05-21 19:29:14 +02:00
public:
2017-08-02 22:03:07 +02:00
IPluginContext *m_pContext;
Handle_t m_Handle;
2015-05-21 19:29:14 +02:00
bool m_Deleted;
bool m_PendingCallback;
bool m_Pending;
bool m_Server;
char *m_pHost;
int m_Port;
2015-05-21 19:29:14 +02:00
2017-08-02 22:03:07 +02:00
IChangeableForward *m_pConnectCallback;
IChangeableForward *m_pErrorCallback;
IChangeableForward *m_pDataCallback;
2015-05-21 19:29:14 +02:00
uv_getaddrinfo_t m_Resolver;
uv_tcp_t *m_pSocket;
uv_stream_t *m_pStream;
2017-08-02 22:03:07 +02:00
CAsyncSocketContext(IPluginContext *plugin);
~CAsyncSocketContext();
2015-05-21 19:29:14 +02:00
void Connected();
void OnConnect(CAsyncSocketContext *pSocketContext);
2015-05-21 19:29:14 +02:00
void OnError(int error);
void OnData(char *data, ssize_t size);
2015-05-21 19:29:14 +02:00
bool SetConnectCallback(funcid_t function);
bool SetErrorCallback(funcid_t function);
bool SetDataCallback(funcid_t function);
};
#endif