00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #include <lestes/std/list.hh>
00011 #include <lestes/std/pair.hh>
00012 #include <lestes/std/reflect.hh>
00013
00014 #include <lestes/md/registers/tm_register.g.hh>
00015
00016 package(lestes);
00017 package(md);
00018 package(registers);
00019
00020
00021
00022
00023
00024
00025
00026
00027 ptr< ::lestes::std::map< tm_register_base::id_type, srp< tm_register > > > tm_register::id_to_instance_get()
00028 {
00029 return id_to_instance;
00030 }
00031
00032
00033
00034
00035
00036 void tm_register::id_to_instance_set(const ptr< ::lestes::std::map< tm_register_base::id_type, srp< tm_register > > > & x)
00037 {
00038 tm_register::id_to_instance = x;
00039 }
00040
00041
00042
00043
00044
00045 ptr< tm_register > tm_register::create(tm_register_base::id_type a__tm_register_base__id,
00046 ulint a__tm_register_base__bitwidth,
00047 ptr< ::lestes::std::set< ::lestes::md::types::tm_data_type_base::id_type > > a__tm_register_base__compatible_types,
00048 ptr< ::lestes::std::set< tm_register_base::id_type > > a__tm_register_base__aliases,
00049 ptr< ::lestes::std::set< ulint > > a__tm_register_base__move_templates,
00050 lstring a__tm_register_base__asm_output,
00051 ulint a__tm_register_base__flags)
00052 {
00053 return ptr< tm_register > ( new tm_register(a__tm_register_base__id,
00054 a__tm_register_base__bitwidth,
00055 a__tm_register_base__compatible_types,
00056 a__tm_register_base__aliases,
00057 a__tm_register_base__move_templates,
00058 a__tm_register_base__asm_output,
00059 a__tm_register_base__flags) );
00060 }
00061
00062
00063
00064
00065
00066 ptr< tm_register > tm_register::create(tm_register_base::id_type a__tm_register_base__id,
00067 ulint a__tm_register_base__bitwidth,
00068 ptr< ::lestes::std::set< ::lestes::md::types::tm_data_type_base::id_type > > a__tm_register_base__compatible_types,
00069 ptr< ::lestes::std::set< tm_register_base::id_type > > a__tm_register_base__aliases,
00070 ptr< ::lestes::std::set< ulint > > a__tm_register_base__move_templates,
00071 lstring a__tm_register_base__asm_output)
00072 {
00073 return ptr< tm_register > ( new tm_register(a__tm_register_base__id, a__tm_register_base__bitwidth, a__tm_register_base__compatible_types, a__tm_register_base__aliases, a__tm_register_base__move_templates, a__tm_register_base__asm_output, 0) );
00074 }
00075
00076
00077
00078
00079
00080 tm_register::tm_register (tm_register_base::id_type a__tm_register_base__id,
00081 ulint a__tm_register_base__bitwidth,
00082 ptr< ::lestes::std::set< ::lestes::md::types::tm_data_type_base::id_type > > a__tm_register_base__compatible_types,
00083 ptr< ::lestes::std::set< tm_register_base::id_type > > a__tm_register_base__aliases,
00084 ptr< ::lestes::std::set< ulint > > a__tm_register_base__move_templates,
00085 lstring a__tm_register_base__asm_output,
00086 ulint a__tm_register_base__flags)
00087 : tm_register_base(a__tm_register_base__id,
00088 a__tm_register_base__bitwidth,
00089 a__tm_register_base__compatible_types,
00090 a__tm_register_base__aliases,
00091 a__tm_register_base__move_templates,
00092 a__tm_register_base__asm_output,
00093 a__tm_register_base__flags)
00094 {}
00095
00096 ptr< object::reflection_list > tm_register::reflection_get() const
00097 {
00098 if (!reflection) {
00099 typedef class_reflection::field_metadata md;
00100 typedef class_reflection::field_metadata_list mdlist;
00101 ptr<mdlist> mdl = mdlist::create();
00102 mdl->push_back( md::create( "id_to_instance", "map< tm_register_base::id_type, srp< tm_register > >" ) );
00103 reflection = reflection_list::create( tm_register_base::reflection_get() );
00104 reflection->push_back( class_reflection::create( "tm_register", mdl ) );
00105 }
00106 return reflection;
00107 }
00108
00109 ptr< object::field_list_list > tm_register::field_values_get() const
00110 {
00111 ptr < field_list_list > result = tm_register_base::field_values_get();
00112 result->push_back( value_list::create() );
00113 result->back()->push_back( this->id_to_instance );
00114 return result;
00115 }
00116
00117
00118
00119
00120
00121
00122 void tm_register::gc_mark()
00123 {
00124 tm_register_base::gc_mark();
00125 }
00126
00127
00128
00129
00130
00131 ptr< ::lestes::std::map< tm_register_base::id_type, srp< tm_register > > > tm_register::id_to_instance = ::lestes::std::map< tm_register_base::id_type, srp< tm_register > > ::create();
00132 ptr<object::reflection_list> tm_register::reflection = reflection;
00133
00134 end_package(registers);
00135 end_package(md);
00136 end_package(lestes);
00137