gnunet_rest_plugin.h (1932B)
1 /* 2 This file is part of GNUnet. 3 Copyright (C) 2012-2015 GNUnet e.V. 4 5 GNUnet is free software: you can redistribute it and/or modify it 6 under the terms of the GNU Affero General Public License as published 7 by the Free Software Foundation, either version 3 of the License, 8 or (at your option) any later version. 9 10 GNUnet is distributed in the hope that it will be useful, but 11 WITHOUT ANY WARRANTY; without even the implied warranty of 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 Affero General Public License for more details. 14 15 You should have received a copy of the GNU Affero General Public License 16 along with this program. If not, see <http://www.gnu.org/licenses/>. 17 18 SPDX-License-Identifier: AGPL3.0-or-later 19 */ 20 /** 21 * @addtogroup rest_l2 REST service and libraries 22 * @{ 23 * 24 * @author Martin Schanzenbach 25 * 26 * @file 27 * GNUnet service REST plugin header 28 * 29 * @defgroup rest-plugin REST plugin for GNUnet services 30 * @{ 31 */ 32 #ifndef GNUNET_REST_PLUGIN_H 33 #define GNUNET_REST_PLUGIN_H 34 35 36 #include "gnunet_util_lib.h" 37 #include "gnunet_rest_lib.h" 38 #include "microhttpd.h" 39 40 #ifdef __cplusplus 41 extern "C" 42 { 43 #if 0 /* keep Emacsens' auto-indent happy */ 44 } 45 #endif 46 #endif 47 48 49 /** 50 * @brief struct returned by the initialization function of the plugin 51 */ 52 struct GNUNET_REST_Plugin 53 { 54 /** 55 * 56 * The closure of the plugin 57 * 58 */ 59 void *cls; 60 61 /** 62 * Plugin name. Used as the namespace for the API. 63 * e.g. http://hostname:port/name 64 */ 65 const char *name; 66 }; 67 68 typedef enum GNUNET_GenericReturnValue (*GNUNET_REST_ProcessingFunction)( 69 void *plugin, 70 struct GNUNET_REST_RequestHandle *handle, 71 GNUNET_REST_ResultProcessor proc, 72 void *proc_cls); 73 74 #if 0 /* keep Emacsens' auto-indent happy */ 75 { 76 #endif 77 #ifdef __cplusplus 78 } 79 #endif 80 81 #endif 82 83 /** @} */ /* end of group */ 84 85 /** @} */ /* end of group addition */