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

📄 app-packet.cc,v

📁 这是P2P流媒体方案-NICE的实现源码
💻 CC,V
字号:
head	1.1;access;symbols;locks; strict;comment	@// @;1.1date	2002.07.02.19.28.05;	author rbraud;	state Exp;branches;next	;desc@@1.1log@Initial revision@text@/* * 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    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 + -