00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef lestes__md__types__ss_type2tm_type_convertor_g_hh__included
00010 #define lestes__md__types__ss_type2tm_type_convertor_g_hh__included
00011
00012 #include <lestes/common.hh>
00013 #include <lestes/md/common.hh>
00014
00015 #include <lestes/std/objectize_macros.hh>
00016 package(lestes);
00017 package(std);
00018 class object;
00019 end_package(std);
00020 end_package(lestes);
00021
00022 package(lestes);
00023 package(md);
00024 package(types);
00025 class tm_data_type_base;
00026 end_package(types);
00027 end_package(md);
00028 end_package(lestes);
00029
00030 package(lestes);
00031 package(lang);
00032 package(cplus);
00033 package(sem);
00034 class ss_type;
00035 end_package(sem);
00036 end_package(cplus);
00037 end_package(lang);
00038 end_package(lestes);
00039
00040 package(lestes);
00041 package(md);
00042 package(types);
00043
00044
00045 class ss_type2tm_type;
00046 class ss_type2tm_type_convertor;
00047
00048
00049
00050 class ss_type2tm_type_convertor : public ::lestes::std::object {
00051 public:
00052
00053 static ptr< ss_type2tm_type_convertor > singleton_instance_get();
00054
00055
00056 static void singleton_instance_set(const ptr< ss_type2tm_type_convertor > &);
00057
00058
00059 ptr< ss_type2tm_type > convertor_get() const;
00060
00061
00062 void convertor_set(const ptr< ss_type2tm_type > &);
00063
00064 static ptr< ss_type2tm_type_convertor > instance();
00065
00066
00067 ptr< ::lestes::md::types::tm_data_type_base > convert(ptr< ::lestes::lang::cplus::sem::ss_type > type);
00068
00069
00070 ptr< ::lestes::md::types::tm_data_type_base > conditional_preg_type_get();
00071
00072
00073
00074 static ptr< ss_type2tm_type_convertor > create (
00075 ptr< ss_type2tm_type > a__ss_type2tm_type_convertor__convertor);
00076
00077
00078 static ptr< ss_type2tm_type_convertor > create (
00079 );
00080
00081
00082
00083
00084 virtual ptr<reflection_list> reflection_get() const;
00085
00086 virtual ptr<field_list_list> field_values_get() const;
00087
00088 protected:
00089
00090 ss_type2tm_type_convertor (
00091 ptr< ss_type2tm_type > a__ss_type2tm_type_convertor__convertor);
00092
00093
00094 virtual void gc_mark();
00095
00096 private:
00097 static ptr< ss_type2tm_type_convertor > singleton_instance;
00098
00099 srp< ss_type2tm_type > convertor;
00100 static ptr<reflection_list> reflection;
00101
00102 };
00103
00104
00105 end_package(types);
00106 end_package(md);
00107 end_package(lestes);
00108
00109 #endif // lestes__md__types__ss_type2tm_type_convertor_g_hh__included