+struct EntityClassManager
+{
+ INTEGER_CONSTANT( Version, 1 );
+ STRING_CONSTANT( Name, "eclassmanager" );
+
+ EntityClass* ( *findOrInsert )( const char* name, bool has_brushes );
+ const ListAttributeType* ( *findListType )(const char* name);
+ void ( *forEach )( EntityClassVisitor& visitor );
+ void ( *attach )( ModuleObserver& observer );
+ void ( *detach )( ModuleObserver& observer );
+ void ( *realise )();
+ void ( *unrealise )();
+};
+
+template<typename Type>
+class GlobalModule;
+typedef GlobalModule<EntityClassManager> GlobalEntityClassManagerModule;
+
+template<typename Type>
+class GlobalModuleRef;
+typedef GlobalModuleRef<EntityClassManager> GlobalEntityClassManagerModuleRef;
+
+inline EntityClassManager& GlobalEntityClassManager(){
+ return GlobalEntityClassManagerModule::getTable();
+}
+
+#endif