#pragma once #include "rogue_enemy.h" #define MAX_CONNECTED_CLIENTS 8 typedef struct ipc_strategy_socket { struct sockaddr_un serveraddr; int fd; } ipc_strategy_socket_t; typedef struct ipc_strategy_ssocket { pthread_mutex_t mutex; int clients[MAX_CONNECTED_CLIENTS]; } ipc_strategy_ssocket_t; typedef struct ipc_strategy_pipe { // this pipe is reserved for reporting in_message_t int in_message_pipe_fd; // this messages is reserved for receiving out_message_t int out_message_pipe_fd; } ipc_strategy_pipe_t; typedef enum ipc_strategy { ipc_unix_pipe, ipc_server_sockets, ipc_client_socket, } ipc_strategy_t; typedef struct ipc { ipc_strategy_t type; union { ipc_strategy_pipe_t pipe; ipc_strategy_ssocket_t ssocket; ipc_strategy_socket_t socket; } endpoint; } ipc_t; #define SERVER_PATH "/home/rogue-enemy.sock"