Libmacro  0.2
Libmacro is an extensible macro and hotkey library.
data_member.h
Go to the documentation of this file.
1 /* Libmacro - A multi-platform, extendable macro and hotkey C library
2  Copyright (C) 2013 Jonathan Pelletier, New Paradigm Software
3 
4  This library is free software; you can redistribute it and/or
5  modify it under the terms of the GNU Lesser General Public
6  License as published by the Free Software Foundation; either
7  version 2.1 of the License, or (at your option) any later version.
8 
9  This library is distributed in the hope that it will be useful,
10  but WITHOUT ANY WARRANTY; without even the implied warranty of
11  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12  Lesser General Public License for more details.
13 
14  You should have received a copy of the GNU Lesser General Public
15  License along with this library; if not, write to the Free Software
16  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17 */
18 
23 #ifndef MCR_BASE_DATA_MEMBER_H_
24 #define MCR_BASE_DATA_MEMBER_H_
25 
26 #include "mcr/util/util.h"
27 
28 #ifdef __cplusplus
29 extern "C" {
30 #endif
31 
33 
41  void *data;
46  void (*deallocate)(void *);
52 };
53 
60 MCR_API void mcr_DataMember_ctor(struct mcr_DataMember *dataMemberPt,
61  void *dataPt,
62  void (*deallocateFnc)(void *),
65 #define mcr_DataMember_deinit mcr_DataMember_destroy
66 
73 MCR_API void mcr_DataMember_set(struct mcr_DataMember *dataMemberPt,
74  void *dataPt, void (*deallocateFnc)(void *),
76 
82 MCR_API bool mcr_DataMember_heap(struct mcr_DataMember *dataMemberPt);
83 
88 MCR_API void mcr_DataMember_destroy(struct mcr_DataMember *dataMemberPt);
89 
90 #ifdef __cplusplus
91 }
92 #endif
93 
94 #endif
MCR_API void mcr_DataMember_ctor(struct mcr_DataMember *dataMemberPt, void *dataPt, void(*deallocateFnc)(void *), mcr_data_fnc deinit)
mcr_data_fnc deinit
Definition: data_member.h:51
MCR_API void mcr_DataMember_set(struct mcr_DataMember *dataMemberPt, void *dataPt, void(*deallocateFnc)(void *), mcr_data_fnc deinit)
MCR_API void mcr_DataMember_destroy(struct mcr_DataMember *dataMemberPt)
int(* mcr_data_fnc)(void *dataPt)
Definition: comparison.h:39
MCR_API bool mcr_DataMember_heap(struct mcr_DataMember *dataMemberPt)
Utilities for Libmacro.
void(* deallocate)(void *)
Definition: data_member.h:46