| Directory: | ./ |
|---|---|
| File: | pdserv/src/msrproto/Event.cpp |
| Date: | 2025-11-02 04:09:49 |
| Exec | Total | Coverage | |
|---|---|---|---|
| Lines: | 51 | 67 | 76.1% |
| Branches: | 80 | 190 | 42.1% |
| Line | Branch | Exec | Source |
|---|---|---|---|
| 1 | /***************************************************************************** | ||
| 2 | * | ||
| 3 | * Copyright 2010-2019 Richard Hacker (lerichi at gmx dot net) | ||
| 4 | * | ||
| 5 | * This file is part of the pdserv library. | ||
| 6 | * | ||
| 7 | * The pdserv library is free software: you can redistribute it and/or modify | ||
| 8 | * it under the terms of the GNU Lesser General Public License as published | ||
| 9 | * by the Free Software Foundation, either version 3 of the License, or (at | ||
| 10 | * your option) any later version. | ||
| 11 | * | ||
| 12 | * The pdserv library is distributed in the hope that it will be useful, but | ||
| 13 | * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY | ||
| 14 | * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public | ||
| 15 | * License for more details. | ||
| 16 | * | ||
| 17 | * You should have received a copy of the GNU Lesser General Public License | ||
| 18 | * along with the pdserv library. If not, see <http://www.gnu.org/licenses/>. | ||
| 19 | * | ||
| 20 | ****************************************************************************/ | ||
| 21 | |||
| 22 | #include "Session.h" | ||
| 23 | #include "Event.h" | ||
| 24 | #include "XmlElement.h" | ||
| 25 | |||
| 26 | using namespace MsrProto; | ||
| 27 | |||
| 28 | ///////////////////////////////////////////////////////////////////////////// | ||
| 29 | 9715 | bool Event::toXml(Session* session, const PdServ::EventData& eventData, | |
| 30 | XmlElement* parent) | ||
| 31 | { | ||
| 32 | 9715 | const PdServ::Event* event = eventData.event; | |
| 33 | |||
| 34 |
2/2✓ Branch 0 taken 48 times.
✓ Branch 1 taken 9667 times.
|
9715 | if (event) { |
| 35 | const char* tag = | ||
| 36 |
5/8✗ Branch 1 not taken.
✓ Branch 2 taken 48 times.
✓ Branch 3 taken 29 times.
✓ Branch 4 taken 19 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 29 times.
✓ Branch 9 taken 29 times.
✗ Branch 10 not taken.
|
48 | eventData.state ? getTagName(eventData.priority) : "reset"; |
| 37 | 48 | XmlElement msg( | |
| 38 | parent ? parent->createChild(tag) : | ||
| 39 |
4/6✓ Branch 0 taken 18 times.
✓ Branch 1 taken 30 times.
✓ Branch 3 taken 18 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 30 times.
✗ Branch 7 not taken.
|
96 | session->createElement(tag)); |
| 40 | |||
| 41 |
2/4✓ Branch 2 taken 48 times.
✗ Branch 3 not taken.
✓ Branch 7 taken 48 times.
✗ Branch 8 not taken.
|
48 | XmlElement::Attribute(msg, "name").setEscaped(event->path); |
| 42 |
2/2✓ Branch 2 taken 29 times.
✓ Branch 3 taken 19 times.
|
48 | if (event->nelem() > 1) |
| 43 |
2/4✓ Branch 2 taken 29 times.
✗ Branch 3 not taken.
✓ Branch 7 taken 29 times.
✗ Branch 8 not taken.
|
29 | XmlElement::Attribute(msg, "index") << eventData.index; |
| 44 |
2/4✓ Branch 2 taken 48 times.
✗ Branch 3 not taken.
✓ Branch 7 taken 48 times.
✗ Branch 8 not taken.
|
48 | XmlElement::Attribute(msg, "seq") << eventData.seqNo; |
| 45 |
3/4✗ Branch 1 not taken.
✓ Branch 2 taken 48 times.
✓ Branch 3 taken 29 times.
✓ Branch 4 taken 19 times.
|
48 | if (eventData.state) |
| 46 |
1/2✓ Branch 1 taken 29 times.
✗ Branch 2 not taken.
|
58 | XmlElement::Attribute(msg, "prio") |
| 47 |
3/6✗ Branch 4 not taken.
✓ Branch 5 taken 29 times.
✓ Branch 7 taken 29 times.
✗ Branch 8 not taken.
✓ Branch 11 taken 29 times.
✗ Branch 12 not taken.
|
58 | << getPrioInt(eventData.priority); |
| 48 |
2/4✓ Branch 2 taken 48 times.
✗ Branch 3 not taken.
✓ Branch 7 taken 48 times.
✗ Branch 8 not taken.
|
48 | XmlElement::Attribute(msg, "time") << eventData.time; |
| 49 |
3/4✗ Branch 1 not taken.
✓ Branch 2 taken 48 times.
✓ Branch 3 taken 29 times.
✓ Branch 4 taken 19 times.
|
96 | if (eventData.state |
| 50 |
3/4✓ Branch 0 taken 29 times.
✓ Branch 1 taken 19 times.
✓ Branch 7 taken 29 times.
✗ Branch 8 not taken.
|
48 | and not event->messages[eventData.index].empty()) |
| 51 |
1/2✓ Branch 1 taken 29 times.
✗ Branch 2 not taken.
|
58 | XmlElement::Attribute(msg, "text") |
| 52 |
1/2✓ Branch 7 taken 29 times.
✗ Branch 8 not taken.
|
58 | .setEscaped(event->messages[eventData.index]); |
| 53 | } | ||
| 54 | |||
| 55 | 9715 | return event; | |
| 56 | } | ||
| 57 | |||
| 58 | ///////////////////////////////////////////////////////////////////////////// | ||
| 59 | 29 | const char *Event::getTagName(PdServ::Event::Priority priority) | |
| 60 | { | ||
| 61 | ✗ | struct Map: std::map<PdServ::Event::Priority, const char*> { | |
| 62 | 14 | Map() { | |
| 63 | 14 | const char* crit_error = "crit_error"; | |
| 64 | 14 | const char* error = "error"; | |
| 65 | 14 | const char* warn = "warn"; | |
| 66 | 14 | const char* info = "info"; | |
| 67 | |||
| 68 |
2/4✓ Branch 5 taken 14 times.
✗ Branch 6 not taken.
✓ Branch 9 taken 14 times.
✗ Branch 10 not taken.
|
14 | insert(std::make_pair(PdServ::Event::Emergency, crit_error)); |
| 69 |
2/4✓ Branch 5 taken 14 times.
✗ Branch 6 not taken.
✓ Branch 9 taken 14 times.
✗ Branch 10 not taken.
|
14 | insert(std::make_pair(PdServ::Event::Alert, crit_error)); |
| 70 |
2/4✓ Branch 5 taken 14 times.
✗ Branch 6 not taken.
✓ Branch 9 taken 14 times.
✗ Branch 10 not taken.
|
14 | insert(std::make_pair(PdServ::Event::Critical, crit_error)); |
| 71 |
2/4✓ Branch 5 taken 14 times.
✗ Branch 6 not taken.
✓ Branch 9 taken 14 times.
✗ Branch 10 not taken.
|
14 | insert(std::make_pair(PdServ::Event::Error, error)); |
| 72 |
2/4✓ Branch 5 taken 14 times.
✗ Branch 6 not taken.
✓ Branch 9 taken 14 times.
✗ Branch 10 not taken.
|
14 | insert(std::make_pair(PdServ::Event::Warning, warn)); |
| 73 |
2/4✓ Branch 5 taken 14 times.
✗ Branch 6 not taken.
✓ Branch 9 taken 14 times.
✗ Branch 10 not taken.
|
14 | insert(std::make_pair(PdServ::Event::Notice, info)); |
| 74 |
2/4✓ Branch 5 taken 14 times.
✗ Branch 6 not taken.
✓ Branch 9 taken 14 times.
✗ Branch 10 not taken.
|
14 | insert(std::make_pair(PdServ::Event::Info, info)); |
| 75 |
2/4✓ Branch 5 taken 14 times.
✗ Branch 6 not taken.
✓ Branch 9 taken 14 times.
✗ Branch 10 not taken.
|
14 | insert(std::make_pair(PdServ::Event::Debug, info)); |
| 76 | 14 | } | |
| 77 | }; | ||
| 78 | |||
| 79 |
4/8✓ Branch 0 taken 14 times.
✓ Branch 1 taken 15 times.
✓ Branch 3 taken 14 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 14 times.
✗ Branch 7 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
|
29 | static const Map map; |
| 80 | |||
| 81 |
1/2✓ Branch 2 taken 29 times.
✗ Branch 3 not taken.
|
58 | Map::const_iterator it = map.find(priority); |
| 82 |
1/2✓ Branch 4 taken 29 times.
✗ Branch 5 not taken.
|
58 | return it != map.end() ? it->second : "message"; |
| 83 | } | ||
| 84 | |||
| 85 | ///////////////////////////////////////////////////////////////////////////// | ||
| 86 | ✗ | const char *Event::getPrioStr(PdServ::Event::Priority priority) | |
| 87 | { | ||
| 88 | ✗ | struct Map: std::map<PdServ::Event::Priority, const char*> { | |
| 89 | ✗ | Map() { | |
| 90 | ✗ | insert(std::make_pair(PdServ::Event::Emergency, "emergency")); | |
| 91 | ✗ | insert(std::make_pair(PdServ::Event::Alert, "alert")); | |
| 92 | ✗ | insert(std::make_pair(PdServ::Event::Critical, "critical")); | |
| 93 | ✗ | insert(std::make_pair(PdServ::Event::Error, "error")); | |
| 94 | ✗ | insert(std::make_pair(PdServ::Event::Warning, "warning")); | |
| 95 | ✗ | insert(std::make_pair(PdServ::Event::Notice, "notice")); | |
| 96 | ✗ | insert(std::make_pair(PdServ::Event::Info, "info")); | |
| 97 | ✗ | insert(std::make_pair(PdServ::Event::Debug, "debug")); | |
| 98 | } | ||
| 99 | }; | ||
| 100 | ✗ | static const Map map; | |
| 101 | |||
| 102 | ✗ | Map::const_iterator it = map.find(priority); | |
| 103 | ✗ | return it != map.end() ? it->second : "unknown"; | |
| 104 | } | ||
| 105 | |||
| 106 | ///////////////////////////////////////////////////////////////////////////// | ||
| 107 | 29 | int Event::getPrioInt(PdServ::Event::Priority priority) | |
| 108 | { | ||
| 109 | ✗ | struct Map: std::map<PdServ::Event::Priority, int> { | |
| 110 | 14 | Map() { | |
| 111 |
2/4✓ Branch 7 taken 14 times.
✗ Branch 8 not taken.
✓ Branch 11 taken 14 times.
✗ Branch 12 not taken.
|
14 | insert(std::make_pair(PdServ::Event::Emergency, 0)); |
| 112 |
2/4✓ Branch 7 taken 14 times.
✗ Branch 8 not taken.
✓ Branch 11 taken 14 times.
✗ Branch 12 not taken.
|
14 | insert(std::make_pair(PdServ::Event::Alert, 1)); |
| 113 |
2/4✓ Branch 7 taken 14 times.
✗ Branch 8 not taken.
✓ Branch 11 taken 14 times.
✗ Branch 12 not taken.
|
14 | insert(std::make_pair(PdServ::Event::Critical, 2)); |
| 114 |
2/4✓ Branch 7 taken 14 times.
✗ Branch 8 not taken.
✓ Branch 11 taken 14 times.
✗ Branch 12 not taken.
|
14 | insert(std::make_pair(PdServ::Event::Error, 3)); |
| 115 |
2/4✓ Branch 7 taken 14 times.
✗ Branch 8 not taken.
✓ Branch 11 taken 14 times.
✗ Branch 12 not taken.
|
14 | insert(std::make_pair(PdServ::Event::Warning, 4)); |
| 116 |
2/4✓ Branch 7 taken 14 times.
✗ Branch 8 not taken.
✓ Branch 11 taken 14 times.
✗ Branch 12 not taken.
|
14 | insert(std::make_pair(PdServ::Event::Notice, 5)); |
| 117 |
2/4✓ Branch 7 taken 14 times.
✗ Branch 8 not taken.
✓ Branch 11 taken 14 times.
✗ Branch 12 not taken.
|
14 | insert(std::make_pair(PdServ::Event::Info, 6)); |
| 118 |
2/4✓ Branch 7 taken 14 times.
✗ Branch 8 not taken.
✓ Branch 11 taken 14 times.
✗ Branch 12 not taken.
|
14 | insert(std::make_pair(PdServ::Event::Debug, 7)); |
| 119 | 14 | } | |
| 120 | }; | ||
| 121 |
4/8✓ Branch 0 taken 14 times.
✓ Branch 1 taken 15 times.
✓ Branch 3 taken 14 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 14 times.
✗ Branch 7 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
|
29 | static const Map map; |
| 122 | |||
| 123 |
1/2✓ Branch 2 taken 29 times.
✗ Branch 3 not taken.
|
58 | Map::const_iterator it = map.find(priority); |
| 124 |
1/2✓ Branch 4 taken 29 times.
✗ Branch 5 not taken.
|
58 | return it != map.end() ? it->second : 7; |
| 125 | } | ||
| 126 |