Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
kill another out of date script
[simgrid.git] / contrib / psg / src / peersim / dynamics / WireRegRootedTree.java
1 /*
2  * Copyright (c) 2003-2005 The BISON Project
3  *
4  * This program is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU Lesser General Public License version 2 as
6  * published by the Free Software Foundation.
7  *
8  * This program is distributed in the hope that it will be useful,
9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11  * GNU Lesser General Public License for more details.
12  *
13  * You should have received a copy of the GNU Lesser General Public License
14  * along with this program; if not, write to the Free Software
15  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
16  *
17  */
18
19 package peersim.dynamics;
20
21 import peersim.graph.*;
22 import peersim.config.*;
23
24 /**
25  * Takes a {@link peersim.core.Linkable} protocol and adds connections that
26  * define a regular
27  * rooted tree. Note that no
28  * connections are removed, they are only added. So it can be used in
29  * combination with other initializers.
30  * @see #wire
31  * @see GraphFactory#wireRegRootedTree
32  */
33 public class WireRegRootedTree extends WireGraph {
34
35 //--------------------------------------------------------------------------
36 //Parameters
37 //--------------------------------------------------------------------------
38
39 /**
40  * The parameter of the tree wiring method.
41  * It is passed to {@link GraphFactory#wireRegRootedTree}.
42  * @config
43  */
44 private static final String PAR_DEGREE = "k";
45
46 //--------------------------------------------------------------------------
47 //Fields
48 //--------------------------------------------------------------------------
49
50 private final int k;
51
52 //--------------------------------------------------------------------------
53 //Initialization
54 //--------------------------------------------------------------------------
55
56 /**
57  * Standard constructor that reads the configuration parameters.
58  * Invoked by the simulation engine.
59  * @param prefix the configuration prefix for this class
60  */
61 public WireRegRootedTree(String prefix)
62 {
63         super(prefix);
64         k = Configuration.getInt(prefix + "." + PAR_DEGREE);
65 }
66
67 //--------------------------------------------------------------------------
68 //Methods
69 //--------------------------------------------------------------------------
70
71 /** Calls {@link GraphFactory#wireRegRootedTree}. */
72 public void wire(Graph g) {
73
74         GraphFactory.wireRegRootedTree(g,k);
75 }
76
77 }