50 lines
1.6 KiB
C
50 lines
1.6 KiB
C
//
|
|
// Created by cfif on 21.05.23.
|
|
//
|
|
|
|
#ifndef SMART_COMPONENTS_SOCKETINTERFACE_H
|
|
#define SMART_COMPONENTS_SOCKETINTERFACE_H
|
|
|
|
#include "stdint.h"
|
|
#include "stddef.h"
|
|
#include "stdbool.h"
|
|
#include "AtGsmSimComSSLType.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, eAtGsmSimComA7600_SSL_Type clientType, 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, CLIENT_TYPE, ADDR, ADDR_SIZE, PORT, TIMEOUT) (ENV)->open((ENV)->env,TYPE, CLIENT_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, sizeof(ADDR)-1 , PORT, TIMEOUT)
|
|
#define SocketInterface_close(ENV, ID) (ENV)->close((ENV)->env, ID)
|
|
|
|
#endif //SMART_COMPONENTS_SOCKETINTERFACE_H
|