]> git.ipfire.org Git - thirdparty/squid.git/blobdiff - src/ipc/Kids.h
Docs: Copyright updates for 2018 (#114)
[thirdparty/squid.git] / src / ipc / Kids.h
index 0a2e348c715e35f81576c60cc3b85339e870501f..89f49ff0b7a90d2f378ec5203711e46bce41b9a7 100644 (file)
@@ -1,14 +1,17 @@
 /*
- * $Id$
+ * Copyright (C) 1996-2018 The Squid Software Foundation and contributors
  *
+ * Squid software is distributed under GPLv2+ license and includes
+ * contributions from numerous individuals and organizations.
+ * Please see the COPYING and CONTRIBUTORS files for details.
  */
 
 #ifndef SQUID_IPC_KIDS_H
 #define SQUID_IPC_KIDS_H
 
-#include "Array.h"
 #include "ipc/Kid.h"
 
+#include <vector>
 
 /// a collection of kids
 class Kids
@@ -33,17 +36,30 @@ public:
     /// whether all kids are hopeless
     bool allHopeless() const;
 
+    /// forgets all failures in all kids
+    void forgetAllFailures();
+
+    /// forgets all failures in hopeless kids that were dead for a long time
+    /// \returns seconds till the next check (zero if there are no hopeless kids left)
+    time_t forgetOldFailures();
+
     /// whether all kids called exited happy
     bool allExitedHappy() const;
 
-    /// whether all kids died from a given signal
-    bool allSignaled(int sgnl) const;
+    /// whether some kids died from a given signal
+    bool someSignaled(const int sgnl) const;
+
+    /// whether some kids are running
+    bool someRunning() const;
+
+    /// whether some kids should be restarted by master
+    bool shouldRestartSome() const;
 
     /// returns the number of kids
     size_t count() const;
 
 private:
-    Vector<Kid> storage;
+    std::vector<Kid> storage;
 };
 
 extern Kids TheKids; ///< All kids being maintained
@@ -51,5 +67,5 @@ extern Kids TheKids; ///< All kids being maintained
 typedef char KidName[64]; ///< Squid process name (e.g., "squid-coord")
 extern KidName TheKidName; ///< current Squid process name
 
-
 #endif /* SQUID_IPC_KIDS_H */
+