Logo
ApraPipes 1.0
Loading...
Searching...
No Matches
ArchiveSpaceManager.h
1#pragma once
2#include "Module.h"
3#include "AIPExceptions.h"
4
6{
7public:
8 ArchiveSpaceManagerProps(uint32_t _lowerWaterMark, uint32_t _upperWaterMark, string _pathToWatch, int _samplingFreq)
9 {
10 lowerWaterMark = _lowerWaterMark;
11 upperWaterMark = _upperWaterMark;
12 pathToWatch = _pathToWatch;
13 samplingFreq = _samplingFreq;
14 fps = 0.001;
15
16 auto totalSpace = boost::filesystem::space(pathToWatch);
17 if ((lowerWaterMark > upperWaterMark) || (upperWaterMark > totalSpace.capacity))
18 {
19 LOG_ERROR << "Please enter correct properties!";
20 std::string errorMsg = "Incorrect properties set for Archive Manager. TotalDiskCapacity <" + std::to_string(totalSpace.capacity) + ">lowerWaterMark<" + std::to_string(lowerWaterMark) + "> UpperWaterMark<" + std::to_string(upperWaterMark) + ">";
21 throw AIPException(AIP_FATAL, errorMsg);
22 }
23 }
24
25 ArchiveSpaceManagerProps(uint32_t maxSizeAllowed, string _pathToWatch, int _samplingFreq)
26 {
27 lowerWaterMark = maxSizeAllowed - (maxSizeAllowed / 10);
28 upperWaterMark = maxSizeAllowed;
29 pathToWatch = _pathToWatch;
30 samplingFreq = _samplingFreq;
31 fps = 0.001;
32
33 auto totalSpace = boost::filesystem::space(pathToWatch);
34 if ((lowerWaterMark > upperWaterMark) || (upperWaterMark > totalSpace.capacity))
35 {
36 LOG_ERROR << "Please enter correct properties!";
37 std::string errorMsg = "Incorrect properties set for Archive Manager. TotalDiskCapacity <" + std::to_string(totalSpace.capacity) + ">lowerWaterMark<" + std::to_string(lowerWaterMark) + "> UpperWaterMark<" + std::to_string(upperWaterMark) + ">";
38 throw AIPException(AIP_FATAL, errorMsg);
39 }
40 }
41
42
43 uint32_t lowerWaterMark; // Lower disk space
44 uint32_t upperWaterMark; // Higher disk space
45 std::string pathToWatch;
48 {
49 return ModuleProps::getSerializeSize() + sizeof(lowerWaterMark) + sizeof(upperWaterMark) + sizeof(pathToWatch) + sizeof(samplingFreq);
50 }
51private:
53
54 template <class Archive>
55 void serialize(Archive& ar, const unsigned int version)
56 {
57 ar& boost::serialization::base_object<ModuleProps>(*this);
60 ar& pathToWatch;
61 ar& samplingFreq;
62 }
63};
64
65
67public:
69
71 }
72 bool init();
73 bool term();
74 uint32_t finalArchiveSpace = 0;
77
78protected:
79 bool process();
80 bool validateInputPins();
81 bool validateOutputPins();
83 void addInputPin(framemetadata_sp& metadata, string& pinId);
84 bool handlePropsChange(frame_sp& frame);
85private:
86
87 class Detail;
88 boost::shared_ptr<Detail> mDetail;
89 bool checkDirectory = true;
90};
Definition ArchiveSpaceManager.h:6
std::string pathToWatch
Definition ArchiveSpaceManager.h:45
uint32_t lowerWaterMark
Definition ArchiveSpaceManager.h:43
size_t getSerializeSize()
Definition ArchiveSpaceManager.h:47
int samplingFreq
Definition ArchiveSpaceManager.h:46
void serialize(Archive &ar, const unsigned int version)
Definition ArchiveSpaceManager.h:55
ArchiveSpaceManagerProps(uint32_t maxSizeAllowed, string _pathToWatch, int _samplingFreq)
Definition ArchiveSpaceManager.h:25
uint32_t upperWaterMark
Definition ArchiveSpaceManager.h:44
ArchiveSpaceManagerProps(uint32_t _lowerWaterMark, uint32_t _upperWaterMark, string _pathToWatch, int _samplingFreq)
Definition ArchiveSpaceManager.h:8
friend class boost::serialization::access
Definition ArchiveSpaceManager.h:52
Definition ArchiveSpaceManager.cpp:8
Definition ArchiveSpaceManager.h:66
bool validateInputOutputPins()
Definition ArchiveSpaceManager.cpp:134
uint32_t finalArchiveSpace
Definition ArchiveSpaceManager.h:74
void setProps(ArchiveSpaceManagerProps &props)
Definition ArchiveSpaceManager.cpp:164
bool checkDirectory
Definition ArchiveSpaceManager.h:89
bool validateInputPins()
Definition ArchiveSpaceManager.cpp:124
bool process()
Definition ArchiveSpaceManager.cpp:177
boost::shared_ptr< Detail > mDetail
Definition ArchiveSpaceManager.h:88
bool handlePropsChange(frame_sp &frame)
Definition ArchiveSpaceManager.cpp:169
bool term()
Definition ArchiveSpaceManager.cpp:154
virtual ~ArchiveSpaceManager()
Definition ArchiveSpaceManager.h:70
bool init()
Definition ArchiveSpaceManager.cpp:145
void addInputPin(framemetadata_sp &metadata, string &pinId)
Definition ArchiveSpaceManager.cpp:139
bool validateOutputPins()
Definition ArchiveSpaceManager.cpp:129
ArchiveSpaceManager(ArchiveSpaceManagerProps _props)
Definition ArchiveSpaceManager.cpp:118
ArchiveSpaceManagerProps getProps()
Definition ArchiveSpaceManager.cpp:159
Definition Module.h:33
float fps
Definition Module.h:110
virtual size_t getSerializeSize()
Definition Module.h:101
Definition Module.h:151