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

📄 app-packet.cc

📁 模拟器提供了一个简单易用的平台
💻 CC
字号:
/************************************************** *  File: app-packet.cc  Author: Suman Banerjee <suman@cs.umd.edu>  Date: July 31, 2001  Terms: GPL  NICE implementation in myns  This program is distributed in the hope that it will be useful,  but WITHOUT ANY WARRANTY; without even the implied warranty of  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * **************************************************/#include <stdio.h>#include <stdlib.h>#include <scheduler.h>#include "app-packet.h"#undef LOG_PACKET_STATS#define THOUSAND	1000int AppPacket::m_pkt_display_period = THOUSAND;int AppPacket::m_app_pkt_gen_count = 0;int AppPacket::m_jq_cnt = 0;int AppPacket::m_jf_cnt = 0;int AppPacket::m_jr_cnt = 0;int AppPacket::m_cr_cnt = 0;int AppPacket::m_cm_cnt = 0;int AppPacket::m_pq_cnt = 0;int AppPacket::m_pr_cnt = 0;int AppPacket::m_pd_cnt = 0;int AppPacket::m_pu_cnt = 0;AppPacket::AppPacket (AppPacketSubType St) : Packet() {  t = PACKET_APP;  st = St;  switch (St) {  case CLUSTER_REFRESH :    u.clusterrefresh_p.is_root = false;    u.clusterrefresh_p.root_xfer = false;    u.clusterrefresh_p.cluster_remove = false;    u.clusterrefresh_p.hl_mbr_count = 0;    u.clusterrefresh_p.hl_agent_arr = NULL;#ifdef LOG_PACKET_STATS    m_cr_cnt ++;#endif // LOG_PACKET_STATS    break;  case JOIN_QUERY :#ifdef LOG_PACKET_STATS    m_jq_cnt ++;#endif // LOG_PACKET_STATS    break;  case JOIN_FORWARD :#ifdef LOG_PACKET_STATS    m_jf_cnt ++;#endif // LOG_PACKET_STATS    break;  case JOIN_RESPONSE :#ifdef LOG_PACKET_STATS    m_jr_cnt ++;#endif // LOG_PACKET_STATS    break;  case CLUSTER_MERGE :#ifdef LOG_PACKET_STATS    m_cm_cnt ++;#endif // LOG_PACKET_STATS    break;  case PING_QUERY :#ifdef LOG_PACKET_STATS    m_pq_cnt ++;#endif // LOG_PACKET_STATS    break;  case PING_RESPONSE :#ifdef LOG_PACKET_STATS    m_pr_cnt ++;#endif // LOG_PACKET_STATS    u.pingresp_p.mbr_count = 0;    u.pingresp_p.agent_arr = NULL;    break;  case PACKET_DATA :#ifdef LOG_PACKET_STATS    m_pd_cnt ++;#endif // LOG_PACKET_STATS    break;  case PACKET_UNDEFINED :#ifdef LOG_PACKET_STATS    m_pu_cnt ++;#endif // LOG_PACKET_STATS    break;  default :    break;  }#ifdef LOG_PACKET_STATS  m_app_pkt_gen_count ++;  if ( (m_app_pkt_gen_count % m_pkt_display_period) == 0 )    display_pkt_stats();#endif // LOG_PACKET_STATS}AppPacket::~AppPacket (void) {  switch (st) {  case JOIN_QUERY :#ifdef LOG_PACKET_STATS    m_jq_cnt --;#endif // LOG_PACKET_STATS    break;  case JOIN_FORWARD :#ifdef LOG_PACKET_STATS    m_jf_cnt --;#endif // LOG_PACKET_STATS    break;  case JOIN_RESPONSE :#ifdef LOG_PACKET_STATS    m_jr_cnt --;#endif // LOG_PACKET_STATS    break;   case CLUSTER_REFRESH :#ifdef LOG_PACKET_STATS    m_cr_cnt --;#endif // LOG_PACKET_STATS    if (u.clusterrefresh_p.hl_agent_arr != NULL)      free(u.clusterrefresh_p.hl_agent_arr);    break;  case CLUSTER_MERGE :#ifdef LOG_PACKET_STATS    m_cm_cnt --;#endif // LOG_PACKET_STATS    break;  case PING_QUERY :#ifdef LOG_PACKET_STATS    m_pq_cnt --;#endif // LOG_PACKET_STATS    break;  case PING_RESPONSE :#ifdef LOG_PACKET_STATS    m_pr_cnt --;#endif // LOG_PACKET_STATS    if (u.pingresp_p.mbr_count > 0)      free(u.pingresp_p.agent_arr);    break;  case PACKET_DATA :#ifdef LOG_PACKET_STATS    m_pd_cnt --;#endif // LOG_PACKET_STATS    break;  case PACKET_UNDEFINED :#ifdef LOG_PACKET_STATS    m_pu_cnt --;#endif // LOG_PACKET_STATS    break;  default :    break;  }}void AppPacket::display_pkt_stats (void) {  printf ("[pkt-stats] At %8.4f join-query %d\n", Scheduler::Clock(),AppPacket::m_jq_cnt);  printf ("[pkt-stats] At %8.4f join-forward %d\n", Scheduler::Clock(),m_jf_cnt);  printf ("[pkt-stats] At %8.4f join-response %d\n", Scheduler::Clock(),m_jr_cnt);  printf ("[pkt-stats] At %8.4f cluster-refresh %d\n", Scheduler::Clock(),m_cr_cnt);  printf ("[pkt-stats] At %8.4f cluster-merge %d\n", Scheduler::Clock(),m_cm_cnt);  printf ("[pkt-stats] At %8.4f ping-query %d\n", Scheduler::Clock(),m_pq_cnt);  printf ("[pkt-stats] At %8.4f ping-response %d\n", Scheduler::Clock(),m_pr_cnt);  printf ("[pkt-stats] At %8.4f packet-data %d\n", Scheduler::Clock(),m_pd_cnt);  printf ("[pkt-stats] At %8.4f packet-undefined %d\n", Scheduler::Clock(),m_pu_cnt);  return;}

⌨️ 快捷键说明

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