Coverage Report

Created: 2026-05-30 06:46

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/FreeRDP/libfreerdp/core/metrics.c
Line
Count
Source
1
/**
2
 * FreeRDP: A Remote Desktop Protocol Implementation
3
 * Protocol Metrics
4
 *
5
 * Copyright 2014 Marc-Andre Moreau <marcandre.moreau@gmail.com>
6
 *
7
 * Licensed under the Apache License, Version 2.0 (the "License");
8
 * you may not use this file except in compliance with the License.
9
 * You may obtain a copy of the License at
10
 *
11
 *     http://www.apache.org/licenses/LICENSE-2.0
12
 *
13
 * Unless required by applicable law or agreed to in writing, software
14
 * distributed under the License is distributed on an "AS IS" BASIS,
15
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
 * See the License for the specific language governing permissions and
17
 * limitations under the License.
18
 */
19
20
#include <freerdp/config.h>
21
22
#include "rdp.h"
23
24
double metrics_write_bytes(rdpMetrics* metrics, UINT32 UncompressedBytes, UINT32 CompressedBytes)
25
37.7k
{
26
37.7k
  double CompressionRatio = 0.0;
27
28
37.7k
  metrics->TotalUncompressedBytes += UncompressedBytes;
29
37.7k
  metrics->TotalCompressedBytes += CompressedBytes;
30
31
37.7k
  if (UncompressedBytes != 0)
32
24.5k
    CompressionRatio = ((double)CompressedBytes) / ((double)UncompressedBytes);
33
37.7k
  if (metrics->TotalUncompressedBytes != 0)
34
28.7k
    metrics->TotalCompressionRatio =
35
28.7k
        ((double)metrics->TotalCompressedBytes) / ((double)metrics->TotalUncompressedBytes);
36
37
37.7k
  return CompressionRatio;
38
37.7k
}
39
40
rdpMetrics* metrics_new(rdpContext* context)
41
18.0k
{
42
18.0k
  rdpMetrics* metrics = nullptr;
43
44
18.0k
  metrics = (rdpMetrics*)calloc(1, sizeof(rdpMetrics));
45
46
18.0k
  if (metrics)
47
18.0k
  {
48
18.0k
    metrics->context = context;
49
18.0k
  }
50
51
18.0k
  return metrics;
52
18.0k
}
53
54
void metrics_free(rdpMetrics* metrics)
55
18.0k
{
56
18.0k
  free(metrics);
57
18.0k
}