9c849f9dded394bc0f6e3814af9b7ed42b2b6af4
[scilab.git] / scilab / modules / core / includes / storeCommand.h
1 /*
2  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  * Copyright (C) 2007-2008 - INRIA
4  * Copyright (C) 2008-2008 - Bruno JOFRET
5  *
6  * Copyright (C) 2012 - 2016 - Scilab Enterprises
7  *
8  * This file is hereby licensed under the terms of the GNU GPL v2.0,
9  * pursuant to article 5.3.4 of the CeCILL v.2.1.
10  * This file was originally licensed under the terms of the CeCILL v2.1,
11  * and continues to be available under such terms.
12  * For more information, see the COPYING file which you should have received
13  * along with this program.
14  *
15  */
16
17 #ifndef __STORECOMMAND_H__
18 #define __STORECOMMAND_H__
19
20 enum command_origin_t
21 {
22     NONE,
23     CONSOLE,  // command from console
24     TCLSCI,   // command from tclsci using ScilabEval interpreter
25     DEBUGGER  // command from debugger
26 };
27
28 /**
29  * Store a non-prioritary and interruptible command
30  *
31  * @param command           : command wich will be stored
32  * @param piInterruptible   : 1 if it is a interruptible command
33  * @param piPrioritary      : 1 if it is a prioritary command
34  * @param iCmdorigin        : origine of the command
35  * @return <ReturnValue>
36  */
37 int StoreCommandWithFlags(const char* command, int iPrioritary, int iInterruptible, enum command_origin_t iCmdorigin);
38
39 /**
40  * Store a non-prioritary and interruptible command
41  *
42  * @param command : the command
43  * @return <ReturnValue>
44  */
45 int StoreCommand(const char *command);
46
47 /**
48  * Store a prioritary and interruptible command
49  *
50  * @param command : the command
51  * @param iWaitFor : wait for the command execution end before return
52  * @return <ReturnValue>
53  */
54 int StoreConsoleCommand(const char *command, int iWaitFor);
55
56 /**
57  * Store a prioritary and interruptible command and wait for it's execution
58  *
59  * @param command : the command
60   * @return <ReturnValue>
61  */
62 int StoreDebuggerCommand(const char *command);
63
64 /**
65  * Store a prioritary and non-interruptible command
66  *
67  * @param command : the command
68  * @return <ReturnValue>
69  */
70 int StorePrioritaryCommand(const char *command);
71
72 /**
73  * Get the next command to execute
74  *
75  * @param command           : command wich will be executed
76  * @param piInterruptible   : 1 if it is a interruptible command
77  * @param piPrioritary      : 1 if it is a prioritary command
78  * @param iCmdorigin        : origine of the command
79  * @return <ReturnValue>    : 0 if command queue is empty
80  */
81 int GetCommand(char** command, int* piPrioritary, int* piInterruptible, enum command_origin_t* iCmdorigin);
82
83 /**
84 * check if command queue is empty
85 * @return 1 if empty , 0 is not empty
86 */
87 int isEmptyCommandQueue(void);
88
89 /*
90  * Checks if there's something on the
91  * commandQueue
92  * @return
93  */
94 int ismenu(void);
95
96
97 #endif /* __STORECOMMAND_H__ */