00001 00002 // PROYECTO FIN DE CARRERA // 00003 // TITULO: Disenyo de nuevas arquitecturas y algoritmos de gestión de recursos en // 00004 // redes de acceso FiWi // 00005 // AUTOR: Ana Emma Lopez Mato // 00006 // TUTOR: Noemi Merayo Alvarez // 00007 // INGENIERIA TECNICA DE TELECOMUNICACIONES, SISTEMAS DE TELECOMUNICACION // 00008 // UNIVERSIDAD DE VALLADOLID // 00010 00011 #ifndef __RED_WIRELESS_BS_TABLE_H_ 00012 #define __RED_WIRELESS_BS_TABLE_H_ 00013 00014 #include <omnetpp.h> 00015 #include <vector> 00016 #include "DATA_m.h" 00017 using namespace std; 00018 /* 00019 * MODULO BS_table: 00020 * Contiene las diferentes tablas empleadas por el modulo BS para realizar el 00021 * encaminamiento de los paquetes: 00022 * array_de_rutas: Tabla con el nombre de los nodos que forman todas las rutas posibles. 00023 * array_de_longitudes: Tabla con la longitud (metros) de todas las rutas posibles. 00024 * array_de_retardos: Tabla con el retardo (segundos) de todas las rutas posibles. 00025 * rutas_optimas: Tabla con la ruta optima para cada usuario inalambrico. 00026 */ 00027 typedef std::vector<long> long_vector_t; // VECTOR DE TIPO ENTERO LARGO 00028 typedef std::vector<double> double_vector_t; // VECTOR DE TIPO DOUBLE 00029 typedef std::vector<char*> string_vector_t; // VECTOR DE TIPO CADENA DE CARACTERES 00030 typedef std::vector<int> int_vector_t; // VECTOR DE TIPO ENTERO 00031 typedef std::vector< int_vector_t > int_matrix_t; // MATRIZ DE TIPO ENTERO 00032 typedef std::vector< long_vector_t > long_matrix_t; // MATRIZ DE TIPO ENTERO LARGO 00033 typedef std::vector<double_vector_t> double_matrix_t; // MATRIZ DE TIPO DOUBLE 00034 typedef std::vector< string_vector_t > string_matrix_t; // MATRIZ DE TIPO CADENA DE CARACTERES 00035 00036 00037 class BS_table : public cSimpleModule 00038 { 00039 protected: 00040 virtual void initialize(); 00041 virtual void handleMessage(cMessage *msg); 00042 virtual void finish(); 00043 00044 public: 00045 int filas; 00046 int columnas; 00047 string_matrix_t array_de_rutas; 00048 double_matrix_t array_de_longitudes; 00049 double_matrix_t array_de_retardos; 00050 double_matrix_t array_de_pesos; 00051 00052 long_vector_t longitud_total_rutas; 00053 double_vector_t retardo_total_rutas; 00054 double_vector_t peso_total_rutas; 00055 int_vector_t saltos_total_rutas; 00056 00057 int_matrix_t num_rutas; 00058 vector<vector<vector<int> > > indices_rutas; 00059 00060 vector<vector<vector<char*> > > rutas_optimas_pasarelas; 00061 string_matrix_t rutas_optimas; 00062 00063 int paquetes_borrados; 00064 }; 00065 00066 #endif