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

88 lines
2.8 KiB
C
Raw Normal View History

2017-04-09 16:56:11 +00:00
/**************************
* Header Dependency *
***************************
* Designed & Developed by *
* Adrien Marquès *
* <xdrm-brackets> *
***************************
* doowap31@gmail.com *
**************************/
2017-04-01 15:01:36 +00:00
#ifndef _LIB_HEADER_H_
#define _LIB_HEADER_H_
/* global */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <pthread.h>
#include <stdint.h>
2017-04-08 16:20:17 +00:00
#include <errno.h>
2017-04-01 15:01:36 +00:00
/* 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"
2017-04-01 15:01:36 +00:00
/* vars */
#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
2017-04-01 15:01:36 +00:00
#define MAX_BUF_LEN 512
#define MAX_TCP_THR 10
#define MAX_UDP_THR 10
#define maxHostLen 64
#define maxPortLen 6
#define SOCK_TIMEOUT 4 // 4sec timeout (1+ temps refresh plane)
#define PUBL_TIMEOUT 2 // 2sec entre chaque publication sur multicast UDP (pour avions)
2017-05-03 09:58:41 +00:00
struct context_unit{
int socket; // socket associée à un avion
struct plane data; // données d'un avion
};
struct context{
2017-05-03 09:58:41 +00:00
unsigned int n; // nombre d'avions
struct context_unit* unit; // les données des avions
};
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{
2017-04-26 12:25:05 +00:00
in_addr_t addr; // socket address
const unsigned short port; // socket port
int (*middleware)(struct middleware_arg*); // middleware function
void* (*handler)(void*); // management function (thread)
};
2017-04-01 15:01:36 +00:00
#endif