AsynchronCall.h 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #pragma once
  2. #include <functional>
  3. #include "Thread.h"
  4. namespace Framework
  5. {
  6. class AsynchronCall : private Thread
  7. {
  8. private:
  9. std::function<void()> f;
  10. bool* finished;
  11. void thread() override;
  12. void threadEnd() override;
  13. public:
  14. //! Konstruktor
  15. //! \param f Die Funktion die asynchron aufgerufen werden soll
  16. //! Muss mit new aufgerufen werden. Das Objekt löscht sich selbst
  17. DLLEXPORT AsynchronCall(std::function<void()> f);
  18. //! Konstruktor
  19. //! \param name Der Name des Threads
  20. //! \param f Die Funktion die asynchron aufgerufen werden soll
  21. //! Muss mit new aufgerufen werden. Das Objekt löscht sich selbst
  22. DLLEXPORT AsynchronCall(const char* name, std::function<void()> f);
  23. //! Konstruktor
  24. //! \param f Die Funktion die asynchron aufgerufen werden soll
  25. //! \param finished Wird auf 1 gesetzt wenn der Aufruf abgearbeitet
  26. //! wurde
  27. //! Muss mit new aufgerufen werden. Das Objekt löscht sich selbst
  28. DLLEXPORT AsynchronCall(std::function<void()> f, bool* finished);
  29. //! Konstruktor
  30. //! \param name Der Name des Threads
  31. //! \param f Die Funktion die asynchron aufgerufen werden soll
  32. //! \param finished Wird auf 1 gesetzt wenn der Aufruf abgearbeitet
  33. //! wurde
  34. //! Muss mit new aufgerufen werden. Das Objekt löscht sich selbst
  35. DLLEXPORT AsynchronCall(
  36. const char* name, std::function<void()> f, bool* finished);
  37. };
  38. } // namespace Framework