Aurum  0.1.1
 All Classes Functions Variables Pages
Comparer.h
1 #ifndef COMPARER_H
2 #define COMPARER_H
3 #include "config.h"
4 
5 #include "AccessibleNode.h"
6 #include "UiDevice.h"
7 #include "UiSelector.h"
8 
9 #include "PartialMatch.h"
10 
11 #include <list>
12 #include <memory>
13 #include <vector>
14 
19 class Comparer {
20 private:
25  Comparer(const UiDevice *device, const std::shared_ptr<UiSelector> selector,
26  const bool &earlyReturn);
27 
32  ~Comparer();
33 
34 public:
39  static std::unique_ptr<AccessibleNode> findObject(const UiDevice * device,
40  const std::shared_ptr<UiSelector> selector,
41  const AccessibleNode *root);
42 
47  static std::vector<std::unique_ptr<AccessibleNode>> findObjects(
48  const UiDevice *device, const std::shared_ptr<UiSelector> selector,
49  const AccessibleNode *root);
50 
51 private:
56  std::vector<std::unique_ptr<AccessibleNode>> findObjects(const AccessibleNode *root);
57 
62  std::vector<std::unique_ptr<AccessibleNode>> findObjects(
63  const AccessibleNode *root, const int &index, const int &depth,
64  std::list<std::shared_ptr<PartialMatch>> &partialMatches);
65 
66 private:
71  std::unique_ptr<PartialMatch> accept(const AccessibleNode *node,
72  const std::shared_ptr<UiSelector> selector,
73  const int &index, const int &depth,
74  const int &relDepth);
75 
76 private:
80  const UiDevice *mDevice;
81 
85  const std::shared_ptr<UiSelector> mSelector;
86 
90  bool mEarlyReturn;
91 };
92 
93 #endif