#include "KSGSRückruf.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 KSGSRückrufInstanz::KSGSRückrufInstanz( KSGScriptObj *obj ) : KSGSFunktionInstanz(new RCArray< KSGSBefehl >(), KSGS_VOID, obj, 0 ) { parameter = 0; } // Destruktor KSGSRückrufInstanz::~KSGSRückrufInstanz() { if( parameter ) parameter->release(); } // nicht constant void KSGSRückrufInstanz::setParameter( Array< KSGSVariableDef* > *zDef, RCArray< KSGSVariable > *vars ) { if( parameter ) parameter->release(); parameter = vars; } KSGSVariable *KSGSRückrufInstanz::startFunktion() { return obj->rückruf( parameter ? parameter->getThis() : new RCArray< KSGSVariable >() ); } // Reference Counting KSGSFunktionInstanz *KSGSRückrufInstanz::release() { ref--; if( !ref ) delete this; return 0; } // Inhalt der KSGSRückrufFunktion Klasse aus KSGSRückruf.h // Konstruktor KSGSRückrufFunktion::KSGSRückrufFunktion() : KSGSFunktion( 0, 0, KSGS_VOID ) { } // nicht constant KSGSFunktionInstanz *KSGSRückrufFunktion::erstellInstanz( KSGScriptObj *obj, KSGSVariable *klasse, RCArray< KSGSVariable > *params ) { KSGSRückrufInstanz *inst = new KSGSRückrufInstanz( obj ); if( params ) inst->setParameter( 0, params ); return inst; } // Reference Counting KSGSFunktion *KSGSRückrufFunktion::release() { ref--; if( !ref ) delete this; return 0; }