sysdis-project/central-manager/lib/header.h

84 lines
2.6 KiB
C

/**************************
* Header Dependency *
***************************
* Designed & Developed by *
* Adrien Marquès *
* <xdrm-brackets> *
***************************
* doowap31@gmail.com *
**************************/
#ifndef _LIB_HEADER_H_
#define _LIB_HEADER_H_
/* global */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <pthread.h>
#include <stdint.h>
#include <errno.h>
/* sys */
#include <sys/types.h>
#include <sys/socket.h>
/* socket */
#include <unistd.h> // close
#include <netinet/in.h>
#include <netdb.h> // getaddrinfo, getnameinfo
#include <arpa/inet.h>
#include "debug.h"
#include "data.h"
/* vars */
#define SERV_HOST "127.0.0.1" // adresse serveur
#define MCST_HOST "224.0.0.1" // adresse groupe multicast UDP -> plane
#define MCST_VTER "224.0.0.2" // adresse groupe multicast UDP -> viewTerm
#define MCST_CTER "224.0.0.3" // adresse groupe multicast UDP -> ctrlTerm
#define UDP_MCST 4444 // multicast UDP port for PLANES
#define TCP_LIST 0x504c // TCP plane command (PL = 8076)
#define UDP_VTER 4445 // viewTerm listener
#define UDP_CTER 4446 // ctrlTerm listener
#define MAX_BUF_LEN 512
#define MAX_TCP_THR 10
#define MAX_UDP_THR 10
#define maxHostLen 64
#define maxPortLen 6
#define SOCK_TIMEOUT 3 // 3sec timeout (1+ temps refresh plane)
#define PUBL_TIMEOUT 2 // 2sec entre chaque publication sur multicast UDP (pour avions)
struct context{
unsigned int n; // nombre d'avions
struct plane* data; // buffer tes données avion
};
struct middleware_arg{
int listenSock; // socket source
int* comSock; // socket destination
char entity[10]; // entity for log
};
struct handler_arg{
pthread_t* managers;
int* activeManagers;
int socket;
struct context* sgca;
};
struct listen_arg{
const char addr[16]; // socket address
const unsigned short port; // socket port
int (*middleware)(struct middleware_arg*); // middleware function
void* (*handler)(void*); // management function (thread)
};
#endif