From eeac394f019aa3ff48027feb6f8e1ad9fa03f8bc Mon Sep 17 00:00:00 2001 From: Wonki Kim Date: Fri, 12 Jun 2020 10:36:58 +0900 Subject: [PATCH] doc: prepare documenting by adding Doxygen headers Change-Id: If04fd83a5ea9fbc8332094ca7b1cdbe99d58c8ec --- doc/Doxyfile.in | 17 +- doc/mainpage.dox | 22 ++ libaurum/inc/AccessibleNode.h | 322 +++++++++++++++++++++++++- libaurum/inc/AccessibleUtils.h | 58 ++++- libaurum/inc/AccessibleWatcher.h | 139 +++++++++++ libaurum/inc/Comparer.h | 46 ++++ libaurum/inc/DeviceImpl/TizenImpl.h | 5 +- libaurum/inc/IDevice.h | 95 +++++++- libaurum/inc/ISearchable.h | 25 +- libaurum/inc/PartialMatch.h | 69 +++++- libaurum/inc/Sel.h | 24 +- libaurum/inc/UiDevice.h | 149 +++++++++++- libaurum/inc/UiObject.h | 204 +++++++++++++++- libaurum/inc/UiSelector.h | 211 ++++++++++++++++- libaurum/inc/Until.h | 42 +++- libaurum/inc/Waiter.h | 46 +++- libaurum/libaurum.dox | 6 + org.tizen.aurum-bootstrap/aurum-bootstrap.dox | 6 + protocol/aurum.proto | 10 +- 19 files changed, 1449 insertions(+), 47 deletions(-) create mode 100644 doc/mainpage.dox create mode 100644 libaurum/libaurum.dox create mode 100644 org.tizen.aurum-bootstrap/aurum-bootstrap.dox diff --git a/doc/Doxyfile.in b/doc/Doxyfile.in index 67ed916..1f23977 100644 --- a/doc/Doxyfile.in +++ b/doc/Doxyfile.in @@ -32,7 +32,7 @@ DOXYFILE_ENCODING = UTF-8 # title of most generated pages and in a few other places. # The default value is: My Project. -PROJECT_NAME = "The Vast Comedian Project" +PROJECT_NAME = "Aurum" # The PROJECT_NUMBER tag can be used to enter a project or revision number. This # could be handy for archiving the generated documentation or if some version @@ -44,7 +44,7 @@ PROJECT_NUMBER = @VERSION@ # for a project that appears at the top of each page and should give viewer a # quick idea about the purpose of the project. Keep the description short. -PROJECT_BRIEF = Comedy generator +PROJECT_BRIEF = # With the PROJECT_LOGO tag one can specify a logo or an icon that is included # in the documentation. The maximum height of the logo should not exceed 55 @@ -790,7 +790,13 @@ WARN_LOGFILE = # spaces. See also FILE_PATTERNS and EXTENSION_MAPPING # Note: If this tag is empty the current directory is searched. -INPUT = "@TOP_SRCDIR@/libaurum/inc" "@TOP_SRCDIR@/libaurum/src" "@TOP_SRCDIR@/org.tizen.aurum-bootstrap/inc" "@TOP_SRCDIR@/org.tizen.aurum-bootstrap/src" "@TOP_SRCDIR@/protocol" +INPUT = "@TOP_SRCDIR@/libaurum/" \ + "@TOP_SRCDIR@/libaurum/inc" \ + "@TOP_SRCDIR@/libaurum/src" \ + "@TOP_SRCDIR@/protocol" \ + "@TOP_SRCDIR@/org.tizen.aurum-bootstrap/aurum-bootstrap.dox" \ + "@TOP_SRCDIR@/doc/mainpage.dox" + # This tag can be used to specify the character encoding of the source files # that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses @@ -819,13 +825,14 @@ FILE_PATTERNS = *.c \ *.cc \ *.h \ *.hh \ + *.dox \ *.proto # The RECURSIVE tag can be used to specify whether or not subdirectories should # be searched for input files as well. # The default value is: NO. -RECURSIVE = NO +RECURSIVE = YES # The EXCLUDE tag can be used to specify files and/or directories that should be # excluded from the INPUT source files. This way you can easily exclude a @@ -1420,7 +1427,7 @@ DISABLE_INDEX = NO # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. -GENERATE_TREEVIEW = NO +GENERATE_TREEVIEW = YES # The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that # doxygen will group on one line in the generated HTML documentation. diff --git a/doc/mainpage.dox b/doc/mainpage.dox new file mode 100644 index 0000000..18a246f --- /dev/null +++ b/doc/mainpage.dox @@ -0,0 +1,22 @@ + +/** + * @mainpage Aurum Protocol + * @section main_intro Introduction + * this is quick introduction + * @li @ref libaurum + * @li @ref protocol + * @li @ref aurum-bootstrap + * @section main_architecture Overall Architecture + * this is breif overall architecture + * @section main_tutorial Tutorial + * this shows you how to use aurum + * @subsection main_tutorial_step1 Step1 + * tutorial step 1 + * @subsection main_tutorial_step2 Step2 + * tutorial step 2 + * @subsection main_tutorial_step3 Step3 + * tutorial step 3 + * @subsection main_tutorial_step4 Step4 + * tutorial step 4 + */ + diff --git a/libaurum/inc/AccessibleNode.h b/libaurum/inc/AccessibleNode.h index 5951890..2b1b3eb 100644 --- a/libaurum/inc/AccessibleNode.h +++ b/libaurum/inc/AccessibleNode.h @@ -1,15 +1,19 @@ #ifndef ACCESSIBLE_NODE_H #define ACCESSIBLE_NODE_H -#include "config.h" - -#include "AccessibleUtils.h" - #include + #include #include #include #include +#include "AccessibleUtils.h" +#include "config.h" + +/** + * @brief AccessibleNodeInterface enum class + * @since_tizen 5.5 + */ enum class AccessibleNodeInterface { ACTION = 0x0001, COLLECTION = 0X0002, @@ -29,6 +33,10 @@ enum class AccessibleNodeInterface { TABLECELL = 0X1000, }; +/** + * @brief NodeFeatureProperties enum class + * @since_tizen 5.5 + */ enum class NodeFeatureProperties { CHECKABLE = 0x0001, CHECKED = 0X0002, @@ -46,119 +54,413 @@ enum class NodeFeatureProperties { ACTIVE = 0X0800, }; +/** + * @brief Point2d Class + * @since_tizen 5.5 + */ template class Point2D { public: + /** + * @brief TBD + * @since_tizen 5.5 + */ Point2D() : x{0}, y{0} {} + + /** + * @brief TBD + * @since_tizen 5.5 + */ Point2D(const Point2D &src) { x = src.x; y = src.y; } + + /** + * @brief TBD + * @since_tizen 5.5 + */ Point2D(const T &x, const T &y) { this->x = x; this->y = y; } + + /** + * @brief TBD + */ T x; + + /** + * @brief TBD + */ T y; }; +/** + * @brief Rect Class + * @since_tizen 5.5 + */ template class Rect { public: + /** + * @brief TBD + * @since_tizen 5.5 + */ Rect() : mTopLeft{0, 0}, mBottomRight{0, 0} {} + + /** + * @brief TBD + * @since_tizen 5.5 + */ Rect(const Point2D &tl, const Point2D &br) : mTopLeft(tl), mBottomRight(br) { } + + /** + * @brief TBD + * @since_tizen 5.5 + */ Rect(const T &x1, const T &y1, const T &x2, const T &y2) : mTopLeft{x1, y1}, mBottomRight{x2, y2} { } + + /** + * @brief TBD + * @since_tizen 5.5 + */ Rect(const Rect &src) { this->mTopLeft = Point2D{src.mTopLeft}; this->mBottomRight = Point2D{src.mBottomRight}; } + + /** + * @brief TBD + * @since_tizen 5.5 + */ Point2D midPoint() const { return Point2D{mTopLeft.x + static_cast(width() / 2), mTopLeft.y + static_cast(height() / 2)}; } + + /** + * @brief TBD + * @since_tizen 5.5 + */ T width() const { return mBottomRight.x - mTopLeft.x; } - T height() const { return mBottomRight.y - mTopLeft.y; } + /** + * @brief TBD + * @since_tizen 5.5 + */ + T height() const { return mBottomRight.y - mTopLeft.y; } + + /** + * @brief TBD + */ Point2D mTopLeft; + + /** + * @brief TBD + */ Point2D mBottomRight; }; +/** + * @brief AccessibleNode Class + * @since_tizen 5.5 + */ class AccessibleNode { -public: +public: // Constructor & Destructor + /** + * @brief TBD + * @since_tizen 5.5 + */ AccessibleNode(); + + /** + * @brief TBD + * @since_tizen 5.5 + */ AccessibleNode(AtspiAccessible *node); + + /** + * @brief TBD + * @since_tizen 5.5 + */ ~AccessibleNode(); + + /** + * @brief TBD + * @since_tizen 5.5 + */ static std::unique_ptr get(AtspiAccessible *node); public: - int getChildCount() const; + /** + * @brief TBD + * @since_tizen 5.5 + */ + int getChildCount() const; + + /** + * @brief TBD + * @since_tizen 5.5 + */ std::unique_ptr getChildAt(int index) const; + + /** + * @brief TBD + * @since_tizen 5.5 + */ std::unique_ptr getParent() const; + + /** + * @brief TBD + * @since_tizen 5.5 + */ AtspiAccessible *getAccessible() const; public: + /** + * @brief TBD + * @since_tizen 5.5 + */ std::string getDesc() const; + + /** + * @brief TBD + * @since_tizen 5.5 + */ std::string getText() const; + + /** + * @brief TBD + * @since_tizen 5.5 + */ std::string getPkg() const; + + /** + * @brief TBD + * @since_tizen 5.5 + */ std::string getRes() const; + + /** + * @brief TBD + * @since_tizen 5.5 + */ std::string getType() const; + + /** + * @brief TBD + * @since_tizen 5.5 + */ std::string getStyle() const; - Rect getBoundingBox() const; + /** + * @brief TBD + * @since_tizen 5.5 + */ + Rect getBoundingBox() const; + + /** + * @brief TBD + * @since_tizen 5.5 + */ bool isCheckable() const; + + /** + * @brief TBD + * @since_tizen 5.5 + */ bool isChecked() const; + + /** + * @brief TBD + * @since_tizen 5.5 + */ bool isClickable() const; + + /** + * @brief TBD + * @since_tizen 5.5 + */ bool isEnabled() const; + + /** + * @brief TBD + * @since_tizen 5.5 + */ bool isFocusable() const; + + /** + * @brief TBD + * @since_tizen 5.5 + */ bool isFocused() const; + + /** + * @brief TBD + * @since_tizen 5.5 + */ bool isLongClickable() const; + + /** + * @brief TBD + * @since_tizen 5.5 + */ bool isScrollable() const; + + /** + * @brief TBD + * @since_tizen 5.5 + */ bool isSelectable() const; + + /** + * @brief TBD + * @since_tizen 5.5 + */ bool isSelected() const; + + /** + * @brief TBD + * @since_tizen 5.5 + */ bool isVisible() const; + + /** + * @brief TBD + * @since_tizen 5.5 + */ bool isShowing() const; + + /** + * @brief TBD + * @since_tizen 5.5 + */ bool isActive() const; public: + /** + * @brief TBD + * @since_tizen 5.5 + */ void print(int) const; + + /** + * @brief TBD + * @since_tizen 5.5 + */ void print(int, int) const; + + /** + * @brief TBD + * @since_tizen 5.5 + */ void refresh() const; + /** + * @brief TBD + * @since_tizen 5.5 + */ void setValue(std::string text) const; private: + /** + * @brief TBD + * @since_tizen 5.5 + */ bool isSupporting(AccessibleNodeInterface thisIface) const; + + /** + * @brief TBD + * @since_tizen 5.5 + */ bool hasFeatureProperty(NodeFeatureProperties prop) const; + + /** + * @brief TBD + * @since_tizen 5.5 + */ void setFeatureProperty(NodeFeatureProperties prop, bool has) const; + + /** + * @brief TBD + * @since_tizen 5.5 + */ void setFeatureProperty(AtspiStateType type) const; + + /** + * @brief TBD + * @since_tizen 5.5 + */ static std::map mNodeMap; private: + /** + * @brief TBD + */ unique_ptr_gobj mNode; mutable std::string mText; + + /** + * @brief TBD + */ mutable std::string mPkg; + + /** + * @brief TBD + */ mutable std::string mRole; + + /** + * @brief TBD + */ mutable std::string mDesc; + + /** + * @brief TBD + */ mutable std::string mRes; + + /** + * @brief TBD + */ mutable std::string mType; + + /** + * @brief TBD + */ mutable std::string mStyle; + /** + * @brief TBD + */ mutable Rect mBoundingBox; - int mSupportingIfaces; - mutable int mFeatureProperty; + /** + * @brief TBD + */ + int mSupportingIfaces; + + /** + * @brief TBD + */ + mutable int mFeatureProperty; + + /** + * @brief TBD + */ bool mIsAlive; }; diff --git a/libaurum/inc/AccessibleUtils.h b/libaurum/inc/AccessibleUtils.h index 23052f4..38d53fe 100644 --- a/libaurum/inc/AccessibleUtils.h +++ b/libaurum/inc/AccessibleUtils.h @@ -6,38 +6,80 @@ #include #include + #include "config.h" +/** + * @brief TBD + * @since_tizen 5.5 + */ struct GobjDeletor { - void operator() (gpointer ptr) const { if (ptr) g_object_unref(ptr); } + void operator()(gpointer ptr) const + { + if (ptr) g_object_unref(ptr); + } }; +/** + * @brief TBD + * @since_tizen 5.5 + */ struct GarrayDeletor { - void operator() (GArray *ptr) const { if (ptr) g_array_free(ptr, 1); } + void operator()(GArray *ptr) const + { + if (ptr) g_array_free(ptr, 1); + } }; -template using unique_ptr_gobj = std::unique_ptr; -template using unique_ptr_garray = std::unique_ptr; +/** + * @brief TBD + * @since_tizen 5.5 + */ +template +using unique_ptr_gobj = std::unique_ptr; + +/** + * @brief TBD + * @since_tizen 5.5 + */ +template +using unique_ptr_garray = std::unique_ptr; -template +/** + * @brief TBD + * @since_tizen 5.5 + */ +template unique_ptr_gobj make_gobj_unique(T *ptr) { return unique_ptr_gobj(ptr); } -template +/** + * @brief TBD + * @since_tizen 5.5 + */ +template unique_ptr_garray make_garray_unique(T *ptr) { return unique_ptr_garray(ptr); } -template +/** + * @brief TBD + * @since_tizen 5.5 + */ +template unique_ptr_gobj make_gobj_ref_unique(T *ptr) { g_object_ref(ptr); return unique_ptr_gobj(ptr); } -char* state_to_char(AtspiStateType state); +/** + * @brief TBD + * @since_tizen 5.5 + */ +char *state_to_char(AtspiStateType state); #endif \ No newline at end of file diff --git a/libaurum/inc/AccessibleWatcher.h b/libaurum/inc/AccessibleWatcher.h index b779a23..9ee7d22 100644 --- a/libaurum/inc/AccessibleWatcher.h +++ b/libaurum/inc/AccessibleWatcher.h @@ -19,6 +19,10 @@ +/** + * @brief WindowActivateInfoType enum class + * @since_tizen 5.5 + */ enum class WindowActivateInfoType { DEFAULT_LABEL_ENALBED = 0x00, DEFAULT_LABEL_ENALBED_WITHOUT_WINDOW = 0x01, @@ -26,63 +30,198 @@ enum class WindowActivateInfoType { KEYBOARD = 0x04, }; +/** + * @brief IAtspiEvents Interface + * @since_tizen 5.5 + */ class IAtspiEvents { public: + /** + * @brief TBD + * @since_tizen 5.5 + */ virtual ~IAtspiEvents() {} + + /** + * @brief TBD + * @since_tizen 5.5 + */ virtual void onWindowActivated(AtspiAccessible * node, WindowActivateInfoType type) = 0; + /** + * @brief TBD + * @since_tizen 5.5 + */ virtual void onWindowDeactivated(AtspiAccessible *node) = 0; + /** + * @brief TBD + * @since_tizen 5.5 + */ virtual void onWindowCreated(AtspiAccessible *node) = 0; + + /** + * @brief TBD + * @since_tizen 5.5 + */ virtual void onWindowDestroyed(AtspiAccessible *node) = 0; + /** + * @brief TBD + * @since_tizen 5.5 + */ virtual void onVisibilityChanged(AtspiAccessible *node, bool visible) = 0; + + /** + * @brief TBD + * @since_tizen 5.5 + */ virtual void onObjectDefunct(AtspiAccessible *node) = 0; }; +/** + * @brief AccessibleWatcher class + * @since_tizen 5.5 + */ class AccessibleWatcher : public IAtspiEvents { private: + + /** + * @brief TBD + * @since_tizen 5.5 + */ AccessibleWatcher(); public: + /** + * @brief TBD + * @since_tizen 5.5 + */ static const AccessibleWatcher *getInstance(); + /** + * @brief TBD + * @since_tizen 5.5 + */ virtual ~AccessibleWatcher(); public: + /** + * @brief TBD + * @since_tizen 5.5 + */ std::unique_ptr getRootNode() const; + /** + * @brief TBD + * @since_tizen 5.5 + */ std::vector> getTopNode() const; + /** + * @brief TBD + * @since_tizen 5.5 + */ void onWindowActivated(AtspiAccessible * node, WindowActivateInfoType type) override; + /** + * @brief TBD + * @since_tizen 5.5 + */ void onWindowDeactivated(AtspiAccessible *node) override; + /** + * @brief TBD + * @since_tizen 5.5 + */ void onWindowCreated(AtspiAccessible *node) override; + /** + * @brief TBD + * @since_tizen 5.5 + */ void onWindowDestroyed(AtspiAccessible *node) override; + /** + * @brief TBD + * @since_tizen 5.5 + */ void onVisibilityChanged(AtspiAccessible *node, bool visible) override; + /** + * @brief TBD + * @since_tizen 5.5 + */ void onObjectDefunct(AtspiAccessible *node) override; + /** + * @brief TBD + * @since_tizen 5.5 + */ void printDbgInformation() const; private: void clearWindowList() const; + /** + * @brief TBD + * @since_tizen 5.5 + */ static void onAtspiWindowEvent(AtspiEvent *event, void *user_data); + /** + * @brief TBD + * @since_tizen 5.5 + */ bool removeFromActivatedList(AtspiAccessible *node); + /** + * @brief TBD + * @since_tizen 5.5 + */ bool addToActivatedList(AtspiAccessible *node); + /** + * @brief TBD + * @since_tizen 5.5 + */ bool removeFromWindowSet(AtspiAccessible *node); + /** + * @brief TBD + * @since_tizen 5.5 + */ bool addToWindowSet(AtspiAccessible *node); + private: + /** + * @brief TBD + */ static AtspiEventListener * listener; + + /** + * @brief TBD + */ mutable std::list mActivatedWindowList; + + /** + * @brief TBD + */ mutable std::list mActivatedApplicationList; + + /** + * @brief TBD + */ mutable std::set mWindowSet;; + /** + * @brief TBD + */ GDBusProxy * mDbusProxy; + + /** + * @brief TBD + */ std::map mAccessibleNode; + + /** + * @brief TBD + */ mutable std::mutex mLock; }; diff --git a/libaurum/inc/Comparer.h b/libaurum/inc/Comparer.h index 80f2313..db146b0 100644 --- a/libaurum/inc/Comparer.h +++ b/libaurum/inc/Comparer.h @@ -12,35 +12,81 @@ #include #include +/** + * @brief Comparer class + * @since_tizen 5.5 + */ class Comparer { private: + /** + * @brief TBD + * @since_tizen 5.5 + */ Comparer(const UiDevice *device, const std::shared_ptr selector, const bool &earlyReturn); + + /** + * @brief TBD + * @since_tizen 5.5 + */ ~Comparer(); public: + /** + * @brief TBD + * @since_tizen 5.5 + */ static std::unique_ptr findObject(const UiDevice * device, const std::shared_ptr selector, const AccessibleNode *root); + + /** + * @brief TBD + * @since_tizen 5.5 + */ static std::vector> findObjects( const UiDevice *device, const std::shared_ptr selector, const AccessibleNode *root); private: + /** + * @brief TBD + * @since_tizen 5.5 + */ std::vector> findObjects(const AccessibleNode *root); + + /** + * @brief TBD + * @since_tizen 5.5 + */ std::vector> findObjects( const AccessibleNode *root, const int &index, const int &depth, std::list> &partialMatches); private: + /** + * @brief TBD + * @since_tizen 5.5 + */ std::unique_ptr accept(const AccessibleNode *node, const std::shared_ptr selector, const int &index, const int &depth, const int &relDepth); private: + /** + * @brief TBD + */ const UiDevice *mDevice; + + /** + * @brief TBD + */ const std::shared_ptr mSelector; + + /** + * @brief TBD + */ bool mEarlyReturn; }; diff --git a/libaurum/inc/DeviceImpl/TizenImpl.h b/libaurum/inc/DeviceImpl/TizenImpl.h index 0d5ed83..01a568b 100644 --- a/libaurum/inc/DeviceImpl/TizenImpl.h +++ b/libaurum/inc/DeviceImpl/TizenImpl.h @@ -7,7 +7,10 @@ #ifdef GBS_BUILD #include #endif - +/** + * @brief TizenImpl Class + * @since_tizen 5.5 + */ class TizenImpl : public IDevice { public: TizenImpl(); diff --git a/libaurum/inc/IDevice.h b/libaurum/inc/IDevice.h index 27c1ae5..fdf85c2 100644 --- a/libaurum/inc/IDevice.h +++ b/libaurum/inc/IDevice.h @@ -3,37 +3,128 @@ #include "config.h" #include - +/** + * @brief TypeRequestType enum class + * @since_tizen 5.5 + */ enum class TypeRequestType { WALLCLOCK, MONOTONIC, }; - +/** + * @brief IDevice interface + * @since_tizen 5.5 + */ class IDevice { public: + /** + * @brief TBD virtual dtor + * @since_tizen 5.5 + */ virtual ~IDevice() {} + /** + * @brief TBD + * @since_tizen 5.5 + */ virtual bool click(const int x, const int y) = 0; + + /** + * @brief TBD click method + * @since_tizen 5.5 + */ virtual bool click(const int x, const int y, const unsigned int intv) = 0; + + /** + * @brief TBD + * @since_tizen 5.5 + */ virtual bool drag(const int sx, const int sy, const int ex, const int ey, const int steps, const int durationMs) = 0; + /** + * @brief TBD + * @since_tizen 5.5 + */ virtual bool touchDown(const int x, const int y) = 0; + + /** + * @brief TBD + * @since_tizen 5.5 + */ virtual bool touchMove(const int x, const int y) = 0; + + /** + * @brief TBD + * @since_tizen 5.5 + */ virtual bool touchUp(const int x, const int y) = 0; + /** + * @brief TBD + * @since_tizen 5.5 + */ + virtual bool wheelUp(int amount, const int durationMs) = 0; + + /** + * @brief TBD + * @since_tizen 5.5 + */ virtual bool wheelDown(int amount, const int durationMs) = 0; + /** + * @brief TBD + * @since_tizen 5.5 + */ virtual bool pressBack() = 0; + + /** + * @brief TBD + * @since_tizen 5.5 + */ virtual bool pressHome() = 0; + + /** + * @brief TBD + * @since_tizen 5.5 + */ virtual bool pressMenu() = 0; + + /** + * @brief TBD + * @since_tizen 5.5 + */ virtual bool pressVolUp() = 0; + + /** + * @brief TBD + * @since_tizen 5.5 + */ virtual bool pressVolDown() = 0; + + /** + * @brief TBD + * @since_tizen 5.5 + */ virtual bool pressPower() = 0; + + /** + * @brief TBD + * @since_tizen 5.5 + */ virtual bool pressKeyCode(std::string keycode) = 0; + /** + * @brief TBD + * @since_tizen 5.5 + */ virtual bool takeScreenshot(std::string path, float scale, int quality) = 0; + + /** + * @brief TBD + * @since_tizen 5.5 + */ virtual long long getSystemTime(TypeRequestType type) = 0; }; #endif \ No newline at end of file diff --git a/libaurum/inc/ISearchable.h b/libaurum/inc/ISearchable.h index b44ecbb..06eafed 100644 --- a/libaurum/inc/ISearchable.h +++ b/libaurum/inc/ISearchable.h @@ -8,13 +8,36 @@ #include class UiObject; - +/** + * @brief ISearchable interface + * @since_tizen 5.5 + */ class ISearchable { public: + + /** + * @brief TBD + * @since_tizen 5.5 + */ virtual ~ISearchable() {} + + /** + * @brief TBD + * @since_tizen 5.5 + */ virtual bool hasObject(const std::shared_ptr selector) const = 0; + + /** + * @brief TBD + * @since_tizen 5.5 + */ virtual std::unique_ptr findObject( const std::shared_ptr selector) const = 0; + + /** + * @brief TBD + * @since_tizen 5.5 + */ virtual std::vector> findObjects( const std::shared_ptr selector) const = 0; }; diff --git a/libaurum/inc/PartialMatch.h b/libaurum/inc/PartialMatch.h index 2e19007..987f8c9 100644 --- a/libaurum/inc/PartialMatch.h +++ b/libaurum/inc/PartialMatch.h @@ -7,36 +7,95 @@ #include "AccessibleNode.h" #include "UiSelector.h" - +/** + * @brief PartialMatch class + * @since_tizen 5.5 + */ class PartialMatch { private: + /** + * @brief TBD + * @since_tizen 5.5 + */ PartialMatch(); - const std::shared_ptr mSelector; - const int mDepth; - std::list> mPartialMatches; - public: + /** + * @brief TBD + * @since_tizen 5.5 + */ PartialMatch(const std::shared_ptr selector, const int absDepth); + +public: + /** + * @brief TBD + * @since_tizen 5.5 + */ void update(const AccessibleNode *node, int index, int depth, std::list> &partialMatches); + + /** + * @brief TBD + * @since_tizen 5.5 + */ bool finalizeMatch(); + + /** + * @brief TBD + * @since_tizen 5.5 + */ void debugPrint(); public: static std::shared_ptr accept(const AccessibleNode *node, const std::shared_ptr selector, int index, int depth); + + /** + * @brief TBD + * @since_tizen 5.5 + */ static std::shared_ptr accept(const AccessibleNode *node, const std::shared_ptr selector, int index, int absoluteDepth, int relativeDepth); + + /** + * @brief TBD + * @since_tizen 5.5 + */ private: static bool checkCriteria(const std::shared_ptr selector, const AccessibleNode *node); + /** + * @brief TBD + * @since_tizen 5.5 + */ + static bool checkCriteria(const std::string *textA, const std::string textB); + + /** + * @brief TBD + * @since_tizen 5.5 + */ static bool checkCriteria(const bool *boolA, const bool boolB); + +private: + /** + * @brief TBD + */ + const std::shared_ptr mSelector; + + /** + * @brief TBD + */ + const int mDepth; + + /** + * @brief TBD + */ + std::list> mPartialMatches; }; #endif \ No newline at end of file diff --git a/libaurum/inc/Sel.h b/libaurum/inc/Sel.h index a3eb716..ba87374 100644 --- a/libaurum/inc/Sel.h +++ b/libaurum/inc/Sel.h @@ -6,12 +6,34 @@ #include #include "UiSelector.h" - +/** + * @brief Sel class + * @since_tizen 5.5 + */ class Sel { public: + /** + * @brief TBD + * @since_tizen 5.5 + */ static std::shared_ptr text(std::string text); + + /** + * @brief TBD + * @since_tizen 5.5 + */ static std::shared_ptr type(std::string text); + + /** + * @brief TBD + * @since_tizen 5.5 + */ static std::shared_ptr style(std::string text); + + /** + * @brief TBD + * @since_tizen 5.5 + */ static std::shared_ptr depth(int depth); }; diff --git a/libaurum/inc/UiDevice.h b/libaurum/inc/UiDevice.h index 3ac4658..45eacef 100644 --- a/libaurum/inc/UiDevice.h +++ b/libaurum/inc/UiDevice.h @@ -13,65 +13,210 @@ #include #include - +/** + * @brief DeviceType enum class + * @since_tizen 5.5 + */ enum class DeviceType { DEFAULT, NUM_DEVICETYPE, }; - +/** + * @brief UiDevice class + * @since_tizen 5.5 + */ class UiDevice : public IDevice, public ISearchable { public: + /** + * @brief TBD + * @since_tizen 5.5 + */ bool click(const int x, const int y) override; + + /** + * @brief TBD + * @since_tizen 5.5 + */ bool click(const int x, const int y, const unsigned int intv) override; + /** + * @brief TBD + * @since_tizen 5.5 + */ bool drag(const int sx, const int sy, const int ex, const int ey, const int steps, const int durationMs) override; + /** + * @brief TBD + * @since_tizen 5.5 + */ bool touchDown(const int x, const int y) override; + + /** + * @brief TBD + * @since_tizen 5.5 + */ bool touchMove(const int x, const int y) override; + + /** + * @brief TBD + * @since_tizen 5.5 + */ bool touchUp(const int x, const int y) override; + /** + * @brief TBD + * @since_tizen 5.5 + */ bool wheelUp(int amount, const int durationMs) override; + + /** + * @brief TBD + * @since_tizen 5.5 + */ bool wheelDown(int amount, const int durationMs) override; + /** + * @brief TBD + * @since_tizen 5.5 + */ bool pressBack() override; + + /** + * @brief TBD + * @since_tizen 5.5 + */ bool pressHome() override; + + /** + * @brief TBD + * @since_tizen 5.5 + */ bool pressMenu() override; + + /** + * @brief TBD + * @since_tizen 5.5 + */ bool pressVolUp() override; + + /** + * @brief TBD + * @since_tizen 5.5 + */ bool pressVolDown() override; + + /** + * @brief TBD + * @since_tizen 5.5 + */ bool pressPower() override; + /** + * @brief TBD + * @since_tizen 5.5 + */ bool pressKeyCode(std::string keycode) override; + + /** + * @brief TBD + * @since_tizen 5.5 + */ bool takeScreenshot(std::string path, float scale, int quality) override; + + /** + * @brief TBD + * @since_tizen 5.5 + */ long long getSystemTime(TypeRequestType type) override; public: + + /** + * @brief TBD + * @since_tizen 5.5 + */ bool hasObject(const std::shared_ptr selector) const override; + + /** + * @brief TBD + * @since_tizen 5.5 + */ std::unique_ptr findObject( const std::shared_ptr selector) const override; + + /** + * @brief TBD + * @since_tizen 5.5 + */ std::vector> findObjects( const std::shared_ptr selector) const override; + /** + * @brief TBD + * @since_tizen 5.5 + */ bool waitFor( const std::function condition) const; + + /** + * @brief TBD + * @since_tizen 5.5 + */ std::unique_ptr waitFor( const std::function(const ISearchable *)> condition) const; public: + /** + * @brief TBD + * @since_tizen 5.5 + */ static UiDevice *getInstance(DeviceType type); private: + /** + * @brief TBD + * @since_tizen 5.5 + */ std::vector> getWindowRoot() const; + + /** + * @brief TBD + * @since_tizen 5.5 + */ bool waitForIdle() const; private: + /** + * @brief TBD + * @since_tizen 5.5 + */ UiDevice(); + + /** + * @brief TBD + * @since_tizen 5.5 + */ UiDevice(DeviceType type, IDevice *impl); + + /** + * @brief TBD + * @since_tizen 5.5 + */ virtual ~UiDevice(); private: + /** + * @brief TBD + */ DeviceType mType; + /** + * @brief TBD + */ IDevice * mDeviceImpl; + /** + * @brief TBD + */ const Waiter *mWaiter; }; diff --git a/libaurum/inc/UiObject.h b/libaurum/inc/UiObject.h index 19a40e0..e83b384 100644 --- a/libaurum/inc/UiObject.h +++ b/libaurum/inc/UiObject.h @@ -11,78 +11,276 @@ #include class UiDevice; - +/** + * @brief UiObject class + * @since_tizen 5.5 + */ class UiObject : public ISearchable { public: + /** + * @brief TBD + * @since_tizen 5.5 + */ UiObject(const UiDevice *device, const std::shared_ptr selector, const AccessibleNode *node); + /** + * @brief TBD + * @since_tizen 5.5 + */ UiObject(const UiDevice *device, const std::shared_ptr selector, std::unique_ptr node); - // UiObject(const UiObject &src); // copy constroctur + + /** + * @brief TBD + * @since_tizen 5.5 + */ UiObject(UiObject &&src); // move constructor + /** + * @brief TBD + * @since_tizen 5.5 + */ UiObject(); + + /** + * @brief TBD + * @since_tizen 5.5 + */ virtual ~UiObject(); + /** + * @brief TBD + * @since_tizen 5.5 + */ std::shared_ptr getSelector(); + /** + * @brief TBD + * @since_tizen 5.5 + */ bool hasObject(const std::shared_ptr selector) const override; + + /** + * @brief TBD + * @since_tizen 5.5 + */ std::unique_ptr findObject( const std::shared_ptr selector) const override; + + /** + * @brief TBD + * @since_tizen 5.5 + */ std::vector> findObjects( const std::shared_ptr selector) const override; + /** + * @brief TBD + * @since_tizen 5.5 + */ bool waitFor( const std::function condition) const; + + /** + * @brief TBD + * @since_tizen 5.5 + */ std::unique_ptr waitFor( const std::function(const ISearchable *)> condition) const; + + /** + * @brief TBD + * @since_tizen 5.5 + */ bool waitFor(const std::function condition) const; public: + /** + * @brief TBD + * @since_tizen 5.5 + */ UiObject * getParent() const; + + /** + * @brief TBD + * @since_tizen 5.5 + */ int getChildCount() const; + + /** + * @brief TBD + * @since_tizen 5.5 + */ std::vector> getChildren() const; + /** + * @brief TBD + * @since_tizen 5.5 + */ std::string getContentDescription() const; + + /** + * @brief TBD + * @since_tizen 5.5 + */ std::string getApplicationPackage() const; + + /** + * @brief TBD + * @since_tizen 5.5 + */ std::string getResourceName() const; + /** + * @brief TBD + * @since_tizen 5.5 + */ std::string getText() const; + + /** + * @brief TBD + * @since_tizen 5.5 + */ void setText(std::string text); + /** + * @brief TBD + * @since_tizen 5.5 + */ const Rect getBoundingBox() const; + /** + * @brief TBD + * @since_tizen 5.5 + */ bool isCheckable() const; + + /** + * @brief TBD + * @since_tizen 5.5 + */ bool isChecked() const; + + /** + * @brief TBD + * @since_tizen 5.5 + */ bool isClickable() const; + + /** + * @brief TBD + * @since_tizen 5.5 + */ bool isEnabled() const; + + /** + * @brief TBD + * @since_tizen 5.5 + */ bool isFocusable() const; + + /** + * @brief TBD + * @since_tizen 5.5 + */ bool isFocused() const; + + /** + * @brief TBD + * @since_tizen 5.5 + */ bool isLongClickable() const; + + /** + * @brief TBD + * @since_tizen 5.5 + */ bool isScrollable() const; + + /** + * @brief TBD + * @since_tizen 5.5 + */ bool isSelectable() const; + + /** + * @brief TBD + * @since_tizen 5.5 + */ bool isSelected() const; + + /** + * @brief TBD + * @since_tizen 5.5 + */ bool isVisible() const; + + /** + * @brief TBD + * @since_tizen 5.5 + */ bool isShowing() const; + + /** + * @brief TBD + * @since_tizen 5.5 + */ bool isActive() const; + /** + * @brief TBD + * @since_tizen 5.5 + */ void click() const; + + /** + * @brief TBD + * @since_tizen 5.5 + */ void longClick(const unsigned int intv = LOGNCLICK_INTERVAL) const; + + /** + * @brief TBD + * @since_tizen 5.5 + */ void refresh() const; private: + /** + * @brief TBD + * @since_tizen 5.5 + */ const AccessibleNode *getAccessibleNode() const; - static const unsigned int LOGNCLICK_INTERVAL = 50; private: + /** + * @brief TBD + */ const UiDevice * mDevice; + + /** + * @brief TBD + */ std::shared_ptr mSelector; + + /** + * @brief TBD + */ std::unique_ptr mNode; + + /** + * @brief TBD + */ const Waiter * mWaiter; //std::unique_ptr mNode_src; + + /** + * @brief TBD + */ + static const unsigned int LOGNCLICK_INTERVAL = 50; }; #endif \ No newline at end of file diff --git a/libaurum/inc/UiSelector.h b/libaurum/inc/UiSelector.h index cf096de..4a52580 100644 --- a/libaurum/inc/UiSelector.h +++ b/libaurum/inc/UiSelector.h @@ -5,69 +5,278 @@ #include #include #include - +/** + * @brief UiSelector class + * @since_tizen 5.5 + */ class UiSelector { public: + /** + * @brief TBD + * @since_tizen 5.5 + */ UiSelector(); + /** + * @brief TBD + * @since_tizen 5.5 + */ UiSelector(UiSelector &selector); // UiSelector(const UiSelector &src); // UiSelector &operator= (const UiSelector& src); public: + /** + * @brief TBD + * @since_tizen 5.5 + */ UiSelector *id(std::string text); + + /** + * @brief TBD + * @since_tizen 5.5 + */ UiSelector *text(std::string text); + + /** + * @brief TBD + * @since_tizen 5.5 + */ UiSelector *pkg(std::string text); + /** + * @brief TBD + * @since_tizen 5.5 + */ UiSelector *type(std::string text); + + /** + * @brief TBD + * @since_tizen 5.5 + */ UiSelector *style(std::string text); + /** + * @brief TBD + * @since_tizen 5.5 + */ UiSelector *depth(int depth); + + /** + * @brief TBD + * @since_tizen 5.5 + */ UiSelector *depth(int minDepth, int maxDepth); + + /** + * @brief TBD + * @since_tizen 5.5 + */ UiSelector *minDepth(int depth); + + /** + * @brief TBD + * @since_tizen 5.5 + */ UiSelector *maxDepth(int depth); + /** + * @brief TBD + * @since_tizen 5.5 + */ UiSelector *isChecked(bool cond); + + /** + * @brief TBD + * @since_tizen 5.5 + */ UiSelector *isCheckable(bool cond); + + /** + * @brief TBD + * @since_tizen 5.5 + */ UiSelector *isClickable(bool cond); + + /** + * @brief TBD + * @since_tizen 5.5 + */ UiSelector *isEnabled(bool cond); + + /** + * @brief TBD + * @since_tizen 5.5 + */ UiSelector *isFocused(bool cond); + + /** + * @brief TBD + * @since_tizen 5.5 + */ UiSelector *isFocusable(bool cond); + + /** + * @brief TBD + * @since_tizen 5.5 + */ UiSelector *isScrollable(bool cond); + + /** + * @brief TBD + * @since_tizen 5.5 + */ UiSelector *isSelected(bool cond); + + /** + * @brief TBD + * @since_tizen 5.5 + */ UiSelector *isShowing(bool cond); + + /** + * @brief TBD + * @since_tizen 5.5 + */ UiSelector *isActive(bool cond); + /** + * @brief TBD + * @since_tizen 5.5 + */ UiSelector *res(std::string text); + + /** + * @brief TBD + * @since_tizen 5.5 + */ UiSelector *desc(std::string text); + /** + * @brief TBD + * @since_tizen 5.5 + */ UiSelector *hasChild(std::shared_ptr child); public: + /** + * @brief TBD + * @since_tizen 5.5 + */ std::unique_ptr mId; + + /** + * @brief TBD + * @since_tizen 5.5 + */ std::unique_ptr mText; + + /** + * @brief TBD + * @since_tizen 5.5 + */ std::unique_ptr mPkg; + /** + * @brief TBD + * @since_tizen 5.5 + */ std::unique_ptr mType; + + /** + * @brief TBD + * @since_tizen 5.5 + */ std::unique_ptr mStyle; + /** + * @brief TBD + * @since_tizen 5.5 + */ std::unique_ptr mMinDepth; + + /** + * @brief TBD + * @since_tizen 5.5 + */ std::unique_ptr mMaxDepth; + /** + * @brief TBD + * @since_tizen 5.5 + */ std::unique_ptr mIschecked; + + /** + * @brief TBD + * @since_tizen 5.5 + */ std::unique_ptr mIscheckable; + + /** + * @brief TBD + * @since_tizen 5.5 + */ std::unique_ptr mIsclickable; + + /** + * @brief TBD + * @since_tizen 5.5 + */ std::unique_ptr mIsenabled; + + /** + * @brief TBD + * @since_tizen 5.5 + */ std::unique_ptr mIsfocused; + + /** + * @brief TBD + * @since_tizen 5.5 + */ std::unique_ptr mIsfocusable; + + /** + * @brief TBD + * @since_tizen 5.5 + */ std::unique_ptr mIsscrollable; + + /** + * @brief TBD + * @since_tizen 5.5 + */ std::unique_ptr mIsselected; + + /** + * @brief TBD + * @since_tizen 5.5 + */ std::unique_ptr mIsshowing; + + /** + * @brief TBD + * @since_tizen 5.5 + */ std::unique_ptr mIsactive; + /** + * @brief TBD + * @since_tizen 5.5 + */ std::unique_ptr mRes; + + /** + * @brief TBD + * @since_tizen 5.5 + */ std::unique_ptr mDesc; + /** + * @brief TBD + * @since_tizen 5.5 + */ std::vector> mChild; }; diff --git a/libaurum/inc/Until.h b/libaurum/inc/Until.h index b732c45..4ad2be3 100644 --- a/libaurum/inc/Until.h +++ b/libaurum/inc/Until.h @@ -4,22 +4,62 @@ #include #include "ISearchable.h" #include "UiSelector.h" - +/** + * @brief Until class + * @since_tizen 5.5 + */ class Until { private: + /** + * @brief TBD + * @since_tizen 5.5 + */ Until(); + + /** + * @brief TBD + * @since_tizen 5.5 + */ Until(const std::shared_ptr selector); + + /** + * @brief TBD + * @since_tizen 5.5 + */ Until(const Until &src); + + /** + * @brief TBD + * @since_tizen 5.5 + */ Until(const Until &&src); public: + /** + * @brief TBD + * @since_tizen 5.5 + */ ~Until(); public: + /** + * @brief TBD + * @since_tizen 5.5 + */ static std::function hasObject( const std::shared_ptr selector); + + /** + * @brief TBD + * @since_tizen 5.5 + */ static std::function(const ISearchable *)> findObject(const std::shared_ptr selector); + + /** + * @brief TBD + * @since_tizen 5.5 + */ static std::function checkable( const bool isCheckable); }; diff --git a/libaurum/inc/Waiter.h b/libaurum/inc/Waiter.h index d2ff893..5f7c22b 100644 --- a/libaurum/inc/Waiter.h +++ b/libaurum/inc/Waiter.h @@ -4,26 +4,70 @@ #include "ISearchable.h" #include - +/** + * @brief Waiter class + * @since_tizen 5.5 + */ class Waiter { private: + /** + * @brief TBD + * @since_tizen 5.5 + */ Waiter(); public: + /** + * @brief TBD + * @since_tizen 5.5 + */ Waiter(const ISearchable *searchableObject, const UiObject * uiObject = nullptr); // : mObject{object} + + /** + * @brief TBD + * @since_tizen 5.5 + */ ~Waiter(); public: + /** + * @brief TBD + * @since_tizen 5.5 + */ template R waitFor(const std::function condition) const; + + /** + * @brief TBD + * @since_tizen 5.5 + */ template R waitFor(const std::function object) const; private: + /** + * @brief TBD + * @since_tizen 5.5 + */ const ISearchable *mSearchableObject; + + /** + * @brief TBD + * @since_tizen 5.5 + */ const UiObject * mUiObject; + + /** + * @brief TBD + * @since_tizen 5.5 + */ const int WAIT_INTERVAL_MS; + + /** + * @brief TBD + * @since_tizen 5.5 + */ const int WAIT_TIMEOUT_MS; }; diff --git a/libaurum/libaurum.dox b/libaurum/libaurum.dox new file mode 100644 index 0000000..9f345f8 --- /dev/null +++ b/libaurum/libaurum.dox @@ -0,0 +1,6 @@ +/** + * @page libaurum libaurum + * + * Here is a page with some descriptions libaurum expalined + * + */ diff --git a/org.tizen.aurum-bootstrap/aurum-bootstrap.dox b/org.tizen.aurum-bootstrap/aurum-bootstrap.dox new file mode 100644 index 0000000..cacc87a --- /dev/null +++ b/org.tizen.aurum-bootstrap/aurum-bootstrap.dox @@ -0,0 +1,6 @@ +/** + * @page aurum-bootstrap org.tizen.aurum-bootstrap + * this is all about aurum-bootstrap + * + * + */ \ No newline at end of file diff --git a/protocol/aurum.proto b/protocol/aurum.proto index 3d7cda6..8f90927 100644 --- a/protocol/aurum.proto +++ b/protocol/aurum.proto @@ -1,32 +1,30 @@ syntax = "proto3"; package aurum; +/** + * @page protocol Protocol + * Here is a page with some descriptions about protocol explained + */ service Bootstrap { rpc sync(ReqEmpty) returns (RspEmpty) {} rpc killServer(ReqEmpty) returns (RspEmpty) {} - rpc findElement(ReqFindElement) returns (RspFindElement) {} - rpc getValue(ReqGetValue) returns (RspGetValue) {} rpc setValue(ReqSetValue) returns (RspSetValue) {} rpc getSize(ReqGetSize) returns (RspGetSize) {} rpc clear(ReqClear) returns (RspClear) {} rpc getAttribute(ReqGetAttribute) returns (RspGetAttribute) {} - rpc click(ReqClick) returns (RspClick) {} rpc longClick(ReqClick) returns (RspClick) {} rpc flick(ReqFlick) returns (RspFlick) {} - rpc touchDown(ReqTouchDown) returns (RspTouchDown) {} rpc touchMove(ReqTouchMove) returns (RspTouchMove) {} rpc touchUp(ReqTouchUp) returns (RspTouchUp) {} - rpc installApp(stream ReqInstallApp) returns (RspInstallApp) {} rpc removeApp(ReqRemoveApp) returns (RspRemoveApp) {} rpc getAppInfo(ReqGetAppInfo) returns (RspGetAppInfo) {} rpc launchApp(ReqLaunchApp) returns (RspLaunchApp) {} rpc closeApp(ReqCloseApp) returns (RspCloseApp) {} - rpc getDeviceTime(ReqGetDeviceTime) returns (RspGetDeviceTime) {} rpc getLocation(ReqGetLocation) returns (RspGetLocation) {} rpc sendKey(ReqKey) returns (RspKey) {} -- 2.7.4