From a942ffadee0fe9fd385decdf818ad6baae8c99b3 Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Tue, 27 Aug 2013 17:16:18 +0000 Subject: - adapted source tree structure to gradle/maven conventions - added gradle wrapper - fixes to adapt to GNUnet changes (new time unit, ...) - helper process in util - started implementing testbed - skeleton for voting tools - use new mq api - implemented some more transport api - mesh --- src/main/java/org/gnunet/util/RunaboutUtil.java | 55 +++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 src/main/java/org/gnunet/util/RunaboutUtil.java (limited to 'src/main/java/org/gnunet/util/RunaboutUtil.java') diff --git a/src/main/java/org/gnunet/util/RunaboutUtil.java b/src/main/java/org/gnunet/util/RunaboutUtil.java new file mode 100644 index 0000000..a82dc0a --- /dev/null +++ b/src/main/java/org/gnunet/util/RunaboutUtil.java @@ -0,0 +1,55 @@ +/* + This file is part of GNUnet. + (C) 2011, 2012 Christian Grothoff (and other contributing authors) + + GNUnet 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 3, or (at your + option) any later version. + + GNUnet 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 GNUnet; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. + */ + +package org.gnunet.util; + +import org.gnunet.construct.MessageLoader; +import org.grothoff.Runabout; + +import java.lang.reflect.Method; +import java.util.ArrayList; + + +/** + * Utility methods for the runabout. + */ +public class RunaboutUtil { + public static ArrayList getRunaboutVisitees(Runabout r) { + Class rc = r.getClass(); + ArrayList ret = new ArrayList(5); + for (Method m : rc.getMethods()) { + if (!(m.getName().equals("visit") && m.getParameterTypes().length == 1)) { + continue; + } + ret.add(m.getParameterTypes()[0]); + } + return ret; + } + + @SuppressWarnings("unchecked") + public static int[] getRunaboutMessageTypes(Runabout r) { + ArrayList visitees = getRunaboutVisitees(r); + int[] msgtypes = new int[visitees.size()]; + for (int i = 0; i < visitees.size(); ++i) { + msgtypes[i] = MessageLoader.getUnionTag(GnunetMessage.Body.class, visitees.get(i)); + } + return msgtypes; + } +} -- cgit v1.2.3