Files
handleaiuinew/env/LMI/include/GoSdk/Internal/GoReceiver.x.h
T
2024-05-18 23:53:26 +08:00

49 lines
1.2 KiB
C

/**
* @file GoReceiver.x.h
*
* @internal
* Copyright (C) 2016-2021 by LMI Technologies Inc.
* Licensed under the MIT License.
* Redistributed files must retain the above copyright notice.
*/
#ifndef GO_SDK_RECEIVER_X_H
#define GO_SDK_RECEIVER_X_H
#include <GoSdk/Internal/GoReceiver.h>
#include <kApi/Threads/kThread.h>
#include <kApi/Io/kTcpClient.h>
#include <kApi/Io/kSerializer.h>
#define GO_RECEIVER_CONNECT_TIMEOUT (1000000)
#define GO_RECEIVER_QUIT_QUERY_INTERVAL (100000)
typedef struct GoReceiverClass
{
kObjectClass base;
volatile kBool quit;
kThread thread;
kTcpClient client;
kSerializer reader;
kCallbackFx onCancel;
kPointer onCancelContext;
GoReceiverMessageFx onMessage;
kPointer onMessageContext;
kSSize socketBufferSize;
kSSize clientBufferSize;
} GoReceiverClass;
kDeclareClassEx(Go, GoReceiver, kObject)
GoFx(kStatus) GoReceiver_Init(GoReceiver receiver, kType type, kAlloc alloc);
GoFx(kStatus) GoReceiver_VRelease(GoReceiver receiver);
GoFx(kStatus) GoReceiver_CancelHandler(GoReceiver receiver, kObject sender, kPointer args);
GoFx(kStatus) GoReceiver_ThreadEntry(GoReceiver receiver);
#endif