package diagram import ( "errors" "fmt" "sync" ) // diagramsOverview define struct of storage all circuit diagram data var diagramsOverview sync.Map // GetComponentMap define func of get circuit diagram data by component id func GetComponentMap(componentID int64) (map[string]interface{}, error) { value, ok := diagramsOverview.Load(componentID) if !ok { return nil, fmt.Errorf("can not find graph by global uuid:%d", componentID) } paramsMap, ok := value.(map[string]interface{}) if !ok { return nil, errors.New("convert to component map struct failed") } return paramsMap, nil } // UpdateComponentMap define func of update circuit diagram data by component id and component info func UpdateComponentMap(componentID int64, componentInfo map[string]interface{}) bool { _, result := diagramsOverview.Swap(componentID, componentInfo) return result } // StoreComponentMap define func of store circuit diagram data with component id and component info func StoreComponentMap(componentID int64, componentInfo map[string]interface{}) { diagramsOverview.Store(componentID, componentInfo) return } // DeleteComponentMap define func of delete circuit diagram data with component id func DeleteComponentMap(componentID int64) { diagramsOverview.Delete(componentID) return }