/[svn]/linuxsampler/trunk/src/scriptvm/ScriptVM.h
ViewVC logotype

Diff of /linuxsampler/trunk/src/scriptvm/ScriptVM.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 2965 by schoenebeck, Mon Jul 18 09:42:28 2016 UTC revision 3551 by schoenebeck, Thu Aug 1 10:22:56 2019 UTC
# Line 1  Line 1 
1  /*  /*
2   * Copyright (c) 2014-2016 Christian Schoenebeck   * Copyright (c) 2014-2019 Christian Schoenebeck
3   *   *
4   * http://www.linuxsampler.org   * http://www.linuxsampler.org
5   *   *
# Line 173  namespace LinuxSampler { Line 173  namespace LinuxSampler {
173          VMFunction* functionByName(const String& name) OVERRIDE;          VMFunction* functionByName(const String& name) OVERRIDE;
174    
175          /**          /**
176             * Whether the passed built-in function is disabled and should thus be
177             * ignored by the parser at the passed parser context (parser state
178             * where the built-in function call occurs).
179             *
180             * @param fn - built-in function to be checked
181             * @param ctx - parser context at the position where the built-in
182             *              function call is located within the script
183             */
184            bool isFunctionDisabled(VMFunction* fn, VMParserContext* ctx) OVERRIDE;
185    
186            /**
187           * Returns all built-in integer script variables. This method returns a           * Returns all built-in integer script variables. This method returns a
188           * STL map, where the map's key is the variable name and the map's value           * STL map, where the map's key is the variable name and the map's value
189           * is the native pointer to the actual built-in variable.           * is the native pointer to the actual built-in variable.
# Line 230  namespace LinuxSampler { Line 241  namespace LinuxSampler {
241           */           */
242          std::map<String,VMDynVar*> builtInDynamicVariables() OVERRIDE;          std::map<String,VMDynVar*> builtInDynamicVariables() OVERRIDE;
243    
244            /**
245             * Enables or disables automatic suspension of scripts by the VM.
246             * If automatic suspension is enabled then scripts are monitored
247             * regarding their execution time and in case they are execution
248             * for too long, then they are automatically suspended by the VM for
249             * a certain amount of time in order to avoid any RT instablity
250             * issues caused by bugs in the script, i.e. endless while() loops
251             * or very large scripts.
252             *
253             * Automatic suspension is enabled by default due to the aimed
254             * real-time context of this virtual machine.
255             *
256             * @param b - true: enable auto suspension [default],
257             *            false: disable auto suspension
258             */
259            void setAutoSuspendEnabled(bool b = true);
260    
261            /**
262             * Returns true in case automatic suspension of scripts by the VM is
263             * enabled. See setAutoSuspendEnabled() for details.
264             *
265             * Automatic suspension is enabled by default due to the aimed
266             * real-time context of this virtual machine.
267             */
268            bool isAutoSuspendEnabled() const;
269    
270            /**
271             * By default (i.e. in production use) the built-in exit() function
272             * prohibits any arguments to be passed to its function by scripts. So
273             * by default, scripts trying to pass any arguments to the built-in
274             * exit() function will yield in a parser error.
275             *
276             * By calling this method the built-in exit() function will optionally
277             * accept one argument to be passed to its function call by scripts. The
278             * value of that function argument will become available by calling
279             * VMExecContext::exitResult() after execution of the script.
280             *
281             * @see VMExecContext::exitResult()
282             */
283            void setExitResultEnabled(bool b = true);
284    
285            /**
286             * Returns @c true if the built-in exit() function optionally accepts
287             * a function argument by scripts.
288             *
289             * @see setExitResultEnabled()
290             */
291            bool isExitResultEnabled() const;
292    
293          VMEventHandler* currentVMEventHandler(); //TODO: should be protected (only usable during exec() calls, intended only for VMFunctions)          VMEventHandler* currentVMEventHandler(); //TODO: should be protected (only usable during exec() calls, intended only for VMFunctions)
294          VMParserContext* currentVMParserContext(); //TODO: should be protected (only usable during exec() calls, intended only for VMFunctions)          VMParserContext* currentVMParserContext(); //TODO: should be protected (only usable during exec() calls, intended only for VMFunctions)
295          VMExecContext* currentVMExecContext(); //TODO: should be protected (only usable during exec() calls, intended only for VMFunctions)          VMExecContext* currentVMExecContext(); //TODO: should be protected (only usable during exec() calls, intended only for VMFunctions)
# Line 237  namespace LinuxSampler { Line 297  namespace LinuxSampler {
297      protected:      protected:
298          VMEventHandler* m_eventHandler;          VMEventHandler* m_eventHandler;
299          ParserContext* m_parserContext;          ParserContext* m_parserContext;
300            bool m_autoSuspend;
301            bool m_acceptExitRes;
302          class CoreVMFunction_message* m_fnMessage;          class CoreVMFunction_message* m_fnMessage;
303          class CoreVMFunction_exit* m_fnExit;          class CoreVMFunction_exit* m_fnExit;
304          class CoreVMFunction_wait* m_fnWait;          class CoreVMFunction_wait* m_fnWait;
# Line 245  namespace LinuxSampler { Line 307  namespace LinuxSampler {
307          class CoreVMFunction_num_elements* m_fnNumElements;          class CoreVMFunction_num_elements* m_fnNumElements;
308          class CoreVMFunction_inc* m_fnInc;          class CoreVMFunction_inc* m_fnInc;
309          class CoreVMFunction_dec* m_fnDec;          class CoreVMFunction_dec* m_fnDec;
310            class CoreVMFunction_in_range* m_fnInRange;
311          class CoreVMFunction_sh_left* m_fnShLeft;          class CoreVMFunction_sh_left* m_fnShLeft;
312          class CoreVMFunction_sh_right* m_fnShRight;          class CoreVMFunction_sh_right* m_fnShRight;
313            class CoreVMFunction_min* m_fnMin;
314            class CoreVMFunction_max* m_fnMax;
315            class CoreVMFunction_array_equal* m_fnArrayEqual;
316            class CoreVMFunction_search* m_fnSearch;
317            class CoreVMFunction_sort* m_fnSort;
318          class CoreVMDynVar_NKSP_REAL_TIMER* m_varRealTimer;          class CoreVMDynVar_NKSP_REAL_TIMER* m_varRealTimer;
319          class CoreVMDynVar_NKSP_PERF_TIMER* m_varPerfTimer;          class CoreVMDynVar_NKSP_PERF_TIMER* m_varPerfTimer;
320      };      };

Legend:
Removed from v.2965  
changed lines
  Added in v.3551

  ViewVC Help
Powered by ViewVC