common/reals/real_socket_transport.h (42 lines of code) (raw):
// Copyright (c) Microsoft. All rights reserved.
#ifndef REAL_SOCKET_TRANSPORT_H
#define REAL_SOCKET_TRANSPORT_H
#include <stdbool.h>
#include <stdint.h>
#include "macro_utils/macro_utils.h"
#define R2(X) REGISTER_GLOBAL_MOCK_HOOK(X, real_##X);
#define REGISTER_SOCKET_TRANSPORT_GLOBAL_MOCK_HOOK() \
MU_FOR_EACH_1(R2, \
socket_transport_create_client, \
socket_transport_create_server, \
socket_transport_create_from_socket, \
socket_transport_destroy, \
socket_transport_connect, \
socket_transport_listen, \
socket_transport_disconnect, \
socket_transport_accept, \
socket_transport_send, \
socket_transport_receive, \
socket_transport_get_underlying_socket, \
socket_transport_is_valid_socket, \
socket_transport_get_local_address \
)
#ifdef __cplusplus
extern "C" {
#endif
SOCKET_TRANSPORT_HANDLE real_socket_transport_create_client(void);
SOCKET_TRANSPORT_HANDLE real_socket_transport_create_server(void);
SOCKET_TRANSPORT_HANDLE real_socket_transport_create_from_socket(SOCKET_HANDLE socket_handle);
void real_socket_transport_destroy(SOCKET_TRANSPORT_HANDLE socket_transport);
int real_socket_transport_connect(SOCKET_TRANSPORT_HANDLE socket_transport, const char* hostname, uint16_t port, uint32_t connection_timeout_ms);
int real_socket_transport_listen(SOCKET_TRANSPORT_HANDLE socket_transport, uint16_t port);
void real_socket_transport_disconnect(SOCKET_TRANSPORT_HANDLE socket_transport);
SOCKET_ACCEPT_RESULT real_socket_transport_accept(SOCKET_TRANSPORT_HANDLE socket_transport, SOCKET_TRANSPORT_HANDLE* accepted_socket, uint32_t connection_timeout_ms);
SOCKET_SEND_RESULT real_socket_transport_send(SOCKET_TRANSPORT_HANDLE socket_transport, const SOCKET_BUFFER* payload, uint32_t buffer_count, uint32_t* bytes_sent, uint32_t flags, void* data);
SOCKET_RECEIVE_RESULT real_socket_transport_receive(SOCKET_TRANSPORT_HANDLE socket_transport, SOCKET_BUFFER* payload, uint32_t buffer_count, uint32_t* bytes_recv, uint32_t flags, void* data);
SOCKET_HANDLE real_socket_transport_get_underlying_socket(SOCKET_TRANSPORT_HANDLE socket_transport);
bool real_socket_transport_is_valid_socket(SOCKET_TRANSPORT_HANDLE socket_transport_handle);
int real_socket_transport_get_local_address(SOCKET_TRANSPORT_HANDLE socket_transport, char hostname[MAX_GET_HOST_NAME_LEN], LOCAL_ADDRESS** local_address_list, uint32_t* address_count);
#ifdef __cplusplus
}
#endif
#endif //REAL_SOCKET_TRANSPORT_H