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

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

?? initializer.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 _INITIALIZER_H_#define _INITIALIZER_H_#include <vector>////////////////////// Stato del nodo //////////////////////typedef enum {	INITIALIZER_STATUS_HELLO = 0x1,			// Il nodo sta ricevendo informazioni dai vicini.	INITIALIZER_STATUS_FIRST_DECISION = 0x2,  	// Il nodo si e' colorato la prima volta.	INITIALIZER_STATUS_LAST_DECISION = 0x3,  	// Il nodo si e' colorato l'ultima volta.	INITIALIZER_STATUS_END = 0x4				// Il nodo ha terminato l'algoritmo di colorazione.} InitializerStatus;//////////////////////// Tipi di messaggi ////////////////////////typedef enum{	INITIALIZER_NEIGHBORS = 0x0,			// Messaggio per comunicare la propria lista dei vicini.	INITIALIZER_COLOR = 0x1,				// Messaggio per comunicare il colore.	INITIALIZER_REQUEST = 0x2,				// Messaggio di richiesta di ritrasmissione.	INITIALIZER_DATA = 0x3					// Messaggio di dati.} InitializerMessageType;//////////////////////////// Header del pacchetto ////////////////////////////struct hdr_initializer {		InitializerMessageType msg_type;			// Tipo di messaggio.	InitializerStatus 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 INITIALIZER_NEIGHBORS).	Color color;                        // Informazioni sul colore (messaggio INITIALIZER_COLOR).		////////////////////	// Accessibilita' //	////////////////////	static int offset_;	inline static int& offset() { return offset_; }	inline static hdr_initializer* access(const Packet* p) {		return (hdr_initializer*) p->access(offset_);	}};///////////// Timer /////////////class InitializerTimer;///////////// Agent /////////////class INITIALIZER_Agent : public ClusteringModule{public:		INITIALIZER_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(InitializerStatus type, NodeAddress from);		// Segnala il raggiungimento del massimo numero di timeout per un messaggio.	void lastTimeout(InitializerStatus 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).	InitializerStatus 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.	InitializerTimer * 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(InitializerStatus status, NodeAddress to, Color color);		// Invia la richiesta di un certo messaggio ad un vicino.	void send_REQUEST(InitializerStatus 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, InitializerStatus status, Color color);		// Ricezione di una richiesta di ritrasmissione per un messaggio da parte di un vicino.	void receive_REQUEST(NodeAddress from, InitializerStatus 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 InitializerTimer: public Handler {public:		InitializerTimer(INITIALIZER_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.	INITIALIZER_Agent * agent;};#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产精品成人综合色在线婷婷| 麻豆精品蜜桃视频网站| 欧美大度的电影原声| 色婷婷综合久久久中文一区二区 | 一区二区三区在线免费| 日韩av电影免费观看高清完整版| 国产·精品毛片| 欧美电影在哪看比较好| 亚洲天堂av老司机| 国产麻豆午夜三级精品| 欧美日韩日本视频| 亚洲人成7777| 国产成人福利片| 日韩欧美成人一区| 午夜日韩在线电影| 欧美亚日韩国产aⅴ精品中极品| 国产午夜一区二区三区| 久久精品国产一区二区三 | 亚洲婷婷综合久久一本伊一区| 日本一区中文字幕| 欧美丝袜丝交足nylons| 国产精品福利电影一区二区三区四区| 久久国产尿小便嘘嘘尿| 欧美福利一区二区| 日韩精品欧美精品| 欧美日韩国产区一| 亚洲一区二区免费视频| 成人午夜电影小说| 国产精品午夜免费| 国产不卡免费视频| 国产精品国产三级国产普通话99| 国产精品一品二品| 国产午夜亚洲精品午夜鲁丝片| 狠狠色狠狠色综合日日91app| 欧美一区二区网站| 日本不卡1234视频| 日韩亚洲欧美在线| 六月丁香婷婷色狠狠久久| 日韩精品一区二区三区视频播放 | 日韩国产高清在线| 91麻豆精品国产91久久久使用方法| 亚洲欧美日韩中文字幕一区二区三区| 99精品视频一区| 亚洲欧美aⅴ...| 欧美视频一区二区三区四区| 亚洲一二三区不卡| 日韩一级高清毛片| 黑人巨大精品欧美黑白配亚洲| 2020国产成人综合网| 国产精品一线二线三线精华| 国产精品视频免费看| 91一区在线观看| 亚洲国产一区二区三区青草影视| 欧美日韩精品一区二区三区蜜桃| 日韩电影免费在线观看网站| 日韩欧美国产一区二区三区| 国产精品伊人色| 一区二区三区免费| 日韩一级片在线观看| 国产一区二区不卡| 亚洲欧美日韩国产中文在线| 欧美日韩精品二区第二页| 麻豆精品视频在线观看免费| 国产女人18毛片水真多成人如厕| 972aa.com艺术欧美| 午夜精品一区二区三区三上悠亚| 精品欧美一区二区三区精品久久| 国产iv一区二区三区| 亚洲国产欧美在线| 国产亚洲一区二区三区在线观看 | 亚洲电影一级黄| 欧美肥大bbwbbw高潮| 国产在线精品免费| 亚洲永久免费视频| 精品福利视频一区二区三区| 91亚洲精品久久久蜜桃网站| 精品一区二区三区在线观看国产| 136国产福利精品导航| 91精品国产黑色紧身裤美女| 成人网页在线观看| 图片区小说区国产精品视频| 国产欧美日韩中文久久| 欧美一区二区三区视频在线 | 久久99国产精品尤物| 亚洲女人小视频在线观看| 欧美不卡一区二区| 欧美日韩性生活| 99久久久国产精品| 国产精品中文字幕日韩精品| 午夜电影一区二区三区| 亚洲日本中文字幕区| 国产亚洲精品久| 精品女同一区二区| 欧美日本国产视频| 色域天天综合网| av网站一区二区三区| 国产一区二区三区免费播放| 日韩国产一区二| 亚洲主播在线观看| 一区二区欧美国产| 亚洲视频图片小说| 中文字幕欧美一| 欧美国产一区二区| 久久久电影一区二区三区| 91精品国产一区二区人妖| 欧美日韩精品一区二区在线播放| 91在线观看成人| 99精品热视频| av电影在线观看不卡| 成人激情午夜影院| 成人高清免费观看| 99亚偷拍自图区亚洲| 成人性视频网站| 国产成人av影院| 国产精品77777竹菊影视小说| 国模套图日韩精品一区二区| 久久国产精品免费| 国产在线国偷精品免费看| 国产在线观看免费一区| 韩国精品一区二区| 国产精品正在播放| 成人黄色777网| 色94色欧美sute亚洲13| 91麻豆精品视频| 日本韩国欧美在线| 欧美色图免费看| 7777精品伊人久久久大香线蕉超级流畅 | 国产精品少妇自拍| 国产精品久久久久久久第一福利 | 成人v精品蜜桃久久一区| 成人午夜在线播放| 日本国产一区二区| 欧美日韩一区二区三区四区五区| 欧美久久久久久蜜桃| 精品久久人人做人人爽| 久久精品一级爱片| 亚洲美女电影在线| 日韩精品乱码免费| 国产精品亚洲专一区二区三区| 国产成人免费视频网站高清观看视频| 成人免费电影视频| 精品视频在线免费| 欧美成人猛片aaaaaaa| 国产欧美精品一区aⅴ影院| 亚洲欧洲无码一区二区三区| 亚洲日本电影在线| 青青草原综合久久大伊人精品优势 | 亚洲精品v日韩精品| 日韩高清不卡一区二区| 国产在线不卡一区| 一本色道亚洲精品aⅴ| 欧美日韩色一区| 日本一区二区三区高清不卡 | 国产精品日韩精品欧美在线| 亚洲一区国产视频| 国产一区二区三区不卡在线观看| 99久久精品国产导航| 4438亚洲最大| 亚洲国产成人自拍| 日韩激情中文字幕| 97国产一区二区| 欧美精品一区二区三区高清aⅴ| 亚洲视频香蕉人妖| 国产精品一二一区| 欧美一区二区网站| 亚洲精品一卡二卡| 国产成人亚洲综合色影视| 欧美日韩中文国产| 国产亚洲精品免费| 麻豆91小视频| 欧美在线播放高清精品| 亚洲国产精华液网站w| 蜜桃传媒麻豆第一区在线观看| 99这里只有精品| 26uuu精品一区二区在线观看| 亚洲国产色一区| jiyouzz国产精品久久| 国产精品福利一区| 国产精品1区二区.| 日韩一区二区三区视频在线观看| 综合久久久久综合| 国产精品一级片在线观看| 欧美大片在线观看一区| 亚洲国产精品一区二区久久恐怖片| 大陆成人av片| 国产亚洲欧洲一区高清在线观看| 日韩影院在线观看| 欧洲精品在线观看| 亚洲男女毛片无遮挡| 国产成人在线视频播放| 欧美成人a∨高清免费观看| 日韩一区精品视频| 欧美日韩国产乱码电影| 亚洲一本大道在线| 在线观看av一区二区| 亚洲三级理论片| 日本道色综合久久| 一区二区三区影院| 在线免费观看日韩欧美| 亚洲欧美一区二区不卡|