Talk:FGPythonSys: Difference between revisions

From FlightGear wiki
Jump to navigation Jump to search
Line 3: Line 3:


* fgvalidatePath()
* fgvalidatePath()
* loadResoureFile (fgdata access)
* printlog(), i.e. wrapping SG_LOG() [http://forum.flightgear.org/viewtopic.php?f=6&p=275777#p275754]
* printlog(), i.e. wrapping SG_LOG() [http://forum.flightgear.org/viewtopic.php?f=6&p=275777#p275754]
* loadModule()
* loadModule()

Revision as of 16:18, 11 February 2016

FGNasalSys vs FGPythonSys - common baseclass

These are APIs that are sufficiently generic in nature to be moved to a common baseclass that can be shared by FGPythonSys/FGNasalSys:

  • fgvalidatePath()
  • loadResoureFile (fgdata access)
  • printlog(), i.e. wrapping SG_LOG() [1]
  • loadModule()
  • loadPropertyScripts()
  • addcommand()/removecomand()
  • runfgcommand() (with locking, e.g. using SGMutex)


class FGScriptingSystem : public SGSubsystem, public SGPropertyChangeListener {
public:
    FGScriptingSystem();
    virtual ~FGScriptingSystem();

   const char* readfile(const char* file, int* lenOut);

    // Subsystem functions.
    virtual void init();
    virtual void reinit();
    virtual void bind();
    virtual void unbind();
    virtual void update(double dt);
protected:
    // Load and execute a script.
    bool loadModule(SGPath file, const char *module) = 0;
    virtual void loadPropertyScripts() = 0;
    virtual void loadPropertyScripts(SGPropertyNode *n) = 0;

private:

};