-
Notifications
You must be signed in to change notification settings - Fork 3
/
connections.h
106 lines (91 loc) · 2.54 KB
/
connections.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
/*
* chatterbox Progetto del corso di LSO 2017
*
* Dipartimento di Informatica Università di Pisa
* Docenti: Prencipe, Torquati
*
* Studente: Luca Corbucci
* Matricola:
*
*/
#ifndef CONNECTIONS_H_
#define CONNECTIONS_H_
#define MAX_RETRIES 10
#define MAX_SLEEPING 3
#if !defined(UNIX_PATH_MAX)
#define UNIX_PATH_MAX 64
#endif
#include "message.h"
/**
* @file connection.h
* @brief Contiene le funzioni che implementano il protocollo
* tra i clients ed il server
*/
/**
* @function openConnection
* @brief Apre una connessione AF_UNIX verso il server
*
* @param path Path del socket AF_UNIX
* @param ntimes numero massimo di tentativi di retry
* @param secs tempo di attesa tra due retry consecutive
*
* @return il descrittore associato alla connessione in caso di successo
* -1 in caso di errore
*/
int openConnection(char* path, unsigned int ntimes, unsigned int secs);
// -------- server side -----
/**
* @function readHeader
* @brief Legge l'header del messaggio
*
* @param fd descrittore della connessione
* @param hdr puntatore all'header del messaggio da ricevere
*
* @return 0 in caso di successo -1 in caso di errore
*/
int readHeader(long connfd, message_hdr_t *hdr);
/**
* @function readData
* @brief Legge il body del messaggio
*
* @param fd descrittore della connessione
* @param data puntatore al body del messaggio
*
* @return 0 in caso di successo -1 in caso di errore
*/
int readData(long fd, message_data_t *data);
/**
* @function readMsg
* @brief Legge l'intero messaggio
*
* @param fd descrittore della connessione
* @param data puntatore al messaggio
*
* @return 0 in caso di successo -1 in caso di errore
*/
int readMsg(long fd, message_t *msg);
/* da completare da parte dello studente con altri metodi di interfaccia */
// ------- client side ------
/**
* @function sendRequest
* @brief Invia un messaggio di richiesta al server
*
* @param fd descrittore della connessione
* @param msg puntatore al messaggio da inviare
*
* @return 0 in caso di successo -1 in caso di errore
*/
int sendRequest(long fd, message_t *msg);
/**
* @function sendData
* @brief Invia il body del messaggio al server
*
* @param fd descrittore della connessione
* @param msg puntatore al messaggio da inviare
*
* @return 0 in caso di successo -1 in caso di errore
*/
int sendData(long fd, message_data_t *msg);
int sendHeader(long fd, message_hdr_t *msg);
/* da completare da parte dello studente con eventuali altri metodi di interfaccia */
#endif /* CONNECTIONS_H_ */