00001
00002
00003 #ifndef lestes__md__literals__literal_loader_g_hh__included
00004 #define lestes__md__literals__literal_loader_g_hh__included
00005
00006 #include <lestes/std/map.hh>
00007 #include <lestes/md/common.hh>
00008 #include <lestes/md/literals/literal_loader_base.g.hh>
00009
00010 #include <lestes/std/objectize_macros.hh>
00011 package(lestes);
00012 package(std);
00013 class object;
00014 end_package(std);
00015 end_package(lestes);
00016
00017 package(lestes);
00018 package(backend_v2);
00019 package(intercode);
00020 class pi_lit;
00021 end_package(intercode);
00022 end_package(backend_v2);
00023 end_package(lestes);
00024
00025 package(lestes);
00026 package(backend_v2);
00027 package(intercode);
00028 class pi_pi;
00029 end_package(intercode);
00030 end_package(backend_v2);
00031 end_package(lestes);
00032
00033 package(lestes);
00034 package(backend_v2);
00035 package(intercode);
00036 class pi_sp;
00037 end_package(intercode);
00038 end_package(backend_v2);
00039 end_package(lestes);
00040
00041 package(lestes);
00042 package(backend_v2);
00043 package(intercode);
00044 class pi_preg;
00045 end_package(intercode);
00046 end_package(backend_v2);
00047 end_package(lestes);
00048
00049 package(lestes);
00050 package(md);
00051 package(literals);
00052
00053
00054 class literal_loader;
00055
00056
00057 class literal_loader : public literal_loader_base {
00058 public:
00059
00060 ptr< ::lestes::std::map< srp< ::lestes::backend_v2::intercode::pi_lit >, ulint > > managed_literals_get() const;
00061
00062
00063 void managed_literals_set(const ptr< ::lestes::std::map< srp< ::lestes::backend_v2::intercode::pi_lit >, ulint > > & );
00064
00065
00066 static ptr< literal_loader > singleton_instance_get();
00067
00068
00069 static void singleton_instance_set(const ptr< literal_loader > &);
00070
00071
00072 virtual ptr<list<srp< ::lestes::backend_v2::intercode::pi_pi> > > generate_load(ptr< ::lestes::backend_v2::intercode::pi_preg > preg, ptr< ::lestes::backend_v2::intercode::pi_lit > lit, ptr< ::lestes::backend_v2::intercode::pi_sp > psp, ptr< ::lestes::backend_v2::intercode::pi_sp > nsp);
00073
00074
00075 void emit_global_declarations(::std::ostream& output);
00076
00077
00078 bool is_managed(ptr< ::lestes::backend_v2::intercode::pi_lit > lit);
00079
00080
00081 lstring get_id_for_managed_literal(ptr< ::lestes::backend_v2::intercode::pi_lit > lit);
00082
00083 static ptr< literal_loader > instance();
00084
00085
00086
00087 static ptr< literal_loader > create (
00088 ptr< ::lestes::std::map< srp< ::lestes::backend_v2::intercode::pi_lit >, ulint > > a__literal_loader__managed_literals);
00089
00090
00091 static ptr< literal_loader > create (
00092 );
00093
00094
00095
00096
00097 virtual ptr<reflection_list> reflection_get() const;
00098
00099 virtual ptr<field_list_list> field_values_get() const;
00100
00101 protected:
00102
00103 literal_loader (
00104 ptr< ::lestes::std::map< srp< ::lestes::backend_v2::intercode::pi_lit >, ulint > > a__literal_loader__managed_literals);
00105
00106
00107 virtual void gc_mark();
00108
00109 private:
00110
00111 srp< ::lestes::std::map< srp< ::lestes::backend_v2::intercode::pi_lit >, ulint > > managed_literals;
00112 static ptr< literal_loader > singleton_instance;
00113 static ptr<reflection_list> reflection;
00114
00115 };
00116
00117
00118 end_package(literals);
00119 end_package(md);
00120 end_package(lestes);
00121
00122 #endif // lestes__md__literals__literal_loader_g_hh__included