libaurum: apply smart pointer wider and extract impl out
[platform/core/uifw/aurum.git] / libaurum / inc / ISearchable.h
1 #ifndef ISEARCHABLE_H
2 #define ISEARCHABLE_H
3 #include "config.h"
4
5 #include "UiSelector.h"
6
7 #include <memory>
8 #include <vector>
9
10 class UiObject;
11 /**
12  * @brief ISearchable interface
13  * @since_tizen 5.5
14  */
15 class ISearchable {
16 public:
17
18     /**
19      * @brief TBD
20      * @since_tizen 5.5
21      */
22     virtual ~ISearchable() {}
23
24     /**
25      * @brief TBD
26      * @since_tizen 5.5
27      */
28     virtual bool hasObject(const std::shared_ptr<UiSelector> selector) const = 0;
29
30     /**
31      * @brief TBD
32      * @since_tizen 5.5
33      */
34     virtual std::shared_ptr<UiObject> findObject(
35         const std::shared_ptr<UiSelector> selector) const = 0;
36
37     /**
38      * @brief TBD
39      * @since_tizen 5.5
40      */
41     virtual std::vector<std::shared_ptr<UiObject>> findObjects(
42         const std::shared_ptr<UiSelector> selector) const = 0;
43 };
44
45 #endif