aboutsummaryrefslogtreecommitdiffstats
path: root/src/dumm/dumm.h
blob: f18817abc3ab88bb824606a7d377819cedccfedd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#ifndef DUMM_H
#define DUMM_H

#include <library.h>
#include <utils/linked_list.h>

#include "guest.h"

#define HOST_DIR "host"
#define MOUNT_DIR "mount"
#define RUN_DIR "run"


typedef struct dumm_t dumm_t;

/**
 * @brief dumm - Dynamic Uml Mesh Modeler
 *
 * Controls a group of UML guests and their networks.
 */
struct dumm_t {

	/**
	 * @brief Starts a new UML guest
	 *
	 * @param name		name of the guest
	 * @param kernel	kernel to boot
	 * @param master	mounted read only master filesystem
	 * @param mem		amount of memory for guest, in MB
	 * @return			guest if started, NULL if failed
	 */
	guest_t* (*start_guest) (dumm_t *this, char *name, char *kernel,
							 char *master, int mem);
	
	/**
	 * @brief Create an iterator over all guests.
	 *
	 * @return			iteraotor over guest_t's
	 */
	iterator_t* (*create_guest_iterator) (dumm_t *this);
	
	/**
	 * @brief stop all guests and destroy the modeler
	 */
	void (*destroy) (dumm_t *this);
};

dumm_t *dumm_create();

#endif /* DUMM_H */