/
GParam.h
73 lines (59 loc) · 1.34 KB
/
GParam.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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
/***************************
@Author: Chunel
@Contact: chunel@foxmail.com
@File: GParam.h
@Time: 2021/6/11 6:32 下午
@Desc:
***************************/
#ifndef CGRAPH_GPARAM_H
#define CGRAPH_GPARAM_H
#include <string>
#if __cplusplus >= 201703L
#include <shared_mutex>
#else
#include <mutex>
#endif
#include "GParamObject.h"
#include "../../UtilsCtrl/UtilsInclude.h"
CGRAPH_NAMESPACE_BEGIN
class GParam : public GParamObject {
public:
#if __cplusplus >= 201703L
std::shared_mutex _param_shared_lock_; // 用于参数互斥的锁信息
#else
std::mutex _param_shared_lock_;
#endif
/**
* 保存参数信息
* @param path 位置路径
* @return
*/
virtual CStatus dump(const std::string& path) {
CGRAPH_NO_SUPPORT
}
/**
* 加载参数信息
* @param path 位置路径
* @return
*/
virtual CStatus load(const std::string& path) {
CGRAPH_NO_SUPPORT
}
protected:
/**
* 每次pipeline执行结束,会调用一次reset
* @return
*/
virtual CVoid reset() = 0;
/**
* 每次pipeline执行前,会调用一次setup,可以不实现
* @return
*/
virtual CStatus setup() {
CGRAPH_EMPTY_FUNCTION
}
friend class GParamManager;
};
using GParamPtr = GParam *;
CGRAPH_NAMESPACE_END
#endif //CGRAPH_GPARAM_H