1 /*
2 * @file ejsSystem.c
3 * @brief System class for the EJS Object Model
4 */
5 /********************************** Copyright *********************************/
6 /*
7 * Copyright (c) Mbedthis Software LLC, 2005-2006. All Rights Reserved.
8 */
9 /********************************** Includes **********************************/
10
11 #include "ejs.h"
12
13 /******************************************************************************/
14 /************************************ Methods *********************************/
15 /******************************************************************************/
16 #if UNUSED
17 /*
18 * function int random()
19 */
20
randomProc(Ejs * ep,EjsVar * thisObj,int argc,EjsVar ** argv)21 static int randomProc(Ejs *ep, EjsVar *thisObj, int argc, EjsVar **argv)
22 {
23 ejsTrace(ep, "random()\n");
24 return 0;
25 }
26
27 /******************************************************************************/
28 /*
29 * function void yield()
30 */
31
yieldProc(Ejs * ep,EjsVar * thisObj,int argc,EjsVar ** argv)32 static int yieldProc(Ejs *ep, EjsVar *thisObj, int argc, EjsVar **argv)
33 {
34 ejsTrace(ep, "yield()\n");
35 return 0;
36 }
37
38 /******************************************************************************/
39 /*
40 * function void sleep(int milliSeconds)
41 */
42
sleepProc(Ejs * ep,EjsVar * thisObj,int argc,EjsVar ** argv)43 static int sleepProc(Ejs *ep, EjsVar *thisObj, int argc, EjsVar **argv)
44 {
45 ejsTrace(ep, "sleep()\n");
46 return 0;
47 }
48
49 #endif
50 /******************************************************************************/
51 /*
52 * function void exit(int status)
53 *
54 * Exit the widget with the given status. All JavaScript processing ceases.
55 */
56
exitProc(Ejs * ep,EjsVar * thisObj,int argc,EjsVar ** argv)57 static int exitProc(Ejs *ep, EjsVar *thisObj, int argc, EjsVar **argv)
58 {
59 int status;
60
61 status = 0;
62 if ((argc == 1) && ejsVarIsInteger(argv[0])) {
63 status = argv[0]->integer;
64 }
65 ejsExit(ep, status);
66 return 0;
67 }
68
69 /******************************************************************************/
70 /******************************** Initialization ******************************/
71 /******************************************************************************/
72
ejsDefineSystemClass(Ejs * ep)73 int ejsDefineSystemClass(Ejs *ep)
74 {
75 EjsVar *systemClass;
76
77 /*
78 * We create the system class and define static methods on it.
79 * NOTE: There is no object instance
80 */
81 systemClass = ejsDefineClass(ep, "System", "Object", 0);
82 if (systemClass == 0) {
83 return MPR_ERR_CANT_INITIALIZE;
84 }
85
86 ejsDefineCMethod(ep, systemClass, "exit", exitProc, EJS_NO_LOCAL);
87
88 #if UNUSED
89 ejsDefineCMethod(ep, systemClass, "random", randomProc, EJS_NO_LOCAL);
90 ejsDefineCMethod(ep, systemClass, "yield", yieldProc, EJS_NO_LOCAL);
91 ejsDefineCMethod(ep, systemClass, "sleep", sleepProc, EJS_NO_LOCAL);
92
93 /*
94 * Define properties
95 */
96 ejsSetPropertyToString(systemClass, "name", "");
97 #endif
98
99 return ejsObjHasErrors(systemClass) ? MPR_ERR_CANT_INITIALIZE : 0;
100 }
101
102 /******************************************************************************/
103
104 /*
105 * Local variables:
106 * tab-width: 4
107 * c-basic-offset: 4
108 * End:
109 * vim:tw=78
110 * vim600: sw=4 ts=4 fdm=marker
111 * vim<600: sw=4 ts=4
112 */
113