SEVN
Loading...
Searching...
No Matches
Hardening.h
Go to the documentation of this file.
1//
2// Created by iorio on 3/30/22.
3//
4
5#ifndef SEVN_HARDENING_H
6#define SEVN_HARDENING_H
7
8#include <IO.h>
9#include <Processes.h>
10
11
12//Forward declaration
13class Star;
14class Binstar;
15
22class Hardening : public Process{
23
24public:
25
26 Hardening(_UNUSED IO *_io= nullptr, bool reg = true) {
27 if (reg) {
28 //First register to include this Property in static array
29 Register(this, &ID, name());
30 }
31 }
32
33 static size_t ID;
35 inline std::string name() override { return "Hardening"; }
36
37 Hardening *Instance(_UNUSED IO *_io) override;
38 virtual Hardening *instance() {return nullptr;}
39
40 bool is_process_ongoing() const override {return false;};
41 static std::string log_message(_UNUSED Binstar *binstar);
42
43
44protected:
45
46 //this a prototype for the future refactoring of the whole Process classes
47 static std::map<std::string, Hardening *> & GetStaticMap(){
48 static std::map<std::string, Hardening *> _locmap;
49 return _locmap;
50 }
51 static std::vector<int> & GetUsed(){
52 static std::vector<int> _used;
53 return _used;
54 }
55 static void Register_specific(Hardening *ptr) {
56 GetStaticMap().insert(std::make_pair(ptr->name(), ptr));
57 GetUsed().resize(GetStaticMap().size());
58 GetUsed()[GetUsed().size()-1] = 0;
59 }
60
61
62};
63
69
70public:
71
72 HardeningDisabled(_UNUSED IO *_io= nullptr, bool reg = true) : Hardening(nullptr, false) {
73 if(reg) {
74 //Second register to handle the different options
76 }
77 }
78
79 inline std::string name() override { return "disabled"; }
82 return (new HardeningDisabled(nullptr,false));
83 }
84 int evolve(_UNUSED Binstar *binstar) override;
85};
86
91
92public:
93
94 HardeningFastCluster(_UNUSED IO *_io= nullptr, bool reg = true) : Hardening(nullptr, false){
95 if(reg) {
96 //Second register to handle the different options
98 }
99 }
100
101 inline std::string name() override { return "fastcluster"; }
104 return (new HardeningFastCluster(nullptr,false));
105 }
106 int evolve(_UNUSED Binstar *binstar) override;
107
108protected:
116 bool is_hard_binary(_UNUSED Binstar *binstar);
117
118};
119
120
121
122#endif //SEVN_HARDENING_H
#define _UNUSED
Definition: BinaryProperty.h:20
Definition: binstar.h:26
Definition: Hardening.h:68
HardeningDisabled * instance() override
Definition: Hardening.h:81
int evolve(_UNUSED Binstar *binstar) override
Definition: Hardening.cpp:9
std::string name() override
Definition: Hardening.h:79
HardeningDisabled(_UNUSED IO *_io=nullptr, bool reg=true)
Definition: Hardening.h:72
static HardeningDisabled _hardeningdisabled
Definition: Hardening.h:80
Definition: Hardening.h:90
int evolve(_UNUSED Binstar *binstar) override
Definition: Hardening.cpp:55
bool is_hard_binary(_UNUSED Binstar *binstar)
Definition: Hardening.cpp:33
HardeningFastCluster * instance() override
Definition: Hardening.h:103
static HardeningFastCluster _hardeningfastcluster
Definition: Hardening.h:102
std::string name() override
Definition: Hardening.h:101
HardeningFastCluster(_UNUSED IO *_io=nullptr, bool reg=true)
Definition: Hardening.h:94
Definition: Hardening.h:22
static std::map< std::string, Hardening * > & GetStaticMap()
Definition: Hardening.h:47
static size_t ID
Definition: Hardening.h:33
Hardening(_UNUSED IO *_io=nullptr, bool reg=true)
Definition: Hardening.h:26
virtual Hardening * instance()
Definition: Hardening.h:38
Hardening * Instance(_UNUSED IO *_io) override
Definition: Hardening.cpp:13
static std::vector< int > & GetUsed()
Definition: Hardening.h:51
std::string name() override
Definition: Hardening.h:35
bool is_process_ongoing() const override
Definition: Hardening.h:40
static std::string log_message(_UNUSED Binstar *binstar)
static Hardening _hardening
Definition: Hardening.h:34
static void Register_specific(Hardening *ptr)
Definition: Hardening.h:55
Definition: IO.h:53
Definition: Processes.h:43
void Register(Process *_p, size_t *id, const std::string &_name)
Definition: Processes.h:159
static size_t size
Definition: Processes.h:140
Definition: star.h:39