blob: be2328fef6c1ff330237acb7bfd44843ff42e83c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
#ifndef _SCRIPTINGTYPEREGISTRY_Y_
#define _SCRIPTINGTYPEREGISTRY_Y_
#if ENABLE_SCRIPTING
#include <map>
#include <string>
#include "ScriptingTypes.h"
#include "IScriptingTypeProvider.h"
class ScriptingTypeRegistry
{
public:
ScriptingTypeRegistry(IScriptingTypeProvider* scriptingTypeProvider);
ScriptingTypePtr GetType(const char* namespaze, const char* name);
ScriptingTypePtr GetType(BackendNativeType nativeType);
ScriptingTypePtr GetType(ScriptingObjectPtr systemTypeInstance);
void InvalidateCache();
private:
typedef std::pair<std::string,std::string> NameSpaceAndNamePair;
typedef std::map<NameSpaceAndNamePair, ScriptingTypePtr> Cache;
Cache m_Cache;
typedef std::map<void*, ScriptingTypePtr> NativeTypeCache;
NativeTypeCache m_NativeTypeCache;
IScriptingTypeProvider* m_ScriptingTypeProvider;
};
#endif
#endif
|