Moving socket stuff to core/.
Stubbed win32 methods.
This commit is contained in:
56
src/xenia/core/socket.h
Normal file
56
src/xenia/core/socket.h
Normal file
@@ -0,0 +1,56 @@
|
||||
/**
|
||||
******************************************************************************
|
||||
* Xenia : Xbox 360 Emulator Research Project *
|
||||
******************************************************************************
|
||||
* Copyright 2013 Ben Vanik. All rights reserved. *
|
||||
* Released under the BSD license - see LICENSE in the root for more details. *
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
#ifndef XENIA_CORE_SOCKET_H_
|
||||
#define XENIA_CORE_SOCKET_H_
|
||||
|
||||
#include <xenia/common.h>
|
||||
#include <xenia/core.h>
|
||||
|
||||
|
||||
typedef int socket_t;
|
||||
#define XE_INVALID_SOCKET -1
|
||||
|
||||
|
||||
void xe_socket_init();
|
||||
|
||||
socket_t xe_socket_create_tcp();
|
||||
void xe_socket_close(socket_t socket);
|
||||
|
||||
void xe_socket_set_keepalive(socket_t socket, bool value);
|
||||
void xe_socket_set_reuseaddr(socket_t socket, bool value);
|
||||
void xe_socket_set_nodelay(socket_t socket, bool value);
|
||||
void xe_socket_set_nonblock(socket_t socket, bool value);
|
||||
|
||||
int xe_socket_bind(socket_t socket, uint32_t port);
|
||||
int xe_socket_listen(socket_t socket);
|
||||
|
||||
typedef struct {
|
||||
socket_t socket;
|
||||
char addr[16];
|
||||
} xe_socket_connection_t;
|
||||
int xe_socket_accept(socket_t socket, xe_socket_connection_t* out_client_info);
|
||||
|
||||
ssize_t xe_socket_send(socket_t socket, const uint8_t* data, size_t length,
|
||||
int flags, int* out_error_code);
|
||||
ssize_t xe_socket_recv(socket_t socket, uint8_t* data, size_t length, int flags,
|
||||
int* out_error_code);
|
||||
|
||||
typedef struct xe_socket_loop xe_socket_loop_t;
|
||||
xe_socket_loop_t* xe_socket_loop_create(socket_t socket);
|
||||
void xe_socket_loop_destroy(xe_socket_loop_t* loop);
|
||||
int xe_socket_loop_poll(xe_socket_loop_t* loop,
|
||||
bool check_read, bool check_write);
|
||||
void xe_socket_loop_set_queued_write(xe_socket_loop_t* loop);
|
||||
bool xe_socket_loop_check_queued_write(xe_socket_loop_t* loop);
|
||||
bool xe_socket_loop_check_socket_recv(xe_socket_loop_t* loop);
|
||||
bool xe_socket_loop_check_socket_send(xe_socket_loop_t* loop);
|
||||
|
||||
|
||||
#endif // XENIA_CORE_SOCKET_H_
|
||||
Reference in New Issue
Block a user