KSGSCallback.cpp 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. #include "KSGSCallback.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. KSGSCallbackInstanz::KSGSCallbackInstanz( KSGScriptObj *obj )
  9. : KSGSFunktionInstanz( new RCArray< KSGSBefehl >(), KSGS_VOID, obj, 0 )
  10. {
  11. parameter = 0;
  12. }
  13. // Destruktor
  14. KSGSCallbackInstanz::~KSGSCallbackInstanz()
  15. {
  16. if( parameter )
  17. parameter->release();
  18. }
  19. // nicht constant
  20. void KSGSCallbackInstanz::setParameter( Array< KSGSVariableDef * > *zDef, RCArray< KSGSVariable > *vars )
  21. {
  22. if( parameter )
  23. parameter->release();
  24. parameter = vars;
  25. }
  26. KSGSVariable *KSGSCallbackInstanz::startFunktion()
  27. {
  28. return obj->callback( parameter ? dynamic_cast<RCArray< KSGSVariable >*>( parameter->getThis() ) : new RCArray< KSGSVariable >() );
  29. }
  30. // Inhalt der KSGSRückrufFunktion Klasse aus KSGSRückruf.h
  31. // Konstruktor
  32. KSGSCallbackFunktion::KSGSCallbackFunktion()
  33. : KSGSFunktion( 0, 0, KSGS_VOID )
  34. {}
  35. // nicht constant
  36. KSGSFunktionInstanz *KSGSCallbackFunktion::erstellInstanz( KSGScriptObj *obj, KSGSVariable *klasse, RCArray< KSGSVariable > *params )
  37. {
  38. KSGSCallbackInstanz *inst = new KSGSCallbackInstanz( obj );
  39. if( params )
  40. inst->setParameter( 0, params );
  41. return inst;
  42. }