1 implementation module Utils.SDS
4 import iTasks._Framework.Store
5 import Devices.mTaskDevice
6 import Shares.mTaskShare
8 import qualified Data.Map as DM
9 from Data.Func import $
11 derive class iTask MTaskShare
13 memoryShare :: String a -> Shared a | iTask a
14 memoryShare s d = sdsFocus s $ memoryStore "" $ Just d
16 deviceStore :: Shared [MTaskDevice]
17 deviceStore = sharedStore "mTaskDevices" []
19 sdsStore :: Shared [MTaskShare]
20 sdsStore = memoryShare "mTaskShares" []
22 bcStateStore :: Shared BCState
23 bcStateStore = memoryShare "mTaskBCState" zero
25 mTaskTaskStore :: Shared [String]
26 mTaskTaskStore = memoryShare "mTaskTasks" $ 'DM'.keys allmTasks
28 getSDSStore :: MTaskShare -> Shared Int
29 getSDSStore sh = memoryShare sh.realShare 0
31 getSDSRecord :: Int -> Task MTaskShare
32 getSDSRecord i = get sdsStore @ \l->hd [s\\s<-l | s.identifier == i]