Skip to content
Snippets Groups Projects
Select Git revision
  • develop
  • master default protected
  • big_2017_api_change
  • v2021.a
  • v2020.a
  • v2019.a
  • v2018.b
  • v2017.c
  • v2017.a
  • v2016.a
10 results

VALuaShell.h

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    VALuaShell.h 1.84 KiB
    /*
     *  --------------------------------------------------------------------------------------------
     *
     *    VVV        VVV A           Virtual Acoustics (VA) | http://www.virtualacoustics.org
     *     VVV      VVV AAA          Licensed under the Apache License, Version 2.0
     *      VVV    VVV   AAA
     *       VVV  VVV     AAA        Copyright 2015-2021
     *        VVVVVV       AAA       Institute of Technical Acoustics (ITA)
     *         VVVV         AAA      RWTH Aachen University
     *
     *  --------------------------------------------------------------------------------------------
     */
    
    #ifndef IW_VALUA_SHELL
    #define IW_VALUA_SHELL
    
    #include <VALuaDefs.h>
    
    #include <iostream>
    #include <ostream>
    #include <string>
    
    // Vorwrtsdeklarationen
    class IVACore;
    
    /**
     * Diese abstrakte Klasse definiert die Schnittstelle fr eine Shell
     * welche einen Lua-Interpreter beherbergt und es erlaubt einen VACore
     * mittels Lua anzusprechen und zu steuern.
     *
     * Konkrete Instanzen der Klasse mssen mit der Factory method erzeugt werden.
     */
    
    class VALUA_API IVALuaShell {
    public:
    	//! Factory method
    	static IVALuaShell* Create();
    
    	//! Version
    	static std::string GetVersionStr();
    
    	virtual ~IVALuaShell();
    
    	// Kern-Instanz setzen
    	virtual void SetCoreInstance(IVACore* pVACore)=0;
    
    	// Ausgabe-Stream setzen
    	virtual void SetOutputStream(std::ostream* posStdOut)=0;
    
    	// Fehler-Stream setzen
    	virtual void SetErrorStream(std::ostream* posStdErr)=0;
    
    	// Status zurckgeben
    	virtual int GetStatus() const=0;
    
    	// Status setzen (dieser kann in Lua abgefragt werden
    	// und zur externen Steuerung eines Skripts verwendet werden)
    	virtual void SetStatus(int iStatus)=0;
    
    	// Ein Lua-Skript ausfhren (von Datei)
    	virtual void ExecuteLuaScript(const std::string& sFilename)=0;
    
    	// Eine Eingabezeile verarbeiten
    	virtual void HandleInputLine(const std::string& sLine)=0;
    };
    
    #endif // IW_VALUA_SHELL