]> git.llucax.com Git - z.facultad/75.42/plaqui.git/blob - Model/src/drainage.cpp
Ya se mandan seniales cuando se reciben comandos.
[z.facultad/75.42/plaqui.git] / Model / src / drainage.cpp
1
2 #include "drainage.h"
3 #include <iostream>
4
5 using namespace PlaQui::Model;
6
7 Drainage::Drainage(const std::string &_name):Drain(_name),Control(_name)
8 {
9         in_slots = 1;
10         out_slots = 0;
11         // FIXME hacer INFINITO!
12         capacity = 99999;
13         actual_flow = 0.0f;
14 }
15
16 Drainage::~Drainage()
17 {
18 }
19
20 void Drainage::update(int dir)
21 {
22         // El drenaje no tiene que actualizar
23         if (updated) return;
24         actual_flow = 0;
25         updated = true;
26 }
27
28 void Drainage::simulate()
29 {
30         std::cout << name << "::Flujo recibido = " << actual_flow << std::endl;
31         updated = false;
32         actual_flow = 0;
33 }
34
35 void Drainage::recieve_msg(int msg, IConector *who, void *data)
36 {
37         float tmp;
38         switch (msg) {
39                 case MSG_QUERY_MAX_FLOW_OUT:
40                         // FIXME Hacer INFINITO !!!
41                         actual_flow = *((float *)data);
42                         tmp = 999999;
43                         who->recieve_msg(MSG_RESPONSE_MAX_FLOW, this, &tmp);
44                         updated = true;
45                 break;
46                 default:
47                         Drain::recieve_msg(msg, who, data);
48         }
49 }
50