1 /* Icinga 2 | (c) 2012 Icinga GmbH | GPLv2+ */
2 
3 #ifndef HOSTSTABLE_H
4 #define HOSTSTABLE_H
5 
6 #include "livestatus/table.hpp"
7 
8 using namespace icinga;
9 
10 namespace icinga
11 {
12 
13 /**
14  * @ingroup livestatus
15  */
16 class HostsTable final : public Table
17 {
18 public:
19 	DECLARE_PTR_TYPEDEFS(HostsTable);
20 
21 	HostsTable(LivestatusGroupByType type = LivestatusGroupByNone);
22 
23 	static void AddColumns(Table *table, const String& prefix = String(),
24 		const Column::ObjectAccessor& objectAccessor = Column::ObjectAccessor());
25 
26 	String GetName() const override;
27 	String GetPrefix() const override;
28 
29 protected:
30 	void FetchRows(const AddRowFunction& addRowFn) override;
31 
32 	static Object::Ptr HostGroupAccessor(const Value& row, LivestatusGroupByType groupByType, const Object::Ptr& groupByObject);
33 
34 	static Value NameAccessor(const Value& row);
35 	static Value DisplayNameAccessor(const Value& row);
36 	static Value AddressAccessor(const Value& row);
37 	static Value Address6Accessor(const Value& row);
38 	static Value CheckCommandAccessor(const Value& row);
39 	static Value CheckCommandExpandedAccessor(const Value& row);
40 	static Value EventHandlerAccessor(const Value& row);
41 	static Value CheckPeriodAccessor(const Value& row);
42 	static Value NotesAccessor(const Value& row);
43 	static Value NotesExpandedAccessor(const Value& row);
44 	static Value NotesUrlAccessor(const Value& row);
45 	static Value NotesUrlExpandedAccessor(const Value& row);
46 	static Value ActionUrlAccessor(const Value& row);
47 	static Value ActionUrlExpandedAccessor(const Value& row);
48 	static Value PluginOutputAccessor(const Value& row);
49 	static Value PerfDataAccessor(const Value& row);
50 	static Value IconImageAccessor(const Value& row);
51 	static Value IconImageExpandedAccessor(const Value& row);
52 	static Value IconImageAltAccessor(const Value& row);
53 	static Value LongPluginOutputAccessor(const Value& row);
54 	static Value MaxCheckAttemptsAccessor(const Value& row);
55 	static Value FlapDetectionEnabledAccessor(const Value& row);
56 	static Value ProcessPerformanceDataAccessor(const Value& row);
57 	static Value AcceptPassiveChecksAccessor(const Value& row);
58 	static Value EventHandlerEnabledAccessor(const Value& row);
59 	static Value AcknowledgementTypeAccessor(const Value& row);
60 	static Value CheckTypeAccessor(const Value& row);
61 	static Value LastStateAccessor(const Value& row);
62 	static Value LastHardStateAccessor(const Value& row);
63 	static Value CurrentAttemptAccessor(const Value& row);
64 	static Value LastNotificationAccessor(const Value& row);
65 	static Value NextNotificationAccessor(const Value& row);
66 	static Value NextCheckAccessor(const Value& row);
67 	static Value LastHardStateChangeAccessor(const Value& row);
68 	static Value HasBeenCheckedAccessor(const Value& row);
69 	static Value CurrentNotificationNumberAccessor(const Value& row);
70 	static Value TotalServicesAccessor(const Value& row);
71 	static Value ChecksEnabledAccessor(const Value& row);
72 	static Value NotificationsEnabledAccessor(const Value& row);
73 	static Value AcknowledgedAccessor(const Value& row);
74 	static Value StateAccessor(const Value& row);
75 	static Value StateTypeAccessor(const Value& row);
76 	static Value NoMoreNotificationsAccessor(const Value& row);
77 	static Value LastCheckAccessor(const Value& row);
78 	static Value LastStateChangeAccessor(const Value& row);
79 	static Value LastTimeUpAccessor(const Value& row);
80 	static Value LastTimeDownAccessor(const Value& row);
81 	static Value LastTimeUnreachableAccessor(const Value& row);
82 	static Value IsFlappingAccessor(const Value& row);
83 	static Value ScheduledDowntimeDepthAccessor(const Value& row);
84 	static Value ActiveChecksEnabledAccessor(const Value& row);
85 	static Value CheckIntervalAccessor(const Value& row);
86 	static Value RetryIntervalAccessor(const Value& row);
87 	static Value NotificationIntervalAccessor(const Value& row);
88 	static Value LowFlapThresholdAccessor(const Value& row);
89 	static Value HighFlapThresholdAccessor(const Value& row);
90 	static Value LatencyAccessor(const Value& row);
91 	static Value ExecutionTimeAccessor(const Value& row);
92 	static Value PercentStateChangeAccessor(const Value& row);
93 	static Value InNotificationPeriodAccessor(const Value& row);
94 	static Value InCheckPeriodAccessor(const Value& row);
95 	static Value ContactsAccessor(const Value& row);
96 	static Value DowntimesAccessor(const Value& row);
97 	static Value DowntimesWithInfoAccessor(const Value& row);
98 	static Value CommentsAccessor(const Value& row);
99 	static Value CommentsWithInfoAccessor(const Value& row);
100 	static Value CommentsWithExtraInfoAccessor(const Value& row);
101 	static Value CustomVariableNamesAccessor(const Value& row);
102 	static Value CustomVariableValuesAccessor(const Value& row);
103 	static Value CustomVariablesAccessor(const Value& row);
104 	static Value ParentsAccessor(const Value& row);
105 	static Value ChildsAccessor(const Value& row);
106 	static Value NumServicesAccessor(const Value& row);
107 	static Value WorstServiceStateAccessor(const Value& row);
108 	static Value NumServicesOkAccessor(const Value& row);
109 	static Value NumServicesWarnAccessor(const Value& row);
110 	static Value NumServicesCritAccessor(const Value& row);
111 	static Value NumServicesUnknownAccessor(const Value& row);
112 	static Value NumServicesPendingAccessor(const Value& row);
113 	static Value WorstServiceHardStateAccessor(const Value& row);
114 	static Value NumServicesHardOkAccessor(const Value& row);
115 	static Value NumServicesHardWarnAccessor(const Value& row);
116 	static Value NumServicesHardCritAccessor(const Value& row);
117 	static Value NumServicesHardUnknownAccessor(const Value& row);
118 	static Value HardStateAccessor(const Value& row);
119 	static Value StalenessAccessor(const Value& row);
120 	static Value GroupsAccessor(const Value& row);
121 	static Value ContactGroupsAccessor(const Value& row);
122 	static Value ServicesAccessor(const Value& row);
123 	static Value ServicesWithStateAccessor(const Value& row);
124 	static Value ServicesWithInfoAccessor(const Value& row);
125 	static Value CheckSourceAccessor(const Value& row);
126 	static Value IsReachableAccessor(const Value& row);
127 	static Value CVIsJsonAccessor(const Value& row);
128 	static Value OriginalAttributesAccessor(const Value& row);
129 };
130 
131 }
132 
133 #endif /* HOSTSTABLE_H */
134