biblioteca que serve como midleware para as diversas placas que podem implementar esse padrão !

Dependents:   sgam_mdw_test

Revision:
3:c87e6b48834e
Parent:
2:f8bb56af3c6e
Child:
4:17005b72a3d8
--- a/Control.h	Thu Jun 20 12:27:52 2019 -0300
+++ b/Control.h	Sat Jun 22 11:59:31 2019 -0300
@@ -1,26 +1,44 @@
 #ifndef SGAM_MDW_CONTROL_H
 #define SGAM_MDW_CONTROL_H
+
+#include <string>
+#include <map>
+
 #include "utils/const_types.h"
 
 #include "peripheral/Sensor.h"
 #include "protocol/Protocol.h"
 #include "communication/Communication.h"
 
+using namespace std;
+
 class Control {
 public:
     virtual Control* getControler() = 0;
     virtual void initialize() = 0;
+    virtual void finalize() = 0;
 
-    virtual Sensor<void*>* getSensor(char* name) = 0;
-    virtual Protocol* getProtocol(char* name) = 0;
-    virtual Communication* getCommunication(char* name) = 0;
+    // Incluir ...
+    void includeSensor(Sensor<void*>* nSensor);
+    void includeProtocol(Protocol* nSensor);
+    void includeCommunication(Communication* nSensor);
 
-    virtual char* getAvailableSensors() = 0;
-    virtual char* getAvailableCommunications() = 0;
-    virtual char* getAvailableProtocols() = 0;
+    // metodos de GET
+    Sensor<void*>* getSensor(const char* name);
+    Protocol* getProtocol(const char* name);
+    Communication* getCommunication(const char* name);
+
+    // metodo para listar valores !!
+    // list<const& char*> getAvailableSensors();
+    // list<std::string> getAvailableCommunications();
+    // list<std::string> getAvailableProtocols();
 
 protected:
     Control(){}
     virtual ~Control(){}
+
+    map<std::string, Sensor<void*>*> mp_sensors;
+    map<std::string, Protocol*> mp_protocols;
+    map<std::string, Communication*> mp_communications;
 };
 #endif