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 #include "OLT_Table.h" 00012 #include <vector> 00013 #include "GATE_m.h" 00014 #include "REPORT_m.h" 00015 #include "ETHERNET_m.h" 00016 /* 00017 * MODULO OLT_Table: 00018 */ 00019 Define_Module(OLT_Table); 00020 00022 //FUNCION NUMINITSTAGES()--> ESTA FUNCION INICIALIZA VARIAS ETAPAS. SE DEFINE PARA QUE DEVUELVA EL NUMERO DE ETAPAS DE INICIO. // 00023 // EN NUESTRO CASO, LA FUNCION DEVUELVE EL VALOR 1 YA QUE SOLO TENEMOS UNA ETAPA DE INICIALIZACION. // 00025 int OLT_Table::numInitStages() const{return 1;} 00026 00028 //FUNCION INITIALIZE()--> ESTA FUNCION SE INVOCA DESPUES DE QUE OMNET++ HA PUESTO EN MARCHA LA RED, EN LA CUAL SE LEEN LOS // 00029 // PARAMETROS DEL MODULO Y SE INICIALIZAN TODAS DAS LAS VARIABLES DECLARADAS PARA ESTE MODULO SIMPLE, SE // 00030 // ASIGNAN ESTRUCTURAS DE DATOS DINAMICOS Y SE ASIGNAN E INICIALIZAN LOS AUTOMENSAJES SI SON NECESARIOS // 00031 // PARA EL FUNCIONAMIENTO DE ESTE MODULO. // 00032 // LA FUNCION INITIALIZE(INT STAGE) SE UTILIZA PARA INICIALIZAR VARIAS ETAPAS SEGUN EL VALOR STAGE. // 00034 void OLT_Table::initialize(int stage) 00035 { 00036 // VARIABLES 00037 int file = (int)par("numOnu"); // VARIABLE QUE INDICA EL NUMERO DE FILAS DE LA TABLA DEL MODULO OLT_TABLE 00038 int columns = (int)par("numqueue")+2; // VARIABLE QUE INDICA EL NUMERO DE COLUMNAS DE LA TABLA DEL MODULO OLT_TABLE 00039 00040 if(stage==0) 00041 { 00042 // RESERVAMOS DE FORMA DINAMICA EL TAMANYO DE LA TABLA E INICIALIZAMOS A 0 00043 // DEFINIMOS LAS VARIABLES QUE NOS MARCAN EL TRAMANYO DE LA MATRIZ 00044 table_olt_report_time.resize(1,0); 00045 table_olt_report.resize(file); 00046 // CREAMOS LA MATRIZ MEDIANTE EL BUCLE FOR 00047 for(int m=0;m<file;m++) 00048 { 00049 table_olt_report[m].resize(columns,0); 00050 } 00051 } 00052 00053 } 00054 00056 //FUNCION HANDLEMESSAGE(CMESSAGE *MSG)--> ESTA FUNCION SE INVOCA CON EL MENSAJE COMO PARAMETRO CADA VEZ QUE EL MODULO RECIBE UN // 00057 // UN MENSAJE O PAQUETE. SE RECORRE EL CODIGO IMPLEMENTADO PARA DEVOLVER UN VALOR O // 00058 // EJECUTAR UNA FUNCION DENTRO DEL MODULO SIMPLE. EL TIEMPO DE SIMULACION NO TRANSCURRE // 00059 // DENTRO DE LA LLAMADA DE LA FUNCION HANDLEMESSAGE(CMESSAGE *MSG) MIENTRAS RECORRE EL // 00060 // CODIGO IMPLEMENTADO. // // 00062 void OLT_Table::handleMessage(cMessage *msg) 00063 { 00064 }