aboutsummaryrefslogtreecommitdiffstats
path: root/pcp/PCPDynamicScreen.h
blob: 6248394174714369aa33f8e8268733dee9bb14af (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#ifndef HEADER_PCPDynamicScreen
#define HEADER_PCPDynamicScreen
/*
htop - PCPDynamicScreen.h
(C) 2023 htop dev team
Released under the GNU GPLv2+, see the COPYING file
in the source distribution for its full text.
*/

#include <stddef.h>
#include <stdbool.h>

#include "CRT.h"
#include "DynamicScreen.h"
#include "Hashtable.h"
#include "Machine.h"
#include "Panel.h"
#include "Settings.h"


struct InDomTable_;
struct PCPDynamicColumn_;
struct PCPDynamicColumns_;

typedef struct PCPDynamicScreen_ {
   DynamicScreen super;

   struct InDomTable_* table;
   struct PCPDynamicColumn_** columns;
   size_t totalColumns;

   unsigned int indom;  /* instance domain number */
   unsigned int key;  /* PCPMetric identifier */

   bool defaultEnabled; /* enabled setting from configuration file */
   /* at runtime enabled screens have entries in settings->screens */
} PCPDynamicScreen;

typedef struct PCPDynamicScreens_ {
   Hashtable* table;
   size_t count;  /* count of dynamic screens discovered from scan */
} PCPDynamicScreens;

void PCPDynamicScreens_init(PCPDynamicScreens* screens, struct PCPDynamicColumns_* columns);

void PCPDynamicScreens_done(Hashtable* table);

void PCPDynamicScreen_appendTables(PCPDynamicScreens* screens, Machine* host);

void PCPDynamicScreen_appendScreens(PCPDynamicScreens* screens, Settings* settings);

void PCPDynamicScreen_addDynamicScreen(PCPDynamicScreens* screens, ScreenSettings* ss);

void PCPDynamicScreens_addAvailableColumns(Panel* availableColumns, Hashtable* screens, const char* screen);

#endif

© 2014-2024 Faster IT GmbH | imprint | privacy policy