2022-04-10 00:17:06 +00:00
|
|
|
#ifndef _CFACTORYMGR_HPP
|
|
|
|
#define _CFACTORYMGR_HPP
|
|
|
|
|
|
|
|
#include "types.h"
|
|
|
|
|
2022-08-09 23:03:51 +00:00
|
|
|
#include "Kyoto/IObjectStore.hpp"
|
|
|
|
#include "Kyoto/Streams/CInputStream.hpp"
|
2022-09-18 06:05:46 +00:00
|
|
|
#include "Kyoto/TToken.hpp"
|
2022-07-14 16:24:26 +00:00
|
|
|
|
2022-04-10 00:17:06 +00:00
|
|
|
class CFactoryMgr {
|
|
|
|
public:
|
|
|
|
private:
|
|
|
|
u8 pad[0x38];
|
|
|
|
};
|
|
|
|
|
2022-07-14 16:24:26 +00:00
|
|
|
class CFactoryFnReturn {
|
|
|
|
public:
|
|
|
|
template < typename T >
|
|
|
|
CFactoryFnReturn(T* ptr);
|
|
|
|
// TODO this forces inlining, were they really manually specialized?
|
|
|
|
// : obj(TToken< T >::GetIObjObjectFor(ptr).release()) {}
|
|
|
|
|
|
|
|
private:
|
2022-08-13 01:26:00 +00:00
|
|
|
rstl::auto_ptr< CObjOwnerDerivedFromIObjUntyped > obj;
|
2022-07-14 16:24:26 +00:00
|
|
|
};
|
|
|
|
|
2022-09-18 06:05:46 +00:00
|
|
|
CFactoryFnReturn FStringTableFactory(const SObjectTag& tag, CInputStream& in,
|
|
|
|
const CVParamTransfer& xfer);
|
2022-07-14 16:24:26 +00:00
|
|
|
|
2022-04-10 00:17:06 +00:00
|
|
|
#endif
|