亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? alzoubi.cc

?? clustering for ns-2 simulation
?? CC
字號:
/** * Copyright (c) 2006 Michele Mastrogiovanni. * *   Licensed under the Apache License, Version 2.0 (the "License"); *   you may not use this file except in compliance with the License. *   You may obtain a copy of the License at * *       http://www.apache.org/licenses/LICENSE-2.0 * *   Unless required by applicable law or agreed to in writing, software *   distributed under the License is distributed on an "AS IS" BASIS, *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. *   See the License for the specific language governing permissions and *   limitations under the License. * */ #include "alzoubi.h"#include "Separator.h"#include "BackboneUtility.h"int hdr_alzoubi::offset_;int ALZOUBI_Agent::_DEBUG_;double ALZOUBI_Agent::max_delay;int ALZOUBI_Agent::max_timeout_confirm;double ALZOUBI_Agent::jitter_timeout_confirm;double ALZOUBI_Agent::timeout_confirm;					int ALZOUBI_Agent::max_timeout_cds;double ALZOUBI_Agent::jitter_timeout_cds;double ALZOUBI_Agent::timeout_cds;															int ALZOUBI_Agent::max_timeout_last;double ALZOUBI_Agent::jitter_timeout_last;double ALZOUBI_Agent::timeout_last;static class AlzoubiHeaderClass : public PacketHeaderClass {public:    AlzoubiHeaderClass() : PacketHeaderClass("PacketHeader/ALZOUBI",                                             sizeof(hdr_alzoubi)) {        bind_offset(&hdr_alzoubi::offset_);    }} class_alzoubihdr;static class AlzoubiClass : public TclClass {public:    AlzoubiClass() : TclClass("Agent/ALZOUBI") {}    TclObject* create(int , const char*const* ) {        return(new ALZOUBI_Agent());    }} class_alzoubi;ALZOUBI_Agent::ALZOUBI_Agent() : ClusteringModule(PT_ALZOUBI){    timer = new AlzoubiTimer(this);		bind("max-delay", &max_delay);	bind_bool("debug", &_DEBUG_);	bind("max-timeout-confirm", &max_timeout_confirm);	bind("jitter-timeout-confirm", &jitter_timeout_confirm);	bind("timeout-confirm", &timeout_confirm);						bind("max-timeout-cds", &max_timeout_cds);	bind("jitter-timeout-cds", &jitter_timeout_cds);	bind("timeout-cds", &timeout_cds);																bind("max-timeout-last", &max_timeout_last);	bind("jitter-timeout-last", &jitter_timeout_last);	bind("timeout-last", &timeout_last);	}//// Procedura di inizializzazione delle strutture dati // della fase di Creazione del Backbone.//voidALZOUBI_Agent::initializeCDSConstruction(){	// Iposta il numero di round.    cdscData.round = 0;	cdscData.endFirstCDSBufferization = false;		    // Svuota il buffer dei messaggi ricevuti.	struct ColorMessage null_color_message;	null_color_message.round = -1;    for (NodeList::iterator i = neighbors.begin(); i != neighbors.end(); i++) {        cdscData.messages[0][*i] = null_color_message;        cdscData.messages[1][*i] = null_color_message;    }		cdscData.myLastColor = COLOR_WHITE;}//// Funzione di ricezione di un pacchetto di clustering.//void ALZOUBI_Agent::receive(Packet *p, Handler *h) {    struct hdr_alzoubi *alzoubih = HDR_ALZOUBI(p);        struct hdr_ip *iph = HDR_IP(p);        NodeAddress sender_address = iph->saddr();    // Destinazione.    NodeAddress destination_address = iph->daddr();        bool result;	// Aggiorna le statistiche dei messaggi e dei mytes ricevuti.    switch (alzoubih->msg_type) {                    case ALZOUBI_COLOR :						//			// Invia un messaggio diretto di conferma per la ricezione del messaggio			//			send_CONFIRM(sender_address, alzoubih->color_message.round, ALZOUBI_COLOR, false);			// 			// Se l'algoritmo e'terminato o e'nella fase finale si ignora il messaggio			// 			if (status > ALZOUBI_STATUS_CDS)				return;			//			// Bufferizza il messaggio: result vale true se il messaggio non e'mai arrivato prima.			//			result = bufferizeMessage(sender_address, alzoubih->color_message);			//			// Se il messaggio e' vecchio, viene ignorato.			//			if (!result)				return;			//			// Se non ci si trova nella fase di creazione del backbone, esce.			//			if (status == ALZOUBI_STATUS_END)				return;								// 			// E' arrivato un messaggio del primo round.			//			if (alzoubih->color_message.round == 0) {				//				// Riceve il messaggio				//				receive_COLOR(sender_address, alzoubih->color_message);									//				// Forza lo svuotamento del buffer: ovvero se sono arrivati tutti i messaggi				// del primo round e non e' mai stato fatto lo svuotamento dei messaggi del				// secondo round allora, vengono svuotati i messaggi del secondo round.				//				emptyCDSBuffer();			}			else if (alzoubih->color_message.round == 1) {				//				// Se il buffer dei messaggi del secondo round e'stato svuotato 				// allora significa anche che sono arrivati tutti i messaggi del primo round				// Si puo'procedere a ricevere il messaggio				//				if (cdscData.endSecondCDSBufferization)					//					// Riceve il messaggio					//					receive_COLOR(sender_address, alzoubih->color_message);			}			break;                    case ALZOUBI_LAST : 						send_CONFIRM(sender_address, 0, ALZOUBI_LAST, false);			// Se l'algoritmo e'terminato, allora non c'e'possibilita'di 			// cambiare ricevendo un messaggio LAST.			if (status == ALZOUBI_STATUS_END)				return;			// Se il messaggio e'un duplicato o sono arrivati 			// gia'tutti i messaggi di LAST, ignora.			if (find(cdscData.last_messages.begin(), cdscData.last_messages.end(), sender_address) == cdscData.last_messages.end())				return;								// Riceve il messaggio			receive_LAST(sender_address, alzoubih->last_message);						break;        case ALZOUBI_REQUEST :            receive_REQUEST(sender_address, alzoubih->request_message);            			break;                    case ALZOUBI_CONFIRM :            receive_CONFIRM(sender_address, alzoubih->confirm_message);            			break;                }}/************************//*	Messages	*//************************///// Invia la conferma di ricezione per un certo messaggio di un certo round.// Il messaggio viene utilizzato per confermare i messaggi di INFO, di FEEDBACK e di ACTION.// Il flag "send" serve per indicare se la conferma fa parte di un invio o di una risposta.//voidALZOUBI_Agent::send_CONFIRM(NodeAddress to, int round, AlzoubiMessageType type, bool send) {    Packet* p = allocpkt();    struct hdr_alzoubi * alzoubih = HDR_ALZOUBI(p);        // Common structures.    alzoubih->msg_type = ALZOUBI_CONFIRM;        // Message.    alzoubih->confirm_message.send = send;    alzoubih->confirm_message.round = round;    alzoubih->confirm_message.type = type;        size_t size = sizeof(ConfirmMessage) + sizeof(AlzoubiMessageType);        // Invia il messaggio.    sendDown(p, size, to, ALZOUBI_Agent::max_delay);}voidALZOUBI_Agent::send_REQUEST(NodeAddress to, AlzoubiMessageType type, int round) {    Packet* p = allocpkt();    struct hdr_alzoubi * alzoubih = HDR_ALZOUBI(p);        // Common structures.    alzoubih->msg_type = ALZOUBI_REQUEST;        // Message    alzoubih->request_message.type = type;    alzoubih->request_message.round = round;        size_t size = sizeof(RequestMessage) + sizeof(AlzoubiMessageType);        // Invia il messaggio.    sendDown(p, size, to, ALZOUBI_Agent::max_delay);}voidALZOUBI_Agent::emptyCDSBuffer(){	if (status != ALZOUBI_STATUS_CDS) {        // printf("ERROR: try to empty buffer while bufferizing\n");		return;	}        struct ColorMessage t1;    struct ColorMessage t2;        //    // Flag che dice se sono arrivati tutti i messaggi del primo round.    //    bool all = true;        //    // Se il buffer del primo round non 

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品欧美一区二区三区综合在 | 久久嫩草精品久久久精品一| 日本欧美久久久久免费播放网| 欧美日韩大陆在线| 日av在线不卡| 国产午夜精品一区二区| 成人精品小蝌蚪| 一区二区三区四区不卡视频| 欧美视频三区在线播放| 乱中年女人伦av一区二区| 国产午夜精品一区二区| 91视频免费观看| 日韩和欧美的一区| 久久人人爽爽爽人久久久| 国产a区久久久| 一区二区三区91| 欧美大片一区二区三区| 99久久精品久久久久久清纯| 一区二区三区日本| 精品日韩一区二区三区| 波多野结衣中文字幕一区 | 亚洲精品乱码久久久久久日本蜜臀| 一本大道综合伊人精品热热| 三级在线观看一区二区| xfplay精品久久| 色综合色综合色综合色综合色综合| 亚洲成人动漫一区| 国产欧美日韩视频在线观看| 在线一区二区三区四区| 国产高清不卡一区| 亚洲国产成人av好男人在线观看| 久久综合久久综合久久| 欧美日韩卡一卡二| 成人免费视频一区二区| 青娱乐精品在线视频| 亚洲欧洲精品一区二区三区| 欧美一二三区在线| 在线视频你懂得一区| 国产麻豆91精品| 日韩av在线播放中文字幕| 亚洲国产精品成人综合色在线婷婷| 777欧美精品| 色综合色综合色综合| 国产精品自在在线| 日韩精品成人一区二区三区| 亚洲精品视频免费观看| 久久精品在线免费观看| 91精品国产福利| 91成人免费在线| caoporn国产一区二区| 国产在线播放一区| 日韩成人免费电影| 亚洲成精国产精品女| 国产精品国产自产拍在线| 精品久久久久久久久久久久久久久久久 | 成人综合激情网| 久久国产精品99精品国产| 亚洲.国产.中文慕字在线| 亚洲色图欧洲色图婷婷| 亚洲国产精品精华液ab| 国产亚洲短视频| 亚洲精品一区二区三区四区高清 | 在线观看网站黄不卡| 岛国一区二区在线观看| 国产一区二区主播在线| 极品少妇一区二区三区精品视频| 视频一区视频二区中文字幕| 一区二区三区加勒比av| 一区二区三区精品视频在线| 亚洲欧美日韩在线播放| 亚洲美女淫视频| 亚洲欧美日韩中文字幕一区二区三区 | 久久综合九色综合97婷婷| 欧美一级日韩免费不卡| 欧美一级二级在线观看| 日韩片之四级片| 日韩一区二区在线看片| 日韩三区在线观看| 精品sm在线观看| 久久九九久精品国产免费直播| 欧美成人乱码一区二区三区| 欧美成人vr18sexvr| 精品福利一二区| 久久久久久久电影| 国产欧美一区二区精品久导航| 久久精品男人天堂av| 日本一区二区免费在线观看视频 | 亚洲欧美在线aaa| 亚洲日本在线天堂| 悠悠色在线精品| 亚洲国产精品久久一线不卡| 五月婷婷色综合| 蜜桃视频免费观看一区| 狠狠色丁香九九婷婷综合五月| 国产乱国产乱300精品| 成人久久18免费网站麻豆| 色综合久久久久久久| 欧洲精品在线观看| 日韩三级中文字幕| 国产欧美视频在线观看| 亚洲免费观看在线视频| 五月开心婷婷久久| 国产最新精品免费| 91日韩一区二区三区| 日韩一级二级三级精品视频| 精品av综合导航| 亚洲精品免费在线观看| 视频一区二区三区中文字幕| 国产综合色产在线精品| 色综合久久中文综合久久97| 911精品国产一区二区在线| 国产午夜精品久久久久久久 | 日日夜夜精品视频天天综合网| 久久国产三级精品| 97se亚洲国产综合自在线 | 久久综合99re88久久爱| 亚洲欧美国产高清| 经典一区二区三区| 欧洲av一区二区嗯嗯嗯啊| 精品成人一区二区三区四区| 亚洲一区二区三区免费视频| 国模套图日韩精品一区二区| 91黄色在线观看| 久久久精品免费网站| 亚洲成人一区二区| 懂色av噜噜一区二区三区av| 4438亚洲最大| 亚洲男人的天堂av| 国产黄人亚洲片| 欧美一区二区三区人| 亚洲免费资源在线播放| 国产精品资源网| 日韩一级免费观看| 亚洲影视在线观看| 成人午夜在线播放| 精品久久人人做人人爱| 亚洲韩国精品一区| 成年人午夜久久久| 精品88久久久久88久久久| 亚洲777理论| 色噜噜久久综合| 亚洲国产成人私人影院tom | 亚洲一区二区三区四区不卡| 国产91对白在线观看九色| 日韩欧美一区中文| 亚洲电影你懂得| 91麻豆视频网站| 国产精品国模大尺度视频| 国产一区二区0| 久久久久久久性| 精品亚洲国产成人av制服丝袜| 在线成人小视频| 午夜精品免费在线观看| 欧美亚洲动漫制服丝袜| 亚洲精品免费在线观看| 91丨porny丨在线| 1000部国产精品成人观看| 国产乱码精品一区二区三| 久久综合视频网| 国产一区亚洲一区| 久久综合久久久久88| 国产一区二区三区四区五区入口 | 日韩精品一区二区三区swag| 午夜视频在线观看一区二区| 欧美在线三级电影| 亚洲五月六月丁香激情| 欧美伊人久久大香线蕉综合69 | av不卡免费电影| 17c精品麻豆一区二区免费| 97国产精品videossex| 亚洲欧美日韩在线播放| 在线观看亚洲一区| 五月天中文字幕一区二区| 欧美蜜桃一区二区三区 | 精品综合免费视频观看| 精品粉嫩超白一线天av| 国产成人精品综合在线观看| 久久蜜臀中文字幕| 成人免费视频视频| 亚洲综合精品久久| 91精品国产麻豆| 国产精品亚洲人在线观看| 中文字幕欧美区| 色激情天天射综合网| 天天亚洲美女在线视频| 欧美成人精品1314www| 国产69精品久久99不卡| 最好看的中文字幕久久| 欧美日韩一区高清| 久久99久久99| 国产精品国产自产拍在线| 欧美唯美清纯偷拍| 久久国产精品免费| 欧美高清在线视频| 欧美色网站导航| 国产一区二区三区久久久| 最新国产の精品合集bt伙计| 在线不卡a资源高清| 国产91精品露脸国语对白| 一区二区三区影院|