void clientTask::EventWriteHandler(const value_type & data) { if (this->BenchmarkDoneMember == false) { if (this->NumberOfskippedElement < confNumberOfSamplesToSkip) { this->NumberOfskippedElement++; } else { double originalTime = data.Timestamp(); double currentTime = TimeServer->GetRelativeTime(); this->Samples.Element(this->SamplesCollected) = (currentTime - originalTime); this->SamplesCollected++; } } if (this->SamplesCollected == confNumberOfSamples) { this->BenchmarkDoneMember = true; double average = Samples.SumOfElements() / Samples.size(); double min = 0.0; double max = 0.0; Samples.MinAndMaxElement(min, max); std::cout << "csc: client->server->client: client write data (queued), server triggers event (queued)" << std::endl << "csc: Client period (ms): " << cmnInternalTo_ms(confClientPeriod) << std::endl << "csc: Server period (ms): " << cmnInternalTo_ms(confServerPeriod) << std::endl << "csc: Size of elements used (in bytes): " << sizeof(value_type) << std::endl << "csc: Number of samples: " << this->SamplesCollected << std::endl << "csc: Average (ms): " << cmnInternalTo_ms(average) << std::endl << "csc: Standard deviation (ms): " << cmnInternalTo_ms(StandardDeviation(this->Samples)) << std::endl << "csc: Min (ms): " << cmnInternalTo_ms(min) << std::endl << "csc: Max (ms): " << cmnInternalTo_ms(max) << std::endl; this->SamplesCollected++; // just to avoid printing results again } }