]> granicus.if.org Git - icinga2/blobdiff - lib/icinga/host.hpp
Correct current_concurrent_checks to actually running checks
[icinga2] / lib / icinga / host.hpp
index 96ecab05f4a841800f953ecd6d3b95c3a94280d7..237d8aaa1b8d1d455fa45c52754013d47ddac09b 100644 (file)
@@ -1,27 +1,10 @@
-/******************************************************************************
- * Icinga 2                                                                   *
- * Copyright (C) 2012-2015 Icinga Development Team (http://www.icinga.org)    *
- *                                                                            *
- * This program is free software; you can redistribute it and/or              *
- * modify it under the terms of the GNU General Public License                *
- * as published by the Free Software Foundation; either version 2             *
- * of the License, or (at your option) any later version.                     *
- *                                                                            *
- * This program is distributed in the hope that it will be useful,            *
- * but WITHOUT ANY WARRANTY; without even the implied warranty of             *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the              *
- * GNU General Public License for more details.                               *
- *                                                                            *
- * You should have received a copy of the GNU General Public License          *
- * along with this program; if not, write to the Free Software Foundation     *
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.             *
- ******************************************************************************/
+/* Icinga 2 | (c) 2012 Icinga GmbH | GPLv2+ */
 
 #ifndef HOST_H
 #define HOST_H
 
 #include "icinga/i2-icinga.hpp"
-#include "icinga/host.thpp"
+#include "icinga/host-ti.hpp"
 #include "icinga/macroresolver.hpp"
 #include "icinga/checkresult.hpp"
 
@@ -35,7 +18,7 @@ class Service;
  *
  * @ingroup icinga
  */
-class I2_ICINGA_API Host : public ObjectImpl<Host>, public MacroResolver
+class Host final : public ObjectImpl<Host>, public MacroResolver
 {
 public:
        DECLARE_OBJECT(Host);
@@ -43,19 +26,21 @@ public:
 
        intrusive_ptr<Service> GetServiceByShortName(const Value& name);
 
-       std::set<intrusive_ptr<Service> > GetServices(void) const;
+       std::vector<intrusive_ptr<Service> > GetServices() const;
        void AddService(const intrusive_ptr<Service>& service);
        void RemoveService(const intrusive_ptr<Service>& service);
 
-       int GetTotalServices(void) const;
+       int GetTotalServices() const;
 
        static HostState CalculateState(ServiceState state);
 
-       HostState GetState(void) const;
-       HostState GetLastState(void) const;
-       HostState GetLastHardState(void) const;
-       double GetLastStateUp(void) const;
-       double GetLastStateDown(void) const;
+       HostState GetState() const override;
+       HostState GetLastState() const override;
+       HostState GetLastHardState() const override;
+       int GetSeverity() const override;
+
+       bool IsStateOK(ServiceState state) const override;
+       void SaveLastState(ServiceState state, double timestamp) override;
 
        static HostState StateFromString(const String& state);
        static String StateToString(HostState state);
@@ -63,18 +48,19 @@ public:
        static StateType StateTypeFromString(const String& state);
        static String StateTypeToString(StateType state);
 
-       virtual bool ResolveMacro(const String& macro, const CheckResult::Ptr& cr, Value *result) const;
+       bool ResolveMacro(const String& macro, const CheckResult::Ptr& cr, Value *result) const override;
 
 protected:
-       virtual void Stop(void);
+       void Stop(bool runtimeRemoved) override;
 
-       virtual void OnAllConfigLoaded(void);
+       void OnAllConfigLoaded() override;
+       void CreateChildObjects(const Type::Ptr& childType) override;
 
 private:
        mutable boost::mutex m_ServicesMutex;
        std::map<String, intrusive_ptr<Service> > m_Services;
 
-       static void RefreshServicesCache(void);
+       static void RefreshServicesCache();
 };
 
 }