Class Hierarchy   Compound List   File List   Header Files   Compound Members   File Members  

suifkernel\suif_env.h

This is the verbatim text of the suif_env.h include file.



#ifndef SUIFKERNEL__SUIF_ENV_H
#define SUIFKERNEL__SUIF_ENV_H

#include "suifkernel_forwarders.h"

#include <stdarg.h>




SuifEnv* create_suif_env();


class SuifEnv {
public:
  SuifEnv();

  virtual void init();

  virtual ~SuifEnv();

  virtual void set_object_factory( ObjectFactory* );
  virtual ObjectFactory* get_object_factory() const;

  virtual ModuleSubSystem* get_module_subsystem() const;
  virtual void set_module_subsystem( ModuleSubSystem* subSystem );

  virtual void set_dll_subsystem( DLLSubSystem* _dll_subsystem );
  virtual DLLSubSystem* get_dll_subsystem() const;

  virtual void set_error_subsystem( ErrorSubSystem* _error_subsystem );
  virtual ErrorSubSystem* get_error_subsystem() const;

  virtual PrintSubSystem* get_print_subsystem() const;
  virtual void set_print_subsystem( PrintSubSystem* subsystem );

  virtual void add_object_factory( RealObjectFactory* of );
  virtual RealObjectFactory* get_object_factory( const LString& name ) const;

  
  virtual void read( const String& inputFileName );

  
  virtual void write( const String& outputFileName ) const;
  virtual FileSetBlock *read_more( const String& inputFileName ) const;

  virtual CloneSubSystem* get_clone_subsystem() const;

  virtual void set_file_set_block( FileSetBlock* o );
  virtual FileSetBlock* get_file_set_block() const;


  virtual TypeBuilder* get_type_builder() const;
  virtual void set_type_builder( TypeBuilder* );

  
  // use the macro suif_error
  virtual void error(  SuifObject* obj, const char* file_name,
                       int line_number,
                       const char* module_name,
                       const char* description, va_list ap );

  
  // use the macro suif_warning
  virtual void warning( SuifObject* obj, const char* file_name,
                       int line_number,
                       const char* module_name,
                       const char* description, va_list ap );

  
  // use the macro suif_information
  virtual void information( SuifObject* obj, const char* file_name,
                       int line_number,
                       const char* module_name,
                       int verbosity_level,
                       const char* description, va_list ap );

  // use the macro suif_error
  virtual void error(  const char* file_name,
                       int line_number,
                       const char* module_name,
                       const char* description, va_list ap );

  // use the macro suif_warning
  virtual void warning( const char* file_name,
                       int line_number,
                       const char* module_name,
                       const char* description, va_list ap );

  // use the macro suif_information
  virtual void information( const char* file_name,
                       int line_number,
                       const char* module_name,
                       int verbosity_level,
                       const char* description, va_list ap );

  // Purpose: to import a module.
  //
  void import_module(const LString &module_name);

protected:
  typedef list<RealObjectFactory*> FactoryList;
  InputSubSystem* input_sub_system;
  OutputSubSystem* output_subsystem;
  CloneSubSystem* cloneSubSystem;
  DLLSubSystem* _dll_subsystem;
  ModuleSubSystem* _module_subsystem;
  ErrorSubSystem* _error_subsystem;
  PrintSubSystem* _print_subsystem;
  TypeBuilder* _type_builder;

  ObjectFactory* _object_factory;

  FactoryList* factories;

  FileSetBlock* _file_set_block;
  AddressMap* rudimentaryAddressMap;
private:
  SuifEnv(const SuifEnv &);
  SuifEnv& operator=(const SuifEnv &);
};


#endif


Generated at Mon Nov 22 19:43:48 1999 for NCI SUIF by doxygen  written by Dimitri van Heesch, © 1997-1999