UveosOnNation_VEGA_SocketSe.../SocketInterface.h

49 lines
1.5 KiB
C
Executable File

//
// Created by cfif on 21.05.23.
//
#ifndef SOCKET_TELIT_INTERFACE_H
#define SOCKET_TELIT_INTERFACE_H
#include "stdint.h"
#include "stddef.h"
#include "stdbool.h"
typedef enum {
eSocketType_UDP,
eSocketType_TCP,
} eSocketType;
typedef enum {
eSocketStatus_Connected,
eSocketStatus_Disconnected,
} eSocketStatus;
typedef struct {
void *env;
uint8_t (*open)(void *env, eSocketType type, char *addr, size_t addrSize, uint16_t port, uint32_t timeout);
size_t (*send)(void *env, uint8_t contextId, uint8_t *data, size_t size, uint32_t timeout);
size_t (*read)(void *env, uint8_t contextId, uint8_t *data, size_t sizeLimit, uint32_t timeout);
eSocketStatus (*status)(void *env, uint8_t contextId);
void (*close)(void *env, uint8_t contextId);
} tSocketInterface;
#define SOCKET_WRONG_CONTEXT 0xFF
#define SocketInterface_open(ENV, TYPE, ADDR, ADDR_SIZE, PORT, TIMEOUT) (ENV)->open((ENV)->env,TYPE, ADDR, ADDR_SIZE, PORT, TIMEOUT)
#define SocketInterface_send(ENV, ID, DATA, SIZE, TIMEOUT) (ENV)->send((ENV)->env, ID, DATA, SIZE, TIMEOUT)
#define SocketInterface_read(ENV, ID, DATA, SIZE, TIMEOUT) (ENV)->read((ENV)->env, ID, DATA, SIZE, TIMEOUT)
#define SocketInterface_status(ENV, ID) (ENV)->status((ENV)->env, ID)
#define SocketInterface_openStatic(ENV, TYPE, ADDR, PORT, TIMEOUT) SocketInterface_open(ENV,TYPE, ADDR, strlen(ADDR), PORT, TIMEOUT)
#define SocketInterface_close(ENV, ID) (ENV)->close((ENV)->env, ID)
#endif //SOCKET_TELIT_INTERFACE_H