From 3704ba27dfc6a6175e41ab0712432f658635cc21 Mon Sep 17 00:00:00 2001 From: Hosang Kim Date: Mon, 7 Mar 2022 23:46:38 +0900 Subject: [PATCH] libaurum: add XML document map for parsing XML. Change-Id: I86319b2f4a4f5350997395feaab548908e7b599f --- libaurum/inc/Accessibility/AccessibleWatcher.h | 9 +++++++++ .../Impl/Accessibility/AtspiAccessibleWatcher.h | 6 ++++++ .../inc/Impl/Accessibility/MockAccessibleWatcher.h | 4 ++++ .../Impl/Accessibility/AtspiAccessibleWatcher.cc | 14 ++++++++++++++ .../Impl/Accessibility/MockAccessibleWatcher.cc | 5 +++++ 5 files changed, 38 insertions(+) diff --git a/libaurum/inc/Accessibility/AccessibleWatcher.h b/libaurum/inc/Accessibility/AccessibleWatcher.h index bdc5fb3..227b0de 100644 --- a/libaurum/inc/Accessibility/AccessibleWatcher.h +++ b/libaurum/inc/Accessibility/AccessibleWatcher.h @@ -24,6 +24,7 @@ #include "IEventSource.h" #include "Runnable.h" #include "A11yEvent.h" +#include "AurumXML.h" #include #include @@ -117,6 +118,14 @@ public: */ virtual std::map> getActiveAppMap(void) = 0; + /** + * @brief Gets XML Document map. + * + * @return map (package std::string, @AurumXML) + * @since_tizen 7.0 + */ + virtual std::map> getXMLDocMap(void) = 0; + public: /** * @brief Gets active application vector. diff --git a/libaurum/inc/Impl/Accessibility/AtspiAccessibleWatcher.h b/libaurum/inc/Impl/Accessibility/AtspiAccessibleWatcher.h index 2a067d2..2f8e54a 100644 --- a/libaurum/inc/Impl/Accessibility/AtspiAccessibleWatcher.h +++ b/libaurum/inc/Impl/Accessibility/AtspiAccessibleWatcher.h @@ -112,6 +112,11 @@ public: */ virtual std::map> getActiveAppMap(void) override; + /** + * @copydoc @AccessibleWatcher::getXMLDocMap() + */ + virtual std::map> getXMLDocMap(void) override; + public: /** * @brief Listen atspi events. @@ -157,6 +162,7 @@ private: std::list mActivatedApplicationList; std::set mWindowSet; std::map> mActiveAppMap; + std::map> mXMLDocMap; static GThread *mEventThread; static std::vector> mEventQueue; static std::mutex mMutex; diff --git a/libaurum/inc/Impl/Accessibility/MockAccessibleWatcher.h b/libaurum/inc/Impl/Accessibility/MockAccessibleWatcher.h index 68dace7..5dcce5d 100644 --- a/libaurum/inc/Impl/Accessibility/MockAccessibleWatcher.h +++ b/libaurum/inc/Impl/Accessibility/MockAccessibleWatcher.h @@ -75,6 +75,8 @@ public: std::map> getActiveAppMap(void); + std::map> getXMLDocMap(void); + public: /** * @brief TBD @@ -95,6 +97,8 @@ private: std::vector> mApplicationList; std::map> mActiveAppMap; + std::map> mXMLDocMap; + }; } diff --git a/libaurum/src/Impl/Accessibility/AtspiAccessibleWatcher.cc b/libaurum/src/Impl/Accessibility/AtspiAccessibleWatcher.cc index 396e4b1..515acb6 100644 --- a/libaurum/src/Impl/Accessibility/AtspiAccessibleWatcher.cc +++ b/libaurum/src/Impl/Accessibility/AtspiAccessibleWatcher.cc @@ -191,6 +191,11 @@ void AtspiAccessibleWatcher::onAtspiEvents(AtspiEvent *event, void *watcher) else { LOGI("app(%s) is already in map", pkg); } + + if (!instance->mXMLDocMap.count(std::string(pkg))) { + instance->mXMLDocMap.insert(std::pair>(std::string(pkg), + std::make_shared(std::make_shared(app)))); + } } else if (!strncmp(event->type, "window:deactivate", 16)) { LOGI("window deactivate in app(%s)", pkg); @@ -202,6 +207,10 @@ void AtspiAccessibleWatcher::onAtspiEvents(AtspiEvent *event, void *watcher) LOGE("deactivated window's app(%s) is not in map", pkg); } + if (instance->mXMLDocMap.count(std::string(pkg))) { + instance->mXMLDocMap.erase(std::string(pkg)); + } + g_object_unref(app); } } @@ -307,6 +316,11 @@ std::map> AtspiAccessi return mActiveAppMap; } +std::map> AtspiAccessibleWatcher::getXMLDocMap(void) +{ + return mXMLDocMap; +} + bool AtspiAccessibleWatcher::removeFromActivatedList(AtspiAccessible *node) { LOGI("remove from activelist node %p", node); diff --git a/libaurum/src/Impl/Accessibility/MockAccessibleWatcher.cc b/libaurum/src/Impl/Accessibility/MockAccessibleWatcher.cc index 52f5373..2a218d1 100644 --- a/libaurum/src/Impl/Accessibility/MockAccessibleWatcher.cc +++ b/libaurum/src/Impl/Accessibility/MockAccessibleWatcher.cc @@ -55,6 +55,11 @@ std::map> MockAccessib return mActiveAppMap; } +std::map> MockAccessibleWatcher::getXMLDocMap(void) +{ + return mXMLDocMap; +} + std::shared_ptr MockAccessibleWatcher::addApplication(std::string pkgName, Rect geometry, int ifaces, int properties) { std::shared_ptr appNode = std::make_shared(nullptr, pkgName, pkgName, "application", "", "Elm_Win", "default", "", geometry, ifaces, properties); -- 2.34.1