Line data Source code
1 : #include "crpropa/Module.h" 2 : 3 : #include <typeinfo> 4 : 5 : namespace crpropa { 6 : 7 209 : Module::Module() { 8 : const std::type_info &info = typeid(*this); 9 209 : setDescription(info.name()); 10 209 : } 11 : 12 0 : std::string Module::getDescription() const { 13 0 : return description; 14 : } 15 : 16 365 : void Module::setDescription(const std::string &d) { 17 365 : description = d; 18 365 : } 19 : 20 33 : AbstractCondition::AbstractCondition() : 21 33 : makeRejectedInactive(true), makeAcceptedInactive(false), rejectFlagKey( 22 33 : "Rejected") { 23 : 24 33 : } 25 : 26 1126 : void AbstractCondition::reject(Candidate *candidate) const { 27 1126 : if (!candidate) 28 : return; 29 : 30 1126 : if (rejectAction.valid()) 31 5 : rejectAction->process(candidate); 32 : 33 1126 : if (!rejectFlagKey.empty()) 34 1126 : candidate->setProperty(rejectFlagKey, rejectFlagValue); 35 : 36 1126 : if (makeRejectedInactive) 37 1125 : candidate->setActive(false); 38 : } 39 : 40 2 : void AbstractCondition::accept(Candidate *candidate) const { 41 2 : if (!candidate) 42 : return; 43 : 44 2 : if (acceptAction.valid()) 45 2 : acceptAction->process(candidate); 46 : 47 2 : if (!acceptFlagKey.empty()) 48 0 : candidate->setProperty(acceptFlagKey, acceptFlagValue); 49 : 50 2 : if (makeAcceptedInactive) 51 0 : candidate->setActive(false); 52 : } 53 : 54 1 : void AbstractCondition::setMakeRejectedInactive(bool deactivate) { 55 1 : makeRejectedInactive = deactivate; 56 1 : } 57 : 58 0 : void AbstractCondition::setMakeAcceptedInactive(bool deactivate) { 59 0 : makeAcceptedInactive = deactivate; 60 0 : } 61 : 62 1 : void AbstractCondition::onReject(Module *action) { 63 1 : rejectAction = action; 64 1 : } 65 : 66 1 : void AbstractCondition::onAccept(Module *action) { 67 1 : acceptAction = action; 68 1 : } 69 : 70 1 : void AbstractCondition::setRejectFlag(std::string key, std::string value) { 71 1 : rejectFlagKey = key; 72 1 : rejectFlagValue = value; 73 1 : } 74 : 75 0 : void AbstractCondition::setAcceptFlag(std::string key, std::string value) { 76 0 : acceptFlagKey = key; 77 0 : acceptFlagValue = value; 78 0 : } 79 : 80 : } // namespace crpropa