X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2Ftestbed%2Ftestbed_api_hosts.h;h=9b19eb8ec8e50b633e374bd75675921b34d2ee85;hb=d17a17ea785f91c18b5694eab3372c4e4564d95e;hp=6e2889eee9df90ea5062c47aa2e301905a20c255;hpb=468fea92f64d600ed635c417d91a235535098372;p=oweals%2Fgnunet.git diff --git a/src/testbed/testbed_api_hosts.h b/src/testbed/testbed_api_hosts.h index 6e2889eee..9b19eb8ec 100644 --- a/src/testbed/testbed_api_hosts.h +++ b/src/testbed/testbed_api_hosts.h @@ -1,21 +1,21 @@ /* This file is part of GNUnet - (C) 2008--2013 Christian Grothoff (and other contributing authors) + Copyright (C) 2008--2013 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 free software: you can redistribute it and/or modify it + under the terms of the GNU Affero General Public License as published + by the Free Software Foundation, either version 3 of the License, + 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. + Affero 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. + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . + + SPDX-License-Identifier: AGPL3.0-or-later */ /** @@ -24,14 +24,41 @@ * @author Christian Grothoff */ -#ifndef NEW_TESTING_API_HOSTS_H -#define NEW_TESTING_API_HOSTS_H +#ifndef TESTBED_API_HOSTS_H +#define TESTBED_API_HOSTS_H -//#include "gnunet_testbed_service.h" -//#include "testbed_helper.h" +// #include "gnunet_testbed_service.h" +// #include "testbed_helper.h" #include "testbed.h" +/** + * handle for host registration + */ +struct GNUNET_TESTBED_HostRegistrationHandle +{ + /** + * The host being registered + */ + struct GNUNET_TESTBED_Host *host; + + /** + * The controller at which this host is being registered + */ + struct GNUNET_TESTBED_Controller *c; + + /** + * The Registartion completion callback + */ + GNUNET_TESTBED_HostRegistrationCompletion cc; + + /** + * The closure for above callback + */ + void *cc_cls; +}; + + /** * Lookup a host by ID. * @@ -110,7 +137,8 @@ GNUNET_TESTBED_host_get_cfg_ (const struct GNUNET_TESTBED_Host *host); */ void GNUNET_TESTBED_host_replace_cfg_ (struct GNUNET_TESTBED_Host *host, - const struct GNUNET_CONFIGURATION_Handle *new_cfg); + const struct + GNUNET_CONFIGURATION_Handle *new_cfg); /** @@ -125,6 +153,18 @@ GNUNET_TESTBED_mark_host_registered_at_ (struct GNUNET_TESTBED_Host *host, *controller); +/** + * Unmarks a host registered at a controller + * + * @param host the host to unmark + * @param controller the controller at which this host has to be unmarked + */ +void +GNUNET_TESTBED_deregister_host_at_ (struct GNUNET_TESTBED_Host *host, + const struct GNUNET_TESTBED_Controller + *const controller); + + /** * Checks whether a host has been registered with the given controller * @@ -139,87 +179,45 @@ GNUNET_TESTBED_is_host_registered_ (const struct GNUNET_TESTBED_Host *host, /** - * (re)sets the operation queue for parallel overlay connects + * Queues the given operation in the queue for parallel overlay connects of the + * given host * * @param h the host handle - * @param npoc the number of parallel overlay connects - the queue size + * @param op the operation to queue in the given host's parally overlay connect + * queue */ void -GNUNET_TESTBED_set_num_parallel_overlay_connects_ (struct - GNUNET_TESTBED_Host *h, - unsigned int npoc); - - -/** - * Releases a time slot thus making it available for be used again - * - * @param h the host handle - * @param index the index of the the time slot - * @param key the key to prove ownership of the timeslot - * @return GNUNET_YES if the time slot is successfully removed; GNUNET_NO if the - * time slot cannot be removed - this could be because of the index - * greater than existing number of time slots or `key' being different - */ -int -GNUNET_TESTBED_release_time_slot_ (struct GNUNET_TESTBED_Host *h, - unsigned int index, void *key); +GNUNET_TESTBED_host_queue_oc_ (struct GNUNET_TESTBED_Host *h, + struct GNUNET_TESTBED_Operation *op); /** - * Function to update a time slot + * Sends termination signal to the controller's helper process * - * @param h the host handle - * @param index the index of the time slot to update - * @param key the key to identify ownership of the slot - * @param time the new time - * @param failed should this reading be treated as coming from a fail event + * @param cproc the handle to the controller's helper process */ void -GNUNET_TESTBED_update_time_slot_ (struct GNUNET_TESTBED_Host *h, - unsigned int index, void *key, - struct GNUNET_TIME_Relative time, int failed); +GNUNET_TESTBED_controller_kill_ (struct GNUNET_TESTBED_ControllerProc *cproc); /** - * Returns a timing slot which will be exclusively locked + * Cleans-up the controller's helper process handle * - * @param h the host handle - * @param key a pointer which is associated to the returned slot; should not be - * NULL. It serves as a key to determine the correct owner of the slot - * @return the time slot index in the array of time slots in the controller - * handle + * @param cproc the handle to the controller's helper process */ -unsigned int -GNUNET_TESTBED_get_tslot_ (struct GNUNET_TESTBED_Host *h, void *key); +void +GNUNET_TESTBED_controller_destroy_ (struct GNUNET_TESTBED_ControllerProc + *cproc); /** - * Queues the given operation in the queue for parallel overlay connects of the - * given host + * Resolves the hostname of the host to an ip address * - * @param h the host handle - * @param op the operation to queue in the given host's parally overlay connect - * queue + * @param host the host whose hostname is to be resolved */ void -GNUNET_TESTBED_host_queue_oc_ (struct GNUNET_TESTBED_Host *h, - struct GNUNET_TESTBED_Operation *op); - +GNUNET_TESTBED_host_resolve_ (struct GNUNET_TESTBED_Host *host); -/** - * Handler for GNUNET_MESSAGE_TYPE_TESTBED_ADDHOSTCONFIRM message from - * controller (testbed service) - * - * @param c the controller handler - * @param msg message received - * @return GNUNET_YES if we can continue receiving from service; GNUNET_NO if - * not - */ -int -GNUNET_TESTBED_host_handle_addhostconfirm_ (struct GNUNET_TESTBED_Controller *c, - const struct - GNUNET_TESTBED_HostConfirmedMessage - *msg); #endif /* end of testbed_api_hosts.h */