libaurum: Fix indentation and clean code up
[platform/core/uifw/aurum.git] / libaurum / inc / Waiter.h
1 #pragma once
2
3 #include "ISearchable.h"
4
5 #include <functional>
6 /**
7  * @brief Waiter class
8  * @since_tizen 5.5
9  */
10 class Waiter {
11 private:
12     /**
13      * @brief TBD
14      * @since_tizen 5.5
15      */
16     Waiter();
17
18 public:
19     /**
20      * @brief TBD
21      * @since_tizen 5.5
22      */
23     Waiter(const ISearchable *searchableObject,
24            const UiObject *uiObject = nullptr);  // : mObject{object}
25
26     /**
27      * @brief TBD
28      * @since_tizen 5.5
29      */
30     ~Waiter();
31
32 public:
33     /**
34      * @brief TBD
35      * @since_tizen 5.5
36      */
37     template <typename R>
38     R waitFor(const std::function<R(const ISearchable *)> condition) const;
39
40     /**
41      * @brief TBD
42      * @since_tizen 5.5
43      */
44     template <typename R>
45     R waitFor(const std::function<R(const UiObject *)> object) const;
46
47 private:
48     /**
49      * @brief TBD
50      * @since_tizen 5.5
51      */
52     const ISearchable *mSearchableObject;
53
54     /**
55      * @brief TBD
56      * @since_tizen 5.5
57      */
58     const UiObject *mUiObject;
59
60     /**
61      * @brief TBD
62      * @since_tizen 5.5
63      */
64     const int          WAIT_INTERVAL_MS;
65
66     /**
67      * @brief TBD
68      * @since_tizen 5.5
69      */
70     const int          WAIT_TIMEOUT_MS;
71 };