199 class CLASS_DECL_ACME factory :
200 virtual public ::particle
206 factory_base_by_string m_mapByTypeName;
207 factory_base_by_string m_mapByCustomNameId2;
208 factory_base_by_type_index m_mapByTypeIndex;
209 factory_base_by_custom_ipair_id m_mapByCustomIpairId;
211 ::pointer<::acme::library> m_plibrary;
213 ::string m_strArgument;
240 bool has_factory_item_by_type_index(const ::std::type_index & typeindex)
const;
241 bool has_factory_item_by_type_name(const ::scoped_string & scopedstrTypeName)
const;
242 bool has_factory_item_by_custom_id(const ::type_custom_id & typecustomid)
const;
243 bool has_factory_item(const ::platform::type & type)
const;
246 template<
typename ORIGIN_TYPE>
247 bool has_factory_item()
const
250 auto typeindex = ::std::type_index(
typeid(ORIGIN_TYPE));
252 return this->has_factory_item_by_type_index(typeindex);
257 template<
typename ORIGIN_TYPE>
258 inline pointer< ::factory::factory_item_base < ORIGIN_TYPE > > find_factory_item()
const
261 auto typeindex = ::std::type_index(
typeid(ORIGIN_TYPE));
263 auto pfactoryiteminterface = this->_find_factory_item_by_type_index(typeindex);
265 pointer< ::factory::factory_item_base < ORIGIN_TYPE > > pfactoryitembase;
267 pfactoryitembase = pfactoryiteminterface;
269 return pfactoryitembase;
276 template <
typename ORIGIN_TYPE >
277 inline ::factory::factory_item_interface * get_factory_item()
const;
283 template <
typename BASE_TYPE >
284 inline bool __call__defer_construct(::particle * pparticle, ::pointer<BASE_TYPE> & ptype);
285 template <
typename TYPE,
typename ORIGIN_TYPE>
286 inline pointer< ::factory::factory_item_base < ORIGIN_TYPE > > _add_factory_item_from(const ::platform::type & typeSource);
289#if REFERENCING_DEBUGGING
292 factory * __call__add_referer2(const ::reference_referer & referer)
const;
299 template <
typename TYPE,
typename ORIGIN_TYPE = TYPE >
300 inline pointer< ::factory::factory_item_base < ORIGIN_TYPE > > add_factory_item();
302 template <
typename TYPE,
typename ORIGIN_TYPE = TYPE >
303 inline pointer< ::factory::factory_item_base < ORIGIN_TYPE > > defer_add_factory_item()
306 auto pfactoryitem = this->find_factory_item<ORIGIN_TYPE>();
311 pfactoryitem = add_factory_item<TYPE, ORIGIN_TYPE>();
320 template <
typename ORIGIN_TYPE >
321 inline pointer< ::factory::factory_item_base < ORIGIN_TYPE > > add_factory_item_with_custom_id(const ::type_custom_id & typecustomid);
324 virtual void set_factory_item_by_custom_id(const ::type_custom_id & typecustomid, const ::pointer<::factory::factory_item_interface> & pfactoryitem);
325 virtual void set_factory_item_by_type(const ::platform::type & type, const ::pointer<::factory::factory_item_interface> & pfactoryitem);
327 template <
typename TYPE,
typename ORIGIN_TYPE>
328 inline pointer< ::factory::factory_item_base < ORIGIN_TYPE > > create_reusable_factory_item();
330 template <
typename ORIGIN_TYPE >
331 inline ::pointer<ORIGIN_TYPE>__call__create(::particle * pparticle);
333 void merge(const ::factory::factory* pfactory);
335 void merge_to_global_factory()
const;
337 void set_currently_loading_library();
341 template <
typename ORIGIN_TYPE >
342 inline void __defer_raw_construct( ::pointer<ORIGIN_TYPE> & p)
348 this->øraw_construct(p);
355 template <
typename ORIGIN_TYPE >
356 inline void __call__construct(::particle * pparticleInitializer, ::pointer<ORIGIN_TYPE> & p);
359 template <
typename ORIGIN_TYPE >
360 inline void __call__raw_construct(::pointer<ORIGIN_TYPE> & p);
365 virtual ::particle_pointer __call__create_by_custom_id(const ::type_custom_id & typecustomid, ::particle* pparticle);
Definition subparticle.h:78