mem_alloc_manager.g.hh

Go to the documentation of this file.
00001 // This file is automatically generated, do not edit.
00002 
00003 /*!
00004         \file
00005         \brief Memory allocator.
00006         \author jaz
00007 */
00008 
00009 #ifndef lestes__md__mem__mem_alloc_manager_g_hh__included
00010 #define lestes__md__mem__mem_alloc_manager_g_hh__included
00011 
00012 #include <lestes/md/common.hh>
00013 
00014 #include <lestes/std/objectize_macros.hh>
00015 package(lestes);
00016 package(std);
00017 class object;
00018 end_package(std);
00019 end_package(lestes);
00020 
00021 package(lestes);
00022 package(lang);
00023 package(cplus);
00024 package(sem);
00025 class ss_function_declaration;
00026 end_package(sem);
00027 end_package(cplus);
00028 end_package(lang);
00029 end_package(lestes);
00030 
00031 package(lestes);
00032 package(lang);
00033 package(cplus);
00034 package(sem);
00035 class ss_object_declaration;
00036 end_package(sem);
00037 end_package(cplus);
00038 end_package(lang);
00039 end_package(lestes);
00040 
00041 package(lestes);
00042 package(backend_v2);
00043 package(intercode);
00044 class pi_abstract_function_call;
00045 end_package(intercode);
00046 end_package(backend_v2);
00047 end_package(lestes);
00048 
00049 package(lestes);
00050 package(backend_v2);
00051 package(intercode);
00052 class pi_sp;
00053 end_package(intercode);
00054 end_package(backend_v2);
00055 end_package(lestes);
00056 
00057 package(lestes);
00058 package(md);
00059 package(literals);
00060 class literal_info_base;
00061 end_package(literals);
00062 end_package(md);
00063 end_package(lestes);
00064 
00065 package(lestes);
00066 package(backend_v2);
00067 package(intercode);
00068 class pi_mem_factory;
00069 end_package(intercode);
00070 end_package(backend_v2);
00071 end_package(lestes);
00072 
00073 package(lestes);
00074 package(md);
00075 package(types);
00076 class tm_data_type_base;
00077 end_package(types);
00078 end_package(md);
00079 end_package(lestes);
00080 
00081 package(lestes);
00082 package(lang);
00083 package(cplus);
00084 package(sem);
00085 class ss_type;
00086 end_package(sem);
00087 end_package(cplus);
00088 end_package(lang);
00089 end_package(lestes);
00090 
00091 package(lestes);
00092 package(md);
00093 package(mem);
00094 
00095 
00096 class mem_alloc_manager;
00097 
00098 
00099 /*! \brief Manager for variable allocation.
00100 
00101 The backend provides interface for allocating and accessing memory for variables and parameters. 
00102 The allocation means that somebody lets the backend know about new variable, the backend returns object representing
00103  corresponding place in memory and at the end it generates assembler definition for this object.                        
00104                         
00105 */
00106 class mem_alloc_manager : public ::lestes::std::object {
00107 public:
00108         //! The method singleton_instance_get returns the value of the field mem_alloc_manager::singleton_instance.
00109         static ptr< mem_alloc_manager > singleton_instance_get();
00110 
00111         //! The method singleton_instance_set sets the field mem_alloc_manager::singleton_instance to the given value.
00112         static void singleton_instance_set(const ptr< mem_alloc_manager > &);
00113 
00114         //! Allocates space for variable on the local stack.
00115         virtual ptr< ::lestes::backend_v2::intercode::pi_mem_factory > allocate_local_tmp(ptr< ::lestes::lang::cplus::sem::ss_function_declaration > function, ptr< ::lestes::lang::cplus::sem::ss_type > decl);
00116 
00117         //! Allocates space for variable on the local stack.
00118         virtual ptr< ::lestes::backend_v2::intercode::pi_mem_factory > allocate_local_tmp(ptr< ::lestes::lang::cplus::sem::ss_function_declaration > function, ptr< ::lestes::md::types::tm_data_type_base > decl);
00119 
00120         //! Allocates space for variable on the local stack.
00121         virtual ptr< ::lestes::backend_v2::intercode::pi_mem_factory > allocate_local_var(ptr< ::lestes::lang::cplus::sem::ss_function_declaration > function, ptr< ::lestes::lang::cplus::sem::ss_object_declaration > decl);
00122 
00123         //! Allocates space for variable in global data storage.
00124         virtual ptr< ::lestes::backend_v2::intercode::pi_mem_factory > allocate_global_var(ptr< ::lestes::lang::cplus::sem::ss_object_declaration > decl);
00125 
00126         //! Initialises space in global data storage by given value.
00127         virtual void init_global_var(ptr< ::lestes::backend_v2::intercode::pi_mem_factory > mem, ptr< ::lestes::md::literals::literal_info_base > value);
00128 
00129         //! Deallocates previously allocated space.
00130         virtual void deallocate(ptr< ::lestes::backend_v2::intercode::pi_mem_factory > mem, ptr< ::lestes::backend_v2::intercode::pi_sp > psp, ptr< ::lestes::backend_v2::intercode::pi_sp > nsp);
00131 
00132         //! Returns singleton instance.
00133         static ptr< mem_alloc_manager > instance();
00134 
00135         
00136         //! First generated factory method for class mem_alloc_manager.
00137         static ptr< mem_alloc_manager > create (
00138                 );
00139 
00140         
00141 
00142         //! for purposes of dumping
00143         virtual ptr<reflection_list> reflection_get() const;
00144         //! for purposes of dumping
00145         virtual ptr<field_list_list> field_values_get() const;
00146         
00147 protected:
00148         //! Generated constructor for class mem_alloc_manager.
00149         mem_alloc_manager (
00150                 );
00151 
00152         //! Marking routine for class mem_alloc_manager. 
00153         virtual void gc_mark();
00154 
00155 private:
00156         //! Singleton instance.
00157         static ptr< mem_alloc_manager > singleton_instance;
00158         static ptr<reflection_list> reflection;
00159         
00160 }; // mem_alloc_manager
00161 
00162 
00163 end_package(mem);
00164 end_package(md);
00165 end_package(lestes);
00166 
00167 #endif // lestes__md__mem__mem_alloc_manager_g_hh__included

Generated on Mon Feb 12 18:22:41 2007 for lestes by doxygen 1.5.1-20070107