00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef lestes__md__functions__function_parameter_accessor_g_hh__included
00010 #define lestes__md__functions__function_parameter_accessor_g_hh__included
00011
00012 #include <lestes/std/map.hh>
00013 #include <lestes/md/common.hh>
00014 #include <lestes/md/functions/function_parameter_accessor_base.g.hh>
00015
00016 #include <lestes/std/objectize_macros.hh>
00017 package(lestes);
00018 package(std);
00019 class object;
00020 end_package(std);
00021 end_package(lestes);
00022
00023 package(lestes);
00024 package(lang);
00025 package(cplus);
00026 package(sem);
00027 class ss_function_declaration;
00028 end_package(sem);
00029 end_package(cplus);
00030 end_package(lang);
00031 end_package(lestes);
00032
00033 package(lestes);
00034 package(backend_v2);
00035 package(intercode);
00036 class pi_mem_factory;
00037 end_package(intercode);
00038 end_package(backend_v2);
00039 end_package(lestes);
00040
00041 package(lestes);
00042 package(md);
00043 package(functions);
00044
00045
00046 class function_parameter_accessor;
00047
00048
00049
00050 class function_parameter_accessor : public function_parameter_accessor_base {
00051 public:
00052
00053 ptr< ::lestes::backend_v2::intercode::pi_mem_factory > this_par_get() const;
00054
00055
00056 void this_par_set(const ptr< ::lestes::backend_v2::intercode::pi_mem_factory > &);
00057
00058
00059 ptr< ::lestes::backend_v2::intercode::pi_mem_factory > ret_val_par_get() const;
00060
00061
00062 void ret_val_par_set(const ptr< ::lestes::backend_v2::intercode::pi_mem_factory > &);
00063
00064
00065 t_ptrdiff this_end_offset_get() const;
00066
00067
00068 void this_end_offset_set(t_ptrdiff);
00069
00070
00071 t_ptrdiff ret_val_end_offset_get() const;
00072
00073
00074 void ret_val_end_offset_set(t_ptrdiff);
00075
00076
00077 ptr< ::lestes::std::map< ulint, srp< ::lestes::backend_v2::intercode::pi_mem_factory > > > params_get() const;
00078
00079
00080 void params_set(const ptr< ::lestes::std::map< ulint, srp< ::lestes::backend_v2::intercode::pi_mem_factory > > > & );
00081
00082
00083 static ptr< ::lestes::std::map< srp< ::lestes::lang::cplus::sem::ss_function_declaration >, srp< function_parameter_accessor > > > singleton_instances_get();
00084
00085
00086 static void singleton_instances_set(const ptr< ::lestes::std::map< srp< ::lestes::lang::cplus::sem::ss_function_declaration >, srp< function_parameter_accessor > > > & );
00087
00088
00089 virtual ptr< ::lestes::backend_v2::intercode::pi_mem_factory > get_parameter(ulint index);
00090
00091
00092 virtual ptr< ::lestes::backend_v2::intercode::pi_mem_factory > get_this();
00093
00094
00095 virtual ptr< ::lestes::backend_v2::intercode::pi_mem_factory > get_ret_val();
00096
00097 static ptr< function_parameter_accessor > instance(ptr< ::lestes::lang::cplus::sem::ss_function_declaration > function);
00098
00099
00100
00101 static ptr< function_parameter_accessor > create (
00102 ptr< ::lestes::lang::cplus::sem::ss_function_declaration > a__function_parameter_accessor_base__function,
00103 ptr< ::lestes::backend_v2::intercode::pi_mem_factory > a__function_parameter_accessor__this_par,
00104 ptr< ::lestes::backend_v2::intercode::pi_mem_factory > a__function_parameter_accessor__ret_val_par,
00105 t_ptrdiff a__function_parameter_accessor__this_end_offset,
00106 t_ptrdiff a__function_parameter_accessor__ret_val_end_offset,
00107 ptr< ::lestes::std::map< ulint, srp< ::lestes::backend_v2::intercode::pi_mem_factory > > > a__function_parameter_accessor__params);
00108
00109
00110 static ptr< function_parameter_accessor > create (
00111 ptr< ::lestes::lang::cplus::sem::ss_function_declaration > a__function_parameter_accessor_base__function);
00112
00113
00114
00115
00116 virtual ptr<reflection_list> reflection_get() const;
00117
00118 virtual ptr<field_list_list> field_values_get() const;
00119
00120 protected:
00121
00122 function_parameter_accessor (
00123 ptr< ::lestes::lang::cplus::sem::ss_function_declaration > a__function_parameter_accessor_base__function,
00124 ptr< ::lestes::backend_v2::intercode::pi_mem_factory > a__function_parameter_accessor__this_par,
00125 ptr< ::lestes::backend_v2::intercode::pi_mem_factory > a__function_parameter_accessor__ret_val_par,
00126 t_ptrdiff a__function_parameter_accessor__this_end_offset,
00127 t_ptrdiff a__function_parameter_accessor__ret_val_end_offset,
00128 ptr< ::lestes::std::map< ulint, srp< ::lestes::backend_v2::intercode::pi_mem_factory > > > a__function_parameter_accessor__params);
00129
00130
00131 virtual void gc_mark();
00132
00133 private:
00134
00135 srp< ::lestes::backend_v2::intercode::pi_mem_factory > this_par;
00136
00137 srp< ::lestes::backend_v2::intercode::pi_mem_factory > ret_val_par;
00138
00139 t_ptrdiff this_end_offset;
00140
00141 t_ptrdiff ret_val_end_offset;
00142
00143 srp< ::lestes::std::map< ulint, srp< ::lestes::backend_v2::intercode::pi_mem_factory > > > params;
00144 static ptr< ::lestes::std::map< srp< ::lestes::lang::cplus::sem::ss_function_declaration >, srp< function_parameter_accessor > > > singleton_instances;
00145 static ptr<reflection_list> reflection;
00146
00147 };
00148
00149
00150 end_package(functions);
00151 end_package(md);
00152 end_package(lestes);
00153
00154 #endif // lestes__md__functions__function_parameter_accessor_g_hh__included