00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00038 #ifndef __NUSMV_SHELL_CMD_CMD_H__
00039 #define __NUSMV_SHELL_CMD_CMD_H__
00040
00041
00042
00043
00044 #if HAVE_CONFIG_H
00045 # include "nusmv-config.h"
00046 #endif
00047
00048 #include "nusmv/core/utils/utils.h"
00049 #include "nusmv/core/cinit/NuSMVEnv.h"
00050
00056 #define ENV_START_TIME "cmdStartTime"
00057
00058
00059
00060
00061
00067 typedef int (*PFI)(NuSMVEnv_ptr env, int argc, char **argv);
00068
00069
00072
00073
00074
00075
00076 #if NUSMV_HAVE_LIBREADLINE
00077
00083 char *readline(char *PROMPT);
00084
00090 void add_history(char *line);
00091 #endif
00092 #if NUSMV_HAVE_SETVBUF
00093
00099 int setvbuf(FILE*, char*, int mode, size_t size);
00100 #endif
00101 #ifdef PURIFY
00102
00108 void purify_all_inuse();
00109 #endif
00110
00137 void Cmd_CommandAdd(NuSMVEnv_ptr env, char* name, PFI funcFp, int changes,
00138 boolean reentrant);
00139
00146 boolean Cmd_CommandRemove(NuSMVEnv_ptr env, const char* name);
00147
00157 int Cmd_CommandExecute(NuSMVEnv_ptr env, char* command);
00158
00166 int Cmd_SecureCommandExecute(NuSMVEnv_ptr env, char* command);
00167
00180 FILE* Cmd_FileOpen(const NuSMVEnv_ptr env,
00181 char* fileName, char* mode,
00182 char** realFileName_p, int silent);
00183
00193 void Cmd_Init(NuSMVEnv_ptr env);
00194
00202 void Cmd_End(NuSMVEnv_ptr env);
00203
00213 FILE* CmdOpenPipe(const NuSMVEnv_ptr env, int useMore);
00214
00224 void CmdClosePipe(FILE* file);
00225
00235 FILE* CmdOpenFile(const NuSMVEnv_ptr env, const char* filename);
00236
00246 void CmdCloseFile(FILE* file);
00247
00255 Outcome Cmd_Misc_open_pipe_or_file(NuSMVEnv_ptr const env,
00256 const char* dbgFileName,
00257 FILE** outstream);
00258
00269 int Cmd_Misc_set_global_out_stream(NuSMVEnv_ptr env,
00270 char* filename,
00271 boolean useMore,
00272 FILE** prev_outstream);
00273
00283 void Cmd_Misc_restore_global_out_stream(NuSMVEnv_ptr env,
00284 char* filename,
00285 boolean use_a_pipe,
00286 FILE* prev_outstream);
00287
00288
00289
00298 int Cmd_Misc_NusmvrcSource(NuSMVEnv_ptr env);
00299
00300
00303 #endif