|
|
- diff --git a/src/include/Makefile.am b/src/include/Makefile.am
- index ca0f6050d..bd8eca256 100644
- --- a/src/include/Makefile.am
- +++ b/src/include/Makefile.am
- @@ -127,6 +127,7 @@ gnunetinclude_HEADERS = \
- gnunet_time_lib.h \
- gnunet_transport_service.h \
- gnunet_transport_address_service.h \
- + gnunet_transport_application_service.h \
- gnunet_transport_communication_service.h \
- gnunet_transport_core_service.h \
- gnunet_transport_hello_service.h \
- --- /dev/null 2019-04-03 22:31:17.799489053 +0200
- +++ b/src/include/gnunet_transport_application_service.h 2019-04-05 14:30:10.326602964 +0200
- @@ -0,0 +1,100 @@
- +/*
- + This file is part of GNUnet.
- + Copyright (C) 2010-2015, 2018, 2019 GNUnet e.V.
- +
- + 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
- + Affero General Public License for more details.
- +
- + You should have received a copy of the GNU Affero General Public License
- + along with this program. If not, see <http://www.gnu.org/licenses/>.
- +
- + SPDX-License-Identifier: AGPL3.0-or-later
- + */
- +/**
- + * @file
- + * Bandwidth allocation API for applications to interact with
- + *
- + * @author Christian Grothoff
- + * @author Matthias Wachs
- + *
- + * @defgroup TRANSPORT service
- + * Bandwidth allocation
- + *
- + * @{
- + */
- +#ifndef GNUNET_TRANSPORT_APPLICATION_SERVICE_H
- +#define GNUNET_TRANSPORT_APPLICATION_SERVICE_H
- +
- +#include "gnunet_constants.h"
- +#include "gnunet_util_lib.h"
- +
- +/**
- + * Handle to the TRANSPORT subsystem for making suggestions about
- + * connections the peer would like to have.
- + */
- +struct GNUNET_TRANSPORT_ApplicationHandle;
- +
- +
- +/**
- + * Initialize the TRANSPORT application client handle.
- + *
- + * @param cfg configuration to use
- + * @return ats application handle, NULL on error
- + */
- +struct GNUNET_TRANSPORT_ApplicationHandle *
- +GNUNET_TRANSPORT_application_init (const struct GNUNET_CONFIGURATION_Handle *cfg);
- +
- +
- +/**
- + * Shutdown TRANSPORT application client.
- + *
- + * @param ch handle to destroy
- + */
- +void
- +GNUNET_TRANSPORT_application_done (struct GNUNET_TRANSPORT_ApplicationHandle *ch);
- +
- +
- +/**
- + * Handle for suggestion requests.
- + */
- +struct GNUNET_TRANSPORT_ApplicationSuggestHandle;
- +
- +
- +/**
- + * An application would like to communicate with a peer. TRANSPORT should
- + * allocate bandwith using a suitable address for requiremetns @a pk
- + * to transport.
- + *
- + * @param ch handle
- + * @param peer identity of the peer we need an address for
- + * @param pk what kind of application will the application require (can be
- + * #GNUNET_MQ_PREFERENCE_NONE, we will still try to connect)
- + * @param bw desired bandwith, can be zero (we will still try to connect)
- + * @return suggestion handle, NULL if request is already pending
- + */
- +struct GNUNET_TRANSPORT_ApplicationSuggestHandle *
- +GNUNET_TRANSPORT_application_suggest (struct GNUNET_TRANSPORT_ApplicationHandle *ch,
- + const struct GNUNET_PeerIdentity *peer,
- + enum GNUNET_MQ_PreferenceKind pk,
- + struct GNUNET_BANDWIDTH_Value32NBO bw);
- +
- +
- +/**
- + * We no longer care about communicating with a peer.
- + *
- + * @param sh handle
- + */
- +void
- +GNUNET_TRANSPORT_application_suggest_cancel (struct GNUNET_TRANSPORT_ApplicationSuggestHandle *sh);
- +
- +/** @} */ /* end of group */
- +
- +#endif
- +/* end of file gnunet_ats_application_service.h */
|