File Overlay/Gia/GiaModules.ned

Contains:

//
// Copyright (C) 2006 Institut fuer Telematik, Universitaet Karlsruhe (TH)
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation; either version 2
// of the License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
//


// @file GiaModules.ned
// @author Robert Palmer, Bernhard Heep

import
	"GiaNeighbors",
	"GiaKeyListModule",
	"GiaTokenFactory",
	"Gia";

//
// Overlay Module which connects Gia-Module with its helper modules (TokenFactory-, Neighbors-, KeyList-Module)
// @author Robert Palmer
module GiaModules

	parameters:
		localPort : numeric, 	// local UDP-Port
		debugOutput : bool,	// use debug-output?
		joinOnApplicationRequest : bool, // only join the overlay on application request
		lookupRedundantNodes : numeric,
		lookupParallelPaths : numeric,
		lookupParallelRpcs : numeric,
		lookupSecure : bool,
		lookupMerge : bool,
		lookupFailedNodeRpcs : bool,

		measureNetwInitPhase : bool,
		drawOverlayTopology : numeric,
		hopCountMax : numeric,
		keyLength : numeric;

	gates:
        	in: from_udp;		// gate from UDP
        	out: to_udp;		// gate to UDP
		in: from_app;		// gate from application
		out: to_app;		// gate to application

	submodules:
        	gia: Gia;		// gia main module
			parameters: 
				localPort = localPort,		// local UDP-Port
				debugOutput = debugOutput,	// use debug output?
				measureNetwInitPhase = measureNetwInitPhase,
				joinOnApplicationRequest = joinOnApplicationRequest,
				lookupRedundantNodes = lookupRedundantNodes,
				lookupParallelPaths = lookupParallelPaths,
				lookupParallelRpcs = lookupParallelRpcs,
				lookupSecure = lookupSecure,
				lookupMerge = lookupMerge,
				lookupFailedNodeRpcs = lookupFailedNodeRpcs,

				hopCountMax = hopCountMax,
				drawOverlayTopology = drawOverlayTopology,
				keyLength = keyLength;

            		display: "p=60,60;i=block/circle";	// display icon
		keyListModule: GiaKeyListModule;		// KeyList-Module
			display: "p=150,60;i=block/table";	// display icon
		neighbors: GiaNeighbors;			// Neigbors-Module
			display: "p=240,60;i=block/table";	// display icon
		tokenFactory: GiaTokenFactory;			// TokenFactory-Module
			display: "p=330,60;i=block/table";	// display icon
	connections:
		from_udp --> gia.from_udp++;			// connect from_udp with gia.from_udp
		to_udp <-- gia.to_udp++;			// connect to_upd with gia.to_udp
		from_app --> gia.from_app;			// connect from_app with gia.from_app
		to_app <-- gia.to_app;				// connect to_app with gia.to_app

endmodule