Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Remove PSG from SimGrid git
[simgrid.git] / contrib / psg / src / peersim / reports / DegreeStats.java
diff --git a/contrib/psg/src/peersim/reports/DegreeStats.java b/contrib/psg/src/peersim/reports/DegreeStats.java
deleted file mode 100644 (file)
index d6c57e6..0000000
+++ /dev/null
@@ -1,187 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * 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 Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-package peersim.reports;
-
-import peersim.config.*;
-import peersim.core.*;
-import peersim.util.*;
-
-/**
- * Prints several statistics about the node degrees in the graph.
- */
-public class DegreeStats extends GraphObserver
-{
-
-//--------------------------------------------------------------------------
-//Parameter
-//--------------------------------------------------------------------------
-
-/**
- * The number of nodes to be used for sampling the degree. 
- * Defaults to full size of the graph.
- * @config
- */
-private static final String PAR_N = "n";
-
-/**
- * If defined, then the given number of nodes will be traced. That is, it is
- * guaranteed that in each call the same nodes will be picked in the same order.
- * If a node being traced fails, its degree will be considered 0. Not defined by
- * default.
- * @config
- */
-private static final String PAR_TRACE = "trace";
-
-/**
- * Selects a method to use when printing results. Three methods are known:
- * "stats" will use {@link IncrementalStats#toString}. "freq" will
- * use {@link IncrementalFreq#print}. "list" will print the
- * degrees of the sample nodes one by one in one line, separated by spaces.
- * Default is "stats".
- * @config
- */
-private static final String PAR_METHOD = "method";
-
-/**
- * Selects the types of links to print information about. Three methods are
- * known: "live": links pointing to live nodes, "dead": links pointing to nodes
- * that are unavailable and "all": both dead and live links summed. "all" and
- * "dead" require parameter {@value peersim.reports.GraphObserver#PAR_UNDIR} 
- * to be unset (graph must be directed). Default is "live".
- * @config
- */
-private static final String PAR_TYPE = "linktype";
-
-//--------------------------------------------------------------------------
-//Parameter
-//--------------------------------------------------------------------------
-
-private final int n;
-
-private final boolean trace;
-
-private Node[] traced = null;
-
-private final String method;
-
-private final String type;
-
-private final RandPermutation rp = new RandPermutation(CommonState.r);
-
-private int nextnode = 0;
-
-//--------------------------------------------------------------------------
-//Initialization
-//--------------------------------------------------------------------------
-
-/**
- * Standard constructor that reads the configuration parameters.
- * Invoked by the simulation engine.
- * @param name the configuration prefix for this class
- */
-public DegreeStats(String name)
-{
-       super(name);
-       n = Configuration.getInt(name + "." + PAR_N, -1);
-       trace = Configuration.contains(name + "." + PAR_TRACE);
-       method = Configuration.getString(name + "." + PAR_METHOD, "stats");
-       type = Configuration.getString(name + "." + PAR_TYPE, "live");
-       if ((type.equals("all") || type.equals("dead")) && undir) {
-               throw new IllegalParameterException(
-                       name + "." + PAR_TYPE, " Parameter "+ name + "." +
-                       PAR_UNDIR + " must not be defined if " + name + "."
-                       + PAR_TYPE + "=" + type + ".");
-       }
-}
-
-//--------------------------------------------------------------------------
-//Methods
-//--------------------------------------------------------------------------
-
-/**
- * Returns next node to get degree information about.
- */
-private int nextNodeId()
-{
-       if (trace) {
-               if (traced == null) {
-                       int nn = (n < 0 ? Network.size() : n);
-                       traced = new Node[nn];
-                       for (int j = 0; j < nn; ++j)
-                               traced[j] = Network.get(j);
-               }
-               return traced[nextnode++].getIndex();
-       } else
-               return rp.next();
-}
-
-// ---------------------------------------------------------------------
-
-/**
- * Returns degree information about next node.
- */
-private int nextDegree()
-{
-       final int nodeid = nextNodeId();
-       if (type.equals("live")) {
-               return g.degree(nodeid);
-       } else if (type.equals("all")) {
-               return ((OverlayGraph) g).fullDegree(nodeid);
-       } else if (type.equals("dead")) {
-               return ((OverlayGraph) g).fullDegree(nodeid) - g.degree(nodeid);
-       } else
-               throw new RuntimeException(name + ": invalid type");
-}
-
-// ---------------------------------------------------------------------
-
-/**
- * Prints statistics about node degree. The format of the output is specified
- * by {@value #PAR_METHOD}. See also the rest of the configuration parameters.
- * @return always false
- */
-public boolean execute()
-{
-       updateGraph();
-       if (!trace)
-               rp.reset(g.size());
-       else
-               nextnode = 0;
-       final int nn = (n < 0 ? Network.size() : n);
-       if (method.equals("stats")) {
-               IncrementalStats stats = new IncrementalStats();
-               for (int i = 0; i < nn; ++i)
-                       stats.add(nextDegree());
-               System.out.println(name + ": " + stats);
-       } else if (method.equals("freq")) {
-               IncrementalFreq stats = new IncrementalFreq();
-               for (int i = 0; i < nn; ++i)
-                       stats.add(nextDegree());
-               stats.print(System.out);
-               System.out.println("\n\n");
-       } else if (method.equals("list")) {
-               System.out.print(name + ": ");
-               for (int i = 0; i < nn; ++i)
-                       System.out.print(nextDegree() + " ");
-               System.out.println();
-       }
-       return false;
-}
-
-}