00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef lestes__md__registers__tm_register_g_hh__included
00010 #define lestes__md__registers__tm_register_g_hh__included
00011
00012 #include <lestes/std/map.hh>
00013 #include <lestes/md/common.hh>
00014 #include <lestes/md/registers/tm_register_base.g.hh>
00015 #include <lestes/md/registers/tm_register.mdg.hh>
00016
00017 #include <lestes/std/objectize_macros.hh>
00018 package(lestes);
00019 package(std);
00020 class object;
00021 end_package(std);
00022 end_package(lestes);
00023
00024 package(lestes);
00025 package(md);
00026 package(registers);
00027
00028
00029 class tm_register;
00030
00031
00032 class tm_register : public tm_register_base {
00033 public:
00034
00035 static ptr< ::lestes::std::map< tm_register_base::id_type, srp< tm_register > > > id_to_instance_get();
00036
00037
00038 static void id_to_instance_set(const ptr< ::lestes::std::map< tm_register_base::id_type, srp< tm_register > > > & );
00039
00040
00041 static ptr< tm_register > instance(tm_register_base::id_type id);
00042
00043
00044
00045 static ptr< tm_register > create (
00046 tm_register_base::id_type a__tm_register_base__id,
00047 ulint a__tm_register_base__bitwidth,
00048 ptr< ::lestes::std::set< ::lestes::md::types::tm_data_type_base::id_type > > a__tm_register_base__compatible_types,
00049 ptr< ::lestes::std::set< tm_register_base::id_type > > a__tm_register_base__aliases,
00050 ptr< ::lestes::std::set< ulint > > a__tm_register_base__move_templates,
00051 lstring a__tm_register_base__asm_output,
00052 ulint a__tm_register_base__flags);
00053
00054
00055 static ptr< tm_register > create (
00056 tm_register_base::id_type a__tm_register_base__id,
00057 ulint a__tm_register_base__bitwidth,
00058 ptr< ::lestes::std::set< ::lestes::md::types::tm_data_type_base::id_type > > a__tm_register_base__compatible_types,
00059 ptr< ::lestes::std::set< tm_register_base::id_type > > a__tm_register_base__aliases,
00060 ptr< ::lestes::std::set< ulint > > a__tm_register_base__move_templates,
00061 lstring a__tm_register_base__asm_output);
00062
00063
00064
00065
00066 virtual ptr<reflection_list> reflection_get() const;
00067
00068 virtual ptr<field_list_list> field_values_get() const;
00069
00070 protected:
00071
00072 tm_register (
00073 tm_register_base::id_type a__tm_register_base__id,
00074 ulint a__tm_register_base__bitwidth,
00075 ptr< ::lestes::std::set< ::lestes::md::types::tm_data_type_base::id_type > > a__tm_register_base__compatible_types,
00076 ptr< ::lestes::std::set< tm_register_base::id_type > > a__tm_register_base__aliases,
00077 ptr< ::lestes::std::set< ulint > > a__tm_register_base__move_templates,
00078 lstring a__tm_register_base__asm_output,
00079 ulint a__tm_register_base__flags);
00080
00081
00082 virtual void gc_mark();
00083
00084 private:
00085
00086 static ptr< ::lestes::std::map< tm_register_base::id_type, srp< tm_register > > > id_to_instance;
00087 static ptr<reflection_list> reflection;
00088
00089 };
00090
00091
00092 end_package(registers);
00093 end_package(md);
00094 end_package(lestes);
00095
00096 #endif // lestes__md__registers__tm_register_g_hh__included