add device shares
[mTask.git] / Shares / mTaskShare.dcl
index 3af2eac..6cd08a9 100644 (file)
@@ -2,16 +2,39 @@ definition module Shares.mTaskShare
 
 import iTasks
 import iTasks._Framework.Serialization
+import mTask
+import Devices.mTaskDevice
+
+derive class iTask MTaskShare
+derive gPrint BCState
 
-derive class iTask MTaskShareType
-:: MTaskShareType = MTaskWithShare String | MTaskLens String
 :: MTaskShare =
-               {withTask :: String
-               ,identifier :: Int
-               ,realShare :: MTaskShareType
-               ,value :: String
+               {withTask  :: [String]
+               ,identifier:: Int
+               ,value     :: BCValue
+               ,humanName :: String
                }
 
-manageShares :: [MTaskShare] -> Task ()
+instance == MTaskShare
+
+//Constructor
+makeShare :: String String Int BCValue -> MTaskShare
+
+//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
 
-makeShare :: String Int String -> Task MTaskShare
+//updateShare :: Int BCValue -> Task ()