#define __APPINFO_PROVIDER_H_
#include "report.h"
+#include <stdbool.h>
-struct app_info_descriptor {
- int pid;
- char *app_id;
-};
+/**
+ * @brief Iterator used to obtain all running apps.
+ */
+typedef struct app_info_iterator app_info_iterator_t;
+
+/**
+ * @brief Go to next element of iterator.
+ * @param[in] iter Iterator struct.
+ */
+bool app_info_iterator_next(app_info_iterator_t *iter);
+
+/**
+ * @brief Gets app id from iterator.
+ * @param[in] iter Iterator struct.
+ */
+const char *app_info_iterator_get_app_id(app_info_iterator_t *iter);
+
+/**
+ * @brief Gets pid of app from iterator.
+ * @param[in] iter Iterator struct.
+ */
+int app_info_iterator_get_pid(app_info_iterator_t *iter);
/**
- * @brief Frees descriptors list returned by app_info_provider_get_running_applications
+ * @brief Frees resource used by iterator.
+ * @param[in] iter Iterator struct.
*/
-void app_info_provider_free_app_info_descriptor_list(struct app_info_descriptor *descriptors);
+void app_info_iterator_free(app_info_iterator_t *iter);
/**
* @brief Returns list of running Tizen applications.
*
- * @return array of app_desciptor (NULL-terminated), NULL on error
+ * @return app_info_iterator, NULL when no apps are running or on error.
*
* @remark function is thread safe
- * @remark returned value should be released with
- * @app_info_provider_free_app_info_descriptor_list
+ * @remark returned value should be released with @app_info_iterator_free
*/
-struct app_info_descriptor *app_info_provider_get_running_applications();
+app_info_iterator_t *app_info_provider_get_running_applications();
/**
* @brief Searches Tizen applications main process id.