AsynchronCall.h 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. #pragma once
  2. #include "Thread.h"
  3. #include <functional>
  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 wurde
  26. //! Muss mit new aufgerufen werden. Das Objekt löscht sich selbst
  27. DLLEXPORT AsynchronCall( std::function< void() > f, bool *finished );
  28. //! Konstruktor
  29. //! \param name Der Name des Threads
  30. //! \param f Die Funktion die asynchron aufgerufen werden soll
  31. //! \param finished Wird auf 1 gesetzt wenn der Aufruf abgearbeitet wurde
  32. //! Muss mit new aufgerufen werden. Das Objekt löscht sich selbst
  33. DLLEXPORT AsynchronCall( const char* name, std::function< void() > f, bool* finished );
  34. };
  35. }