KSGSRückruf.cpp 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  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. // Inhalt der KSGSRückrufFunktion Klasse aus KSGSRückruf.h
  31. // Konstruktor
  32. KSGSRückrufFunktion::KSGSRückrufFunktion()
  33. : KSGSFunktion( 0, 0, KSGS_VOID )
  34. {
  35. }
  36. // nicht constant
  37. KSGSFunktionInstanz *KSGSRückrufFunktion::erstellInstanz( KSGScriptObj *obj, KSGSVariable *klasse, RCArray< KSGSVariable > *params )
  38. {
  39. KSGSRückrufInstanz *inst = new KSGSRückrufInstanz( obj );
  40. if( params )
  41. inst->setParameter( 0, params );
  42. return inst;
  43. }