AsynchronCall.cpp 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  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 )
  37. finished = 0;
  38. start();
  39. }
  40. // Konstruktor
  41. // name: Der Name des Threads
  42. // f: Die Funktion die asynchron aufgerufen werden soll
  43. // finished: Wird auf 1 gesetzt wenn der Aufruf abgearbeitet wurde
  44. // Muss mit new aufgerufen werden. Das Objekt löscht sich selbst
  45. AsynchronCall::AsynchronCall( 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 )
  52. finished = 0;
  53. start();
  54. }
  55. void AsynchronCall::thread()
  56. {
  57. f();
  58. }
  59. void AsynchronCall::threadEnd()
  60. {
  61. Thread::threadEnd();
  62. if( finished )
  63. *finished = 1;
  64. release();
  65. }