NetLink Sockets C++  1.0.0
Networking C++ Library
 All Classes Namespaces Files Functions Enumerations Enumerator Pages
release_manager.h
1 /*
2  NetLink Sockets: Networking C++ library
3  Copyright 2012 Pedro Francisco Pareja Ruiz (PedroPareja@Gmail.com)
4 
5  This file is part of NetLink Sockets.
6 
7  NetLink Sockets is free software: you can redistribute it and/or modify
8  it under the terms of the GNU General Public License as published by
9  the Free Software Foundation, either version 3 of the License, or
10  (at your option) any later version.
11 
12  NetLink Sockets is distributed in the hope that it will be useful,
13  but WITHOUT ANY WARRANTY; without even the implied warranty of
14  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  GNU General Public License for more details.
16 
17  You should have received a copy of the GNU General Public License
18  along with NetLink Sockets. If not, see <http://www.gnu.org/licenses/>.
19 
20 */
21 
22 #ifndef __NL_RM
23 #define __NL_RM
24 
25 #include <netlink/core.h>
26 
27 #include <vector>
28 
29 NL_NAMESPACE
30 
31 using std::vector;
32 
41 template<typename T>
43 
44  protected:
45 
46  vector<T**> _releaseQueue;
47  vector<T*> _releaseAddressQueue;
48 
49  void (*_releaseFunction) (T*);
50 
51  public:
52 
53  ReleaseManager(void (*releaseFunction)(T*) = NULL);
54  virtual ~ReleaseManager();
55 
56  void add(T** var);
57  void add(T* address);
58 };
59 
60 
61 #include "netlink/release_manager.inline.h"
62 
63 NL_NAMESPACE_END
64 
65 #endif