import mTask
import Devices.mTaskDevice
-derive class iTask MTaskShareType, MTaskShare
+derive class iTask MTaskShare
-:: MTaskShareType = MTaskWithShare String | MTaskLens String
:: MTaskShare =
{withTask :: [String]
- ,withDevice :: [MTaskDevice]
,identifier :: Int
- ,realShare :: MTaskShareType
,value :: BCValue
}
-manageShares :: [MTaskShare] -> Task ()
+instance == MTaskShare
-///makeShare :: String Int Dynamic -> Task MTaskShare
-makeShare :: String MTaskDevice Int BCValue -> Task MTaskShare
+//Constructor
+makeShare :: String Int BCValue -> MTaskShare
-updateShare :: Int BCValue -> Task ()
+//General viewing task
+manageShares :: Task [MTaskDevice]
+//manageShares :: [MTaskShare] -> Task MTaskShare
+
+updateShares :: MTaskDevice ([MTaskShare] -> [MTaskShare]) -> Task [MTaskShare]
+
+//Clean out shares when a task has been removed
+cleanSharesTask :: Int MTaskDevice -> Task [MTaskShare]
+//cleanSharesTask :: Int MTaskDevice -> Task [MTaskShare]
+//Clean out shares when a device has been removed
+
+updateShareFromPublish :: MTaskDevice Int BCValue -> Task BCValue
+//updateShare :: Int BCValue -> Task [MTaskShare]
+
+getRealShare :: MTaskDevice MTaskShare -> Shared BCValue
+//getRealShare :: MTaskDevice BCShare -> Shared BCValue
+
+//updateShare :: Int BCValue -> Task ()