#include "KSGSCallback.h" #include "../Klassen/KSGSTyp.h" #include "../Main/KSGScriptObj.h" #include "../Befehl/KSGSKlasse.h" using namespace KSGScript; // Inhalt der KSGSRückrufFInstanz Klasse aus KSGSRückruf.h // Konstruktor KSGSCallbackInstanz::KSGSCallbackInstanz( KSGScriptObj *obj ) : KSGSFunktionInstanz( new RCArray< KSGSBefehl >(), KSGS_VOID, obj, 0 ) { parameter = 0; } // Destruktor KSGSCallbackInstanz::~KSGSCallbackInstanz() { if( parameter ) parameter->release(); } // nicht constant void KSGSCallbackInstanz::setParameter( Array< KSGSVariableDef * > *zDef, RCArray< KSGSVariable > *vars ) { if( parameter ) parameter->release(); parameter = vars; } KSGSVariable *KSGSCallbackInstanz::startFunktion() { return obj->callback( parameter ? dynamic_cast*>( parameter->getThis() ) : new RCArray< KSGSVariable >() ); } // Inhalt der KSGSRückrufFunktion Klasse aus KSGSRückruf.h // Konstruktor KSGSCallbackFunktion::KSGSCallbackFunktion() : KSGSFunktion( 0, 0, KSGS_VOID ) {} // nicht constant KSGSFunktionInstanz *KSGSCallbackFunktion::erstellInstanz( KSGScriptObj *obj, KSGSVariable *klasse, RCArray< KSGSVariable > *params ) { KSGSCallbackInstanz *inst = new KSGSCallbackInstanz( obj ); if( params ) inst->setParameter( 0, params ); return inst; }