-
Notifications
You must be signed in to change notification settings - Fork 3
/
ConsulService.h
executable file
·53 lines (52 loc) · 1.55 KB
/
ConsulService.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#pragma once
#include <string>
#include <unordered_set>
#include <unordered_map>
#include <memory>
#include "Check.h"
class CServiceData;
class CConsulService
{
public:
CConsulService();
CConsulService(const CConsulService& other);
CConsulService(CConsulService&& other);
~CConsulService();
// 获取服务名称
std::string GetName() const;
// 获取服务地址
std::string GetAddress() const;
// 获取服务ID
std::string GetId() const;
// 获取服务端口
unsigned int GetPort() const;
// 获取服务标签
std::unordered_set<std::string> GetTags() const;
// 获取元信息
std::unordered_map<std::string, std::string> GetMeta() const;
// 获取所有健康检查项目
std::unordered_set<CCheck> GetChecks() const;
// 设置服务名
void SetName(const std::string& strName);
// 设置服务地址
void SetAddress(const std::string& strAddress);
// 设置Id
void SetId(const std::string& strId);
// 设置元信息
void SetMeta(const std::string& strKey, const std::string& strValue);
// 删除元信息
void RemoveMeta(const std::string& strKey);
// 设置服务端口
void SetPort(unsigned int uiPort);
// 移除标签
void RemoveTag(const std::string& strTag);
// 添加标签
void SetTag(const std::string& strTag);
// 设置健康检查
void SetCheck(const CCheck& check);
// 移除健康检查项
void RemoveCheck(const std::string& strId);
private:
// 内部变量
std::unique_ptr<CServiceData> m_pData;
};