AsynchronCall.cpp 923 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #include "AsynchronCall.h"
  2. using namespace Framework;
  3. // Inhalt der AsynchronCall Klasse
  4. // Konstruktor
  5. // f: Die Funktion die asynchron aufgerufen werden soll
  6. // Muss mit new aufgerufen werden. Das Objekt löscht sich selbst
  7. AsynchronCall::AsynchronCall( std::function< void() > f )
  8. : Thread()
  9. {
  10. this->finished = 0;
  11. this->f = f;
  12. start();
  13. }
  14. // Konstruktor
  15. // f: Die Funktion die asynchron aufgerufen werden soll
  16. // finished: Wird auf 1 gesetzt wenn der Aufruf abgearbeitet wurde
  17. // Muss mit new aufgerufen werden. Das Objekt löscht sich selbst
  18. AsynchronCall::AsynchronCall( std::function< void() > f, bool *finished )
  19. : Thread()
  20. {
  21. this->finished = finished;
  22. this->f = f;
  23. if( finished )
  24. finished = 0;
  25. start();
  26. }
  27. void AsynchronCall::thread()
  28. {
  29. f();
  30. }
  31. void AsynchronCall::threadEnd()
  32. {
  33. Thread::threadEnd();
  34. if( finished )
  35. *finished = 1;
  36. release();
  37. }