📄 macedon.cc
字号:
//Copyright (c) 2004, Charles Killian, Adolfo Rodriguez, Dejan Kostic, Sooraj Bhat, and Amin Vahdat//All rights reserved.////Redistribution and use in source and binary forms, with or without//modification, are permitted provided that the following conditions are met://// * Redistributions of source code must retain the above copyright// notice, this list of conditions and the following disclaimer.// * Redistributions in binary form must reproduce the above copyright// notice, this list of conditions and the following disclaimer in// the documentation and/or other materials provided with the// distribution.// * Neither the names of Duke University nor The University of// California, San Diego, nor the names of its contributors// may be used to endorse or promote products derived from// this software without specific prior written permission.////THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"//AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE//IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE//DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE//FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL//DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR//SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER//CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,//OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE//USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.#include "macedon.h"params parameters;extern int global_keep_quiet;MACEDON_Agent::MACEDON_Agent(packet_t arg) : Agent(arg){#ifdef MACEDON_SANITY_CHECKS mem_pkts_recvd_ =0; mem_pkts_sent_=0; mem_pkts_alloced_ =0; mem_pkts_freed_ =0; queued_join_=0;#endif#if ORACLE_COST oracle_nodes = 0; read_oracle_file();#endif neighbors_ =0; base_agent = 0; pt_type = arg; degree_ = parameters.getint("degree"); seed_ = parameters.getint("seed"); topo_ = parameters.getint("topology"); num_nodes_ = parameters.getint("num_nodes"); topo_nodes_ = parameters.getint("topology_size"); time_booted= Scheduler::instance().clock(); keep_quiet = 0; global_keep_quiet = keep_quiet = parameters.getint("quiet");#ifdef OVERCAST probe_transport = 0;#endif}double MACEDON_Agent::smooth_latency (double newv, double old, double alpha){ return newv*(1.0-alpha) + old*(alpha);}hdr_ip* MACEDON_Agent::gethdrip( Packet* pkt ) { return ( hdr_ip::access(pkt) ); }hdr_cmn* MACEDON_Agent::gethdrcmn( Packet* pkt ) { return ( hdr_cmn::access(pkt) );}#ifdef RWLOCKvoid MACEDON_Agent::Lock_Read() { if(base_agent) { base_agent->Lock_Read(); } else { Agent::Lock_Read(); }}#endifvoid MACEDON_Agent::Lock_Write() { if(base_agent) { base_agent->Lock_Write(); } else { Agent::Lock_Write(); }}void MACEDON_Agent::Lock() { if(base_agent) { base_agent->Lock(); } else { Agent::Lock(); }}void MACEDON_Agent::Unlock() { if(base_agent) { base_agent->Unlock(); } else { Agent::Unlock(); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -