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
00041 #ifndef __NUSMV_CORE_UTILS_STREAM_MGR_H__
00042 #define __NUSMV_CORE_UTILS_STREAM_MGR_H__
00043
00044
00045 #include "nusmv/core/utils/utils.h"
00046 #include "nusmv/core/cinit/NuSMVEnv.h"
00047 #include "nusmv/core/node/printers/MasterPrinter.h"
00048 #include "nusmv/core/utils/OStream.h"
00049
00056 typedef struct StreamMgr_TAG* StreamMgr_ptr;
00057
00064 #define STREAM_MGR(self) \
00065 ((StreamMgr_ptr) self)
00066
00072 #define STREAM_MGR_CHECK_INSTANCE(self) \
00073 (nusmv_assert(STREAM_MGR(self) != STREAM_MGR(NULL)))
00074
00075
00076
00079
00080
00081
00082
00093 void Stream_init(NuSMVEnv_ptr env);
00094
00100 void Stream_quit(NuSMVEnv_ptr env);
00101
00110 StreamMgr_ptr StreamMgr_create(void);
00111
00120 void StreamMgr_destroy(StreamMgr_ptr self);
00121
00128 void StreamMgr_set_error_stream(StreamMgr_ptr self, FILE* err);
00129
00136 void StreamMgr_set_output_stream(StreamMgr_ptr self, FILE* out);
00137
00144 void StreamMgr_set_input_stream(StreamMgr_ptr self, FILE* in);
00145
00153 FILE* StreamMgr_reset_output_stream(StreamMgr_ptr self);
00154
00162 FILE* StreamMgr_reset_error_stream(StreamMgr_ptr self);
00163
00170 FILE* StreamMgr_get_error_stream(const StreamMgr_ptr self);
00171
00178 FILE* StreamMgr_get_output_stream(const StreamMgr_ptr self);
00179
00187 OStream_ptr
00188 StreamMgr_get_error_ostream(const StreamMgr_ptr self);
00189
00197 OStream_ptr
00198 StreamMgr_get_output_ostream(const StreamMgr_ptr self);
00199
00206 FILE* StreamMgr_get_input_stream(const StreamMgr_ptr self);
00207
00215 void StreamMgr_print_output(const StreamMgr_ptr self,
00216 const char* format, ...);
00217
00226 void StreamMgr_nprint_output(const StreamMgr_ptr self,
00227 const MasterPrinter_ptr printer,
00228 const char* format, ...);
00229
00237 void StreamMgr_print_error(const StreamMgr_ptr self,
00238 const char* format, ...);
00239
00248 void StreamMgr_nprint_error(const StreamMgr_ptr self,
00249 const MasterPrinter_ptr printer,
00250 const char* format, ...);
00251
00259 void StreamMgr_flush_streams(const StreamMgr_ptr self);
00260
00267 void StreamMgr_inc_indent_size(StreamMgr_ptr self);
00268
00275 void StreamMgr_dec_indent_size(StreamMgr_ptr self);
00276
00283 int StreamMgr_get_indent_size(const StreamMgr_ptr self);
00284
00291 void StreamMgr_reset_indent_size(StreamMgr_ptr self);
00292
00299 void StreamMgr_set_indent_size(StreamMgr_ptr self, int n);
00300
00301
00306 #endif