anastasis-gtk_dispatch.h (1486B)
1 /* 2 This file is part of anastasis-gtk. 3 Copyright (C) 2020 Anastasis SARL 4 5 Anastasis is free software; you can redistribute it and/or modify 6 it under the terms of the GNU General Public License as published 7 by the Free Software Foundation; either version 3, or (at your 8 option) any later version. 9 10 Anastasis 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 General Public License for more details. 14 15 You should have received a copy of the GNU General Public License 16 along with Anastasis; see the file COPYING. If not, write to the 17 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 18 Boston, MA 02110-1301, USA. 19 */ 20 /** 21 * @file src/anastasis/anastasis-gtk_dispatch.h 22 * @brief Generic state dispatcher 23 * @author Christian Grothoff 24 * @author Dennis Neufeld 25 */ 26 #ifndef ANASTASIS_GTK_DISPATCH_H 27 #define ANASTASIS_GTK_DISPATCH_H 28 29 /** 30 * Dispatch table item. 31 */ 32 struct DispatchItem 33 { 34 /** 35 * State in which to run @a action. 36 */ 37 const char *state; 38 39 /** 40 * The action function to execute. 41 */ 42 void (*action)(void); 43 }; 44 45 46 /** 47 * Run actions as per the given dispatch table based on the 48 * current #AG_redux_state. 49 * 50 * @param dt dispatching table 51 * @return #GNUNET_OK if an action was run from @a dt 52 */ 53 int 54 AG_dispatch (const struct DispatchItem *dt); 55 56 #endif