Mcalc  0.1
a machinist's calculator
interface.hpp
Go to the documentation of this file.
1 
12 #ifndef MCALC_INTERFACE_HPP
13 #define MCALC_INTERFACE_HPP
14 
15 #include <vector>
16 #include <iostream>
17 
19 #define _vinterface(V) (new mc::DummyInterface(V))
20 
21 namespace mc {
22 
23  class Broadcaster;
24  class DataStore;
25  class DummyInterface;
26  class Event;
27 
32  class Subscriber {
33  protected:
34  public:
37 
39  virtual ~Subscriber(){};
40 
46  virtual void notify(Event* e)=0;
47 
48  };
49 
54  class Interface : public Subscriber {
55  protected:
58  std::string column_name;
60  public:
62  Interface();
63 
65  virtual ~Interface();
66 
71  virtual std::string get_value()=0;
72 
76  virtual void set_value( std::string s )=0;
77 
84  void set_column( std::string n );
85 
91  std::string get_column();
92  };
93 
100  class DummyInterface : public Interface {
101  private:
102  std::string value;
103 
104  public:
110  DummyInterface( std::string s );
111 
116  std::string get_value();
117 
121  void set_value( std::string s );
122 
127  void set_column( std::string n );
128 
132  std::string get_column();
133 
134 
140  void notify(Event* e);
141 
146  void broadcast();
147  };
148 }
149 
150 #endif
Definition: broadcaster.cpp:4
std::string column_name
Definition: interface.hpp:58
Definition: interface.hpp:100
Definition: broadcaster.hpp:45
DataStore * data
Definition: interface.hpp:57
virtual ~Subscriber()
Definition: interface.hpp:39
Subscriber()
Definition: interface.hpp:36
Definition: broadcaster.hpp:29
virtual void notify(Event *e)=0
Broadcaster * broadcaster
Definition: interface.hpp:56
Definition: datastore.hpp:44
Definition: interface.hpp:54
Definition: interface.hpp:32