Fawkes API Fawkes Development Version
autofree.h
1
2/***************************************************************************
3 * autofree.h - Automatic Freeer
4 *
5 * Created: Thu Nov 26 13:15:50 2009
6 * Copyright 2005-2009 Tim Niemueller [www.niemueller.de]
7 *
8 ****************************************************************************/
9
10/* This program is free software; you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License as published by
12 * the Free Software Foundation; either version 2 of the License, or
13 * (at your option) any later version. A runtime exception applies to
14 * this software (see LICENSE.GPL_WRE file mentioned below for details).
15 *
16 * This program is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU Library General Public License for more details.
20 *
21 * Read the full text in the LICENSE.GPL_WRE file in the doc directory.
22 */
23
24#ifndef _UTILS_MISC_AUTOFREE_H_
25#define _UTILS_MISC_AUTOFREE_H_
26
27namespace fawkes {
28
30{
31public:
32 MemAutoFree(void *ptr);
34
35 void release();
36 void reset(void *new_ptr);
37
38 void *operator*() const;
39
40private:
41 void *ptr_;
42};
43
44} // end namespace fawkes
45
46#endif
Automatically free memory on destruction.
Definition: autofree.h:30
~MemAutoFree()
Destructor.
Definition: autofree.cpp:51
void reset(void *new_ptr)
Reset pointer to a different one, This will free the pointer hold up to this call and will replace it...
Definition: autofree.cpp:74
MemAutoFree(void *ptr)
Constructor.
Definition: autofree.cpp:43
void * operator*() const
Access memory pointer.
Definition: autofree.cpp:87
void release()
Release ownership.
Definition: autofree.cpp:62
Fawkes library namespace.