-
-
Notifications
You must be signed in to change notification settings - Fork 11
FOX GUI classes relationships
It inherits from FXApp so it is essentially an FXApp.
To be written.
Includes the following member variables:
- fox_gsl_shell m_engine
- FXGUISignal* m_signal_request
- lua_request m_request
- LuaConsole* m_console
- io_redirect m_redirect
Inherits from Notebook.
Includes, most notably, the following variables:
- gsl_shell_thread* m_engine
- lua_io_thread* m_lua_io_thread
Inherits from FXMainWindow.
Includes, most notably, a pointer to a LuaConsole.
Manage a FXMainWindow that contains a LuaConsole Window. this latter it is a Notebook that in turns is a FXPacker.
Inherits from FXPacker.
gsl_shell_threads inherits from gsl_shell. Add methods to execute the gsl_shell state in a separate thread. Overrides the methods before_eval(), restart_callback(), quit_callback().
The method start() starts a new thread. It basically calls init() methods from gsl_shell and run() from gsl_shell_thread.
The method run() execute a loop:
- wait for a request
- execute before_eval()
- process the request using process_request() method
Overall the system uses locks to synchronize the gsl_shell thread with the main thread performing the request.
There are some "special" requests: exit and restart.
Class defined in files gsl_shell_interp.h/cpp: should be FIXED.
Inherits from gsl_shell_state. This latter is simply a struct with a lua_State and two mutex to protect execution and shutdown.
The class gsl_shell have virtual methods init() and close() and non-virtual exec() and interrupt().
The code invoked from gsl_shell_state is gsl_shell_open() on init(), gsl_shell_init() on constructor and gsl_shell_free() on destructor.