00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 INLINE void
00030 register_type(TypeHandle &type_handle, const string &name) {
00031 TypeRegistry::ptr()->register_type(type_handle, name);
00032 }
00033 INLINE void
00034 register_type(TypeHandle &type_handle, const string &name,
00035 TypeHandle parent1) {
00036 if (TypeRegistry::ptr()->register_type(type_handle, name)) {
00037 TypeRegistry::ptr()->record_derivation(type_handle, parent1);
00038 }
00039 }
00040 INLINE void
00041 register_type(TypeHandle &type_handle, const string &name,
00042 TypeHandle parent1, TypeHandle parent2) {
00043 if (TypeRegistry::ptr()->register_type(type_handle, name)) {
00044 TypeRegistry::ptr()->record_derivation(type_handle, parent1);
00045 TypeRegistry::ptr()->record_derivation(type_handle, parent2);
00046 }
00047 }
00048 INLINE void
00049 register_type(TypeHandle &type_handle, const string &name,
00050 TypeHandle parent1, TypeHandle parent2,
00051 TypeHandle parent3) {
00052 if (TypeRegistry::ptr()->register_type(type_handle, name)) {
00053 TypeRegistry::ptr()->record_derivation(type_handle, parent1);
00054 TypeRegistry::ptr()->record_derivation(type_handle, parent2);
00055 TypeRegistry::ptr()->record_derivation(type_handle, parent3);
00056 }
00057 }
00058 INLINE void
00059 register_type(TypeHandle &type_handle, const string &name,
00060 TypeHandle parent1, TypeHandle parent2,
00061 TypeHandle parent3, TypeHandle parent4) {
00062 if (TypeRegistry::ptr()->register_type(type_handle, name)) {
00063 TypeRegistry::ptr()->record_derivation(type_handle, parent1);
00064 TypeRegistry::ptr()->record_derivation(type_handle, parent2);
00065 TypeRegistry::ptr()->record_derivation(type_handle, parent3);
00066 TypeRegistry::ptr()->record_derivation(type_handle, parent4);
00067 }
00068 }
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078 INLINE TypeHandle
00079 register_dynamic_type(const string &name) {
00080 return TypeRegistry::ptr()->register_dynamic_type(name);
00081 }
00082 INLINE TypeHandle
00083 register_dynamic_type(const string &name, TypeHandle parent1) {
00084 TypeHandle type_handle =
00085 TypeRegistry::ptr()->register_dynamic_type(name);
00086 TypeRegistry::ptr()->record_derivation(type_handle, parent1);
00087 return type_handle;
00088 }
00089 INLINE TypeHandle
00090 register_dynamic_type(const string &name,
00091 TypeHandle parent1, TypeHandle parent2) {
00092 TypeHandle type_handle =
00093 TypeRegistry::ptr()->register_dynamic_type(name);
00094 TypeRegistry::ptr()->record_derivation(type_handle, parent1);
00095 TypeRegistry::ptr()->record_derivation(type_handle, parent2);
00096 return type_handle;
00097 }
00098 INLINE TypeHandle
00099 register_dynamic_type(const string &name,
00100 TypeHandle parent1, TypeHandle parent2,
00101 TypeHandle parent3) {
00102 TypeHandle type_handle =
00103 TypeRegistry::ptr()->register_dynamic_type(name);
00104 TypeRegistry::ptr()->record_derivation(type_handle, parent1);
00105 TypeRegistry::ptr()->record_derivation(type_handle, parent2);
00106 TypeRegistry::ptr()->record_derivation(type_handle, parent3);
00107 return type_handle;
00108 }
00109 INLINE TypeHandle
00110 register_dynamic_type(const string &name,
00111 TypeHandle parent1, TypeHandle parent2,
00112 TypeHandle parent3, TypeHandle parent4) {
00113 TypeHandle type_handle =
00114 TypeRegistry::ptr()->register_dynamic_type(name);
00115 TypeRegistry::ptr()->record_derivation(type_handle, parent1);
00116 TypeRegistry::ptr()->record_derivation(type_handle, parent2);
00117 TypeRegistry::ptr()->record_derivation(type_handle, parent3);
00118 TypeRegistry::ptr()->record_derivation(type_handle, parent4);
00119 return type_handle;
00120 }