1 /* $Header: /var/cvs/mbdyn/mbdyn/mbdyn-1.0/libraries/libmbutil/cleanup.h,v 1.8 2017/01/12 14:44:04 masarati Exp $*/ 2 /* 3 * MBDyn (C) is a multibody analysis code. 4 * http://www.mbdyn.org 5 * 6 * Copyright (C) 1996-2017 7 * 8 * Pierangelo Masarati <masarati@aero.polimi.it> 9 * Paolo Mantegazza <mantegazza@aero.polimi.it> 10 * 11 * Dipartimento di Ingegneria Aerospaziale - Politecnico di Milano 12 * via La Masa, 34 - 20156 Milano, Italy 13 * http://www.aero.polimi.it 14 * 15 * Changing this copyright notice is forbidden. 16 * 17 * This program is free software; you can redistribute it and/or modify 18 * it under the terms of the GNU General Public License as published by 19 * the Free Software Foundation (version 2 of the License). 20 * 21 * 22 * This program is distributed in the hope that it will be useful, 23 * but WITHOUT ANY WARRANTY; without even the implied warranty of 24 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 25 * GNU General Public License for more details. 26 * 27 * You should have received a copy of the GNU General Public License 28 * along with this program; if not, write to the Free Software 29 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 30 */ 31 32 #ifndef CLEANUP_H 33 #define CLEANUP_H 34 35 #ifdef __cplusplus 36 extern "C" { 37 #endif /* __cplusplus */ 38 39 typedef int (*mbdyn_cleanup_f)(void *); 40 41 /* registers a cleanup handler; if datapp is not 0, 42 * *datap receives the address of a void * that can be used to store 43 * the address of private data to be passed to the handler. 44 * The handler should take care of destroying the data pointed 45 * by **datapp unless it has already been reset by the caller. 46 */ 47 extern int 48 mbdyn_cleanup_register(mbdyn_cleanup_f handler, void ***datapp); 49 50 extern int 51 mbdyn_cleanup(void); 52 53 extern void 54 mbdyn_cleanup_destroy(void); 55 56 #ifdef __cplusplus 57 } 58 #endif /* __cplusplus */ 59 60 #endif /* CLEANUP_H */ 61