From 78674f13e2ba87b026d9c242f91f602aee42774d Mon Sep 17 00:00:00 2001 From: Markus Teich Date: Wed, 11 Jan 2017 14:50:29 +0100 Subject: [PATCH] cmdline for auction-create --- src/auction/.gitignore | 4 +- src/auction/Makefile.am | 27 +++-- src/auction/gnunet-auction-create.c | 100 ++++++++++++++++++ ...gnunet-auction.c => gnunet-auction-info.c} | 0 src/auction/gnunet-auction-join.c | 84 +++++++++++++++ 5 files changed, 206 insertions(+), 9 deletions(-) create mode 100644 src/auction/gnunet-auction-create.c rename src/auction/{gnunet-auction.c => gnunet-auction-info.c} (100%) create mode 100644 src/auction/gnunet-auction-join.c diff --git a/src/auction/.gitignore b/src/auction/.gitignore index 768cce85b..5c3ec20cb 100644 --- a/src/auction/.gitignore +++ b/src/auction/.gitignore @@ -1,3 +1,5 @@ -gnunet-auction +gnunet-auction-create +gnunet-auction-info +gnunet-auction-join gnunet-service-auction test_auction_api diff --git a/src/auction/Makefile.am b/src/auction/Makefile.am index 0ced1ad22..18a3e5604 100644 --- a/src/auction/Makefile.am +++ b/src/auction/Makefile.am @@ -16,18 +16,29 @@ if USE_COVERAGE AM_CFLAGS = -fprofile-arcs -ftest-coverage endif -# Note: In a real installation, -# bin_PROGRAMS should be used for gnunet-auction -# libexec_PROGRAMS should be used for gnunet-service-auction +# use bin_PROGRAMS for gnunet-auction wrapper script -noinst_PROGRAMS = \ - gnunet-auction \ +libexec_PROGRAMS = \ + gnunet-auction-create \ + gnunet-auction-info \ + gnunet-auction-join \ gnunet-service-auction +gnunet_auction_create_SOURCES = \ + gnunet-auction-create.c +gnunet_auction_create_LDADD = \ + $(top_builddir)/src/util/libgnunetutil.la \ + $(GN_LIBINTL) + +gnunet_auction_info_SOURCES = \ + gnunet-auction-info.c +gnunet_auction_info_LDADD = \ + $(top_builddir)/src/util/libgnunetutil.la \ + $(GN_LIBINTL) -gnunet_auction_SOURCES = \ - gnunet-auction.c -gnunet_auction_LDADD = \ +gnunet_auction_join_SOURCES = \ + gnunet-auction-join.c +gnunet_auction_join_LDADD = \ $(top_builddir)/src/util/libgnunetutil.la \ $(GN_LIBINTL) diff --git a/src/auction/gnunet-auction-create.c b/src/auction/gnunet-auction-create.c new file mode 100644 index 000000000..fd3fcdabe --- /dev/null +++ b/src/auction/gnunet-auction-create.c @@ -0,0 +1,100 @@ +/* + This file is part of GNUnet. + Copyright (C) 2001, 2002, 2004, 2005, 2006, 2007, 2009 GNUnet e.V. + + 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., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. + */ + +/** + * @file auction/gnunet-auction-create.c + * @brief tool to create a new auction + * @author Markus Teich + */ +#include "platform.h" +#include "gnunet_util_lib.h" +/* #include "gnunet_auction_service.h" */ + +static int ret; /** Final status code. */ +static char *fndesc; /** filename of the item description */ +static char *fnprices; /** filename of the price map */ +static struct GNUNET_TIME_Relative dround; /** max round duration */ +static struct GNUNET_TIME_Relative dstart; /** time until auction starts */ +static unsigned int m = 0; /** auction parameter m */ +static int public = 0; /** public outcome */ + + +/** + * Main function that will be run by the scheduler. + * + * @param cls closure + * @param args remaining command-line arguments + * @param cfgfile name of the configuration file used (for saving, can be NULL!) + * @param cfg configuration + */ +static void +run (void *cls, + char *const *args, + const char *cfgfile, + const struct GNUNET_CONFIGURATION_Handle *cfg) +{ + /* main code here */ +} + + +/** + * The main function. + * + * @param argc number of arguments from the command line + * @param argv command line arguments + * @return 0 ok, 1 on error + */ +int +main (int argc, char *const *argv) +{ + static const struct GNUNET_GETOPT_CommandLineOption options[] = { + {'d', "description", "FILE", + gettext_noop ("description of the item to be sold"), + 1, &GNUNET_GETOPT_set_filename, &fndesc}, + {'c', "costmap", "FILE", + gettext_noop ("mapping of possible prices"), + 1, &GNUNET_GETOPT_set_filename, &fnprices}, + {'r', "roundtime", "DURATION", + gettext_noop ("max duration per round"), + 1, &GNUNET_GETOPT_set_relative_time, &dround}, + {'s', "starttime", "DURATION", + gettext_noop ("duration until auction starts"), + 1, &GNUNET_GETOPT_set_relative_time, &dstart}, + {'m', "m", "NUMBER", + gettext_noop ("number of items to sell, 0 for first price auction"), + 0, &GNUNET_GETOPT_set_uint, &m}, + {'p', "public", NULL, + gettext_noop ("public auction outcome"), + 0, &GNUNET_GETOPT_set_one, &public}, + GNUNET_GETOPT_OPTION_END + }; + if (GNUNET_OK != GNUNET_STRINGS_get_utf8_args (argc, argv, &argc, &argv)) + return 2; + + ret = (GNUNET_OK == + GNUNET_PROGRAM_run (argc, argv, + "gnunet-auction-create", + gettext_noop ("help text"), + options, + &run, + NULL)) ? ret : 1; + GNUNET_free ((void*) argv); + return ret; +} diff --git a/src/auction/gnunet-auction.c b/src/auction/gnunet-auction-info.c similarity index 100% rename from src/auction/gnunet-auction.c rename to src/auction/gnunet-auction-info.c diff --git a/src/auction/gnunet-auction-join.c b/src/auction/gnunet-auction-join.c new file mode 100644 index 000000000..a4af1152a --- /dev/null +++ b/src/auction/gnunet-auction-join.c @@ -0,0 +1,84 @@ +/* + This file is part of GNUnet. + Copyright (C) 2001, 2002, 2004, 2005, 2006, 2007, 2009 GNUnet e.V. + + 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., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +/** + * @file auction/gnunet-auction.c + * @brief auction for writing a tool + * @author Christian Grothoff + */ +#include "platform.h" +#include "gnunet_util_lib.h" +/* #include "gnunet_auction_service.h" */ + +/** + * Final status code. + */ +static int ret; + + +/** + * Main function that will be run by the scheduler. + * + * @param cls closure + * @param args remaining command-line arguments + * @param cfgfile name of the configuration file used (for saving, can be NULL!) + * @param cfg configuration + */ +static void +run (void *cls, + char *const *args, + const char *cfgfile, + const struct GNUNET_CONFIGURATION_Handle *cfg) +{ + /* main code here */ +} + + +/** + * The main function. + * + * @param argc number of arguments from the command line + * @param argv command line arguments + * @return 0 ok, 1 on error + */ +int +main (int argc, char *const *argv) +{ + static const struct GNUNET_GETOPT_CommandLineOption options[] = { + /* FIMXE: add options here */ + GNUNET_GETOPT_OPTION_END + }; + if (GNUNET_OK != + GNUNET_STRINGS_get_utf8_args (argc, argv, + &argc, &argv)) + return 2; + + ret = (GNUNET_OK == + GNUNET_PROGRAM_run (argc, argv, + "gnunet-auction", + gettext_noop ("help text"), + options, + &run, + NULL)) ? ret : 1; + GNUNET_free ((void*) argv); + return ret; +} + +/* end of gnunet-auction.c */ -- 2.25.1