Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Add squeletons for models
[simgrid.git] / src / surf / surf.cpp
1 #include "surf.hpp"
2
3 /*********
4  * Model *
5  *********/
6
7 void Model::addTurnedOnCallback(ResourceCallback rc)
8 {
9   m_resOnCB = rc;
10 }
11
12 void Model::notifyResourceTurnedOn(ResourcePtr r)
13 {
14   m_resOnCB(r);
15 }
16
17 void Model::addTurnedOffCallback(ResourceCallback rc)
18 {
19   m_resOffCB = rc;
20 }
21
22 void Model::notifyResourceTurnedOff(ResourcePtr r)
23 {
24   m_resOffCB(r);
25 }
26
27 void Model::addActionCancelCallback(ActionCallback ac)
28 {
29   m_actCancelCB = ac;
30 }
31
32 void Model::notifyActionCancel(ActionPtr a)
33 {
34   m_actCancelCB(a);
35 }
36
37 void Model::addActionResumeCallback(ActionCallback ac)
38 {
39   m_actResumeCB = ac;
40 }
41
42 void Model::notifyActionResume(ActionPtr a)
43 {
44   m_actResumeCB(a);
45 }
46
47 void Model::addActionSuspendCallback(ActionCallback ac)
48 {
49   m_actSuspendCB = ac;
50 }
51
52 void Model::notifyActionSuspend(ActionPtr a)
53 {
54   m_actSuspendCB(a);
55 }
56
57
58 /************
59  * Resource *
60  ************/
61
62 string Resource::getName() {
63   return m_name;
64 }
65
66 bool Resource::isOn()
67 {
68   return m_running;
69 }
70
71 void Resource::turnOn()
72 {
73   if (!m_running) {
74     m_running = true;
75     p_model->notifyResourceTurnedOn(this);
76   }
77 }
78
79 void Resource::turnOff()
80 {
81   if (m_running) {
82     m_running = false;
83     p_model->notifyResourceTurnedOff(this);
84   }
85 }
86
87 /**********
88  * Action *
89  **********/
90
91 void Action::cancel()
92 {
93   p_model->notifyActionCancel(this);
94 }
95
96 void Action::suspend()
97 {
98   p_model->notifyActionSuspend(this);
99 }
100
101 void Action::resume()
102 {
103   p_model->notifyActionResume(this);
104 }
105
106 bool Action::isSuspended()
107 {
108   return false;
109 }
110