Main Page   Class Hierarchy   Compound List   File List   Compound Members   File Members  

nci/suif/suif2b/basesuif/suifkernel/suif_env.h

Go to the documentation of this file.
00001 
00008 #ifndef SUIFKERNEL__SUIF_ENV_H
00009 #define SUIFKERNEL__SUIF_ENV_H
00010 
00011 #include "suifkernel_forwarders.h"
00012 
00013 #include <stdarg.h>
00014 
00015 
00020 SuifEnv* create_suif_env();
00021 
00039 class SuifEnv {
00040 public:
00041   SuifEnv();
00042 
00043   virtual void init();
00044 
00045   virtual ~SuifEnv();
00046 
00047   virtual void set_object_factory( ObjectFactory* );
00048   virtual ObjectFactory* get_object_factory() const;
00049 
00050   virtual ModuleSubSystem* get_module_subsystem() const;
00051   virtual void set_module_subsystem( ModuleSubSystem* subSystem );
00052 
00053   virtual void set_dll_subsystem( DLLSubSystem* _dll_subsystem );
00054   virtual DLLSubSystem* get_dll_subsystem() const;
00055 
00056   virtual void set_error_subsystem( ErrorSubSystem* _error_subsystem );
00057   virtual ErrorSubSystem* get_error_subsystem() const;
00058 
00059   virtual PrintSubSystem* get_print_subsystem() const;
00060   virtual void set_print_subsystem( PrintSubSystem* subsystem );
00061 
00062   virtual void add_object_factory( RealObjectFactory* of );
00063   virtual RealObjectFactory* get_object_factory( const LString& name ) const;
00064 
00067   virtual void read( const String& inputFileName );
00068 
00070   virtual void write( const String& outputFileName ) const;
00071   virtual FileSetBlock *read_more( const String& inputFileName ) const;
00072 
00073   virtual CloneSubSystem* get_clone_subsystem() const;
00074 
00075   virtual void set_file_set_block( FileSetBlock* o );
00076   virtual FileSetBlock* get_file_set_block() const;
00077 
00078 
00079   virtual TypeBuilder* get_type_builder() const;
00080   virtual void set_type_builder( TypeBuilder* );
00081 
00083   // use the macro suif_error
00084   virtual void error(  SuifObject* obj, const char* file_name,
00085                        int line_number,
00086                        const char* module_name,
00087                        const char* description, va_list ap );
00088 
00090   // use the macro suif_warning
00091   virtual void warning( SuifObject* obj, const char* file_name,
00092                        int line_number,
00093                        const char* module_name,
00094                        const char* description, va_list ap );
00095 
00097   // use the macro suif_information
00098   virtual void information( SuifObject* obj, const char* file_name,
00099                        int line_number,
00100                        const char* module_name,
00101                        int verbosity_level,
00102                        const char* description, va_list ap );
00103 
00104   // use the macro suif_error
00105   virtual void error(  const char* file_name,
00106                        int line_number,
00107                        const char* module_name,
00108                        const char* description, va_list ap );
00109 
00110   // use the macro suif_warning
00111   virtual void warning( const char* file_name,
00112                        int line_number,
00113                        const char* module_name,
00114                        const char* description, va_list ap );
00115 
00116   // use the macro suif_information
00117   virtual void information( const char* file_name,
00118                        int line_number,
00119                        const char* module_name,
00120                        int verbosity_level,
00121                        const char* description, va_list ap );
00122 
00123   // Purpose: to load and initialize a DLL
00124   //  Use "require_DLL" instead
00125   //
00126   void import_module(const LString &module_name);
00127 
00128   // Purpose: to load and initialize a DLL
00129   //  if it has not already been loaded
00130   //  Use "require_DLL" instead
00131   //
00132   void require_module(const LString &module_name);
00133 
00134   // Purpose: to load and initialize a DLL
00135   //  if it has not already been loaded
00136   //
00137   void require_DLL(const LString &module_name);
00138 
00139   void register_module(Module *module);
00140 
00141   String get_location(const SuifObject *obj) const;
00142   String to_string(const LString &style,
00143                    const SuifObject *obj) const;
00144   /* Use the default printer */
00145   String to_string(SuifObject *obj) const;
00146 
00147 protected:
00148   typedef list<RealObjectFactory*> FactoryList;
00149   InputSubSystem* input_sub_system;
00150   OutputSubSystem* output_subsystem;
00151   CloneSubSystem* cloneSubSystem;
00152   DLLSubSystem* _dll_subsystem;
00153   ModuleSubSystem* _module_subsystem;
00154   ErrorSubSystem* _error_subsystem;
00155   PrintSubSystem* _print_subsystem;
00156   TypeBuilder* _type_builder;
00157 
00158   ObjectFactory* _object_factory;
00159 
00160   FactoryList* factories;
00161 
00162   FileSetBlock* _file_set_block;
00163   AddressMap* rudimentaryAddressMap;
00164 private:
00165   SuifEnv(const SuifEnv &);
00166   SuifEnv& operator=(const SuifEnv &);
00167 };
00168 
00169 
00170 #endif
00171 

Generated at Mon Jul 31 13:41:34 2000 for NCI SUIF by doxygen 1.1.2 written by Dimitri van Heesch, © 1997-2000