accumulate package counts over multiple attributes
[strongswan.git] / src / libimcv / plugins / imv_os / imv_os_state.h
index 2d20692..65bbee0 100644 (file)
@@ -22,6 +22,7 @@
 #ifndef IMV_OS_STATE_H_
 #define IMV_OS_STATE_H_
 
+#include "os_info/os_info.h"
 #include <imv/imv_state.h>
 #include <library.h>
 
@@ -40,17 +41,70 @@ struct imv_os_state_t {
        /**
         * Set OS Product Information
         *
-        * @param name          OS name
-        * @param version       OS version
+        * @param type                  OS type (enumerated)
+        * @param name                  OS name (string)
+        * @param version               OS version
         */
-       void (*set_info)(imv_os_state_t *this, chunk_t name, chunk_t version);
+       void (*set_info)(imv_os_state_t *this, os_type_t os_type,
+                                        chunk_t name, chunk_t version);
 
        /**
         * Get OS Product Information
         *
-        * @result                      OS name & version
+        * @param type                  OS type (enumerated)
+        * @param name                  OS name (string)
+        * @param version               OS version
+        * @return                              OS name & version as a concatenated string 
         */
-       char* (*get_info)(imv_os_state_t *this);
+       char* (*get_info)(imv_os_state_t *this, os_type_t *os_type,
+                                         chunk_t *name, chunk_t *version);
+
+       /**
+        * Set [or with multiple attributes increment] package counters
+        *
+        * @param count                 Number of processed packages
+        * @param count_bad             Number of blacklisted or not updated packages
+        * @param count_ok              Number of whitelisted packages
+        */
+       void (*set_count)(imv_os_state_t *this, int count, int count_bad,
+                                         int count_ok);
+
+       /**
+        * Set [or with multiple attributes increment] package counters
+        *
+        * @param count                 Number of processed packages
+        * @param count_bad             Number of blacklisted or not updated packages
+        * @param count_ok              Number of whitelisted packages
+        */
+       void (*get_count)(imv_os_state_t *this, int *count, int *count_bad,
+                                         int *count_ok);
+       /**
+        * Set/reset OS Installed Packages request status
+        *
+        * @param set                   TRUE to set, FALSE to clear
+        */
+       void (*set_package_request)(imv_os_state_t *this, bool set);
+
+       /**
+        * Get OS Installed Packages request status
+        *
+        * @return                              TRUE if set, FALSE if unset
+        */
+       bool (*get_package_request)(imv_os_state_t *this);
+
+       /**
+        * Increase/Decrease the ITA Angel count
+        *
+        * @param start                 TRUE increases and FALSE decreases count by one
+        */
+       void (*set_angel_count)(imv_os_state_t *this, bool start);
+
+       /**
+        * Get the ITA Angel count
+        *
+        * @return                              ITA Angel count
+        */
+       int (*get_angel_count)(imv_os_state_t *this);
 
 };