📄 app-packet.cc
字号:
/* * File: app-packet.cc * Author: Suman Banerjee <suman@cs.umd.edu> * Date: 15th February, 2002 * Terms: GPL * * NICE Application Layer Multicast */#include <stdio.h>#include <stdlib.h>//#include <scheduler.h>#include "app-packet.h"#include "agent.h"#undef LOG_PACKET_STATS//#define CLOCK 0.00#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_pda_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 break; case JOIN_QUERY :#ifdef LOG_PACKET_STATS m_jq_cnt ++;#endif break; case JOIN_FORWARD :#ifdef LOG_PACKET_STATS m_jf_cnt ++;#endif break; case JOIN_RESPONSE :#ifdef LOG_PACKET_STATS m_jr_cnt ++;#endif break; case CLUSTER_MERGE :#ifdef LOG_PACKET_STATS m_cm_cnt ++;#endif break; case PING_QUERY :#ifdef LOG_PACKET_STATS m_pq_cnt ++;#endif break; case PING_RESPONSE :#ifdef LOG_PACKET_STATS m_pr_cnt ++;#endif u.pingresp_p.mbr_count = 0; u.pingresp_p.agent_arr = NULL; break; case PACKET_DATA :#ifdef LOG_PACKET_STATS m_pd_cnt ++;#endif break; case PACKET_DATA_ACK :#ifdef LOG_PACKET_STATS m_pda_cnt ++;#endif break; case PACKET_UNDEFINED :#ifdef LOG_PACKET_STATS m_pu_cnt ++;#endif 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}AppPacket::~AppPacket (void) { switch (st) { case JOIN_QUERY :#ifdef LOG_PACKET_STATS m_jq_cnt --;#endif break; case JOIN_FORWARD :#ifdef LOG_PACKET_STATS m_jf_cnt --;#endif break; case JOIN_RESPONSE :#ifdef LOG_PACKET_STATS m_jr_cnt --;#endif break; case CLUSTER_REFRESH :#ifdef LOG_PACKET_STATS m_cr_cnt --;#endif 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 break; case PING_QUERY :#ifdef LOG_PACKET_STATS m_pq_cnt --;#endif break; case PING_RESPONSE :#ifdef LOG_PACKET_STATS m_pr_cnt --;#endif 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 //PRM-stats //u.data_p.hop_count = 0; //u.data_p.overlay_hop = 0; //PRM break; case PACKET_DATA_ACK :#ifdef LOG_PACKET_STATS m_pda_cnt --;#endif break; case PACKET_UNDEFINED :#ifdef LOG_PACKET_STATS m_pu_cnt --;#endif break; default : break; }}void AppPacket::display_pkt_stats (void) { printf ("[pkt-stats] At %8.4f join-query %d\n", /* Scheduler::my_clock() */ my_clock(),AppPacket::m_jq_cnt); printf ("[pkt-stats] At %8.4f join-forward %d\n", /* Scheduler::my_clock() */ my_clock(),m_jf_cnt); printf ("[pkt-stats] At %8.4f join-response %d\n", /* Scheduler::my_clock() */ my_clock(),m_jr_cnt); printf ("[pkt-stats] At %8.4f cluster-refresh %d\n", /* Scheduler::my_clock() */ my_clock(),m_cr_cnt); printf ("[pkt-stats] At %8.4f cluster-merge %d\n", /* Scheduler::my_clock() */ my_clock(),m_cm_cnt); printf ("[pkt-stats] At %8.4f ping-query %d\n", /* Scheduler::my_clock() */ my_clock(),m_pq_cnt); printf ("[pkt-stats] At %8.4f ping-response %d\n", /* Scheduler::my_clock() */ my_clock(),m_pr_cnt); printf ("[pkt-stats] At %8.4f packet-data %d\n", /* Scheduler::my_clock() */ my_clock(),m_pd_cnt); printf ("[pkt-stats] At %8.4f packet-ack %d\n", /* Scheduler::my_clock() */ my_clock(),m_pda_cnt); printf ("[pkt-stats] At %8.4f packet-undefined %d\n", /* Scheduler::my_clock() */ my_clock(),m_pu_cnt); return;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -