Skip to content

Commit 28a9d43

Browse files
添加插件注册实现
1 parent 260d96a commit 28a9d43

File tree

3 files changed

+49
-5
lines changed

3 files changed

+49
-5
lines changed

inc/dlms_bash.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
#define DLMS_DLMS_BASH_H
77
#include <iostream>
88

9+
class IPlugin;
910
class IDlms {
1011
public:
1112
virtual ~IDlms() = default;
@@ -37,6 +38,13 @@ class IDlms {
3738
* @return 0:成功,其他:失败
3839
*/
3940
virtual int32_t Exit() = 0;
41+
42+
/**
43+
* @brief 获取插件对象
44+
*
45+
* @return nullptr:失败,其他:成功
46+
*/
47+
virtual IPlugin *GetPluginByName(std::string &pluginName) = 0;
4048
};
4149

4250

src/dlms/dlms.cpp

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,3 +30,31 @@ int main(int argc, char* argv[]) {
3030
}
3131

3232

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+
}

src/dlms/dlms.h

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,24 +4,32 @@
44

55
#ifndef DLMS_DLMS_H
66
#define DLMS_DLMS_H
7+
#include <string>
8+
#include <map>
79

10+
#include "plugin.h"
811
#include <dlms_bash.h>
912

1013
class CDlms : public IDlms {
1114
public:
1215
~CDlms() override = default;
1316

14-
virtual int32_t Init() = 0;
17+
int32_t Init() override;
1518

16-
virtual int32_t Start() = 0;
19+
int32_t Start() override;
1720

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;
1926

20-
virtual int32_t Exit() = 0;
2127

22-
private:
2328

2429

30+
private:
31+
std::map<std::string, IPlugin*> m_mapPlugin;
32+
2533
};
2634

2735

0 commit comments

Comments
 (0)