Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
kill another out of date script
[simgrid.git] / contrib / psg / src / peersim / dynamics / WireKOut.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.core.*;
23 import peersim.config.*;
24
25 /**
26  * Takes a {@link Linkable} protocol and adds random connections. Note that no
27  * connections are removed, they are only added. So it can be used in
28  * combination with other initializers.
29  * @see GraphFactory#wireKOut
30  */
31 public class WireKOut extends WireGraph {
32
33 //--------------------------------------------------------------------------
34 //Parameters
35 //--------------------------------------------------------------------------
36
37 /**
38  * The number of outgoing edges to generate from each node.
39  * Passed to {@link GraphFactory#wireKOut}.
40  * No loop edges are generated.
41  * In the undirected case, the degree
42  * of nodes will be on average almost twice as much because the incoming links
43  * also become links out of each node.
44  * @config
45  */
46 private static final String PAR_DEGREE = "k";
47
48 //--------------------------------------------------------------------------
49 //Fields
50 //--------------------------------------------------------------------------
51
52 /**
53  * The number of outgoing edges to generate from each node.
54  */
55 private final int k;
56
57 //--------------------------------------------------------------------------
58 //Initialization
59 //--------------------------------------------------------------------------
60
61 /**
62  * Standard constructor that reads the configuration parameters.
63  * Invoked by the simulation engine.
64  * @param prefix the configuration prefix for this class
65  */
66 public WireKOut(String prefix)
67 {
68         super(prefix);
69         k = Configuration.getInt(prefix + "." + PAR_DEGREE);
70 }
71
72 //--------------------------------------------------------------------------
73 //Methods
74 //--------------------------------------------------------------------------
75
76 /** Calls {@link GraphFactory#wireKOut}. */
77 public void wire(Graph g) {
78
79         GraphFactory.wireKOut(g,k,CommonState.r);
80 }
81
82 }