File tree 3 files changed +49
-5
lines changed
3 files changed +49
-5
lines changed Original file line number Diff line number Diff line change 6
6
#define DLMS_DLMS_BASH_H
7
7
#include < iostream>
8
8
9
+ class IPlugin ;
9
10
class IDlms {
10
11
public:
11
12
virtual ~IDlms () = default ;
@@ -37,6 +38,13 @@ class IDlms {
37
38
* @return 0:成功,其他:失败
38
39
*/
39
40
virtual int32_t Exit () = 0;
41
+
42
+ /* *
43
+ * @brief 获取插件对象
44
+ *
45
+ * @return nullptr:失败,其他:成功
46
+ */
47
+ virtual IPlugin *GetPluginByName (std::string &pluginName) = 0;
40
48
};
41
49
42
50
Original file line number Diff line number Diff line change @@ -30,3 +30,31 @@ int main(int argc, char* argv[]) {
30
30
}
31
31
32
32
33
+ int32_t CDlms::Init () {
34
+
35
+
36
+
37
+ return 0 ;
38
+ }
39
+
40
+ int32_t CDlms::Start () {
41
+ return 0 ;
42
+ }
43
+
44
+ int32_t CDlms::Stop () {
45
+ return 0 ;
46
+ }
47
+
48
+ int32_t CDlms::Exit () {
49
+ return 0 ;
50
+ }
51
+
52
+ IPlugin *CDlms::GetPluginByName (std::string &pluginName) {
53
+
54
+ auto iter = m_mapPlugin.find (pluginName);
55
+ if (iter == m_mapPlugin.end ()) {
56
+ return nullptr ;
57
+ }
58
+
59
+ return iter->second ;
60
+ }
Original file line number Diff line number Diff line change 4
4
5
5
#ifndef DLMS_DLMS_H
6
6
#define DLMS_DLMS_H
7
+ #include < string>
8
+ #include < map>
7
9
10
+ #include " plugin.h"
8
11
#include < dlms_bash.h>
9
12
10
13
class CDlms : public IDlms {
11
14
public:
12
15
~CDlms () override = default ;
13
16
14
- virtual int32_t Init () = 0 ;
17
+ int32_t Init () override ;
15
18
16
- virtual int32_t Start () = 0 ;
19
+ int32_t Start () override ;
17
20
18
- virtual int32_t Stop () = 0;
21
+ int32_t Stop () override ;
22
+
23
+ int32_t Exit () override ;
24
+
25
+ IPlugin* GetPluginByName (std::string& pluginName) override ;
19
26
20
- virtual int32_t Exit () = 0;
21
27
22
- private:
23
28
24
29
30
+ private:
31
+ std::map<std::string, IPlugin*> m_mapPlugin;
32
+
25
33
};
26
34
27
35
You can’t perform that action at this time.
0 commit comments