]> granicus.if.org Git - icinga2/blobdiff - lib/icinga/service.ti
Correct current_concurrent_checks to actually running checks
[icinga2] / lib / icinga / service.ti
index 93cc579371b68a4da0ba2c23a7c3d2d85738225b..bab1ebc8f23eb6013c7e8c35aaaa06128777928c 100644 (file)
@@ -1,13 +1,36 @@
-#include "icinga/checkable.h"
-#include "icinga/host.h"
-#include "icinga/icingaapplication.h"
-#include "base/dynamicobject.h"
+/* Icinga 2 | (c) 2012 Icinga GmbH | GPLv2+ */
+
+#include "icinga/checkable.hpp"
+#include "icinga/host.hpp"
+#include "icinga/icingaapplication.hpp"
+#include "icinga/customvarobject.hpp"
+#impl_include "icinga/servicegroup.hpp"
+
+library icinga;
 
 namespace icinga
 {
 
-class Service : Checkable
+code {{{
+class ServiceNameComposer : public NameComposer
+{
+public:
+       virtual String MakeName(const String& shortName, const Object::Ptr& context) const;
+       virtual Dictionary::Ptr ParseName(const String& name) const;
+};
+}}}
+
+class Service : Checkable < ServiceNameComposer
 {
+       load_after ApiListener;
+       load_after Endpoint;
+       load_after Host;
+       load_after Zone;
+
+       [config, no_user_modify, required] array(name(ServiceGroup)) groups {
+               default {{{ return new Array(); }}}
+       };
+
        [config] String display_name {
                get {{{
                        if (m_DisplayName.IsEmpty())
@@ -16,30 +39,32 @@ class Service : Checkable
                                return m_DisplayName;
                }}}
        };
-       [config] String short_name {
-               get {{{
-                       if (m_ShortName.IsEmpty())
-                               return GetName();
-                       else
-                               return m_ShortName;
+       [config, required] name(Host) host_name;
+       [no_storage, navigation] Host::Ptr host {
+               get;
+               navigate {{{
+                       return GetHost();
                }}}
        };
-       [config] String host (HostRaw);
-       [enum] ServiceState "state" {
+       [enum, no_storage] ServiceState "state" {
                get {{{
                        return GetStateRaw();
                }}}
        };
-       [enum] ServiceState last_state {
+       [enum, no_storage] ServiceState last_state {
                get {{{
                        return GetLastStateRaw();
                }}}
        };
-       [enum] ServiceState last_hard_state {
+       [enum, no_storage] ServiceState last_hard_state {
                get {{{
                        return GetLastHardStateRaw();
                }}}
        };
+       [state] Timestamp last_state_ok (LastStateOK);
+       [state] Timestamp last_state_warning;
+       [state] Timestamp last_state_critical;
+       [state] Timestamp last_state_unknown;
 };
 
 }