| Line | Branch | Exec | Source |
|---|---|---|---|
| 1 | /*************************************** | ||
| 2 | Auteur : Thibaut Oprinsen | ||
| 3 | Mail : thibaut.oprinsen@lapp.in2p3.fr | ||
| 4 | Licence : CeCILL-C | ||
| 5 | ****************************************/ | ||
| 6 | |||
| 7 | #include "RecvDataDaemon.h" | ||
| 8 | |||
| 9 | ///Constructor of Shadok class | ||
| 10 | 1 | Shadok::Shadok(const PString & name, int age) | |
| 11 | 1 | :p_name(name), p_age(age) | |
| 12 | { | ||
| 13 | 1 | } | |
| 14 | |||
| 15 | ///Destructor of Shadok class | ||
| 16 | 2 | Shadok::~Shadok() | |
| 17 | { | ||
| 18 | 2 | } | |
| 19 | |||
| 20 | ///Constructor of Gibis class | ||
| 21 | 1 | Gibis::Gibis(const PString & color, int weight) | |
| 22 | 1 | :p_color(color), p_weight(weight) | |
| 23 | { | ||
| 24 | 1 | } | |
| 25 | |||
| 26 | ///Destructor of Gibis class | ||
| 27 | 2 | Gibis::~Gibis() | |
| 28 | { | ||
| 29 | 2 | } | |
| 30 | |||
| 31 | ///Constructor of RecvDataDaemon class | ||
| 32 | 1 | RecvDataDaemon::RecvDataDaemon(){ | |
| 33 |
1/1✓ Branch 0 (4→5) taken 1 times.
|
1 | initialisationRecvDataDaemon(); |
| 34 | 1 | } | |
| 35 | |||
| 36 | ///Destructor of RecvDataDaemon class | ||
| 37 | 1 | RecvDataDaemon::~RecvDataDaemon() | |
| 38 | { | ||
| 39 | 1 | } | |
| 40 | |||
| 41 | /// Typestream specialization for Shadok | ||
| 42 | template<> | ||
| 43 | 3 | std::string phoenix_getTypeName<Shadok>(){ | |
| 44 |
1/1✓ Branch 0 (4→5) taken 3 times.
|
6 | return "Shadok"; |
| 45 | } | ||
| 46 | |||
| 47 | /// Typestream specialization for Gibis | ||
| 48 | template<> | ||
| 49 | 3 | std::string phoenix_getTypeName<Gibis>(){ | |
| 50 |
1/1✓ Branch 0 (4→5) taken 3 times.
|
6 | return "Gibis"; |
| 51 | } | ||
| 52 | |||
| 53 | ///Initialization of boolean values for testing | ||
| 54 | 1 | void RecvDataDaemon::initialisationRecvDataDaemon(){ | |
| 55 | 1 | p_receivedMessageType = ExpectedMessageType::NONE; | |
| 56 | 1 | p_counter = 0; | |
| 57 |
1/1✓ Branch 0 (2→3) taken 1 times.
|
1 | p_expectedMessageTypes.push_back(ExpectedMessageType::TYPE_SHADOK); |
| 58 |
1/1✓ Branch 0 (3→4) taken 1 times.
|
1 | p_expectedMessageTypes.push_back(ExpectedMessageType::TYPE_GIBIS); |
| 59 |
1/1✓ Branch 0 (4→5) taken 1 times.
|
1 | p_expectedMessageTypes.push_back(ExpectedMessageType::TYPE_STOP); |
| 60 | 1 | } | |
| 61 | |||
| 62 | ///Extra processing of the Daemon | ||
| 63 | 3 | void RecvDataDaemon::extraLoopProcessing() { | |
| 64 | //For the Shadok and Gibis type, the expected message type is set in the callable functions | ||
| 65 |
2/2✓ Branch 0 (2→3) taken 2 times.
✓ Branch 1 (2→26) taken 1 times.
|
3 | if(p_counter < 2){ |
| 66 |
7/7✓ Branch 0 (5→6) taken 2 times.
✓ Branch 2 (8→9) taken 2 times.
✓ Branch 4 (11→12) taken 2 times.
✓ Branch 6 (13→14) taken 2 times.
✓ Branch 8 (14→15) taken 2 times.
✓ Branch 10 (15→16) taken 2 times.
✓ Branch 12 (16→17) taken 2 times.
|
10 | phoenix_assert(phoenix_check("extraLoopProcessing : counter = " + PString::toString(p_counter), p_receivedMessageType, p_expectedMessageTypes[p_counter])); |
| 67 | 2 | p_counter++; | |
| 68 | } | ||
| 69 | //Then, we should receive a STOP message and check that p_isRun is false | ||
| 70 |
1/2✓ Branch 0 (26→27) taken 1 times.
✗ Branch 1 (26→49) not taken.
|
1 | else if(p_counter == 2){ |
| 71 |
7/7✓ Branch 0 (29→30) taken 1 times.
✓ Branch 2 (32→33) taken 1 times.
✓ Branch 4 (35→36) taken 1 times.
✓ Branch 6 (36→37) taken 1 times.
✓ Branch 8 (37→38) taken 1 times.
✓ Branch 10 (38→39) taken 1 times.
✓ Branch 12 (39→40) taken 1 times.
|
6 | phoenix_assert(phoenix_check("extraLoopProcessing : counter = " + PString::toString(p_counter), p_isRun, false)); |
| 72 | } | ||
| 73 | //We should never be here | ||
| 74 | else{ | ||
| 75 | ✗ | phoenix_assert(false); | |
| 76 | } | ||
| 77 | 3 | } | |
| 78 | |||
| 79 | ///Process a received Shadok | ||
| 80 | /** @param shadok : Shadok to be processed | ||
| 81 | * @return true on success, false otherwise | ||
| 82 | */ | ||
| 83 | 1 | PUncastableBool RecvDataDaemon::processShadok(const Shadok & shadok){ | |
| 84 | 1 | p_receivedMessageType = ExpectedMessageType::TYPE_SHADOK; | |
| 85 |
5/5✓ Branch 0 (4→5) taken 1 times.
✓ Branch 2 (5→6) taken 1 times.
✓ Branch 4 (6→7) taken 1 times.
✓ Branch 6 (8→9) taken 1 times.
✓ Branch 8 (9→10) taken 1 times.
|
1 | p_log.getLogInfo() << "RecvDataDaemon::processShadok : Received Shadok with name " << shadok.getName() << " and age " << shadok.getAge() << std::endl; |
| 86 | 1 | return UNCASTABLE_TRUE; | |
| 87 | } | ||
| 88 | |||
| 89 | ///Process a received Gibis | ||
| 90 | /** @param gibis : Gibis to be processed | ||
| 91 | * @return true on success, false otherwise | ||
| 92 | */ | ||
| 93 | 1 | PUncastableBool RecvDataDaemon::processGibis(const Gibis & gibis){ | |
| 94 | 1 | p_receivedMessageType = ExpectedMessageType::TYPE_GIBIS; | |
| 95 |
5/5✓ Branch 0 (4→5) taken 1 times.
✓ Branch 2 (5→6) taken 1 times.
✓ Branch 4 (6→7) taken 1 times.
✓ Branch 6 (8→9) taken 1 times.
✓ Branch 8 (9→10) taken 1 times.
|
1 | p_log.getLogInfo() << "RecvDataDaemon::processGibis : Received Gibis with color " << gibis.getColor() << " and weight " << gibis.getWeight() << std::endl; |
| 96 | 1 | return UNCASTABLE_TRUE; | |
| 97 | } | ||
| 98 | |||
| 99 | ///Add callable methods to the Daemon | ||
| 100 | 1 | void RecvDataDaemon::addCallMethod(){ | |
| 101 | 1 | addDataCallableMethod(SWARM_SLOT(processShadok), *this, 10lu, 0.0, 1e6); | |
| 102 | 1 | addDataCallableMethod(SWARM_SLOT(processGibis), *this, 10lu, 0.0, 1e6); | |
| 103 | 1 | } | |
| 104 | |||
| 105 |