AsynchronCall.cpp 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  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. // Inhalt der AsynchronCall Klasse
  15. // Konstruktor
  16. // name: Der Name des Threads
  17. // f: Die Funktion die asynchron aufgerufen werden soll
  18. // Muss mit new aufgerufen werden. Das Objekt löscht sich selbst
  19. AsynchronCall::AsynchronCall(const char* name, std::function<void()> f)
  20. : Thread()
  21. {
  22. setName(name);
  23. this->finished = 0;
  24. this->f = f;
  25. start();
  26. }
  27. // Konstruktor
  28. // f: Die Funktion die asynchron aufgerufen werden soll
  29. // finished: Wird auf 1 gesetzt wenn der Aufruf abgearbeitet wurde
  30. // Muss mit new aufgerufen werden. Das Objekt löscht sich selbst
  31. AsynchronCall::AsynchronCall(std::function<void()> f, bool* finished)
  32. : Thread()
  33. {
  34. this->finished = finished;
  35. this->f = f;
  36. if (finished) finished = 0;
  37. start();
  38. }
  39. // Konstruktor
  40. // name: Der Name des Threads
  41. // f: Die Funktion die asynchron aufgerufen werden soll
  42. // finished: Wird auf 1 gesetzt wenn der Aufruf abgearbeitet wurde
  43. // Muss mit new aufgerufen werden. Das Objekt löscht sich selbst
  44. AsynchronCall::AsynchronCall(
  45. const char* name, std::function<void()> f, bool* finished)
  46. : Thread()
  47. {
  48. setName(name);
  49. this->finished = finished;
  50. this->f = f;
  51. if (finished) finished = 0;
  52. start();
  53. }
  54. void AsynchronCall::thread()
  55. {
  56. f();
  57. }
  58. void AsynchronCall::threadEnd()
  59. {
  60. Thread::threadEnd();
  61. if (finished) *finished = 1;
  62. release();
  63. }