.
[clean-tests.git] / cloudiTasks / cloudiTasks.icl
index b80d5b0..73dec05 100644 (file)
@@ -13,11 +13,25 @@ master
 //     >-| asyncTask (ExistingNode "localhost" 9099) (blockWait 5)
 //     >-| asyncTask "localhost" 9090 (blockWait 5)
 //     >-| asyncTask (PrivateNode 9099) (traceValue 5 >-| traceValue 42)
-//     >-| asyncTaskSpawn 9099 (return 42)
-       >-| sleepSortPar [5,1,3,8]
+       >-| asyncTaskSpawn 9099 (return 42)
+       >-| asyncTaskSpawn 9099 (updateInformation [] 42)
+//     >-| (updateInformation [] 42 -&&- updateInformation [] 22) @. ("localhost", 9099)
+//     >-| asyncTaskSpawn 9099 (updateInformation [] 42 -&&- updateInformation [] 22)
+//     >-| sleepSortPar [5,1,3,8]
        >&^ viewSharedInformation []
        @! ()
 
+asyncTaskChannel :: !String !Int !((sds () (Queue r) w) -> Task a) !((sds () (Queue w) r) -> Task b) -> Task (a, b)
+asyncTaskChannel host port remote local
+       =    asyncTask host port (remote shareTo)
+       -&&- 
+where
+       shareTo :: (sds () (Queue r) (Queue r))
+       shareTo = sdsFocus ("to-" +++ host +++ toString port) $ memoryStore "asyncITasks-channels" (Just newQueue)
+
+       shareFro :: (sds () (Queue w) (Queue w))
+       shareFro = sdsFocus ("fro-" +++ host +++ toString port) $ memoryStore "asyncITasks-channels" (Just newQueue)
+
 blockWait :: Int -> Task Int
 blockWait i = accWorld (sleep i)
 where