f97863667e0fd0ea78bf0ee6283e03e5001c2626
[scilab.git] / scilab / modules / core / includes / CallScilab.h
1 /*
2  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  * Copyright (C) 2007 - INRIA - Allan CORNET
4  * 
5  * This file must be used under the terms of the CeCILL.
6  * This source file is licensed as described in the file COPYING, which
7  * you should have received as part of this distribution.  The terms
8  * are also available at    
9  * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
10  *
11  */
12
13 #ifndef __CALLSCILAB__
14 #define __CALLSCILAB__
15 /*--------------------------------------------------------------------------*/
16 #ifdef _MSC_VER
17   #include <windows.h>
18 #endif
19 #include <stdio.h>
20 #include <string.h>
21 #include "machine.h"
22 #include "stack-c.h"
23 #include "version.h"
24 /*--------------------------------------------------------------------------*/
25 /**
26  * Disable TCL/TK and graphic interfaces 
27  * Scilab no GUI no TCL/TK "kernel mode" 
28 */
29 void DisableInteractiveMode(void);
30
31 /**
32  * Initialize Scilab
33  * @param SCIpath define SCI environment variable : Default --> NULL
34  * @param ScilabStartup path & filename of scilab.start : Default --> NULL 
35  * @param Stacksize : Default --> NULL 
36  * @return TRUE if it is OK else FALSE
37 */
38 int StartScilab(char *SCIpath,char *ScilabStartup,int *Stacksize);
39
40 /**
41  * Terminate Scilab
42  * @param ScilabQuit path & filename of scilab.quit : Default --> NULL 
43  * @return TRUE if it is OK else FALSE 
44 */
45 int TerminateScilab(char *ScilabQuit);
46
47 /**
48  * Send a job to scilab 
49  * @param job the Scilab Job
50  * @return error code operation 0 : OK
51 */
52 int SendScilabJob(char *job); 
53
54 /**
55  * Send jobs to scilab 
56  * @code 
57  *      jobs[0] : a = 1;
58  *      jobs[1] : b = 3;
59  *      jobs[2] : c = a + b;
60  *      SendScilabJobs(jobs,3);
61  * @endcode
62  * @return last error code operation 0 : OK
63 **/
64 int SendScilabJobs(char **jobs,int numberjobs);
65
66 /**
67  * Returns last job send to scilab by SendScilabJobs or SendScilabJob
68  * @param[out] JOB the last job
69  * @param[out] nbcharsJOB the size of JOB
70  * @code
71  * Example :
72  * jobs[0] : a = 1;
73  * jobs[1] : b = V_NOT_EXIST;
74  * jobs[2] : c = a + b;
75  * if (SendScilabJobs(jobs,3))
76  * {
77  *      char lastjob[4096]; // bsiz in scilab 
78  *      if (GetLastJob(lastjob,4096))
79  *      {
80  *              printf("%s\n",lastjob);
81  *      }
82  * }
83  * @endcode
84  * @return 
85 **/
86 BOOL GetLastJob(char *JOB,int nbcharsJOB);
87
88 /**
89  * This procedure is the entry point to Scilab's event loop 
90 */
91 void ScilabDoOneEvent(void);
92
93 /**
94  * Get the information is a graphic windows is opened or not
95  * @Return Returns TRUE if a graphic windows is opened 
96 */
97 int ScilabHaveAGraph(void);
98
99 /*--------------------------------------------------------------------------*/
100 #endif /* __CALLSCILAB__ */
101 /*--------------------------------------------------------------------------*/