]> git.llucax.com Git - z.facultad/75.74/practicos.git/blob - practicas/practica3-corregida/parte1/protocol.h
Cosas de Distribuidos I.
[z.facultad/75.74/practicos.git] / practicas / practica3-corregida / parte1 / protocol.h
1 #ifndef _PROTOCOL_H_
2 #define _PROTOCOL_H_
3
4 #include <cstring>
5
6 #define PROTOCOL_MAXPAYLOAD 255
7
8 struct Protocol
9 {
10     enum Type { PUT, FIND, DEL, QUIT };
11     enum Result { OK, NOT_FOUND, EXISTS };
12
13     unsigned char type: 2;       // 2 bits para tipo
14     unsigned char end: 1;        // 1 bit para marca de FIN
15     unsigned char client_id: 5;  // 5 bits para id de cliente
16     char payload[PROTOCOL_MAXPAYLOAD];
17
18     Protocol() {}
19
20     Protocol(unsigned type, unsigned end, unsigned client_id, const char* p):
21         type(type), end(end), client_id(client_id)
22     {
23         if (p)
24             strncpy(payload, p, PROTOCOL_MAXPAYLOAD);
25         else
26             payload[0] = '\0';
27     }
28
29 };
30
31 #endif // _PROTOCOL_H_
32
33 // vim: set et sw=4 sts=4 :