Add new clipboard
[platform/core/uifw/dali-adaptor.git] / dali / internal / adaptor / common / adaptor-impl.h
index 69a6b3f..a28e588 100644 (file)
@@ -2,7 +2,7 @@
 #define DALI_INTERNAL_ADAPTOR_IMPL_H
 
 /*
- * Copyright (c) 2021 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2023 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.
 // EXTERNAL INCLUDES
 #include <dali/devel-api/threading/mutex.h>
 #include <dali/integration-api/render-controller.h>
+#include <dali/public-api/adaptor-framework/timer.h>
 #include <dali/public-api/common/vector-wrapper.h>
 #include <dali/public-api/math/rect.h>
 #include <dali/public-api/math/uint-16-pair.h>
 #include <dali/public-api/signals/callback.h>
 
 // INTERNAL INCLUDES
-#include <dali/devel-api/adaptor-framework/clipboard.h>
 #include <dali/integration-api/adaptor-framework/adaptor.h>
 #include <dali/integration-api/adaptor-framework/scene-holder-impl.h>
 #include <dali/integration-api/adaptor-framework/trigger-event-factory.h>
@@ -455,6 +455,13 @@ public:
    */
   bool IsMultipleWindowSupported() const;
 
+  /**
+   * @brief Gets the render thread id of DALi.
+   * @note If render thread id getter doesn't supported, it will return 0 as default.
+   * @return The render thread id.
+   */
+  int32_t GetRenderThreadId() const;
+
 public: //AdaptorInternalServices
   /**
    * @copydoc Dali::Internal::Adaptor::AdaptorInternalServices::GetPlatformAbstractionInterface()
@@ -506,6 +513,15 @@ public: //AdaptorInternalServices
    */
   void GetWindowContainerInterface(WindowContainer& windows) override;
 
+  /**
+   * @brief Get the configuration manager
+   * @return The configuration manager, or null if it hasn't been created yet
+   */
+  const ConfigurationManager* GetConfigurationManager() const
+  {
+    return mConfigurationManager.get();
+  }
+
 public: // Signals
   /**
    * @copydoc Dali::Adaptor::SignalResized
@@ -547,12 +563,12 @@ private: // From Dali::Integration::RenderController
   /**
    * @copydoc Dali::Integration::RenderController::RequestUpdate()
    */
-  void RequestUpdate(bool forceUpdate) override;
+  void RequestUpdate() override;
 
   /**
    * @copydoc Dali::Integration::RenderController::RequestProcessEventsOnIdle()
    */
-  void RequestProcessEventsOnIdle(bool forceProcess) override;
+  void RequestProcessEventsOnIdle() override;
 
 public: // From Dali::Internal::Adaptor::WindowVisibilityObserver
   /**
@@ -620,6 +636,11 @@ private:
    */
   void RemoveIdleEnterer(CallbackBase* callback);
 
+  /**
+   * Trigger to log the memory pools from Core and Adaptor
+   */
+  bool MemoryPoolTimeout();
+
 private:
   /**
    * Constructor
@@ -667,24 +688,27 @@ private:                                          // Data
 
   TizenPlatform::TizenPlatformAbstraction* mPlatformAbstraction; ///< Platform abstraction
 
-  CallbackManager*            mCallbackManager;                       ///< Used to install callbacks
-  bool                        mNotificationOnIdleInstalled;           ///< whether the idle handler is installed to send an notification event
-  TriggerEventInterface*      mNotificationTrigger;                   ///< Notification event trigger
-  FeedbackPluginProxy*        mDaliFeedbackPlugin;                    ///< Used to access feedback support
-  FeedbackController*         mFeedbackController;                    ///< Plays feedback effects for Dali-Toolkit UI Controls.
-  Dali::TtsPlayer             mTtsPlayers[Dali::TtsPlayer::MODE_NUM]; ///< Provides TTS support
-  ObserverContainer           mObservers;                             ///< A list of adaptor observer pointers
-  EnvironmentOptions*         mEnvironmentOptions;                    ///< environment options
-  PerformanceInterface*       mPerformanceInterface;                  ///< Performance interface
-  KernelTrace                 mKernelTracer;                          ///< Kernel tracer
-  SystemTrace                 mSystemTracer;                          ///< System tracer
-  ObjectProfiler*             mObjectProfiler;                        ///< Tracks object lifetime for profiling
-  SocketFactory               mSocketFactory;                         ///< Socket factory
-  Mutex                       mMutex;                                 ///< Mutex
-  ThreadMode                  mThreadMode;                            ///< The thread mode
-  const bool                  mEnvironmentOptionsOwned : 1;           ///< Whether we own the EnvironmentOptions (and thus, need to delete it)
-  bool                        mUseRemoteSurface : 1;                  ///< whether the remoteSurface is used or not
-  Dali::LayoutDirection::Type mRootLayoutDirection;                   ///< LayoutDirection of window
+  std::unique_ptr<CallbackManager> mCallbackManager;                       ///< Used to install callbacks
+  bool                             mNotificationOnIdleInstalled;           ///< whether the idle handler is installed to send an notification event
+  bool                             mRequiredIdleRepeat;                    ///< whether we need to repeat installed notification event in idle handler
+  TriggerEventInterface*           mNotificationTrigger;                   ///< Notification event trigger
+  FeedbackPluginProxy*             mDaliFeedbackPlugin;                    ///< Used to access feedback support
+  FeedbackController*              mFeedbackController;                    ///< Plays feedback effects for Dali-Toolkit UI Controls.
+  Dali::TtsPlayer                  mTtsPlayers[Dali::TtsPlayer::MODE_NUM]; ///< Provides TTS support
+  ObserverContainer                mObservers;                             ///< A list of adaptor observer pointers
+  EnvironmentOptions*              mEnvironmentOptions;                    ///< environment options
+  PerformanceInterface*            mPerformanceInterface;                  ///< Performance interface
+  KernelTrace                      mKernelTracer;                          ///< Kernel tracer
+  SystemTrace                      mSystemTracer;                          ///< System tracer
+  ObjectProfiler*                  mObjectProfiler;                        ///< Tracks object lifetime for profiling
+  Dali::Timer                      mMemoryPoolTimer;                       ///< Logs memory pool capacity
+  SlotDelegate<Adaptor>            mMemoryPoolTimerSlotDelegate;
+  SocketFactory                    mSocketFactory;               ///< Socket factory
+  Mutex                            mMutex;                       ///< Mutex
+  ThreadMode                       mThreadMode;                  ///< The thread mode
+  const bool                       mEnvironmentOptionsOwned : 1; ///< Whether we own the EnvironmentOptions (and thus, need to delete it)
+  bool                             mUseRemoteSurface : 1;        ///< whether the remoteSurface is used or not
+  Dali::LayoutDirection::Type      mRootLayoutDirection;         ///< LayoutDirection of window
 
   std::unique_ptr<Integration::AddOnManager> mAddOnManager; ///< Pointer to the addon manager