[ATSPI] Add some descriptions to Bridge objects
[platform/core/uifw/dali-adaptor.git] / dali / internal / accessibility / bridge / accessibility-common.h
index 7b5e5c8..eabad2f 100644 (file)
@@ -2,7 +2,7 @@
 #define DALI_INTERNAL_ATSPI_ACCESSIBILITY_COMMON_H
 
 /*
- * Copyright (c) 2019 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2021 Samsung Electronics Co., Ltd.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
 #include <string>
 
 // INTERNAL INCLUDES
-#include <dali/public-api/dali-adaptor-common.h>
 #include <dali/devel-api/adaptor-framework/accessibility-impl.h>
-#include <dali/internal/accessibility/bridge/dbus.h>
 #include <dali/internal/accessibility/bridge/dbus-locators.h>
+#include <dali/internal/accessibility/bridge/dbus.h>
+#include <dali/public-api/dali-adaptor-common.h>
+
+/* DBus Interfaces */
 
 #define A11yDbusName "org.a11y.Bus"
 #define A11yDbusPath "/org/a11y/bus"
 #define A11yDbusStatusInterface "org.a11y.Status"
 #define AtspiDbusNameRegistry "org.a11y.atspi.Registry"
+#define AtspiDbusPathRegistry "/org/a11y/atspi/registry"
+#define AtspiDbusInterfaceRegistry "org.a11y.atspi.Registry"
 #define AtspiDbusPathRoot "/org/a11y/atspi/accessible/root"
 #define AtspiDbusInterfaceSocket "org.a11y.atspi.Socket"
 #define AtspiPath "/org/a11y/atspi/accessible"
 #define AtspiDbusInterfaceAccessible "org.a11y.atspi.Accessible"
 #define AtspiDbusInterfaceAction "org.a11y.atspi.Action"
 #define AtspiDbusInterfaceApplication "org.a11y.atspi.Application"
+#define AtspiDbusInterfaceCache "org.a11y.atspi.Cache"
+#define AtspiDbusPathCache "/org/a11y/atspi/cache"
 #define AtspiDbusInterfaceCollection "org.a11y.atspi.Collection"
 #define AtspiDbusInterfaceComponent "org.a11y.atspi.Component"
 #define AtspiDbusInterfaceDocument "org.a11y.atspi.Document"
@@ -101,211 +107,217 @@ enum class SortOrder : uint32_t
 namespace DBus
 {
 
+/**
+ * @brief The CurrentBridgePtr class is to save the current Accessibility Bridge.
+ */
 class CurrentBridgePtr
 {
-  static Dali::Accessibility::Bridge*& get()
+  static Dali::Accessibility::Bridge*& Get()
   {
-    static thread_local Dali::Accessibility::Bridge* b = nullptr;
-    return b;
+    static thread_local Dali::Accessibility::Bridge* bridge = nullptr;
+    return bridge;
   }
-  Dali::Accessibility::Bridge* prev;
-  CurrentBridgePtr( const CurrentBridgePtr& ) = delete;
-  CurrentBridgePtr( CurrentBridgePtr&& ) = delete;
-  CurrentBridgePtr& operator=( const CurrentBridgePtr& ) = delete;
-  CurrentBridgePtr& operator=( CurrentBridgePtr&& ) = delete;
+  Dali::Accessibility::Bridge* mPrev;
+  CurrentBridgePtr(const CurrentBridgePtr&) = delete;
+  CurrentBridgePtr(CurrentBridgePtr&&)      = delete;
+  CurrentBridgePtr& operator=(const CurrentBridgePtr&) = delete;
+  CurrentBridgePtr& operator=(CurrentBridgePtr&&) = delete;
 
 public:
-  CurrentBridgePtr( Dali::Accessibility::Bridge* b )
-  : prev( get() )
+  CurrentBridgePtr(Dali::Accessibility::Bridge* bridge)
+  : mPrev(Get())
   {
-    get() = b;
+    Get() = bridge;
   }
 
   ~CurrentBridgePtr()
   {
-    get() = prev;
+    Get() = mPrev;
   }
 
-  static Dali::Accessibility::Bridge* current()
+  static Dali::Accessibility::Bridge* GetCurrentBridge()
   {
-    return get();
+    return Get();
   }
-};
+}; // CurrentBridgePtr
+
 
