Branch data Line data Source code
1 : : /**
2 : : * @file MeasureEntropy.h
3 : : * @author Kai KRETSCHMANN
4 : : *
5 : : * @copyright SPDX-License-Identifier: MIT
6 : : *
7 : : * @brief Real entropy calculation class for doing measurements.
8 : : *
9 : : **/
10 : :
11 : : #pragma once
12 : : #ifndef MEASUREENTROPY_H_
13 : : #define MEASUREENTROPY_H_
14 : :
15 : : #include "MeasureBase.h"
16 : :
17 : : namespace jastacry {
18 : :
19 : : /**
20 : : * @brief MeasureEntropy class.
21 : : */
22 : 22 : class MeasureEntropy: public MeasureBase {
23 : : private:
24 : : /**
25 : : * @brief Internal log function.
26 : : * @param number [in] - double to calculate log2 on.
27 : : * @return double as result.
28 : : */
29 : : double log2(const double number);
30 : : double _infocontent = 0.0;
31 : : public:
32 : : /**
33 : : * @brief Constructor for class.
34 : : *
35 : : * @param filename [in] - String by reference of file to read.
36 : : *
37 : : */
38 : : explicit MeasureEntropy(const std::string& filename);
39 : :
40 : : /**
41 : : * @brief Main measure function. Reads from file buffer and sets internal property to entropy value.
42 : : */
43 : : virtual void measure() override;
44 : :
45 : : /**
46 : : * @brief Print entropy to logging.
47 : : */
48 : : virtual void printResult() override;
49 : :
50 : : /**
51 : : * @brief Return entropy as double.
52 : : */
53 : : virtual double getResult() override;
54 : : };
55 : :
56 : : } /* namespace jastacry */
57 : :
58 : : #endif /* MEASUREENTROPY_H_ */
|