|
|
@@ -60,15 +60,38 @@ func GetAll() *variableBase {
|
|
|
}
|
|
|
|
|
|
func GetEntities() entitiesByClass {
|
|
|
- return contents.Entities
|
|
|
+ rwmutex.RLock()
|
|
|
+
|
|
|
+ copiedEntities := make(entitiesByClass, len(contents.Entities))
|
|
|
+
|
|
|
+ for entityName, entityInstances := range contents.Entities {
|
|
|
+ copiedInstances := make(entityInstancesByKey, len(entityInstances))
|
|
|
+
|
|
|
+ for key, entity := range entityInstances {
|
|
|
+ copiedInstances[key] = entity
|
|
|
+ }
|
|
|
+ copiedEntities[entityName] = copiedInstances
|
|
|
+ }
|
|
|
+
|
|
|
+ rwmutex.RUnlock()
|
|
|
+
|
|
|
+ return copiedEntities
|
|
|
}
|
|
|
|
|
|
func GetEntityInstances(entityName string) entityInstancesByKey {
|
|
|
+ rwmutex.RLock()
|
|
|
+ defer rwmutex.RUnlock()
|
|
|
+
|
|
|
if entities, ok := contents.Entities[entityName]; ok {
|
|
|
- return entities
|
|
|
+ copiedInstances := make(entityInstancesByKey, len(entities))
|
|
|
+
|
|
|
+ for key, entity := range entities {
|
|
|
+ copiedInstances[key] = entity
|
|
|
+ }
|
|
|
+ return copiedInstances
|
|
|
}
|
|
|
|
|
|
- return nil
|
|
|
+ return make(entityInstancesByKey, 0)
|
|
|
}
|
|
|
|
|
|
func AddEntity(entityName string, entityKey string, data any) {
|