KSGSRückruf.cpp 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. #include "KSGSRückruf.h"
  2. #include "../Klassen/KSGSTyp.h"
  3. #include "../Main/KSGScriptObj.h"
  4. #include "../Befehl/KSGSKlasse.h"
  5. using namespace KSGScript;
  6. // Inhalt der KSGSRückrufFInstanz Klasse aus KSGSRückruf.h
  7. // Konstruktor
  8. KSGSRückrufInstanz::KSGSRückrufInstanz( KSGScriptObj *obj )
  9. : KSGSFunktionInstanz(new RCArray< KSGSBefehl >(), KSGS_VOID, obj, 0 )
  10. {
  11. parameter = 0;
  12. }
  13. // Destruktor
  14. KSGSRückrufInstanz::~KSGSRückrufInstanz()
  15. {
  16. if( parameter )
  17. parameter->release();
  18. }
  19. // nicht constant
  20. void KSGSRückrufInstanz::setParameter( Array< KSGSVariableDef* > *zDef, RCArray< KSGSVariable > *vars )
  21. {
  22. if( parameter )
  23. parameter->release();
  24. parameter = vars;
  25. }
  26. KSGSVariable *KSGSRückrufInstanz::startFunktion()
  27. {
  28. return obj->rückruf( parameter ? parameter->getThis() : new RCArray< KSGSVariable >() );
  29. }
  30. // Reference Counting
  31. KSGSFunktionInstanz *KSGSRückrufInstanz::release()
  32. {
  33. ref--;
  34. if( !ref )
  35. delete this;
  36. return 0;
  37. }
  38. // Inhalt der KSGSRückrufFunktion Klasse aus KSGSRückruf.h
  39. // Konstruktor
  40. KSGSRückrufFunktion::KSGSRückrufFunktion()
  41. : KSGSFunktion( 0, 0, KSGS_VOID )
  42. {
  43. }
  44. // nicht constant
  45. KSGSFunktionInstanz *KSGSRückrufFunktion::erstellInstanz( KSGScriptObj *obj, KSGSKlasseInstanz *klasse, RCArray< KSGSVariable > *params )
  46. {
  47. KSGSRückrufInstanz *inst = new KSGSRückrufInstanz( obj );
  48. if( params )
  49. inst->setParameter( 0, params );
  50. return inst;
  51. }
  52. // Reference Counting
  53. KSGSFunktion *KSGSRückrufFunktion::release()
  54. {
  55. ref--;
  56. if( !ref )
  57. delete this;
  58. return 0;
  59. }