Sophie

Sophie

distrib > Mandriva > 8.2 > i586 > media > contrib > by-pkgid > 070b5c05d42a76a25abd916d2fe11a39 > files > 115

ccscript-1.8.4-2mdk.i586.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>script.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body bgcolor="#ffffff">
<!-- Generated by Doxygen 1.2.10 -->
<center>
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
<hr><h1>script.h</h1><a href="script_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 <font class="comment">// Copyright (C) 1999-2001 Open Source Telecom Corporation.</font>
00002 <font class="comment">//  </font>
00003 <font class="comment">// This program is free software; you can redistribute it and/or modify</font>
00004 <font class="comment">// it under the terms of the GNU General Public License as published by</font>
00005 <font class="comment">// the Free Software Foundation; either version 2 of the License, or</font>
00006 <font class="comment">// (at your option) any later version.</font>
00007 <font class="comment">// </font>
00008 <font class="comment">// This program is distributed in the hope that it will be useful,</font>
00009 <font class="comment">// but WITHOUT ANY WARRANTY; without even the implied warranty of</font>
00010 <font class="comment">// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</font>
00011 <font class="comment">// GNU General Public License for more details.</font>
00012 <font class="comment">// </font>
00013 <font class="comment">// You should have received a copy of the GNU General Public License</font>
00014 <font class="comment">// along with this program; if not, write to the Free Software </font>
00015 <font class="comment">// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.</font>
00016 <font class="comment">// </font>
00017 <font class="comment">// As a special exception to the GNU General Public License, permission is </font>
00018 <font class="comment">// granted for additional uses of the text contained in its release </font>
00019 <font class="comment">// of ccscript.</font>
00020 <font class="comment">// </font>
00021 <font class="comment">// The exception is that, if you link the ccscript library with other</font>
00022 <font class="comment">// files to produce an executable, this does not by itself cause the</font>
00023 <font class="comment">// resulting executable to be covered by the GNU General Public License.</font>
00024 <font class="comment">// Your use of that executable is in no way restricted on account of</font>
00025 <font class="comment">// linking the ccscript library code into it.</font>
00026 <font class="comment">// </font>
00027 <font class="comment">// This exception does not however invalidate any other reasons why</font>
00028 <font class="comment">// the executable file might be covered by the GNU General Public License.</font>
00029 <font class="comment">// </font>
00030 <font class="comment">// This exception applies only to the code released under the </font>
00031 <font class="comment">// name ccscript.  If you copy code from other releases into a copy of</font>
00032 <font class="comment">// ccscript, as the General Public License permits, the exception does</font>
00033 <font class="comment">// not apply to the code that you add in this way.  To avoid misleading</font>
00034 <font class="comment">// anyone as to the status of such modified files, you must delete</font>
00035 <font class="comment">// this exception notice from them.</font>
00036 <font class="comment">// </font>
00037 <font class="comment">// If you write modifications of your own for ccscript, it is your choice</font>
00038 <font class="comment">// whether to permit this exception to apply to your modifications.</font>
00039 <font class="comment">// If you do not wish that, delete this exception notice.  </font>
00040 
00041 <font class="preprocessor">#ifndef CCXX_SCRIPT_H_</font>
00042 <font class="preprocessor"></font><font class="preprocessor">#define CCXX_SCRIPT_H_</font>
00043 <font class="preprocessor"></font>
00044 <font class="preprocessor">#ifndef CCXX_MISC_H_</font>
00045 <font class="preprocessor"></font><font class="preprocessor">#include &lt;cc++/misc.h&gt;</font>
00046 <font class="preprocessor">#endif</font>
00047 <font class="preprocessor"></font>
00048 <font class="preprocessor">#ifndef CCXX_FILE_H_</font>
00049 <font class="preprocessor"></font><font class="preprocessor">#include &lt;cc++/file.h&gt;</font>
00050 <font class="preprocessor">#endif</font>
00051 <font class="preprocessor"></font>
00052 <font class="preprocessor">#include &lt;iostream&gt;</font>
00053 <font class="preprocessor">#include &lt;fstream&gt;</font>
00054 
00055 <font class="preprocessor">#ifdef  CCXX_NAMESPACES</font>
00056 <font class="preprocessor"></font><font class="keyword">namespace </font>ost {
00057 <font class="preprocessor">#endif</font>
00058 <font class="preprocessor"></font>
<a name="l00059"></a><a class="code" href="script_8h.html#a7">00059</a> <font class="keyword">class </font>CCXX_CLASS_EXPORT <a class="code" href="class_script_command.html">ScriptCommand</a>;
<a name="l00060"></a><a class="code" href="script_8h.html#a8">00060</a> <font class="keyword">class </font>CCXX_CLASS_EXPORT <a class="code" href="class_script_image.html">ScriptImage</a>;
<a name="l00061"></a><a class="code" href="script_8h.html#a9">00061</a> <font class="keyword">class </font>CCXX_CLASS_EXPORT <a class="code" href="class_script_interp.html">ScriptInterp</a>;
00062 <font class="keyword">struct </font><a class="code" href="struct__line.html">_line</a>;
00063 
<a name="l00064"></a><a class="code" href="script_8h.html#a0">00064</a> <font class="preprocessor">#define MAX_LOCKS 8</font>
<a name="l00065"></a><a class="code" href="script_8h.html#a1">00065</a> <font class="preprocessor"></font><font class="preprocessor">#define TRAP_BITS (sizeof(unsigned long) * 8)</font>
<a name="l00066"></a><a class="code" href="script_8h.html#a2">00066</a> <font class="preprocessor"></font><font class="preprocessor">#define SCRIPT_STACK_SIZE 20</font>
<a name="l00067"></a><a class="code" href="script_8h.html#a3">00067</a> <font class="preprocessor"></font><font class="preprocessor">#define SCRIPT_TEMP_SPACE 16</font>
<a name="l00068"></a><a class="code" href="script_8h.html#a4">00068</a> <font class="preprocessor"></font><font class="preprocessor">#define KEYWORD_INDEX_SIZE 37</font>
<a name="l00069"></a><a class="code" href="script_8h.html#a5">00069</a> <font class="preprocessor"></font><font class="preprocessor">#define SYMBOL_INDEX_SIZE 187</font>
<a name="l00070"></a><a class="code" href="script_8h.html#a6">00070</a> <font class="preprocessor"></font><font class="preprocessor">#define SCRIPT_INDEX_SIZE KEYWORD_INDEX_SIZE</font>
00071 <font class="preprocessor"></font>
<a name="l00072"></a><a class="code" href="script_8h.html#a10">00072</a> <font class="keyword">typedef</font> bool (ScriptInterp::*scriptmethod_t)(<font class="keywordtype">void</font>);
<a name="l00073"></a><a class="code" href="script_8h.html#a11">00073</a> <font class="keyword">typedef</font> <font class="keywordtype">char</font> *(<a class="code" href="class_script_command.html">ScriptCommand</a>::*scriptcheck_t)(<font class="keyword">struct </font><a class="code" href="struct__line.html">_line</a> *line, <a class="code" href="class_script_image.html">ScriptImage</a> *img);
00074 
<a name="l00075"></a><a class="code" href="script_8h.html#a24">00075</a> <font class="keyword">typedef</font> <font class="keyword">enum</font>
00076 {
00077         SYM_TYPE_NORMAL = 0,
00078         SYM_TYPE_ALIAS,
00079         SYM_TYPE_FIFO,
00080         SYM_TYPE_INDEX,
00081         SYM_TYPE_SEQUENCE,
00082         SYM_TYPE_STACK,
00083         SYM_TYPE_COUNTER,
00084         SYM_TYPE_TRIGGER,
00085         SYM_TYPE_POINTER
00086 }       scriptsymtype_t;
00087 
00088 <font class="preprocessor">#pragma pack(1)</font>
<a name="l00089"></a><a class="code" href="struct__symbol.html">00089</a> <font class="preprocessor"></font><font class="keyword">typedef</font> <font class="keyword">struct </font><a class="code" href="struct__symbol.html">_symbol</a>
00090 {
<a name="l00091"></a><a class="code" href="struct__symbol.html#m0">00091</a>         <font class="keyword">struct </font><a class="code" href="struct__symbol.html">_symbol</a> *next;
<a name="l00092"></a><a class="code" href="struct__symbol.html#m1">00092</a>         <font class="keywordtype">char</font> *id;
00093         <font class="keyword">struct</font>
00094 <font class="keyword">        </font>{
<a name="l00095"></a><a class="code" href="struct__symbol.html#m2">00095</a>                 <font class="keywordtype">unsigned</font> size : 16;
<a name="l00096"></a><a class="code" href="struct__symbol.html#m3">00096</a>                 <font class="keywordtype">bool</font> initial : 1;
<a name="l00097"></a><a class="code" href="struct__symbol.html#m4">00097</a>                 <font class="keywordtype">bool</font> system : 1;
<a name="l00098"></a><a class="code" href="struct__symbol.html#m5">00098</a>                 <font class="keywordtype">bool</font> readonly : 1;
<a name="l00099"></a><a class="code" href="struct__symbol.html#m6">00099</a>                 <font class="keywordtype">bool</font> commit : 1;
<a name="l00100"></a><a class="code" href="struct__symbol.html#m7">00100</a>                 scriptsymtype_t type : 6;
00101         } flags;
<a name="l00102"></a><a class="code" href="struct__symbol.html#m9">00102</a>         <font class="keywordtype">char</font> data[1];           
00103 }       scriptsymbol_t;         
00104         
<a name="l00105"></a><a class="code" href="struct__line.html">00105</a> <font class="keyword">typedef</font> <font class="keyword">struct </font><a class="code" href="struct__line.html">_line</a>
00106 {
<a name="l00107"></a><a class="code" href="struct__line.html#m0">00107</a>         <font class="keyword">struct </font><a class="code" href="struct__line.html">_line</a> *next;
<a name="l00108"></a><a class="code" href="struct__line.html#m1">00108</a>         <font class="keywordtype">unsigned</font> <font class="keywordtype">long</font> cmask;
<a name="l00109"></a><a class="code" href="struct__line.html#m2">00109</a>         <font class="keywordtype">unsigned</font> <font class="keywordtype">long</font> mask;
<a name="l00110"></a><a class="code" href="struct__line.html#m3">00110</a>         <font class="keywordtype">unsigned</font> <font class="keywordtype">short</font> loop;
<a name="l00111"></a><a class="code" href="struct__line.html#m4">00111</a>         <font class="keywordtype">unsigned</font> <font class="keywordtype">short</font> line;
<a name="l00112"></a><a class="code" href="struct__line.html#m5">00112</a>         <font class="keywordtype">unsigned</font> <font class="keywordtype">char</font> argc;
<a name="l00113"></a><a class="code" href="struct__line.html#m6">00113</a>         <font class="keywordtype">bool</font> error : 1;
<a name="l00114"></a><a class="code" href="struct__line.html#m7">00114</a>         scriptmethod_t method;
<a name="l00115"></a><a class="code" href="struct__line.html#m8">00115</a>         <font class="keywordtype">char</font> *cmd;
<a name="l00116"></a><a class="code" href="struct__line.html#m9">00116</a>         <font class="keywordtype">char</font> **args;
00117 } scriptline_t;
00118 
<a name="l00119"></a><a class="code" href="struct__script.html">00119</a> <font class="keyword">typedef</font> <font class="keyword">struct </font><a class="code" href="struct__script.html">_script</a>
00120 {
<a name="l00121"></a><a class="code" href="struct__script.html#m0">00121</a>         <font class="keyword">struct </font><a class="code" href="struct__script.html">_script</a> *next;
<a name="l00122"></a><a class="code" href="struct__script.html#m1">00122</a>         <font class="keyword">struct </font><a class="code" href="struct__line.html">_line</a> *first;
<a name="l00123"></a><a class="code" href="struct__script.html#m2">00123</a>         <font class="keyword">struct </font><a class="code" href="struct__line.html">_line</a> *trap[TRAP_BITS];
<a name="l00124"></a><a class="code" href="struct__script.html#m3">00124</a>         <font class="keyword">struct </font><a class="code" href="struct__line.html">_line</a> *skip[10];
<a name="l00125"></a><a class="code" href="struct__script.html#m4">00125</a>         <font class="keywordtype">unsigned</font> <font class="keywordtype">long</font> mask;
<a name="l00126"></a><a class="code" href="struct__script.html#m5">00126</a>         <font class="keywordtype">char</font> *name;
00127         <font class="keyword">enum</font>
00128         {
00129                 SCRIPT_TYPE_ORIGINAL,
00130                 SCRIPT_TYPE_COPIED,
00131                 SCRIPT_TYPE_COPY
00132         }       mode : 2;
00133 } scriptname_t;
00134 
<a name="l00135"></a><a class="code" href="struct_s_c_r_k_e_y_w_o_r_d_s.html">00135</a> <font class="keyword">typedef</font> <font class="keyword">struct</font>
00136 <font class="keyword"></font>{
<a name="l00137"></a><a class="code" href="struct_s_c_r_k_e_y_w_o_r_d_s.html#m0">00137</a>         <font class="keyword">const</font> <font class="keywordtype">char</font> *keyword;
<a name="l00138"></a><a class="code" href="struct_s_c_r_k_e_y_w_o_r_d_s.html#m1">00138</a>         scriptmethod_t method;
<a name="l00139"></a><a class="code" href="struct_s_c_r_k_e_y_w_o_r_d_s.html#m2">00139</a>         scriptcheck_t check;
00140 }       <a class="code" href="struct_s_c_r_k_e_y_w_o_r_d_s.html">SCRKEYWORDS</a>;
00141 
00142 <font class="preprocessor">#pragma pack()</font>
00143 <font class="preprocessor"></font>
<a name="l00151"></a><a class="code" href="class_script_locks.html">00151</a> <font class="keyword">class </font><a class="code" href="class_script_locks.html">ScriptLocks</a> : <font class="keyword">private</font> <a class="code" href="class_mutex.html">Mutex</a>
00152 {
00153 <font class="keyword">private</font>:
<a name="l00154"></a><a class="code" href="class_script_locks.html#l0">00154</a>         <font class="keyword">friend</font> <font class="keyword">class </font><a class="code" href="class_script_interp.html">ScriptInterp</a>;
00155 
00156         <a class="code" href="class_script_interp.html">ScriptInterp</a> *locks[MAX_LOCKS];
00157         
00158         <font class="keywordtype">void</font> Release(<a class="code" href="class_script_interp.html">ScriptInterp</a> *interp);
00159         <font class="keywordtype">bool</font> Lock(<a class="code" href="class_script_interp.html">ScriptInterp</a> *interp, <font class="keywordtype">unsigned</font> id);
00160         <font class="keywordtype">bool</font> Unlock(<a class="code" href="class_script_interp.html">ScriptInterp</a> *interp, <font class="keywordtype">unsigned</font> id);
00161 
00162         ScriptLocks();
00163 };
00164 
<a name="l00174"></a><a class="code" href="class_script_session.html">00174</a> <font class="keyword">class </font>CCXX_CLASS_EXPORT <a class="code" href="class_script_session.html">ScriptSession</a>
00175 {
00176 <font class="keyword">private</font>:
<a name="l00177"></a><a class="code" href="class_script_session.html#l0">00177</a>         <font class="keyword">friend</font> <font class="keyword">class </font><a class="code" href="class_script_interp.html">ScriptInterp</a>;
00178         <a class="code" href="class_script_interp.html">ScriptInterp</a> *interp;
00179 
00180 <font class="keyword">protected</font>:
00187         <font class="keywordtype">void</font> stepScheduler(<font class="keyword">const</font> <font class="keywordtype">char</font> *sighandler = NULL);
00188 
00195         <font class="keywordtype">void</font> sleepScheduler(timeout_t delay);
00196 
00200         ScriptSession(<a class="code" href="class_script_interp.html">ScriptInterp</a> *interp);
00201 
<a name="l00202"></a><a class="code" href="class_script_session.html#b3">00202</a>         <font class="keyword">virtual</font> ~ScriptSession()<font class="keyword"></font>
00203 <font class="keyword">                </font>{<font class="keywordflow">return</font>;};
00204 
00205 <font class="keyword">public</font>:
00209         <font class="keyword">virtual</font> <font class="keywordtype">void</font> waitHandler(<font class="keywordtype">void</font>) = 0;
00210 };
00211 
<a name="l00219"></a><a class="code" href="class_script_property.html">00219</a> <font class="keyword">class </font>CCXX_CLASS_EXPORT <a class="code" href="class_script_property.html">ScriptProperty</a>
00220 {
00221 <font class="keyword">private</font>:
<a name="l00222"></a><a class="code" href="class_script_property.html#l0">00222</a>         <font class="keyword">friend</font> <font class="keyword">class </font><a class="code" href="class_script_interp.html">ScriptInterp</a>;
00223 
00224         <font class="keyword">static</font> <a class="code" href="class_script_property.html">ScriptProperty</a> *first;
00225         <a class="code" href="class_script_property.html">ScriptProperty</a> *next;
00226         <font class="keyword">const</font> <font class="keywordtype">char</font> *id;
00227 
00228 <font class="keyword">protected</font>:
00237         <font class="keyword">virtual</font> <font class="keywordtype">void</font> setProperty(<font class="keywordtype">char</font> *data, <font class="keywordtype">char</font> *temp, size_t size) = 0;
00238 
00246         <font class="keyword">virtual</font> <font class="keywordtype">void</font> getProperty(<font class="keywordtype">char</font> *data, <font class="keywordtype">char</font> *temp, size_t size) = 0;
00247 
<a name="l00255"></a><a class="code" href="class_script_property.html#b2">00255</a>         <font class="keyword">virtual</font> <font class="keywordtype">void</font> adjProperty(<font class="keywordtype">char</font> *data, size_t size, <font class="keywordtype">int</font> adjust)<font class="keyword"></font>
00256 <font class="keyword">                </font>{<font class="keywordflow">return</font>;};
00257 
<a name="l00263"></a><a class="code" href="class_script_property.html#b3">00263</a>         <font class="keyword">virtual</font> size_t getPropertySize(<font class="keywordtype">void</font>)<font class="keyword"> </font>
00264 <font class="keyword">                </font>{<font class="keywordflow">return</font> 0;};
00265 
00266         ScriptProperty(<font class="keyword">const</font> <font class="keywordtype">char</font> *name);
00267 
00268 <font class="keyword">public</font>:
00269         <font class="keyword">static</font> <a class="code" href="class_script_property.html">ScriptProperty</a>* find(<font class="keyword">const</font> <font class="keywordtype">char</font> *name);
00270 };
00271 
<a name="l00279"></a><a class="code" href="class_script_module.html">00279</a> <font class="keyword">class </font>CCXX_CLASS_EXPORT <a class="code" href="class_script_module.html">ScriptModule</a>
00280 {
00281 <font class="keyword">private</font>:
<a name="l00282"></a><a class="code" href="class_script_module.html#l0">00282</a>         <font class="keyword">friend</font> <font class="keyword">class </font><a class="code" href="class_script_interp.html">ScriptInterp</a>;
<a name="l00283"></a><a class="code" href="class_script_module.html#l1">00283</a>         <font class="keyword">friend</font> <font class="keyword">class </font><a class="code" href="class_script_command.html">ScriptCommand</a>;
00284         <font class="keyword">static</font> <a class="code" href="class_script_module.html">ScriptModule</a> *first;
00285         <a class="code" href="class_script_module.html">ScriptModule</a> *next;
00286         <font class="keyword">const</font> <font class="keywordtype">char</font> *cmd;
00287 
00288 <font class="keyword">protected</font>:
<a name="l00294"></a><a class="code" href="class_script_module.html#b0">00294</a>         <font class="keyword">virtual</font> <font class="keywordtype">void</font> moduleAttach(<a class="code" href="class_script_interp.html">ScriptInterp</a> *interp)<font class="keyword"></font>
00295 <font class="keyword">                </font>{<font class="keywordflow">return</font>;};
00296 
<a name="l00302"></a><a class="code" href="class_script_module.html#b1">00302</a>         <font class="keyword">virtual</font> <font class="keywordtype">void</font> moduleDetach(<a class="code" href="class_script_interp.html">ScriptInterp</a> *interp)<font class="keyword"></font>
00303 <font class="keyword">                </font>{<font class="keywordflow">return</font>;};
00304 
<a name="l00313"></a><a class="code" href="class_script_module.html#b2">00313</a>         <font class="keyword">virtual</font> <font class="keywordtype">char</font> *getSession(<a class="code" href="class_script_interp.html">ScriptInterp</a> *interp, scriptline_t *line, <a class="code" href="class_script_session.html">ScriptSession</a> **session)<font class="keyword"></font>
00314 <font class="keyword">                </font>{<font class="keywordflow">return</font> NULL;}; 
00315 
<a name="l00323"></a><a class="code" href="class_script_module.html#b3">00323</a>         <font class="keyword">virtual</font> <font class="keywordtype">char</font> *checkScript(scriptline_t *line, <a class="code" href="class_script_image.html">ScriptImage</a> *img)<font class="keyword"></font>
00324 <font class="keyword">                </font>{<font class="keywordflow">return</font> NULL;};
00325 
00331         ScriptModule(<font class="keyword">const</font> <font class="keywordtype">char</font> *name);
00332 
00339         <font class="keyword">static</font> <a class="code" href="class_script_module.html">ScriptModule</a> *find(<font class="keyword">const</font> <font class="keywordtype">char</font> *name);
00340 };
00341 
<a name="l00353"></a><a class="code" href="class_script_command.html">00353</a> <font class="keyword">class </font>CCXX_CLASS_EXPORT <a class="code" href="class_script_command.html">ScriptCommand</a> : <font class="keyword">public</font> <a class="code" href="class_keydata.html">Keydata</a>, <font class="keyword">public</font> <a class="code" href="class_mutex.html">Mutex</a>
00354 {
00355 <font class="keyword">private</font>:
<a name="l00356"></a><a class="code" href="class_script_command.html#l0">00356</a>         <font class="keyword">friend</font> <font class="keyword">class </font><a class="code" href="class_script_image.html">ScriptImage</a>;
<a name="l00357"></a><a class="code" href="class_script_command.html#l1">00357</a>         <font class="keyword">friend</font> <font class="keyword">class </font><a class="code" href="class_script_interp.html">ScriptInterp</a>;
<a name="l00358"></a><a class="code" href="class_script_command.html#l2">00358</a>         <font class="keyword">friend</font> <font class="keyword">class </font><a class="code" href="class_script_module.html">ScriptModule</a>;
00359 
00360 <font class="preprocessor">#pragma pack(1)</font>
00361 <font class="preprocessor"></font>        <font class="keyword">typedef</font> <font class="keyword">struct </font>_keyword
00362         {
00363                 <font class="keyword">struct </font>_keyword *next;
00364                 scriptmethod_t method;
00365                 scriptcheck_t check;
00366                 <font class="keywordtype">char</font> keyword[1];
00367         } keyword_t;
00368 <font class="preprocessor">#pragma pack()</font>
00369 <font class="preprocessor"></font>
00370 
00371         keyword_t *keywords[KEYWORD_INDEX_SIZE];
00372         <font class="keywordtype">char</font> *traps[TRAP_BITS];
00373         <a class="code" href="class_script_image.html">ScriptImage</a> *active;
00374         <font class="keywordtype">int</font> keyword_count;
00375         <font class="keywordtype">int</font> trap_count;
00376 
00377 <font class="keyword">protected</font>:
00385         scriptmethod_t getHandler(<font class="keyword">const</font> <font class="keywordtype">char</font> *keyword);
00386 
00394         <font class="keywordtype">char</font> *Check(<font class="keywordtype">char</font> *command, scriptline_t *line, <a class="code" href="class_script_image.html">ScriptImage</a> *img);
00395 
00402         <font class="keyword">virtual</font> <font class="keywordtype">unsigned</font> getTrapId(<font class="keyword">const</font> <font class="keywordtype">char</font> *trap);
00403 
<a name="l00409"></a><a class="code" href="class_script_command.html#b3">00409</a>         <font class="keyword">virtual</font> <font class="keywordtype">unsigned</font> <font class="keywordtype">long</font> getTrapDefault(<font class="keywordtype">void</font>)<font class="keyword"></font>
00410 <font class="keyword">                </font>{<font class="keywordflow">return</font> 0x00000003;};
00411         
<a name="l00417"></a><a class="code" href="class_script_command.html#b4">00417</a>         <font class="keyword">virtual</font> <font class="keywordtype">unsigned</font> <font class="keywordtype">long</font> getTrapHandler(scriptname_t *scr)<font class="keyword"></font>
00418 <font class="keyword">                </font>{<font class="keywordflow">return</font> getTrapDefault();}
00419 
00427         <font class="keyword">virtual</font> <font class="keywordtype">unsigned</font> <font class="keywordtype">long</font> getTrapMask(<font class="keywordtype">unsigned</font> id);
00428 
<a name="l00437"></a><a class="code" href="class_script_command.html#b6">00437</a>         <font class="keyword">virtual</font> <font class="keywordtype">unsigned</font> <font class="keywordtype">long</font> getTrapModifier(<font class="keyword">const</font> <font class="keywordtype">char</font> *trapname)<font class="keyword"></font>
00438 <font class="keyword">                </font>{<font class="keywordflow">return</font> getTrapMask(trapname);};
00439 
00448         <font class="keyword">virtual</font> <font class="keywordtype">unsigned</font> <font class="keywordtype">long</font> getTrapMask(<font class="keyword">const</font> <font class="keywordtype">char</font> *trapname);
00449 
00453         <font class="keywordtype">char</font> *chkIgnore(scriptline_t *line, <a class="code" href="class_script_image.html">ScriptImage</a> *img);
00454 
00458         <font class="keywordtype">char</font> *chkModule(scriptline_t *line, <a class="code" href="class_script_image.html">ScriptImage</a> *img);
00459 
00463         <font class="keywordtype">char</font> *chkUse(scriptline_t *line, <a class="code" href="class_script_image.html">ScriptImage</a> *img);
00464 
00471         <font class="keywordtype">char</font> *chkHasModify(scriptline_t *line, <a class="code" href="class_script_image.html">ScriptImage</a> *img);
00472 
00478         <font class="keywordtype">char</font> *chkHasVars(scriptline_t *line, <a class="code" href="class_script_image.html">ScriptImage</a> *img);
00479 
00487         <font class="keywordtype">char</font> *chkHasList(scriptline_t *line, <a class="code" href="class_script_image.html">ScriptImage</a> *img);
00488 
00496         <font class="keywordtype">char</font> *chkNoArgs(scriptline_t *line, <a class="code" href="class_script_image.html">ScriptImage</a> *img);
00497 
00505         <font class="keywordtype">char</font> *chkHasArgs(scriptline_t *line, <a class="code" href="class_script_image.html">ScriptImage</a> *img);
00506 
00514         <font class="keywordtype">void</font> Load(<a class="code" href="struct_s_c_r_k_e_y_w_o_r_d_s.html">SCRKEYWORDS</a> *keywords);
00515 
00524         <font class="keywordtype">int</font> Trap(<font class="keyword">const</font> <font class="keywordtype">char</font> *name);
00525 
<a name="l00531"></a><a class="code" href="class_script_command.html#b18">00531</a>         <font class="keyword">inline</font> <font class="keywordtype">int</font> getCount(<font class="keywordtype">void</font>)<font class="keyword"></font>
00532 <font class="keyword">                </font>{<font class="keywordflow">return</font> trap_count;};
00533 
<a name="l00540"></a><a class="code" href="class_script_command.html#b19">00540</a>         <font class="keyword">virtual</font> <font class="keywordtype">char</font> *Check(scriptcheck_t check, scriptline_t *line, <a class="code" href="class_script_image.html">ScriptImage</a> *img)<font class="keyword"></font>
00541 <font class="keyword">                </font>{<font class="keywordflow">return</font> (this-&gt;*(check))(line, img);};
00542 
00551         <a class="code" href="script_8h.html#a7">ScriptCommand</a>(<font class="keyword">const</font> <font class="keywordtype">char</font> *cfgfile);
00552 };
00553 
<a name="l00563"></a><a class="code" href="class_script_symbol.html">00563</a> <font class="keyword">class </font>CCXX_CLASS_EXPORT <a class="code" href="class_script_symbol.html">ScriptSymbol</a> : <font class="keyword">public</font> <a class="code" href="class_shared_mem_pager.html">SharedMemPager</a>
00564 {
00565 <font class="keyword">private</font>:
<a name="l00566"></a><a class="code" href="class_script_symbol.html#l0">00566</a>         <font class="keyword">friend</font> <font class="keyword">class </font><a class="code" href="class_script_interp.html">ScriptInterp</a>;
00567 
00568         <font class="keywordtype">int</font> symsize;
00569         scriptsymbol_t *index[SYMBOL_INDEX_SIZE];
00570         scriptsymbol_t *trigger;
00571 
00572         <font class="keywordtype">unsigned</font> getIndex(<font class="keyword">const</font> <font class="keywordtype">char</font> *symbol);
00573 
00574 <font class="keyword">protected</font>:
00589         <font class="keyword">virtual</font> scriptsymbol_t *getEntry(<font class="keyword">const</font> <font class="keywordtype">char</font> *symbol, <font class="keywordtype">int</font> size = 0);
00590 
00600         <font class="keyword">virtual</font> <font class="keywordtype">void</font> Commit(scriptsymbol_t *sym);
00601 
00602 <font class="keyword">public</font>:
00608         scriptsymbol_t *getTrigger(<font class="keywordtype">void</font>);
00609 
<a name="l00615"></a><a class="code" href="class_script_symbol.html#a1">00615</a>         <font class="keyword">inline</font> <font class="keywordtype">int</font> getSymbolSize(<font class="keywordtype">void</font>)<font class="keyword"></font>
00616 <font class="keyword">                </font>{<font class="keywordflow">return</font> symsize;};
00617 
00618         ScriptSymbol(<font class="keywordtype">int</font> size, <font class="keywordtype">int</font> pgsize = 1024);
00619 
00626         <font class="keywordtype">void</font> *getPointer(<font class="keyword">const</font> <font class="keywordtype">char</font> *symbol);
00627 
00635         <font class="keywordtype">bool</font> setPointer(<font class="keyword">const</font> <font class="keywordtype">char</font> *symbol, <font class="keywordtype">void</font> *data);
00636         
00643         <font class="keywordtype">char</font> *getSymbol(<font class="keyword">const</font> <font class="keywordtype">char</font> *symbol);
00644 
00652         <font class="keywordtype">char</font> *setSymbol(<font class="keyword">const</font> <font class="keywordtype">char</font> *symbol, <font class="keyword">const</font> <font class="keywordtype">char</font> *value = <font class="stringliteral">""</font>);
00653 
00661         <font class="keywordtype">char</font> *setConst(<font class="keyword">const</font> <font class="keywordtype">char</font> *symbol, <font class="keyword">const</font> <font class="keywordtype">char</font> *value = <font class="stringliteral">""</font>);
00662 
00671         <font class="keywordtype">bool</font> makeSequence(<font class="keyword">const</font> <font class="keywordtype">char</font> *id, <font class="keywordtype">unsigned</font> <font class="keywordtype">char</font> count, <font class="keywordtype">unsigned</font> <font class="keywordtype">char</font> recsize);
00672 
00681         <font class="keywordtype">bool</font> makeStack(<font class="keyword">const</font> <font class="keywordtype">char</font> *id, <font class="keywordtype">unsigned</font> <font class="keywordtype">char</font> count, <font class="keywordtype">unsigned</font> <font class="keywordtype">char</font> recsize);
00682 
00691         <font class="keywordtype">bool</font> makeFifo(<font class="keyword">const</font> <font class="keywordtype">char</font> *id, <font class="keywordtype">unsigned</font> <font class="keywordtype">char</font> count, <font class="keywordtype">unsigned</font> <font class="keywordtype">char</font> recsize);
00692 
00699         <font class="keywordtype">bool</font> makeCounter(<font class="keyword">const</font> <font class="keywordtype">char</font> *id);
00700 
00708         <font class="keywordtype">bool</font> postSymbol(scriptsymbol_t *sym, <font class="keyword">const</font> <font class="keywordtype">char</font> *value);
00709 
00710 
00718         <font class="keywordtype">bool</font> removeSymbol(scriptsymbol_t *sym, <font class="keyword">const</font> <font class="keywordtype">char</font> *value);
00719 
00726         <font class="keywordtype">char</font> *readSymbol(scriptsymbol_t *sym);
00727 
00735         <font class="keywordtype">bool</font> setAlias(<font class="keyword">const</font> <font class="keywordtype">char</font> *symbol, <font class="keyword">const</font> <font class="keywordtype">char</font> *source);
00736 
00743         scriptsymbol_t *getAlias(<font class="keyword">const</font> <font class="keywordtype">char</font> *symbol);
00744 
00752         <font class="keywordtype">char</font> *setSymbol(<font class="keyword">const</font> <font class="keywordtype">char</font> *symbol, <font class="keywordtype">int</font> size = 0);
00753 
00761         <font class="keywordtype">void</font> clrSymbol(<font class="keyword">const</font> <font class="keywordtype">char</font> *id);
00762 
00766         <font class="keywordtype">void</font> Purge(<font class="keywordtype">void</font>);
00767 
00771         <font class="keywordtype">unsigned</font> Gather(scriptsymbol_t **index, <font class="keywordtype">unsigned</font> max, <font class="keyword">const</font> <font class="keywordtype">char</font> *prefrix, <font class="keyword">const</font> <font class="keywordtype">char</font> *suffix = NULL);
00772 };
00773 
<a name="l00783"></a><a class="code" href="class_script_image.html">00783</a> <font class="keyword">class </font>CCXX_CLASS_EXPORT <a class="code" href="class_script_image.html">ScriptImage</a> : <font class="keyword">public</font> <a class="code" href="class_mem_pager.html">MemPager</a>
00784 {
00785 <font class="keyword">protected</font>:
<a name="l00786"></a><a class="code" href="class_script_image.html#n0">00786</a>         std::ifstream scrSource;
<a name="l00787"></a><a class="code" href="class_script_image.html#n1">00787</a>         std::istream *scrStream;        
<a name="l00788"></a><a class="code" href="class_script_image.html#n2">00788</a>         <a class="code" href="class_script_command.html">ScriptCommand</a> *cmds;
<a name="l00789"></a><a class="code" href="class_script_image.html#n3">00789</a>         <font class="keywordtype">int</font> refcount;
<a name="l00790"></a><a class="code" href="class_script_image.html#n4">00790</a>         scriptname_t *index[SCRIPT_INDEX_SIZE];
<a name="l00791"></a><a class="code" href="class_script_image.html#n5">00791</a>         <font class="keywordtype">char</font> buffer[512];
<a name="l00792"></a><a class="code" href="class_script_image.html#n6">00792</a>         <font class="keywordtype">char</font> *bp;
<a name="l00793"></a><a class="code" href="class_script_image.html#n7">00793</a>         <font class="keywordtype">bool</font> quote;
<a name="l00794"></a><a class="code" href="class_script_image.html#n8">00794</a>         <a class="code" href="class_mutex.html">Mutex</a> duplock;
00795 
<a name="l00796"></a><a class="code" href="class_script_image.html#l0">00796</a>         <font class="keyword">friend</font> <font class="keyword">class </font><a class="code" href="class_script_interp.html">ScriptInterp</a>;
<a name="l00797"></a><a class="code" href="class_script_image.html#l1">00797</a>         <font class="keyword">friend</font> <font class="keyword">class </font><a class="code" href="class_script_module.html">ScriptModule</a>;
00798 
00799         <font class="keywordtype">char</font> *getToken(<font class="keywordtype">void</font>);
00800 
<a name="l00807"></a><a class="code" href="class_script_image.html#b1">00807</a>         scriptmethod_t getHandler(<font class="keyword">const</font> <font class="keywordtype">char</font> *keyword)<font class="keyword"></font>
00808 <font class="keyword">                </font>{<font class="keywordflow">return</font> cmds-&gt;<a class="code" href="class_script_command.html#b0">getHandler</a>(keyword);};
00809 
00817         <a class="code" href="script_8h.html#a8">ScriptImage</a>(<a class="code" href="class_script_command.html">ScriptCommand</a> *cmdset);
00818 
00822         <font class="keywordtype">void</font> Purge(<font class="keywordtype">void</font>);
00823         
00831         scriptname_t *Include(<font class="keyword">const</font> <font class="keywordtype">char</font> *scrfile);
00832 
00841         <font class="keywordtype">int</font> Compile(<font class="keyword">const</font> <font class="keywordtype">char</font> *scrfile);
00842 
00852         <font class="keywordtype">int</font> Compile(<font class="keyword">const</font> <font class="keywordtype">char</font> *scrfile, <font class="keywordtype">char</font> *name);
00853 
00861         <font class="keywordtype">int</font> Compile(std::istream *str, <font class="keywordtype">char</font> *name, <font class="keyword">const</font> <font class="keywordtype">char</font> *scrname = NULL);
00862 
00868         <font class="keywordtype">void</font> Commit(<font class="keywordtype">void</font>);
00869 
00870 <font class="keyword">public</font>:
00877         <font class="keyword">virtual</font> scriptname_t *getScript(<font class="keyword">const</font> <font class="keywordtype">char</font> *name);
00878 
00886         <font class="keyword">virtual</font> scriptname_t *dupScript(<font class="keyword">const</font> <font class="keywordtype">char</font> *name, <font class="keyword">const</font> <font class="keywordtype">char</font> *target);
00887 
00896         <font class="keywordtype">unsigned</font> Gather(<font class="keyword">const</font> <font class="keywordtype">char</font> *suffix, scriptname_t **array, <font class="keywordtype">unsigned</font> size);
00897 
<a name="l00904"></a><a class="code" href="class_script_image.html#a3">00904</a>         <font class="keyword">inline</font> std::istream *getSource(<font class="keywordtype">void</font>)<font class="keyword"></font>
00905 <font class="keyword">                </font>{<font class="keywordflow">return</font> (std::istream *)&amp;scrSource;};
00906 };      
00907 
<a name="l00915"></a><a class="code" href="class_script_interp.html">00915</a> <font class="keyword">class </font>CCXX_CLASS_EXPORT <a class="code" href="class_script_interp.html">ScriptInterp</a> : <font class="keyword">public</font> <a class="code" href="class_script_symbol.html">ScriptSymbol</a>
00916 {
00917 <font class="keyword">private</font>:
<a name="l00918"></a><a class="code" href="class_script_interp.html#l0">00918</a>         <font class="keyword">friend</font> <font class="keyword">class </font><a class="code" href="class_script_image.html">ScriptImage</a>;
<a name="l00919"></a><a class="code" href="class_script_interp.html#l1">00919</a>         <font class="keyword">friend</font> <font class="keyword">class </font><a class="code" href="class_script_session.html">ScriptSession</a>;
<a name="l00920"></a><a class="code" href="class_script_interp.html#l2">00920</a>         <font class="keyword">friend</font> <font class="keyword">class </font><a class="code" href="class_script_module.html">ScriptModule</a>;
00921 
00922 <font class="preprocessor">#pragma pack(1)</font>
00923 <font class="preprocessor"></font>        <font class="keyword">typedef</font> <font class="keyword">struct</font>
00924 <font class="keyword">        </font>{
00925                 scriptname_t *script;
00926                 scriptline_t *line, *read;
00927                 <font class="keywordtype">unsigned</font> <font class="keywordtype">char</font> index;
00928                 <a class="code" href="class_script_symbol.html">ScriptSymbol</a> *local;
00929         }
00930         scriptcontext_t;
00931 <font class="preprocessor">#pragma pack()</font>
00932 <font class="preprocessor"></font>
00933         <font class="keyword">static</font> <a class="code" href="class_script_locks.html">ScriptLocks</a> locks;
00934         <a class="code" href="class_script_command.html">ScriptCommand</a> *cmd;
00935         <a class="code" href="class_script_image.html">ScriptImage</a> *image;
00936         <a class="code" href="class_script_session.html">ScriptSession</a> *session;
00937         scriptcontext_t script[SCRIPT_STACK_SIZE + 1];
00938         <font class="keywordtype">char</font> *temps[SCRIPT_TEMP_SPACE];
00939         <font class="keywordtype">int</font> tempidx;
00940         <font class="keywordtype">int</font> stack;
00941         size_t symsize, pgsize;
00942         <font class="keywordtype">bool</font> once, loop;
00943         <font class="keywordtype">char</font> packtoken;
00944         <font class="keywordtype">unsigned</font> <font class="keywordtype">long</font> signalmask;
00945 
00946         <font class="keywordtype">bool</font> scrTemplate(<font class="keywordtype">void</font>);
00947         <font class="keywordtype">bool</font> scrEnable(<font class="keywordtype">void</font>);
00948         <font class="keywordtype">bool</font> scrDisable(<font class="keywordtype">void</font>);
00949         <font class="keywordtype">bool</font> scrUse(<font class="keywordtype">void</font>);
00950         <font class="keywordtype">bool</font> scrLoadable(<font class="keywordtype">void</font>);
00951         <font class="keywordtype">bool</font> scrPacked(<font class="keywordtype">void</font>);
00952         <font class="keywordtype">bool</font> scrPack(<font class="keywordtype">void</font>);
00953         <font class="keywordtype">bool</font> scrUnpack(<font class="keywordtype">void</font>);
00954         <font class="keywordtype">bool</font> scrOn(<font class="keywordtype">void</font>);
00955         <font class="keywordtype">bool</font> scrSlog(<font class="keywordtype">void</font>);
00956         <font class="keywordtype">bool</font> scrBasename(<font class="keywordtype">void</font>);
00957         <font class="keywordtype">bool</font> scrDirname(<font class="keywordtype">void</font>);
00958         <font class="keywordtype">bool</font> scrFullpath(<font class="keywordtype">void</font>); 
00959         <font class="keywordtype">bool</font> scrGather(<font class="keywordtype">void</font>);
00960         <font class="keywordtype">bool</font> scrDump(<font class="keywordtype">void</font>);
00961         <font class="keywordtype">bool</font> scrInc(<font class="keywordtype">void</font>);
00962         <font class="keywordtype">bool</font> scrDec(<font class="keywordtype">void</font>);
00963         <font class="keywordtype">bool</font> scrFifo(<font class="keywordtype">void</font>);
00964         <font class="keywordtype">bool</font> scrCounter(<font class="keywordtype">void</font>);
00965         <font class="keywordtype">bool</font> scrRemove(<font class="keywordtype">void</font>);
00966         <font class="keywordtype">bool</font> scrPost(<font class="keywordtype">void</font>);
00967         <font class="keywordtype">bool</font> scrStack(<font class="keywordtype">void</font>);
00968         <font class="keywordtype">bool</font> scrSequence(<font class="keywordtype">void</font>);
00969         <font class="keywordtype">bool</font> scrDup(<font class="keywordtype">void</font>);
00970         <font class="keywordtype">bool</font> scrArray(<font class="keywordtype">void</font>);
00971         <font class="keywordtype">bool</font> scrList(<font class="keywordtype">void</font>);
00972         <font class="keywordtype">bool</font> scrArm(<font class="keywordtype">void</font>);
00973         <font class="keywordtype">bool</font> scrDisarm(<font class="keywordtype">void</font>);
00974         <font class="keywordtype">bool</font> scrSet(<font class="keywordtype">void</font>);
00975         <font class="keywordtype">bool</font> scrAlias(<font class="keywordtype">void</font>);
00976         <font class="keywordtype">bool</font> scrConst(<font class="keywordtype">void</font>);
00977         <font class="keywordtype">bool</font> scrSize(<font class="keywordtype">void</font>);
00978         <font class="keywordtype">bool</font> scrInit(<font class="keywordtype">void</font>);
00979         <font class="keywordtype">bool</font> scrClear(<font class="keywordtype">void</font>);
00980         <font class="keywordtype">bool</font> scrCall(<font class="keywordtype">void</font>);
00981         <font class="keywordtype">bool</font> scrHas(<font class="keywordtype">void</font>);
00982         <font class="keywordtype">bool</font> scrMissing(<font class="keywordtype">void</font>);
00983         <font class="keywordtype">bool</font> scrIf(<font class="keywordtype">void</font>);
00984         <font class="keywordtype">bool</font> scrIfThen(<font class="keywordtype">void</font>);
00985         <font class="keywordtype">bool</font> scrFor(<font class="keywordtype">void</font>);
00986         <font class="keywordtype">bool</font> scrRead(<font class="keywordtype">void</font>);
00987         <font class="keywordtype">bool</font> scrRepeat(<font class="keywordtype">void</font>);
00988         <font class="keywordtype">bool</font> scrForeach(<font class="keywordtype">void</font>);
00989         <font class="keywordtype">bool</font> scrTryeach(<font class="keywordtype">void</font>);
00990         <font class="keywordtype">bool</font> scrSwap(<font class="keywordtype">void</font>);
00991         <font class="keywordtype">bool</font> scrDo(<font class="keywordtype">void</font>);
00992         <font class="keywordtype">bool</font> scrLoop(<font class="keywordtype">void</font>);
00993         <font class="keywordtype">bool</font> scrBreak(<font class="keywordtype">void</font>);
00994         <font class="keywordtype">bool</font> scrContinue(<font class="keywordtype">void</font>);
00995         <font class="keywordtype">bool</font> scrReturn(<font class="keywordtype">void</font>);
00996         <font class="keywordtype">bool</font> scrPop(<font class="keywordtype">void</font>);
00997         <font class="keywordtype">bool</font> scrSelect(<font class="keywordtype">void</font>);
00998         <font class="keywordtype">bool</font> scrOnce(<font class="keywordtype">void</font>);
00999         <font class="keywordtype">bool</font> scrLock(<font class="keywordtype">void</font>);
01000         <font class="keywordtype">bool</font> scrTry(<font class="keywordtype">void</font>);
01001         <font class="keywordtype">bool</font> scrSkip(<font class="keywordtype">void</font>);
01002 
<a name="l01003"></a><a class="code" href="class_script_interp.html#l3">01003</a>         <font class="keyword">friend</font> <font class="keyword">class </font><a class="code" href="class_script_command.html">ScriptCommand</a>;
01004 
01005 <font class="keyword">protected</font>:
01012         <a class="code" href="script_8h.html#a9">ScriptInterp</a>(<a class="code" href="class_script_command.html">ScriptCommand</a> *cmd, size_t symsize, size_t pgsize = 1024);
01013 
01019         <font class="keywordtype">void</font> getTrigger(<font class="keywordtype">bool</font> use);
01020 
01026         <font class="keywordtype">bool</font> getOnce(<font class="keywordtype">void</font>);
01027 
<a name="l01033"></a><a class="code" href="class_script_interp.html#b3">01033</a>         <font class="keyword">inline</font> <font class="keywordtype">void</font> Notify(<font class="keywordtype">unsigned</font> <font class="keywordtype">long</font> mask)<font class="keyword"></font>
01034 <font class="keyword">                </font>{signalmask |= mask;};
01035 
<a name="l01041"></a><a class="code" href="class_script_interp.html#b4">01041</a>         <font class="keyword">inline</font> <font class="keywordtype">void</font> Notify(<font class="keyword">const</font> <font class="keywordtype">char</font> *str)<font class="keyword"></font>
01042 <font class="keyword">                </font>{signalmask |= cmd-&gt;<a class="code" href="class_script_command.html#b5">getTrapMask</a>(str);};
01043 
01049         <font class="keywordtype">unsigned</font> <font class="keywordtype">long</font> getMask(<font class="keywordtype">void</font>);
01050 
<a name="l01056"></a><a class="code" href="class_script_interp.html#b6">01056</a>         <font class="keyword">inline</font> <font class="keywordtype">unsigned</font> <font class="keywordtype">long</font> getScriptMask(<font class="keyword">const</font> <font class="keywordtype">char</font> *id)<font class="keyword"></font>
01057 <font class="keyword">                </font>{<font class="keywordflow">return</font> cmd-&gt;<a class="code" href="class_script_command.html#b5">getTrapMask</a>(id);};
01058 
<a name="l01064"></a><a class="code" href="class_script_interp.html#b7">01064</a>         <font class="keyword">inline</font> <a class="code" href="class_script_command.html">ScriptCommand</a> *getCommand(<font class="keywordtype">void</font>)<font class="keyword"></font>
01065 <font class="keyword">                </font>{<font class="keywordflow">return</font> cmd;};
01066 
01074         <font class="keywordtype">bool</font> Conditional(<font class="keywordtype">void</font>);
01075 
01081         <font class="keywordtype">bool</font> scrExit(<font class="keywordtype">void</font>);
01082 
01086         <font class="keywordtype">bool</font> scrGoto(<font class="keywordtype">void</font>);
01087 
01091         <font class="keywordtype">bool</font> scrData(<font class="keywordtype">void</font>);
01092 
<a name="l01098"></a><a class="code" href="class_script_interp.html#b12">01098</a>         <font class="keyword">virtual</font> <font class="keywordtype">unsigned</font> getId(<font class="keywordtype">void</font>)<font class="keyword"></font>
01099 <font class="keyword">                </font>{<font class="keywordflow">return</font> 0;};
01100 
01101 
<a name="l01108"></a><a class="code" href="class_script_interp.html#b13">01108</a>         <font class="keyword">virtual</font> <font class="keywordtype">bool</font> getGlobalTrap(<font class="keywordtype">unsigned</font> id)<font class="keyword"></font>
01109 <font class="keyword">                </font>{<font class="keywordflow">return</font> <font class="keyword">false</font>;};
01110         
01118         scriptsymbol_t *getVariable(size_t size = 0);
01119 
01120 
<a name="l01129"></a><a class="code" href="class_script_interp.html#b15">01129</a>         <font class="keyword">virtual</font> scriptsymbol_t *getIndirect(<font class="keywordtype">char</font> *sym)<font class="keyword"></font>
01130 <font class="keyword">                </font>{<font class="keywordflow">return</font> NULL;};
01131 
01135         <font class="keywordtype">void</font> Advance(<font class="keywordtype">void</font>);
01136 
01143         <font class="keywordtype">void</font> Error(<font class="keyword">const</font> <font class="keywordtype">char</font> *error);
01144 
01152         <font class="keywordtype">void</font> Trap(<font class="keywordtype">unsigned</font> id);
01153 
01160         <font class="keywordtype">void</font> Trap(<font class="keyword">const</font> <font class="keywordtype">char</font> *trapname);
01161 
01167         <font class="keywordtype">bool</font> Push(<font class="keywordtype">void</font>);
01168 
01174         <font class="keywordtype">bool</font> Pull(<font class="keywordtype">void</font>);
01175 
01185         <font class="keywordtype">bool</font> Signal(<font class="keyword">const</font> <font class="keywordtype">char</font> *trapname);
01186 
01194         <font class="keywordtype">bool</font> Signal(<font class="keywordtype">unsigned</font> trapid);
01195 
<a name="l01203"></a><a class="code" href="class_script_interp.html#b24">01203</a>         <font class="keyword">virtual</font> <font class="keywordtype">bool</font> Execute(scriptmethod_t method)<font class="keyword"></font>
01204 <font class="keyword">                </font>{<font class="keywordflow">return</font> (this-&gt;*(method))();};
01205 
<a name="l01214"></a><a class="code" href="class_script_interp.html#b25">01214</a>         <font class="keyword">virtual</font> <font class="keywordtype">void</font> Stop(<font class="keywordtype">unsigned</font> <font class="keywordtype">long</font> mask)<font class="keyword"></font>
01215 <font class="keyword">                </font>{<font class="keywordflow">return</font>;};
01216 
01221         <font class="keyword">virtual</font> <font class="keywordtype">void</font> Exit(<font class="keywordtype">void</font>) = 0;
01222 
01230         <font class="keyword">virtual</font> scriptname_t *getScriptImage(<font class="keyword">const</font> <font class="keywordtype">char</font> *label);
01231 
01238         scriptname_t *getScriptCopy(<font class="keyword">const</font> <font class="keywordtype">char</font> *src);
01239 
<a name="l01245"></a><a class="code" href="class_script_interp.html#b29">01245</a>         <font class="keyword">virtual</font> <font class="keywordtype">void</font> sleepScheduler(timeout_t timeout)<font class="keyword"></font>
01246 <font class="keyword">                </font>{<font class="keywordflow">return</font>;};
01247 
<a name="l01253"></a><a class="code" href="class_script_interp.html#b30">01253</a>         <font class="keyword">virtual</font> <font class="keywordtype">void</font> stepScheduler(<font class="keyword">const</font> <font class="keywordtype">char</font> *trapname)<font class="keyword"></font>
01254 <font class="keyword">                </font>{Trap(trapname);};
01255 
01256 <font class="keyword">public</font>:
01266         scriptsymbol_t *getLocal(<font class="keyword">const</font> <font class="keywordtype">char</font> *name, size_t size = 0);
01267 
01275         <font class="keywordtype">bool</font> Attach(<font class="keyword">const</font> <font class="keywordtype">char</font> *scrname);
01276 
01281         <font class="keywordtype">void</font> Detach(<font class="keywordtype">void</font>);
01282 
01289         <font class="keywordtype">bool</font> Redirect(<font class="keyword">const</font> <font class="keywordtype">char</font> *scrname);
01290 
01299         <font class="keywordtype">bool</font> Step(<font class="keyword">const</font> <font class="keywordtype">char</font> *trapname = NULL);
01300 
<a name="l01306"></a><a class="code" href="class_script_interp.html#a5">01306</a>         <font class="keyword">inline</font> <font class="keywordtype">bool</font> isActive(<font class="keywordtype">void</font>)<font class="keyword"></font>
01307 <font class="keyword">                </font>{<font class="keywordflow">return</font> script[stack].line;};
01308                 
01316         <font class="keywordtype">char</font> *getOption(<font class="keyword">const</font> <font class="keywordtype">char</font> *def = NULL);
01317 
01325         <font class="keywordtype">char</font> *getKeyword(<font class="keyword">const</font> <font class="keywordtype">char</font> *keyword);
01326 
01330         <font class="keywordtype">int</font> initKeywords(<font class="keywordtype">int</font> size);
01331 
01339         <font class="keywordtype">char</font> *getValue(<font class="keyword">const</font> <font class="keywordtype">char</font> *def = NULL);
01340 
01347         <font class="keywordtype">char</font> *getContent(<font class="keywordtype">char</font> *sym);
01348 
<a name="l01354"></a><a class="code" href="class_script_interp.html#a11">01354</a>         <font class="keyword">inline</font> scriptline_t *getScript(<font class="keywordtype">void</font>)<font class="keyword"></font>
01355 <font class="keyword">                </font>{<font class="keywordflow">return</font> script[stack].line;};
01356 
01362         <font class="keyword">const</font> <font class="keywordtype">char</font> *getMember(<font class="keywordtype">void</font>);
01363 
<a name="l01369"></a><a class="code" href="class_script_interp.html#a13">01369</a>         <font class="keyword">inline</font> scriptname_t *getObject(<font class="keywordtype">void</font>)<font class="keyword"></font>
01370 <font class="keyword">                </font>{<font class="keywordflow">return</font> script[stack].script;};
01371 
<a name="l01378"></a><a class="code" href="class_script_interp.html#a14">01378</a>         <font class="keyword">inline</font> <a class="code" href="class_script_image.html">ScriptImage</a> *getImage(<font class="keywordtype">void</font>)<font class="keyword"></font>
01379 <font class="keyword">                </font>{<font class="keywordflow">return</font> image;};
01380 
<a name="l01386"></a><a class="code" href="class_script_interp.html#a15">01386</a>         <font class="keyword">inline</font> <font class="keywordtype">void</font> autoloop(<font class="keywordtype">bool</font> enable)<font class="keyword"></font>
01387 <font class="keyword">                </font>{loop = enable;};
01388 };      
01389 
<a name="l01399"></a><a class="code" href="class_script_package.html">01399</a> <font class="keyword">class </font><a class="code" href="class_script_package.html">ScriptPackage</a> : <font class="keyword">protected</font> <a class="code" href="class_d_s_o.html">DSO</a>
01400 {
01401 <font class="keyword">private</font>:
01402         <font class="keyword">static</font> <a class="code" href="class_script_package.html">ScriptPackage</a> *first;
01403         <a class="code" href="class_script_package.html">ScriptPackage</a> *next;
01404         <font class="keywordtype">char</font> *filename;
01405 
01406         ScriptPackage(<font class="keywordtype">char</font> *name);
01407 
01408 <font class="keyword">public</font>:
01409         CCXX_MEMBER_EXPORT(<font class="keyword">static</font> <font class="keywordtype">bool</font>) usePackage(<font class="keyword">const</font> <font class="keywordtype">char</font> *name);
01410 };
01411 
01412 <font class="preprocessor">#ifdef  CCXX_NAMESPACES</font>
01413 <font class="preprocessor"></font>};
01414 <font class="preprocessor">#endif</font>
01415 <font class="preprocessor"></font>
01416 <font class="preprocessor">#endif</font>
01417 <font class="preprocessor"></font>
</pre></div><hr><address><small>Generated at Sat Jan 5 09:07:11 2002 for ccScript by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.gif" alt="doxygen" align="middle" border=0 
width=110 height=53></a>1.2.10 written by <a href="mailto:dimitri@stack.nl">Dimitri van Heesch</a>,
 &copy;&nbsp;1997-2001</small></address>
</body>
</html>