Migrated dumm_t to INIT/METHOD macros.

This commit is contained in:
Tobias Brunner
2011-10-03 16:35:15 +02:00
parent 3df8e57e9a
commit e6c824959c
+53 -75
View File
@@ -49,11 +49,8 @@ struct private_dumm_t {
linked_list_t *bridges; linked_list_t *bridges;
}; };
/** METHOD(dumm_t, create_guest, guest_t*,
* Implementation of dumm_t.create_guest. private_dumm_t *this, char *name, char *kernel, char *master, char *args)
*/
static guest_t* create_guest(private_dumm_t *this, char *name, char *kernel,
char *master, char *args)
{ {
guest_t *guest; guest_t *guest;
@@ -65,18 +62,14 @@ static guest_t* create_guest(private_dumm_t *this, char *name, char *kernel,
return guest; return guest;
} }
/** METHOD(dumm_t, create_guest_enumerator, enumerator_t*,
* Implementation of dumm_t.create_guest_enumerator. private_dumm_t *this)
*/
static enumerator_t* create_guest_enumerator(private_dumm_t *this)
{ {
return this->guests->create_enumerator(this->guests); return this->guests->create_enumerator(this->guests);
} }
/** METHOD(dumm_t, delete_guest, void,
* Implementation of dumm_t.delete_guest. private_dumm_t *this, guest_t *guest)
*/
static void delete_guest(private_dumm_t *this, guest_t *guest)
{ {
if (this->guests->remove(this->guests, guest, NULL)) if (this->guests->remove(this->guests, guest, NULL))
{ {
@@ -93,10 +86,8 @@ static void delete_guest(private_dumm_t *this, guest_t *guest)
} }
} }
/** METHOD(dumm_t, create_bridge, bridge_t*,
* Implementation of dumm_t.create_bridge. private_dumm_t *this, char *name)
*/
static bridge_t* create_bridge(private_dumm_t *this, char *name)
{ {
bridge_t *bridge; bridge_t *bridge;
@@ -108,18 +99,14 @@ static bridge_t* create_bridge(private_dumm_t *this, char *name)
return bridge; return bridge;
} }
/** METHOD(dumm_t, create_bridge_enumerator, enumerator_t*,
* Implementation of dumm_t.create_bridge_enumerator. private_dumm_t *this)
*/
static enumerator_t* create_bridge_enumerator(private_dumm_t *this)
{ {
return this->bridges->create_enumerator(this->bridges); return this->bridges->create_enumerator(this->bridges);
} }
/** METHOD(dumm_t, delete_bridge, void,
* Implementation of dumm_t.delete_bridge. private_dumm_t *this, bridge_t *bridge)
*/
static void delete_bridge(private_dumm_t *this, bridge_t *bridge)
{ {
if (this->bridges->remove(this->bridges, bridge, NULL)) if (this->bridges->remove(this->bridges, bridge, NULL))
{ {
@@ -127,10 +114,8 @@ static void delete_bridge(private_dumm_t *this, bridge_t *bridge)
} }
} }
/** METHOD(dumm_t, add_overlay, bool,
* Implementation of dumm_t.add_overlay. private_dumm_t *this, char *dir)
*/
static bool add_overlay(private_dumm_t *this, char *dir)
{ {
enumerator_t *enumerator; enumerator_t *enumerator;
guest_t *guest; guest_t *guest;
@@ -184,10 +169,8 @@ error:
return FALSE; return FALSE;
} }
/** METHOD(dumm_t, del_overlay, bool,
* Implementation of dumm_t.del_overlay. private_dumm_t *this, char *dir)
*/
static bool del_overlay(private_dumm_t *this, char *dir)
{ {
bool ret = FALSE; bool ret = FALSE;
enumerator_t *enumerator; enumerator_t *enumerator;
@@ -209,10 +192,8 @@ static bool del_overlay(private_dumm_t *this, char *dir)
return ret; return ret;
} }
/** METHOD(dumm_t, pop_overlay, bool,
* Implementation of dumm_t.pop_overlay. private_dumm_t *this)
*/
static bool pop_overlay(private_dumm_t *this)
{ {
bool ret = FALSE; bool ret = FALSE;
enumerator_t *enumerator; enumerator_t *enumerator;
@@ -240,10 +221,8 @@ static void clear_template(private_dumm_t *this)
} }
} }
/** METHOD(dumm_t, load_template, bool,
* Implementation of dumm_t.load_template. private_dumm_t *this, char *name)
*/
static bool load_template(private_dumm_t *this, char *name)
{ {
clear_template(this); clear_template(this);
if (name == NULL) if (name == NULL)
@@ -287,10 +266,8 @@ typedef struct {
enumerator_t *inner; enumerator_t *inner;
} template_enumerator_t; } template_enumerator_t;
/** METHOD(enumerator_t, template_enumerate, bool,
* Implementation of template_enumerator_t.enumerate. template_enumerator_t *this, char **template)
*/
static bool template_enumerate(template_enumerator_t *this, char **template)
{ {
struct stat st; struct stat st;
char *rel; char *rel;
@@ -306,25 +283,24 @@ static bool template_enumerate(template_enumerator_t *this, char **template)
return FALSE; return FALSE;
} }
/** METHOD(enumerator_t, template_enumerator_destroy, void,
* Implementation of template_enumerator_t.destroy. template_enumerator_t *this)
*/
static void template_enumerator_destroy(template_enumerator_t *this)
{ {
this->inner->destroy(this->inner); this->inner->destroy(this->inner);
free(this); free(this);
} }
/** METHOD(dumm_t, create_template_enumerator, enumerator_t*,
* Implementation of dumm_t.create_template_enumerator. private_dumm_t *this)
*/
static enumerator_t* create_template_enumerator(private_dumm_t *this)
{ {
template_enumerator_t *enumerator; template_enumerator_t *enumerator;
enumerator = malloc_thing(template_enumerator_t); INIT(enumerator,
enumerator->public.enumerate = (void*)template_enumerate; .public = {
enumerator->public.destroy = (void*)template_enumerator_destroy; .enumerate = (void*)_template_enumerate,
enumerator->inner = enumerator_create_directory(TEMPLATE_DIR); .destroy = (void*)_template_enumerator_destroy,
},
.inner = enumerator_create_directory(TEMPLATE_DIR),
);
if (!enumerator->inner) if (!enumerator->inner)
{ {
free(enumerator); free(enumerator);
@@ -333,10 +309,8 @@ static enumerator_t* create_template_enumerator(private_dumm_t *this)
return &enumerator->public; return &enumerator->public;
} }
/** METHOD(dumm_t, destroy, void,
* Implementation of dumm_t.destroy. private_dumm_t *this)
*/
static void destroy(private_dumm_t *this)
{ {
enumerator_t *enumerator; enumerator_t *enumerator;
guest_t *guest; guest_t *guest;
@@ -402,20 +376,24 @@ static void load_guests(private_dumm_t *this)
dumm_t *dumm_create(char *dir) dumm_t *dumm_create(char *dir)
{ {
char cwd[PATH_MAX]; char cwd[PATH_MAX];
private_dumm_t *this = malloc_thing(private_dumm_t); private_dumm_t *this;
this->public.create_guest = (guest_t*(*)(dumm_t*,char*,char*,char*,char*))create_guest; INIT(this,
this->public.create_guest_enumerator = (enumerator_t*(*)(dumm_t*))create_guest_enumerator; .public = {
this->public.delete_guest = (void(*)(dumm_t*,guest_t*))delete_guest; .create_guest = _create_guest,
this->public.create_bridge = (bridge_t*(*)(dumm_t*, char *name))create_bridge; .create_guest_enumerator = _create_guest_enumerator,
this->public.create_bridge_enumerator = (enumerator_t*(*)(dumm_t*))create_bridge_enumerator; .delete_guest = _delete_guest,
this->public.delete_bridge = (void(*)(dumm_t*,bridge_t*))delete_bridge; .create_bridge = _create_bridge,
this->public.add_overlay = (bool(*)(dumm_t*,char*))add_overlay; .create_bridge_enumerator = _create_bridge_enumerator,
this->public.del_overlay = (bool(*)(dumm_t*,char*))del_overlay; .delete_bridge = _delete_bridge,
this->public.pop_overlay = (bool(*)(dumm_t*))pop_overlay; .add_overlay = _add_overlay,
this->public.load_template = (bool(*)(dumm_t*,char*))load_template; .del_overlay = _del_overlay,
this->public.create_template_enumerator = (enumerator_t*(*)(dumm_t*))create_template_enumerator; .pop_overlay = _pop_overlay,
this->public.destroy = (void(*)(dumm_t*))destroy; .load_template = _load_template,
.create_template_enumerator = _create_template_enumerator,
.destroy = _destroy,
},
);
if (dir && *dir == '/') if (dir && *dir == '/')
{ {
@@ -440,11 +418,11 @@ dumm_t *dumm_create(char *dir)
this->dir = strdup(cwd); this->dir = strdup(cwd);
} }
} }
this->template = NULL;
if (asprintf(&this->guest_dir, "%s/%s", this->dir, GUEST_DIR) < 0) if (asprintf(&this->guest_dir, "%s/%s", this->dir, GUEST_DIR) < 0)
{ {
this->guest_dir = NULL; this->guest_dir = NULL;
} }
this->guests = linked_list_create(); this->guests = linked_list_create();
this->bridges = linked_list_create(); this->bridges = linked_list_create();