KSGSRückruf.cpp 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  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 ? ( RCArray< KSGSVariable >* )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. // nicht constant
  36. KSGSFunktionInstanz *KSGSRückrufFunktion::erstellInstanz( KSGScriptObj *obj, KSGSVariable *klasse, RCArray< KSGSVariable > *params )
  37. {
  38. KSGSRückrufInstanz *inst = new KSGSRückrufInstanz( obj );
  39. if( params )
  40. inst->setParameter( 0, params );
  41. return inst;
  42. }