LCOV - code coverage report
Current view: top level - src - Module.cpp (source / functions) Hit Total Coverage
Test: coverage.info.cleaned Lines: 37 48 77.1 %
Date: 2024-04-29 14:43:01 Functions: 9 12 75.0 %

          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

Generated by: LCOV version 1.14