+// Templates for setting and getting Accessible values
 namespace detail
 {
-
-template < typename T >
-struct signature_accessible_impl : signature_helper<signature_accessible_impl<T>>
+template<typename T>
+struct SignatureAccessibleImpl : signature_helper<SignatureAccessibleImpl<T>>
 {
-  using subtype = std::pair< std::string, ObjectPath >;
+  using subtype = std::pair<std::string, ObjectPath>;
 
   static constexpr auto name_v = concat("AtspiAccessiblePtr");
-  static constexpr auto sig_v = concat("(so)");
+  static constexpr auto sig_v  = concat("(so)");
 
   /**
-   * @brief Marshals value v as marshalled type into message
+   * @brief Marshals value address as marshalled type into message
    */
-  static void set( const DBusWrapper::MessageIterPtr& iter, T* t )
+  static void set(const DBusWrapper::MessageIterPtr& iter, T* accessible)
   {
-    if( t )
+    if(accessible)
     {
-      auto v = t->GetAddress();
-      signature< subtype >::set( iter, { v.GetBus(), ObjectPath{std::string{ ATSPI_PREFIX_PATH } +v.GetPath()} } );
+      auto address = accessible->GetAddress();
+      signature<subtype>::set(iter, {address.GetBus(), ObjectPath{std::string{ATSPI_PREFIX_PATH} + address.GetPath()}});
     }
     else
     {
-      signature< subtype >::set( iter, { "", ObjectPath{ ATSPI_NULL_PATH } } );
+      signature<subtype>::set(iter, {"", ObjectPath{ATSPI_NULL_PATH}});
     }
   }
 
   /**
-   * @brief Marshals value from marshalled type into variable v
+   * @brief Marshals value from marshalled type into variable path
    */
-  static bool get( const DBusWrapper::MessageIterPtr& iter, T*& v )
+  static bool get(const DBusWrapper::MessageIterPtr& iter, T*& path)
   {
     subtype tmp;
-    if( !signature< subtype >::get( iter, tmp ) )
+    if(!signature<subtype>::get(iter, tmp))
     {
       return false;
     }
 
-    if( tmp.second.value == ATSPI_NULL_PATH )
+    if(tmp.second.value == ATSPI_NULL_PATH)
     {
-      v = nullptr;
+      path = nullptr;
       return true;
     }
 
-    if( tmp.second.value.substr( 0, strlen( ATSPI_PREFIX_PATH ) ) != ATSPI_PREFIX_PATH )
+    if(tmp.second.value.substr(0, strlen(ATSPI_PREFIX_PATH)) != ATSPI_PREFIX_PATH)
     {
       return false;
     }
 
-    auto b = CurrentBridgePtr::current();
-    if( b->GetBusName() != tmp.first )
+    auto currentBridge = CurrentBridgePtr::GetCurrentBridge();
+    if(currentBridge->GetBusName() != tmp.first)
     {
       return false;
     }
 
-    v = b->FindByPath( tmp.second.value.substr( strlen( ATSPI_PREFIX_PATH ) ) );
-    return v != nullptr;
+    path = currentBridge->FindByPath(tmp.second.value.substr(strlen(ATSPI_PREFIX_PATH)));
+    return path != nullptr;
   }
 };
 
-template <>
-struct signature< Dali::Accessibility::Accessible* > : public signature_accessible_impl< Dali::Accessibility::Accessible >
+template<>
+struct signature<Dali::Accessibility::Accessible*> : public SignatureAccessibleImpl<Dali::Accessibility::Accessible>
 {
 };
 
-template <>
-struct signature< Dali::Accessibility::Address > : signature_helper<signature<Dali::Accessibility::Address>>
+template<>
+struct signature<Dali::Accessibility::Address> : signature_helper<signature<Dali::Accessibility::Address>>
 {
-  using subtype = std::pair< std::string, ObjectPath >;
+  using subtype = std::pair<std::string, ObjectPath>;
 
   static constexpr auto name_v = concat("AtspiAccessiblePtr");
-  static constexpr auto sig_v = concat("(so)");
+  static constexpr auto sig_v  = concat("(so)");
 
   /**
-   * @brief Marshals value v as marshalled type into message
+   * @brief Marshals value address as marshalled type into message
    */
-  static void set( const DBusWrapper::MessageIterPtr& iter, const Dali::Accessibility::Address& v )
+  static void set(const DBusWrapper::MessageIterPtr& iter, const Dali::Accessibility::Address& address)
   {
-    if( v )
+    if(address)
     {
-      signature< subtype >::set( iter, { v.GetBus(), ObjectPath{ std::string{ ATSPI_PREFIX_PATH } + v.GetPath() } } );
+      signature<subtype>::set(iter, {address.GetBus(), ObjectPath{std::string{ATSPI_PREFIX_PATH} + address.GetPath()}});
     }
     else
     {
-      signature< subtype >::set( iter, { v.GetBus(), ObjectPath{ ATSPI_NULL_PATH } } );
+      signature<subtype>::set(iter, {address.GetBus(), ObjectPath{ATSPI_NULL_PATH}});
     }
   }
 
   /**
-   * @brief Marshals value from marshalled type into variable v
+   * @brief Marshals value from marshalled type into variable address
    */
-  static bool get( const DBusWrapper::MessageIterPtr& iter, Dali::Accessibility::Address& v )
+  static bool get(const DBusWrapper::MessageIterPtr& iter, Dali::Accessibility::Address& address)
   {
     subtype tmp;
-    if( !signature< subtype >::get( iter, tmp ) )
+    if(!signature<subtype>::get(iter, tmp))
     {
       return false;
     }
 
-    if( tmp.second.value == ATSPI_NULL_PATH )
+    if(tmp.second.value == ATSPI_NULL_PATH)
     {
-      v = {};
+      address = {};
       return true;
     }
-    if( tmp.second.value.substr( 0, strlen( ATSPI_PREFIX_PATH ) ) != ATSPI_PREFIX_PATH )
+    if(tmp.second.value.substr(0, strlen(ATSPI_PREFIX_PATH)) != ATSPI_PREFIX_PATH)
     {
       return false;
     }
 
-  v = { std::move( tmp.first ), tmp.second.value.substr( strlen( ATSPI_PREFIX_PATH ) ) };
-  return true;
+    address = {std::move(tmp.first), tmp.second.value.substr(strlen(ATSPI_PREFIX_PATH))};
+    return true;
   }
 };
 
-template <>
-struct signature< Dali::Accessibility::States > : signature_helper<signature<Dali::Accessibility::States>>
+template<>
+struct signature<Dali::Accessibility::States> : signature_helper<signature<Dali::Accessibility::States>>
 {
   using subtype = std::array<uint32_t, 2>;
 
   static constexpr auto name_v = signature<subtype>::name_v;
-  static constexpr auto sig_v = signature<subtype>::sig_v;
+  static constexpr auto sig_v  = signature<subtype>::sig_v;
 
   /**
-   * @brief Marshals value v as marshalled type into message
+   * @brief Marshals value state as marshalled type into message
    */
-  static void set( const DBusWrapper::MessageIterPtr& iter, const Dali::Accessibility::States& v )
+  static void set(const DBusWrapper::MessageIterPtr& iter, const Dali::Accessibility::States& states)
   {
-    signature< subtype >::set( iter, v.GetRawData() );
+    signature<subtype>::set(iter, states.GetRawData());
   }
 
   /**
-   * @brief Marshals value from marshalled type into variable v
+   * @brief Marshals value from marshalled type into variable state
    */
-  static bool get( const DBusWrapper::MessageIterPtr& iter, Dali::Accessibility::States& v )
+  static bool get(const DBusWrapper::MessageIterPtr& iter, Dali::Accessibility::States& state)
   {
     subtype tmp;
-    if( !signature< subtype >::get( iter, tmp ) )
+    if(!signature<subtype>::get(iter, tmp))
     {
       return false;
     }
-    v = Dali::Accessibility::States{ tmp };
+    state = Dali::Accessibility::States{tmp};
     return true;
   }
 };
-}
-}
+} // namespace detail
+} // namespace DBus
 
 struct _Logger
 {
-  const char* file;
-  int line;
-  std::ostringstream tmp;
+  const char*        mFile;
+  int                mLine;
+  std::ostringstream mTmp;
 
-  _Logger( const char* f, int l )
-  : file( f ),
-    line( l ){}
+  _Logger(const char* file, int line)
+  : mFile(file),
+    mLine(line)
+  {
+  }
 
   ~_Logger()
   {
-    Dali::Integration::Log::LogMessage( Dali::Integration::Log::DebugInfo, "%s:%d: %s", file, line, tmp.str().c_str() );
+    Dali::Integration::Log::LogMessage(Dali::Integration::Log::DebugInfo, "%s:%d: %s", mFile, mLine, mTmp.str().c_str());
   }
 
-  template < typename T >
-  _Logger& operator<<( T&& t )
+  template<typename T>
+  _Logger& operator<<(T&& t)
   {
-    tmp << std::forward< T >( t );
+    mTmp << std::forward<T>(t);
     return *this;
   }
 };
 
 struct _LoggerEmpty
 {
-  template < typename T >
-  _LoggerEmpty& operator<<( T&& t )
+  template<typename T>
+  _LoggerEmpty& operator<<(T&& t)
   {
     return *this;
   }
@@ -313,23 +325,23 @@ struct _LoggerEmpty
 
 struct _LoggerScope
 {
-  const char* file;
-  int line;
+  const char* mFile;
+  int         mLine;
 
-  _LoggerScope( const char* f, int l )
-  : file( f ),
-    line( l )
+  _LoggerScope(const char* file, int line)
+  : mFile(file),
+    mLine(line)
   {
-    Dali::Integration::Log::LogMessage( Dali::Integration::Log::DebugInfo, "%s:%d: +", file, line );
+    Dali::Integration::Log::LogMessage(Dali::Integration::Log::DebugInfo, "%s:%d: +", mFile, mLine);
   }
 
   ~_LoggerScope()
   {
-    Dali::Integration::Log::LogMessage( Dali::Integration::Log::DebugInfo, "%s:%d: -", file, line );
+    Dali::Integration::Log::LogMessage(Dali::Integration::Log::DebugInfo, "%s:%d: -", mFile, mLine);
   }
 };
 
-#define LOG() _Logger( __FILE__, __LINE__ )
-#define SCOPE() _LoggerScope _l##__LINE__( __FILE__, __LINE__ )
+#define LOG() _Logger(__FILE__, __LINE__)
+#define SCOPE() _LoggerScope _l##__LINE__(__FILE__, __LINE__)
 
 #endif // DALI_INTERNAL_ATSPI_ACCESSIBILITY_COMMON_H