2 * Copyright (C) 2011-2012 Reto Guadagnini
3 * Hochschule fuer Technik Rapperswil
5 * This program is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License as published by the
7 * Free Software Foundation; either version 2 of the License, or (at your
8 * option) any later version. See <http://www.fsf.org/copyleft/gpl.txt>.
10 * This program is distributed in the hope that it will be useful, but
11 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
12 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
16 #include "resolver_manager.h"
18 #include <utils/debug.h>
20 typedef struct private_resolver_manager_t private_resolver_manager_t
;
23 * private data of resolver_manager
25 struct private_resolver_manager_t
{
30 resolver_manager_t
public;
33 * constructor function to create resolver instances
35 resolver_constructor_t constructor
;
38 METHOD(resolver_manager_t
, add_resolver
, void,
39 private_resolver_manager_t
*this, resolver_constructor_t constructor
)
41 if (!this->constructor
)
43 this->constructor
= constructor
;
47 METHOD(resolver_manager_t
, remove_resolver
, void,
48 private_resolver_manager_t
*this, resolver_constructor_t constructor
)
50 if (this->constructor
== constructor
)
52 this->constructor
= NULL
;
56 METHOD(resolver_manager_t
, create
, resolver_t
*,
57 private_resolver_manager_t
*this)
59 return this->constructor();
62 METHOD(resolver_manager_t
, destroy
, void,
63 private_resolver_manager_t
*this)
71 resolver_manager_t
*resolver_manager_create()
73 private_resolver_manager_t
*this;
77 .add_resolver
= _add_resolver
,
78 .remove_resolver
= _remove_resolver
,