⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainendsys.cc

📁 模拟器提供了一个简单易用的平台
💻 CC
字号:
/* * File: mainendsys.cc * Author: Suman Banerjee <suman@cs.umd.edu> * Date: July 31, 2001 * Terms: GPL * * myns simulator */#include <stdio.h>#include <stdlib.h>#include <sys/time.h>#include "main.h"#include "parser-event.h"#include "../endsys/endsysnode.h"#include "../endsys/rp-agent.h"#include "../endsys/mc-agent.h"extern ParserReturnInfo parser_events;extern Node ** ptr_global_node_array;extern Agent** ptr_global_agent_array;int global_rp_agent_index = -1;void print_mesh_topology(Agent** agent_list, int len);void SpecificPrintSimulation (void) {  print_mesh_topology(ptr_global_agent_array,parser_events.num_agents);  return;}Node * SpecificNewNode (void) {  return (new EndsysNode);}void SpecificAttachAgents (void) {  for (void *pos = parser_events.attach_list->GetHeadPosition();       pos != NULL;       parser_events.attach_list->GetNext(pos) ) {    Attachment *a = parser_events.attach_list->GetAt(pos);    if (a->agent >= parser_events.attach_list->GetSize() ) {      printf ("[Err] Agent Ids should be alloted serially\n");      exit(-1);    }    if (a->atp == AGENT_APPLICATION_RP) { /* Agent 0 is the RP */      ptr_global_agent_array[a->agent] = new rpAgent;      global_rp_agent_index = a->agent;    }    else      ptr_global_agent_array[a->agent] = new mcAgent;    ptr_global_agent_array[a->agent]->init(a->agent,a->agent,ptr_global_node_array[a->node]);    delete a;  }   if (global_rp_agent_index == -1) {    printf ("[Err] RP agent is not defined\n");    exit(-1);  }  int rp_id = ptr_global_agent_array[global_rp_agent_index]->id;  int rp_node_id = ptr_global_agent_array[global_rp_agent_index]->n->id;  for (int i = 0; i < parser_events.attach_list->GetSize(); i++)    if (ptr_global_agent_array[i]->t == AGENT_APPLICATION_MC)      ((mcAgent*)(ptr_global_agent_array[i]))->set_rp_agent(rp_id, rp_node_id);      return;}void print_mesh_topology(Agent** agent_list, int len) {  printf("[mesh-topology] at %8.4f begin  \n",Scheduler::Clock());  for (int i = 0; i < len; i++) {    Agent *ag = agent_list[i];    if (ag != NULL) {      if (ag->started == false)        printf("[mesh-top] at %8.4f < ag %d nd %d > Stopped\n",Scheduler::Clock(),ag->id,ag->n->id);      else if (ag->t == AGENT_APPLICATION_MC) {        printf("[mesh-top] at %8.4f < ag %d nd %d > begin\n",Scheduler::Clock(),ag->id,ag->n->id);        for (int j = 0; j < MAXMESHMEMBERS; j++) {          if (((mcAgent*)ag)->meshrt.valid[j]) {            printf("[mesh-top] to < %d > pathlen < %d > cost < %8.2f > nexthop < %d >\n",j,((mcAgent*)ag)->meshrt.pathlen[j],((mcAgent*)ag)->meshrt.cost[j],(((mcAgent*)ag)->meshrt.pathlen[j] > 1) ? ((mcAgent*)ag)->meshrt.path[j][0].agent_id : -1);            if (((mcAgent*)ag)->meshrt.pathlen[j] > 1) {	      //              printf("path is :");              //for (int k = 0; k < ((mcAgent*)ag)->meshrt.pathlen[j] - 1; k++)	      //  printf("%d  ",((mcAgent*)ag)->meshrt.path[j][k].agent_id);              //printf("\n");            }            MeshMember *mm = ((mcAgent*)ag)->find_mesh_member_info(j);            if (mm != NULL) {              printf("[dests] for origin < ag %d > are... ",mm->ainfo.agent_id);              for (int k = 0; k < MAXMESHMEMBERS; k++) {                if (mm->source[k] == true) {                  printf("%d ",k);                }              }            }            printf("\n");          }        }        printf("[mesh-top] at %8.4f < ag %d nd %d > end\n",Scheduler::Clock(),ag->id,ag->n->id);      }      printf("\n");    }  }  printf("[mesh-topology] at %8.4f print stop \n", Scheduler::Clock());}int main (int argc, char ** argv) {  simulator_main(argc,argv);  return 1;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -