]> git.llucax.com Git - z.facultad/75.74/practicos.git/blobdiff - practicas/pipi/src/dev.h
Se agrega opción para recibir paquetes de un host específico y se mejora el
[z.facultad/75.74/practicos.git] / practicas / pipi / src / dev.h
index bae7e17c586e4d590792083379bce2ef096195b9..f06e8b12e094838ea235ce097e9427ebecec20d5 100644 (file)
@@ -3,7 +3,6 @@
 
 #include <stdexcept>
 
 
 #include <stdexcept>
 
-#define DEV_DEFAULT_KEY 0x1abcdef1
 #define DEV_MAX_MTU 1500
 
 /// Dispositivo de red (capa de enlace)
 #define DEV_MAX_MTU 1500
 
 /// Dispositivo de red (capa de enlace)
@@ -19,20 +18,25 @@ struct Dev
     /// MTU
     size_t mtu;
 
     /// MTU
     size_t mtu;
 
-    /// Identificador de la cola a usar
-    int que_id;
-
     /// Constructor
     /// Constructor
-    Dev(mac_type mac, key_t key = DEV_DEFAULT_KEY, size_t mtu = DEV_MAX_MTU)
-        throw (std::runtime_error, std::logic_error);
+    Dev(mac_type mac, size_t mtu = DEV_MAX_MTU)
+        throw (std::runtime_error, std::logic_error):
+            mac(mac), mtu(mtu)
+    {
+        if (mtu > DEV_MAX_MTU)
+            throw std::logic_error("MTU más grande que DEV_MAX_MTU");
+    }
 
     /// Envía un frame
 
     /// Envía un frame
-    void transmit(const std::string& data, const mac_type& mac)
-        throw (std::runtime_error, std::logic_error);
+    virtual void transmit(const std::string& data, const mac_type& mac)
+        throw (std::runtime_error, std::logic_error) = 0;
 
     /// Recibe un frame
 
     /// Recibe un frame
-    std::string receive()
-        throw (std::runtime_error);
+    virtual std::string receive()
+        throw (std::runtime_error) = 0;
+
+    /// Destructor virtual por si las moscas
+    virtual ~Dev() {}
 
     // Nada de andar copiando placas...
     private:
 
     // Nada de andar copiando placas...
     private: