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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? wuli.h

?? clustering for ns-2 simulation
?? H
字號:
/** * 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. * */ #ifndef _WULI_H_#define _WULI_H_#include <vector>////////////////////// Stato del nodo //////////////////////typedef enum {	WULI_STATUS_HELLO = 0x1,			// Il nodo sta ricevendo informazioni dai vicini.	WULI_STATUS_FIRST_DECISION = 0x2,  	// Il nodo si e' colorato la prima volta.	WULI_STATUS_LAST_DECISION = 0x3,  	// Il nodo si e' colorato l'ultima volta.	WULI_STATUS_END = 0x4				// Il nodo ha terminato l'algoritmo di colorazione.} WuliStatus;//////////////////////// Tipi di messaggi ////////////////////////typedef enum{	WULI_NEIGHBORS = 0x0,			// Messaggio per comunicare la propria lista dei vicini.	WULI_COLOR = 0x1,				// Messaggio per comunicare il colore.	WULI_REQUEST = 0x2,				// Messaggio di richiesta di ritrasmissione.	WULI_DATA = 0x3					// Messaggio di dati.} WuliMessageType;//////////////////////////// Header del pacchetto ////////////////////////////struct hdr_wuli {		WuliMessageType msg_type;			// Tipo di messaggio.	WuliStatus status;					// Stato del nodo all'invio del messaggio (usato per le ritrasmissioni).	NodeList * node_list;               // Lista dei vicini del mittente (solo per messaggio di tipo WULI_NEIGHBORS).	Color color;                        // Informazioni sul colore (messaggio WULI_COLOR).		////////////////////	// Accessibilita' //	////////////////////	static int offset_;	inline static int& offset() { return offset_; }	inline static hdr_wuli* access(const Packet* p) {		return (hdr_wuli*) p->access(offset_);	}};///////////// Timer /////////////class WuliTimer;///////////// Agent /////////////class WULI_Agent : public ClusteringModule{public:		WULI_Agent();		// Funzione di ricezione dell'algoritmo di clustering.	virtual void receive(Packet * p, Handler * h);		// Fa partire il modulo.	virtual void startModule();		// Termine del lavoro del modulo.	virtual void endModule();			// Segnala lo scadere di un timeout per un messaggio.	void timeout(WuliStatus type, NodeAddress from);		// Segnala il raggiungimento del massimo numero di timeout per un messaggio.	void lastTimeout(WuliStatus type, NodeAddress from);		// Verifica che un pacchetto sia di tipo DATA.	virtual bool isDataPacket(Packet * p);		// Preparazione all'invio di un messaggio al layer inferiore	virtual void prepareSendDataDown(Packet * p);		protected:			Color firstColor;				// Primo colore del nodo (memorizzato per le ritrasmissioni).	Color lastColor;				// Ultimo colore del nodo (memorizzato per le ritrasmissioni).	WuliStatus status;				// Stato dell'agente.	NodeColor firstColorNeighbors;	// Mappa del primo colore dei vicini.	NodeColor lastColorNeighbors;	// Mappa dell'ultimo colore dei vicini (e il clusterHead).	NodeNeighbors nodeNeighbors;	// Vicini dei vicini.	NodeNeighbors shortNeighbors;	// Vicini dei vicini che sono anche vicini del nodo. Il nodo escluso.	WuliTimer * timer;				// Gestore dei timeout.	protected:			///////////////	// Procedure //	///////////////			// Gestione della fase di transisione da uno stato all'altro	void processStatus();			// Invia la propria lista dei vicini ad un nodo o a tutti.	void send_NEIGHBORS(NodeAddress to);		// Invia la segnalazione di colore (BIANCO o NERO) per una fase dell'algoritmo.	void send_COLOR(WuliStatus status, NodeAddress to, Color color);		// Invia la richiesta di un certo messaggio ad un vicino.	void send_REQUEST(WuliStatus message, NodeAddress to);		// Ricezione della lista dei vicini di un vicino.	void receive_NEIGHBORS(NodeAddress from, NodeList & neighbors);		// Ricezione del colore NERO di un vicino per una fase del protocollo.	void receive_COLOR(NodeAddress from, WuliStatus status, Color color);		// Ricezione di una richiesta di ritrasmissione per un messaggio da parte di un vicino.	void receive_REQUEST(NodeAddress from, WuliStatus message);		////////////////////	// Interrogazioni //	////////////////////		// Verifica se due vicini del nodo solo NON connessi.	bool twoNeighborsAreUnlinked();		// Verifica se il nodo passato come parametro copre tutti i vicini del nodo (REGOLA 1).	bool neighborsCoversMyNeighbors(NodeList & nodes);		// Verifica la REGOLA sulla base delle lunghezze specificate.	bool checkRule(int max);	bool neighborsConnected(NodeList & nodes);		// Crea un vettore di combinazioni.	void makeCombinations(NodeList & elements, Combinations & combinations, NodeList & lengths);		void printDecoloredMessage(NodeList & nodi);	// Restituisce il piu'grande vicino NERO.	NodeAddress greaterCluster();public:	static int degree;			// Variante degree.	static int stojmenovic;		// Variation Stojmenovic (no second communication phase).	static int _DEBUG_;	static int limit;	static double max_delay;	static int max_timeout_hello;	static double jitter_timeout_hello;	static double timeout_hello;	static int max_timeout_first_decision;	static double jitter_timeout_first_decision;	static double timeout_first_decision;	static int max_timeout_last_decision;	static double jitter_timeout_last_decision;	static double timeout_last_decision;};/////////////////////////////////// Timer per le ritrasmissioni ///////////////////////////////////class WuliTimer: public Handler {public:		WuliTimer(WULI_Agent * a) : Handler(), agent(a) {}		void handle(Event* e);		// Inizializza i timeout di un nodo	void initTimeouts(NodeList & neighbors);		// Lancia tutti i timeout per i messaggi HELLO.	void launchHelloTimeouts();		// Lancia tutti i timeout per i messaggi FIRST DECISION.	void launchFirstDecisionTimeouts();		// Lancia tutti i timeout per i messaggi SECOND DECISION.	void launchLastDecisionTimeouts();		// Viene segnalata la ricezione di un messaggio di HELLO: si elimina il timeout.	void receivedHello(NodeAddress from);		// Viene segnalata la ricezione di un messaggio di FIRST DECISION: si elimina il timeout.	void receivedFirstDecision(NodeAddress from);		// Viene segnalata la ricezione di un messaggio di SECOND DECISION: si elimina il timeout.	void receivedLastDecision(NodeAddress from);		// Verifica che il timeout sia per il messaggio di HELLO.	bool isHelloTimeout(Event * e);		// Verifica che il timeout sia per il messaggio di FIRST DECISION.	bool isFirstDecisionTimeout(Event * e);		// Verifica che il timeout sia per il messaggio di LAST DECISION.	bool isLastDecisionTimeout(Event * e);	protected:			// Timeout attivi per i messaggi HELLO.	TimeoutMap hello_timeouts;		// Timeout attivi per i messaggi FIRST DECISION.	TimeoutMap first_decision_timeouts;		// Timeout attivi per i messaggi LAST DECISION.	TimeoutMap last_decision_timeouts;		// Agente proprietario del Timer.	WULI_Agent * agent;};#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲激情成人在线| 日本一区二区三区电影| 91一区二区三区在线播放| 国产成人综合网站| 国产乱国产乱300精品| 国产九色精品成人porny| 久久精品99国产精品| 美女视频网站黄色亚洲| 麻豆精品在线播放| 激情欧美一区二区三区在线观看| 日韩成人伦理电影在线观看| 午夜精品久久久久久久99水蜜桃 | 久久精品夜夜夜夜久久| 26uuu精品一区二区三区四区在线| 精品国产一区二区三区忘忧草| 久久久三级国产网站| 亚洲欧美在线高清| 亚洲成a人片在线不卡一二三区| 香港成人在线视频| 国产在线日韩欧美| 99精品视频在线免费观看| 欧美日韩情趣电影| 久久亚洲一区二区三区明星换脸| 久久久美女毛片| 亚洲欧洲一区二区三区| 午夜精品福利一区二区三区av| 男女性色大片免费观看一区二区 | 亚洲国产精品成人综合| 一区二区在线观看免费| 久久成人羞羞网站| 91免费观看国产| 欧美成人午夜电影| 亚洲色大成网站www久久九九| 水蜜桃久久夜色精品一区的特点| 麻豆国产精品一区二区三区 | 日韩一级免费一区| 中文字幕免费不卡| 无吗不卡中文字幕| 99久久精品久久久久久清纯| 欧美一区二区三区思思人| 国产精品久久久久国产精品日日| 午夜电影久久久| 91在线无精精品入口| 日韩美女天天操| 一级做a爱片久久| 国产91精品一区二区麻豆亚洲| 欧美美女视频在线观看| 中文字幕中文字幕一区| 捆绑变态av一区二区三区| 欧美亚洲一区二区在线观看| 欧美韩国一区二区| 久久国产尿小便嘘嘘| 欧美日韩日日夜夜| 一区二区三区丝袜| 色综合久久久久综合99| 国产欧美日韩另类视频免费观看| 视频一区欧美精品| 欧美疯狂做受xxxx富婆| 一区二区三区在线视频观看| 成人国产视频在线观看| 久久女同性恋中文字幕| 久久精品国产网站| 日韩一区二区三区在线视频| 亚洲伊人色欲综合网| 色综合久久天天综合网| 亚洲特黄一级片| 91在线观看免费视频| 欧美国产一区视频在线观看| 国产一区在线观看麻豆| 久久久久久电影| 国产电影一区二区三区| 国产欧美综合色| 国产v综合v亚洲欧| 国产精品素人一区二区| 国产成人午夜99999| 国产视频一区在线播放| 国产精品一级黄| 国产精品免费视频网站| 99视频精品全部免费在线| 成人欧美一区二区三区白人| 91亚洲资源网| 亚洲成av人影院| 日韩一区二区三区免费看| 老鸭窝一区二区久久精品| 2020国产精品久久精品美国| 激情综合色播五月| 欧美国产丝袜视频| 色综合久久综合网97色综合| 亚洲图片自拍偷拍| 日韩美女在线视频 | 91国在线观看| 日韩精品电影在线观看| 精品久久人人做人人爱| 国产91在线看| 亚洲在线视频网站| 日韩视频在线永久播放| 国产一区二区三区免费| 国产精品久久影院| 色老头久久综合| 久久99精品久久久久久动态图 | 欧美韩日一区二区三区| 在线日韩国产精品| 久久成人精品无人区| 国产精品久久久久久久久图文区| 91久久精品国产91性色tv| 久久精品999| 一区二区三区中文字幕精品精品| 欧美久久久一区| av一本久道久久综合久久鬼色| 午夜视频在线观看一区| 久久精品一区二区三区av| 欧美亚洲动漫精品| 国产麻豆成人精品| 视频在线观看一区二区三区| 国产亚洲精品资源在线26u| 一本大道av一区二区在线播放| 麻豆精品精品国产自在97香蕉| 欧美国产激情一区二区三区蜜月 | 欧美精品一区二区蜜臀亚洲| 99久久久国产精品| 国产麻豆精品在线| 日韩电影在线观看电影| 亚洲人成7777| 国产欧美综合在线观看第十页| 欧美丰满美乳xxx高潮www| av不卡在线播放| 国产在线视频一区二区| 日韩精品91亚洲二区在线观看| 中文字幕免费不卡在线| 精品久久久久一区二区国产| 欧美日韩国产高清一区二区三区| av午夜精品一区二区三区| 国产在线国偷精品产拍免费yy| 天堂影院一区二区| 亚洲综合久久久| 亚洲三级电影网站| 国产精品丝袜一区| 国产天堂亚洲国产碰碰| 久久亚洲精精品中文字幕早川悠里 | 日韩免费高清av| 欧美视频一区二区在线观看| 成人黄色软件下载| 国产大陆精品国产| 国产99久久精品| 国产成人丝袜美腿| www.欧美色图| 成人黄动漫网站免费app| 国产电影一区在线| 成人激情av网| 色综合一区二区| 色婷婷久久综合| 欧美无人高清视频在线观看| 欧美在线一二三四区| 日本国产一区二区| 在线视频亚洲一区| 欧美视频一区二| 欧美一区二区三区四区高清| 欧美一级二级在线观看| 日韩欧美一区二区视频| 久久综合狠狠综合| 日本一区二区三区在线不卡| 中文一区二区完整视频在线观看 | 91国产免费看| 欧美性猛交xxxxxx富婆| 91精选在线观看| 欧美mv和日韩mv的网站| 精品三级在线看| 欧美国产欧美综合| 亚洲人成7777| 欧美aa在线视频| 粉嫩绯色av一区二区在线观看| 99精品欧美一区| 欧美专区在线观看一区| 日韩一卡二卡三卡四卡| 欧美激情一区二区三区全黄| 亚洲欧美另类久久久精品| 亚洲第一激情av| 紧缚奴在线一区二区三区| 成人午夜短视频| 欧美日韩国产影片| 国产日韩欧美a| 午夜精品一区在线观看| 国产69精品久久久久毛片| 99re在线视频这里只有精品| 欧美精品高清视频| 国产精品欧美精品| 日本va欧美va瓶| 99久久综合99久久综合网站| 在线观看91av| 椎名由奈av一区二区三区| 日韩成人午夜电影| av一二三不卡影片| 精品国产三级a在线观看| 一区二区三区免费看视频| 看电影不卡的网站| 欧美综合视频在线观看| 欧美国产日韩在线观看| 免费黄网站欧美| 欧美色成人综合| 日韩毛片视频在线看|