Example #1
0
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
    }
}