]> git.llucax.com Git - z.facultad/75.74/practicos.git/blob - practicas/pipi/src/dev.h
Base del TP de IP de distribuidos.
[z.facultad/75.74/practicos.git] / practicas / pipi / src / dev.h
1 #ifndef _DEV_H_
2 #define _DEV_H_
3
4 #include "frame.h"
5 #include "media.h"
6 #include <stdexcept>
7
8 /// Dispositivo de red (capa de enlace)
9 struct Dev
10 {
11
12     /// Dirección MAC
13     Frame::mac_type mac;
14
15     /// Medio físico
16     Media& media;
17
18     /// Constructor
19     Dev(const Frame::mac_type& mac, Media& media):
20         mac(mac), media(media)
21     {}
22
23     /// Envía un frame
24     void send(const Frame& frame) throw (std::runtime_error)
25     { media.transmit(frame); }
26
27     /// Recibe un frame
28     void recv(Frame& frame) throw (std::runtime_error)
29     { media.receive(frame); }
30
31     // Nada de andar copiando placas...
32     private:
33     Dev(const Dev&);
34     Dev& operator=(const Dev&);
35
36 };
37
38 #endif // _DEV_H_
39
40 // vim: set et sw=4 sts=4 :