diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..52a0a10 --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ +.tcachedata +.stack-work +*.hi +*.o +demos/bin/* +demos/.build diff --git a/Data/Persistent/IDynamic.hs b/Data/Persistent/IDynamic.hs index f2f516f..4c53f8c 100644 --- a/Data/Persistent/IDynamic.hs +++ b/Data/Persistent/IDynamic.hs @@ -1,5 +1,4 @@ {-# OPTIONS -XExistentialQuantification - -XOverlappingInstances -XUndecidableInstances -XScopedTypeVariables -XDeriveDataTypeable @@ -121,14 +120,14 @@ serializedEqual (IDyn r) str= unsafePerformIO $ do case t of DRight x -> return $ runW (showp x) == str -- !> ("R "++ (show $ unpack $ runW (showp x))) DLeft (str', _) -> return $ str== str' -- !> ("L "++ (show $ unpack str' )) - + fromIDyn :: (Typeable a , Serialize a)=> IDynamic -> a fromIDyn x= case safeFromIDyn x of Left s -> error s Right v -> v -safeFromIDyn :: (Typeable a, Serialize a) => IDynamic -> Either String a +safeFromIDyn :: (Typeable a, Serialize a) => IDynamic -> Either String a safeFromIDyn (d@(IDyn r))= final where final= unsafePerformIO $ do t <- readIORef r diff --git a/Data/TCache.hs b/Data/TCache.hs index d908103..811a4c9 100644 --- a/Data/TCache.hs +++ b/Data/TCache.hs @@ -713,7 +713,7 @@ getResource r= do{mr<- getResources [r];return $! head mr} getResources:: (IResource a, Typeable a)=>[a]-> IO [Maybe a] getResources rs= atomically $ withSTMResources rs f1 where f1 mrs= Resources [] [] mrs - + -- | Delete the resource from cache and from persistent storage. -- @@ -781,33 +781,33 @@ releaseTPVars rs cache = mapM_ (releaseTPVar cache) rs releaseTPVar :: (IResource a,Typeable a)=> Ht -> a -> STM () releaseTPVar cache r =do - c <- unsafeIOToSTM $ H.lookup cache keyr - case c of - Just (CacheElem _ w) -> do - mr <- unsafeIOToSTM $ deRefWeak w - case mr of - Nothing -> unsafeIOToSTM (finalize w) >> releaseTPVar cache r - Just dbref@(DBRef key tv) -> do - applyTriggers [dbref] [Just (castErr r)] + c <- unsafeIOToSTM $ H.lookup cache keyr + case c of + Just (CacheElem _ w) -> do + mr <- unsafeIOToSTM $ deRefWeak w + case mr of + Nothing -> unsafeIOToSTM (finalize w) >> releaseTPVar cache r + Just dbref@(DBRef key tv) -> do + applyTriggers [dbref] [Just (castErr r)] t <- unsafeIOToSTM timeInteger - writeTVar tv . Exist $ Elem (castErr r) t t - + writeTVar tv . Exist $ Elem (castErr r) t t + + + Nothing -> do + ti <- unsafeIOToSTM timeInteger + tvr <- newTVar NotRead + dbref <- unsafeIOToSTM . evaluate $ DBRef keyr tvr + applyTriggers [dbref] [Just r] + writeTVar tvr . Exist $ Elem r ti ti + w <- unsafeIOToSTM . mkWeakPtr dbref $ Just $ fixToCache dbref + unsafeIOToSTM $ H.insert cache keyr (CacheElem (Just dbref) w)-- accesed and modified XXX + return () + + + where keyr= keyResource r - Nothing -> do - ti <- unsafeIOToSTM timeInteger - tvr <- newTVar NotRead - dbref <- unsafeIOToSTM . evaluate $ DBRef keyr tvr - applyTriggers [dbref] [Just r] - writeTVar tvr . Exist $ Elem r ti ti - w <- unsafeIOToSTM . mkWeakPtr dbref $ Just $ fixToCache dbref - unsafeIOToSTM $ H.insert cache keyr (CacheElem (Just dbref) w)-- accesed and modified XXX - return () - - - where keyr= keyResource r - delListFromHash :: IResource a => Ht -> [a] -> STM () delListFromHash cache xs= mapM_ del xs @@ -829,7 +829,7 @@ delListFromHash cache xs= mapM_ del xs updateListToHash hash kv= mapM (update1 hash) kv where - update1 h (k,v)= H.insert h k v + update1 h (k,v)= H.insert h k v @@ -847,8 +847,8 @@ clearSyncCacheProc time check sizeObjects= forkIO clear clear = do threadDelay $ time * 1000000 handle ( \ (e :: SomeException)-> hPutStr stderr (show e) >> clear ) $ do - clearSyncCache check sizeObjects -- !> "CLEAR" - clear + clearSyncCache check sizeObjects -- !> "CLEAR" + clear criticalSection mv f= bracket (takeMVar mv) @@ -932,7 +932,7 @@ clearSyncCache check sizeObjects= criticalSection saving $ do -- delete elems from the cache according with the checking criteria filtercache t cache lastSync elems= mapM_ filter elems - where + where filter (CacheElem Nothing w)= return() --alive because the dbref is being referenced elsewere filter (CacheElem (Just (DBRef key _)) w) = do mr <- deRefWeak w @@ -941,13 +941,13 @@ clearSyncCache check sizeObjects= criticalSection saving $ do Just (DBRef _ tv) -> atomically $ do r <- readTVar tv case r of - Exist (Elem x lastAccess _ ) -> - if check t lastAccess lastSync - then do + Exist (Elem x lastAccess _ ) -> + if check t lastAccess lastSync + then do unsafeIOToSTM . H.insert cache key $ CacheElem Nothing w writeTVar tv NotRead - else return () - _ -> return() + else return () + _ -> return() @@ -962,8 +962,8 @@ defaultCheck -> Integer -- ^ last cache syncronization (with the persisten storage) -> Bool -- ^ return true for all the elems not accesed since half the time between now and the last sync defaultCheck now lastAccess lastSync - | lastAccess > halftime = False - | otherwise = True + | lastAccess > halftime = False + | otherwise = True where halftime= now- (now-lastSync) `div` 2 @@ -1002,9 +1002,9 @@ extract elems lastSave= filter1 [] [] (0:: Int) elems r <- readTVar tvr case r of Exist (Elem r _ modTime) -> - if (modTime >= lastSave) - then filter1 (Filtered r:sav) tofilter (n+1) rest - else filter1 sav tofilter (n+1) rest -- !> ("rejected->" ++ keyResource r) + if (modTime >= lastSave) + then filter1 (Filtered r:sav) tofilter (n+1) rest + else filter1 sav tofilter (n+1) rest -- !> ("rejected->" ++ keyResource r) _ -> filter1 sav tofilter (n+1) rest diff --git a/Data/TCache/IResource.hs b/Data/TCache/IResource.hs index 43115da..c071e31 100644 --- a/Data/TCache/IResource.hs +++ b/Data/TCache/IResource.hs @@ -16,23 +16,23 @@ import Data.List(isInfixOf) {- | Must be defined for every object to be cached. -} -class IResource a where - {- The `keyResource string must be a unique since this is used to index it in the hash table. +class IResource a where + {- The `keyResource string must be a unique since this is used to index it in the hash table. when accessing a resource, the user must provide a partial object for wich the key can be obtained. for example: - + @data Person= Person{name, surname:: String, account :: Int ....) - + keyResource Person n s ...= n++s@ - + the data being accesed must define the fields used by keyResource. For example @ readResource Person {name="John", surname= "Adams"}@ - + leaving the rest of the fields undefined when using default file persistence, the key is used as file name. so it must contain valid filename characters - + -} keyResource :: a -> String -- ^ must be defined @@ -55,7 +55,7 @@ class IResource a where readResource :: a -> IO (Maybe a) readResource x = readResourceByKey $ keyResource x - -- | To write into persistent storage. It must be strict. + -- | To write into persistent storage. It must be strict. -- Since STM transactions may retry, @writeResource@ must be idempotent, not only in the result but also in the effect in the database. -- . However, because it is executed by 'safeIOToSTM' it is guaranteed that the execution is not interrupted. -- All the new obbects are writeen to the database on synchromization, @@ -63,21 +63,21 @@ class IResource a where -- Commit code must be located in the postcondition. (see `setConditions`) -- Since there is no provision for rollback from failure in writing to -- persistent storage, 'writeResource' must retry until success. - writeResource:: a-> IO() - writeResource r= writeResources [r] - - -- | multiple write (hopefully) in a single request. That is up to you and your backend - -- . Defined by default as 'mapM_ writeResource' - writeResources :: [a] -> IO() - writeResources= mapM_ writeResource - - -- | Delete the resource. It is called syncronously. So it must commit - delResource:: a-> IO() - delResource x= delResources [x] - + writeResource:: a-> IO() + writeResource r= writeResources [r] + + -- | multiple write (hopefully) in a single request. That is up to you and your backend + -- . Defined by default as 'mapM_ writeResource' + writeResources :: [a] -> IO() + writeResources= mapM_ writeResource + + -- | Delete the resource. It is called syncronously. So it must commit + delResource:: a-> IO() + delResource x= delResources [x] + delResources :: [a] -> IO() delResources= mapM_ delResource --- | Resources data definition used by 'withSTMResources' +-- | Resources data definition used by 'withSTMResources' data Resources a b = Retry -- ^ forces a retry | Resources @@ -145,10 +145,10 @@ defaultReadResource x= defaultReadResourceByKey $ key x defaultReadResourceByKey :: (Serializable a, Indexable a) => String-> IO (Maybe a) defaultReadResourceByKey k= iox where - iox = handle handler $ do - s <- readFileStrict filename :: IO String + iox = handle handler $ do + s <- readFileStrict filename :: IO String return $ Just (deserialize s ) -- `debug` ("read "++ filename) - + filename= defPathIO iox ++ k defPathIO :: (Serializable a, Indexable a)=> IO (Maybe a) -> String @@ -156,15 +156,15 @@ defaultReadResourceByKey k= iox where Just x= unsafePerformIO $ (return $ Just undefined) `asTypeOf` iox - + handler :: (Serializable a, Indexable a) => IOError -> IO (Maybe a) handler e - | isAlreadyInUseError e = defaultReadResourceByKey k + | isAlreadyInUseError e = defaultReadResourceByKey k | isDoesNotExistError e = return Nothing | otherwise= if ("invalid" `isInfixOf` ioeGetErrorString e) then error $ ( "readResource: " ++ show e) ++ " defPath and/or keyResource are not suitable for a file path" - + else defaultReadResourceByKey k @@ -174,16 +174,16 @@ defaultWriteResource x= safeWrite filename (serialize x) -- `debug` ("write " filename= defPath x ++ key x safeWrite filename str= handle handler $ writeFile filename str - where + where handler (e :: IOError) - | isDoesNotExistError e=do + | isDoesNotExistError e=do createDirectoryIfMissing True $ take (1+(last $ elemIndices '/' filename)) filename --maybe the path does not exist - safeWrite filename str + safeWrite filename str | otherwise =do --phPutStrLn stderr $ "defaultWriteResource: " ++ show e ++ " in file: " ++ filename ++ " retrying" safeWrite filename str - + defaultDelResource :: (Indexable a) => a -> IO() defaultDelResource x= handle (handler filename) $ removeFile filename --`debug` ("delete "++filename) where @@ -194,7 +194,7 @@ defaultDelResource x= handle (handler filename) $ removeFile filename --`debug | isAlreadyInUseError e= do --hPutStrLn stderr $ "defaultDelResource: busy" ++ " in file: " ++ filename ++ " retrying" threadDelay 1000000 - defaultDelResource x + defaultDelResource x | otherwise = do --hPutStrLn stderr $ "defaultDelResource: " ++ show e ++ " in file: " ++ filename ++ " retrying" threadDelay 1000000 @@ -209,9 +209,9 @@ readFileStrict f = openFile f ReadMode >>= \ h -> readIt h `finally` hClose h readIt h= do s <- hFileSize h let n= fromIntegral s - str <- replicateM n (hGetChar h) + str <- replicateM n (hGetChar h) return str - + newtype Transient a= Transient a diff --git a/Data/TCache/IndexQuery.hs b/Data/TCache/IndexQuery.hs index eaa4661..0532574 100644 --- a/Data/TCache/IndexQuery.hs +++ b/Data/TCache/IndexQuery.hs @@ -71,7 +71,7 @@ fields in a registers are to be indexed, they must have different types. {-# LANGUAGE DeriveDataTypeable, MultiParamTypeClasses , FunctionalDependencies, FlexibleInstances, UndecidableInstances -, TypeSynonymInstances, IncoherentInstances, OverlappingInstances #-} +, TypeSynonymInstances, IncoherentInstances #-} module Data.TCache.IndexQuery( index , (.==.) diff --git a/TCache.cabal b/TCache.cabal index dbe0479..629e71d 100644 --- a/TCache.cabal +++ b/TCache.cabal @@ -78,7 +78,7 @@ library exposed: True buildable: True - extensions: OverlappingInstances UndecidableInstances + extensions: UndecidableInstances ScopedTypeVariables DeriveDataTypeable hs-source-dirs: . other-modules: diff --git a/TCacheData - copia/Queue#boss1 b/TCacheData - copia/Queue#boss1 deleted file mode 100644 index 3680cf5..0000000 --- a/TCacheData - copia/Queue#boss1 +++ /dev/null @@ -1 +0,0 @@ -"boss1" [ "StatdocApprobalDoc#title" ] [] \ No newline at end of file diff --git a/TCacheData - copia/Queue#boss2 b/TCacheData - copia/Queue#boss2 deleted file mode 100644 index 6dbfecf..0000000 --- a/TCacheData - copia/Queue#boss2 +++ /dev/null @@ -1 +0,0 @@ -"boss2" [ "StatdocApprobalDoc#title" ] [] \ No newline at end of file diff --git a/TCacheData/I54321 b/TCacheData/I54321 deleted file mode 100644 index 27b5065..0000000 --- a/TCacheData/I54321 +++ /dev/null @@ -1 +0,0 @@ -Item {iname = "PC", iid = "I54321", price = 6000, stock = 0} \ No newline at end of file diff --git a/TCacheData/Queue#boss1 b/TCacheData/Queue#boss1 deleted file mode 100644 index 3680cf5..0000000 --- a/TCacheData/Queue#boss1 +++ /dev/null @@ -1 +0,0 @@ -"boss1" [ "StatdocApprobalDoc#title" ] [] \ No newline at end of file diff --git a/TCacheData/Queue#boss2 b/TCacheData/Queue#boss2 deleted file mode 100644 index 6dbfecf..0000000 --- a/TCacheData/Queue#boss2 +++ /dev/null @@ -1 +0,0 @@ -"boss2" [ "StatdocApprobalDoc#title" ] [] \ No newline at end of file diff --git a/TCacheData/U12345 b/TCacheData/U12345 deleted file mode 100644 index 7a70420..0000000 --- a/TCacheData/U12345 +++ /dev/null @@ -1 +0,0 @@ -User {uname = "John", uid = "U12345", spent = 60000} \ No newline at end of file diff --git a/buildDemos.sh b/buildDemos.sh new file mode 100755 index 0000000..a355360 --- /dev/null +++ b/buildDemos.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +# This is a crude way to build all the demo files placing them into the +# demos/bin folder and removing the build artifacts afterwards + +rm -rf ./demos/.build +rm -rf ./demos/bin/* + +for fullfile in ./demos/*.hs; do + filename=$(basename -- "$fullfile") + binname="${filename%.*}" + echo "$filename -> $binname" + stack exec ghc -- -outputdir demos/.build $fullfile -o demos/bin/$binname +done + +rm -rf ./demos/.build diff --git a/cacheData/1 b/cacheData/1 deleted file mode 100644 index d921e10..0000000 --- a/cacheData/1 +++ /dev/null @@ -1 +0,0 @@ -Data 1 1 \ No newline at end of file diff --git a/cacheData/10 b/cacheData/10 deleted file mode 100644 index 41bcf6b..0000000 --- a/cacheData/10 +++ /dev/null @@ -1 +0,0 @@ -Data 10 1 \ No newline at end of file diff --git a/cacheData/100 b/cacheData/100 deleted file mode 100644 index 5c4551a..0000000 --- a/cacheData/100 +++ /dev/null @@ -1 +0,0 @@ -Data 100 1 \ No newline at end of file diff --git a/cacheData/101 b/cacheData/101 deleted file mode 100644 index 460610b..0000000 --- a/cacheData/101 +++ /dev/null @@ -1 +0,0 @@ -Data 101 1 \ No newline at end of file diff --git a/cacheData/102 b/cacheData/102 deleted file mode 100644 index f08b97b..0000000 --- a/cacheData/102 +++ /dev/null @@ -1 +0,0 @@ -Data 102 1 \ No newline at end of file diff --git a/cacheData/103 b/cacheData/103 deleted file mode 100644 index 5377fd8..0000000 --- a/cacheData/103 +++ /dev/null @@ -1 +0,0 @@ -Data 103 1 \ No newline at end of file diff --git a/cacheData/104 b/cacheData/104 deleted file mode 100644 index 5e6c4ad..0000000 --- a/cacheData/104 +++ /dev/null @@ -1 +0,0 @@ -Data 104 1 \ No newline at end of file diff --git a/cacheData/105 b/cacheData/105 deleted file mode 100644 index 92b6ffc..0000000 --- a/cacheData/105 +++ /dev/null @@ -1 +0,0 @@ -Data 105 1 \ No newline at end of file diff --git a/cacheData/106 b/cacheData/106 deleted file mode 100644 index 22a3f03..0000000 --- a/cacheData/106 +++ /dev/null @@ -1 +0,0 @@ -Data 106 1 \ No newline at end of file diff --git a/cacheData/107 b/cacheData/107 deleted file mode 100644 index 183b985..0000000 --- a/cacheData/107 +++ /dev/null @@ -1 +0,0 @@ -Data 107 1 \ No newline at end of file diff --git a/cacheData/108 b/cacheData/108 deleted file mode 100644 index aabcba9..0000000 --- a/cacheData/108 +++ /dev/null @@ -1 +0,0 @@ -Data 108 1 \ No newline at end of file diff --git a/cacheData/109 b/cacheData/109 deleted file mode 100644 index eef9868..0000000 --- a/cacheData/109 +++ /dev/null @@ -1 +0,0 @@ -Data 109 1 \ No newline at end of file diff --git a/cacheData/11 b/cacheData/11 deleted file mode 100644 index e88fdae..0000000 --- a/cacheData/11 +++ /dev/null @@ -1 +0,0 @@ -Data 11 1 \ No newline at end of file diff --git a/cacheData/110 b/cacheData/110 deleted file mode 100644 index 36353d5..0000000 --- a/cacheData/110 +++ /dev/null @@ -1 +0,0 @@ -Data 110 1 \ No newline at end of file diff --git a/cacheData/111 b/cacheData/111 deleted file mode 100644 index bddeb01..0000000 --- a/cacheData/111 +++ /dev/null @@ -1 +0,0 @@ -Data 111 1 \ No newline at end of file diff --git a/cacheData/112 b/cacheData/112 deleted file mode 100644 index 3435dff..0000000 --- a/cacheData/112 +++ /dev/null @@ -1 +0,0 @@ -Data 112 1 \ No newline at end of file diff --git a/cacheData/113 b/cacheData/113 deleted file mode 100644 index c71e5f6..0000000 --- a/cacheData/113 +++ /dev/null @@ -1 +0,0 @@ -Data 113 1 \ No newline at end of file diff --git a/cacheData/114 b/cacheData/114 deleted file mode 100644 index 55624c7..0000000 --- a/cacheData/114 +++ /dev/null @@ -1 +0,0 @@ -Data 114 1 \ No newline at end of file diff --git a/cacheData/115 b/cacheData/115 deleted file mode 100644 index 6ba1118..0000000 --- a/cacheData/115 +++ /dev/null @@ -1 +0,0 @@ -Data 115 1 \ No newline at end of file diff --git a/cacheData/116 b/cacheData/116 deleted file mode 100644 index 3fee388..0000000 --- a/cacheData/116 +++ /dev/null @@ -1 +0,0 @@ -Data 116 1 \ No newline at end of file diff --git a/cacheData/117 b/cacheData/117 deleted file mode 100644 index 3f9ba30..0000000 --- a/cacheData/117 +++ /dev/null @@ -1 +0,0 @@ -Data 117 1 \ No newline at end of file diff --git a/cacheData/118 b/cacheData/118 deleted file mode 100644 index 3e720b0..0000000 --- a/cacheData/118 +++ /dev/null @@ -1 +0,0 @@ -Data 118 1 \ No newline at end of file diff --git a/cacheData/119 b/cacheData/119 deleted file mode 100644 index a2c5827..0000000 --- a/cacheData/119 +++ /dev/null @@ -1 +0,0 @@ -Data 119 1 \ No newline at end of file diff --git a/cacheData/12 b/cacheData/12 deleted file mode 100644 index 7d806cc..0000000 --- a/cacheData/12 +++ /dev/null @@ -1 +0,0 @@ -Data 12 1 \ No newline at end of file diff --git a/cacheData/120 b/cacheData/120 deleted file mode 100644 index 2c38b62..0000000 --- a/cacheData/120 +++ /dev/null @@ -1 +0,0 @@ -Data 120 1 \ No newline at end of file diff --git a/cacheData/121 b/cacheData/121 deleted file mode 100644 index e5f08e7..0000000 --- a/cacheData/121 +++ /dev/null @@ -1 +0,0 @@ -Data 121 1 \ No newline at end of file diff --git a/cacheData/122 b/cacheData/122 deleted file mode 100644 index 4087e74..0000000 --- a/cacheData/122 +++ /dev/null @@ -1 +0,0 @@ -Data 122 1 \ No newline at end of file diff --git a/cacheData/123 b/cacheData/123 deleted file mode 100644 index 4ac815f..0000000 --- a/cacheData/123 +++ /dev/null @@ -1 +0,0 @@ -Data 123 1 \ No newline at end of file diff --git a/cacheData/124 b/cacheData/124 deleted file mode 100644 index 306a64a..0000000 --- a/cacheData/124 +++ /dev/null @@ -1 +0,0 @@ -Data 124 1 \ No newline at end of file diff --git a/cacheData/125 b/cacheData/125 deleted file mode 100644 index 1cc3885..0000000 --- a/cacheData/125 +++ /dev/null @@ -1 +0,0 @@ -Data 125 1 \ No newline at end of file diff --git a/cacheData/126 b/cacheData/126 deleted file mode 100644 index 6f21c09..0000000 --- a/cacheData/126 +++ /dev/null @@ -1 +0,0 @@ -Data 126 1 \ No newline at end of file diff --git a/cacheData/127 b/cacheData/127 deleted file mode 100644 index 77396bf..0000000 --- a/cacheData/127 +++ /dev/null @@ -1 +0,0 @@ -Data 127 1 \ No newline at end of file diff --git a/cacheData/128 b/cacheData/128 deleted file mode 100644 index 9a1e8ff..0000000 --- a/cacheData/128 +++ /dev/null @@ -1 +0,0 @@ -Data 128 1 \ No newline at end of file diff --git a/cacheData/129 b/cacheData/129 deleted file mode 100644 index 1788a28..0000000 --- a/cacheData/129 +++ /dev/null @@ -1 +0,0 @@ -Data 129 1 \ No newline at end of file diff --git a/cacheData/13 b/cacheData/13 deleted file mode 100644 index d6395c8..0000000 --- a/cacheData/13 +++ /dev/null @@ -1 +0,0 @@ -Data 13 1 \ No newline at end of file diff --git a/cacheData/130 b/cacheData/130 deleted file mode 100644 index 6ca4319..0000000 --- a/cacheData/130 +++ /dev/null @@ -1 +0,0 @@ -Data 130 1 \ No newline at end of file diff --git a/cacheData/131 b/cacheData/131 deleted file mode 100644 index 0d1b8b1..0000000 --- a/cacheData/131 +++ /dev/null @@ -1 +0,0 @@ -Data 131 1 \ No newline at end of file diff --git a/cacheData/132 b/cacheData/132 deleted file mode 100644 index 1014c8b..0000000 --- a/cacheData/132 +++ /dev/null @@ -1 +0,0 @@ -Data 132 1 \ No newline at end of file diff --git a/cacheData/133 b/cacheData/133 deleted file mode 100644 index 6c5371c..0000000 --- a/cacheData/133 +++ /dev/null @@ -1 +0,0 @@ -Data 133 1 \ No newline at end of file diff --git a/cacheData/134 b/cacheData/134 deleted file mode 100644 index dff9cab..0000000 --- a/cacheData/134 +++ /dev/null @@ -1 +0,0 @@ -Data 134 1 \ No newline at end of file diff --git a/cacheData/135 b/cacheData/135 deleted file mode 100644 index ad8b694..0000000 --- a/cacheData/135 +++ /dev/null @@ -1 +0,0 @@ -Data 135 1 \ No newline at end of file diff --git a/cacheData/136 b/cacheData/136 deleted file mode 100644 index 6d8dd8e..0000000 --- a/cacheData/136 +++ /dev/null @@ -1 +0,0 @@ -Data 136 1 \ No newline at end of file diff --git a/cacheData/137 b/cacheData/137 deleted file mode 100644 index 3b7e7e5..0000000 --- a/cacheData/137 +++ /dev/null @@ -1 +0,0 @@ -Data 137 1 \ No newline at end of file diff --git a/cacheData/138 b/cacheData/138 deleted file mode 100644 index 1f1a4ff..0000000 --- a/cacheData/138 +++ /dev/null @@ -1 +0,0 @@ -Data 138 1 \ No newline at end of file diff --git a/cacheData/139 b/cacheData/139 deleted file mode 100644 index 3daefd1..0000000 --- a/cacheData/139 +++ /dev/null @@ -1 +0,0 @@ -Data 139 1 \ No newline at end of file diff --git a/cacheData/14 b/cacheData/14 deleted file mode 100644 index bb2f444..0000000 --- a/cacheData/14 +++ /dev/null @@ -1 +0,0 @@ -Data 14 1 \ No newline at end of file diff --git a/cacheData/140 b/cacheData/140 deleted file mode 100644 index 0219a57..0000000 --- a/cacheData/140 +++ /dev/null @@ -1 +0,0 @@ -Data 140 1 \ No newline at end of file diff --git a/cacheData/141 b/cacheData/141 deleted file mode 100644 index 5c09dda..0000000 --- a/cacheData/141 +++ /dev/null @@ -1 +0,0 @@ -Data 141 1 \ No newline at end of file diff --git a/cacheData/142 b/cacheData/142 deleted file mode 100644 index 608a0bb..0000000 --- a/cacheData/142 +++ /dev/null @@ -1 +0,0 @@ -Data 142 1 \ No newline at end of file diff --git a/cacheData/143 b/cacheData/143 deleted file mode 100644 index 160dd17..0000000 --- a/cacheData/143 +++ /dev/null @@ -1 +0,0 @@ -Data 143 1 \ No newline at end of file diff --git a/cacheData/144 b/cacheData/144 deleted file mode 100644 index d929f81..0000000 --- a/cacheData/144 +++ /dev/null @@ -1 +0,0 @@ -Data 144 1 \ No newline at end of file diff --git a/cacheData/145 b/cacheData/145 deleted file mode 100644 index 72ea3f0..0000000 --- a/cacheData/145 +++ /dev/null @@ -1 +0,0 @@ -Data 145 1 \ No newline at end of file diff --git a/cacheData/146 b/cacheData/146 deleted file mode 100644 index fd5dfa3..0000000 --- a/cacheData/146 +++ /dev/null @@ -1 +0,0 @@ -Data 146 1 \ No newline at end of file diff --git a/cacheData/147 b/cacheData/147 deleted file mode 100644 index d1557cb..0000000 --- a/cacheData/147 +++ /dev/null @@ -1 +0,0 @@ -Data 147 1 \ No newline at end of file diff --git a/cacheData/148 b/cacheData/148 deleted file mode 100644 index 31a799d..0000000 --- a/cacheData/148 +++ /dev/null @@ -1 +0,0 @@ -Data 148 1 \ No newline at end of file diff --git a/cacheData/149 b/cacheData/149 deleted file mode 100644 index 91ccf81..0000000 --- a/cacheData/149 +++ /dev/null @@ -1 +0,0 @@ -Data 149 1 \ No newline at end of file diff --git a/cacheData/15 b/cacheData/15 deleted file mode 100644 index a029222..0000000 --- a/cacheData/15 +++ /dev/null @@ -1 +0,0 @@ -Data 15 1 \ No newline at end of file diff --git a/cacheData/150 b/cacheData/150 deleted file mode 100644 index 039484d..0000000 --- a/cacheData/150 +++ /dev/null @@ -1 +0,0 @@ -Data 150 1 \ No newline at end of file diff --git a/cacheData/151 b/cacheData/151 deleted file mode 100644 index 435dffa..0000000 --- a/cacheData/151 +++ /dev/null @@ -1 +0,0 @@ -Data 151 1 \ No newline at end of file diff --git a/cacheData/152 b/cacheData/152 deleted file mode 100644 index e4b6e84..0000000 --- a/cacheData/152 +++ /dev/null @@ -1 +0,0 @@ -Data 152 1 \ No newline at end of file diff --git a/cacheData/153 b/cacheData/153 deleted file mode 100644 index 8f381c2..0000000 --- a/cacheData/153 +++ /dev/null @@ -1 +0,0 @@ -Data 153 1 \ No newline at end of file diff --git a/cacheData/154 b/cacheData/154 deleted file mode 100644 index a5c2b1d..0000000 --- a/cacheData/154 +++ /dev/null @@ -1 +0,0 @@ -Data 154 1 \ No newline at end of file diff --git a/cacheData/155 b/cacheData/155 deleted file mode 100644 index d514d40..0000000 --- a/cacheData/155 +++ /dev/null @@ -1 +0,0 @@ -Data 155 1 \ No newline at end of file diff --git a/cacheData/156 b/cacheData/156 deleted file mode 100644 index e6be4d5..0000000 --- a/cacheData/156 +++ /dev/null @@ -1 +0,0 @@ -Data 156 1 \ No newline at end of file diff --git a/cacheData/157 b/cacheData/157 deleted file mode 100644 index 9714d12..0000000 --- a/cacheData/157 +++ /dev/null @@ -1 +0,0 @@ -Data 157 1 \ No newline at end of file diff --git a/cacheData/158 b/cacheData/158 deleted file mode 100644 index 8e1e6ed..0000000 --- a/cacheData/158 +++ /dev/null @@ -1 +0,0 @@ -Data 158 1 \ No newline at end of file diff --git a/cacheData/159 b/cacheData/159 deleted file mode 100644 index 946f991..0000000 --- a/cacheData/159 +++ /dev/null @@ -1 +0,0 @@ -Data 159 1 \ No newline at end of file diff --git a/cacheData/16 b/cacheData/16 deleted file mode 100644 index d5be91f..0000000 --- a/cacheData/16 +++ /dev/null @@ -1 +0,0 @@ -Data 16 1 \ No newline at end of file diff --git a/cacheData/160 b/cacheData/160 deleted file mode 100644 index 947ea55..0000000 --- a/cacheData/160 +++ /dev/null @@ -1 +0,0 @@ -Data 160 1 \ No newline at end of file diff --git a/cacheData/161 b/cacheData/161 deleted file mode 100644 index cada0da..0000000 --- a/cacheData/161 +++ /dev/null @@ -1 +0,0 @@ -Data 161 1 \ No newline at end of file diff --git a/cacheData/162 b/cacheData/162 deleted file mode 100644 index 068be79..0000000 --- a/cacheData/162 +++ /dev/null @@ -1 +0,0 @@ -Data 162 1 \ No newline at end of file diff --git a/cacheData/163 b/cacheData/163 deleted file mode 100644 index 1516b98..0000000 --- a/cacheData/163 +++ /dev/null @@ -1 +0,0 @@ -Data 163 1 \ No newline at end of file diff --git a/cacheData/164 b/cacheData/164 deleted file mode 100644 index 57ce980..0000000 --- a/cacheData/164 +++ /dev/null @@ -1 +0,0 @@ -Data 164 1 \ No newline at end of file diff --git a/cacheData/165 b/cacheData/165 deleted file mode 100644 index 46637aa..0000000 --- a/cacheData/165 +++ /dev/null @@ -1 +0,0 @@ -Data 165 1 \ No newline at end of file diff --git a/cacheData/166 b/cacheData/166 deleted file mode 100644 index 26df884..0000000 --- a/cacheData/166 +++ /dev/null @@ -1 +0,0 @@ -Data 166 1 \ No newline at end of file diff --git a/cacheData/167 b/cacheData/167 deleted file mode 100644 index 5ed0528..0000000 --- a/cacheData/167 +++ /dev/null @@ -1 +0,0 @@ -Data 167 1 \ No newline at end of file diff --git a/cacheData/168 b/cacheData/168 deleted file mode 100644 index 04e319d..0000000 --- a/cacheData/168 +++ /dev/null @@ -1 +0,0 @@ -Data 168 1 \ No newline at end of file diff --git a/cacheData/169 b/cacheData/169 deleted file mode 100644 index 8d0b53d..0000000 --- a/cacheData/169 +++ /dev/null @@ -1 +0,0 @@ -Data 169 1 \ No newline at end of file diff --git a/cacheData/17 b/cacheData/17 deleted file mode 100644 index 30109b0..0000000 --- a/cacheData/17 +++ /dev/null @@ -1 +0,0 @@ -Data 17 1 \ No newline at end of file diff --git a/cacheData/170 b/cacheData/170 deleted file mode 100644 index 8c03e17..0000000 --- a/cacheData/170 +++ /dev/null @@ -1 +0,0 @@ -Data 170 1 \ No newline at end of file diff --git a/cacheData/171 b/cacheData/171 deleted file mode 100644 index f3f60d4..0000000 --- a/cacheData/171 +++ /dev/null @@ -1 +0,0 @@ -Data 171 1 \ No newline at end of file diff --git a/cacheData/172 b/cacheData/172 deleted file mode 100644 index c4a1e2e..0000000 --- a/cacheData/172 +++ /dev/null @@ -1 +0,0 @@ -Data 172 1 \ No newline at end of file diff --git a/cacheData/173 b/cacheData/173 deleted file mode 100644 index bf60c07..0000000 --- a/cacheData/173 +++ /dev/null @@ -1 +0,0 @@ -Data 173 1 \ No newline at end of file diff --git a/cacheData/174 b/cacheData/174 deleted file mode 100644 index 7f2ad2c..0000000 --- a/cacheData/174 +++ /dev/null @@ -1 +0,0 @@ -Data 174 1 \ No newline at end of file diff --git a/cacheData/175 b/cacheData/175 deleted file mode 100644 index 3e6f440..0000000 --- a/cacheData/175 +++ /dev/null @@ -1 +0,0 @@ -Data 175 1 \ No newline at end of file diff --git a/cacheData/176 b/cacheData/176 deleted file mode 100644 index b46806c..0000000 --- a/cacheData/176 +++ /dev/null @@ -1 +0,0 @@ -Data 176 1 \ No newline at end of file diff --git a/cacheData/177 b/cacheData/177 deleted file mode 100644 index 6ffad7e..0000000 --- a/cacheData/177 +++ /dev/null @@ -1 +0,0 @@ -Data 177 1 \ No newline at end of file diff --git a/cacheData/178 b/cacheData/178 deleted file mode 100644 index b8135c6..0000000 --- a/cacheData/178 +++ /dev/null @@ -1 +0,0 @@ -Data 178 1 \ No newline at end of file diff --git a/cacheData/179 b/cacheData/179 deleted file mode 100644 index 9df42ed..0000000 --- a/cacheData/179 +++ /dev/null @@ -1 +0,0 @@ -Data 179 1 \ No newline at end of file diff --git a/cacheData/18 b/cacheData/18 deleted file mode 100644 index 030d3d2..0000000 --- a/cacheData/18 +++ /dev/null @@ -1 +0,0 @@ -Data 18 1 \ No newline at end of file diff --git a/cacheData/180 b/cacheData/180 deleted file mode 100644 index 2438bf6..0000000 --- a/cacheData/180 +++ /dev/null @@ -1 +0,0 @@ -Data 180 1 \ No newline at end of file diff --git a/cacheData/181 b/cacheData/181 deleted file mode 100644 index 73c8473..0000000 --- a/cacheData/181 +++ /dev/null @@ -1 +0,0 @@ -Data 181 1 \ No newline at end of file diff --git a/cacheData/182 b/cacheData/182 deleted file mode 100644 index cb90eba..0000000 --- a/cacheData/182 +++ /dev/null @@ -1 +0,0 @@ -Data 182 1 \ No newline at end of file diff --git a/cacheData/183 b/cacheData/183 deleted file mode 100644 index 7398f07..0000000 --- a/cacheData/183 +++ /dev/null @@ -1 +0,0 @@ -Data 183 1 \ No newline at end of file diff --git a/cacheData/184 b/cacheData/184 deleted file mode 100644 index a801ce5..0000000 --- a/cacheData/184 +++ /dev/null @@ -1 +0,0 @@ -Data 184 1 \ No newline at end of file diff --git a/cacheData/185 b/cacheData/185 deleted file mode 100644 index 9a37144..0000000 --- a/cacheData/185 +++ /dev/null @@ -1 +0,0 @@ -Data 185 1 \ No newline at end of file diff --git a/cacheData/186 b/cacheData/186 deleted file mode 100644 index 5f4d4f0..0000000 --- a/cacheData/186 +++ /dev/null @@ -1 +0,0 @@ -Data 186 1 \ No newline at end of file diff --git a/cacheData/187 b/cacheData/187 deleted file mode 100644 index cd2e6bb..0000000 --- a/cacheData/187 +++ /dev/null @@ -1 +0,0 @@ -Data 187 1 \ No newline at end of file diff --git a/cacheData/188 b/cacheData/188 deleted file mode 100644 index 9b19d6d..0000000 --- a/cacheData/188 +++ /dev/null @@ -1 +0,0 @@ -Data 188 1 \ No newline at end of file diff --git a/cacheData/189 b/cacheData/189 deleted file mode 100644 index 79490d6..0000000 --- a/cacheData/189 +++ /dev/null @@ -1 +0,0 @@ -Data 189 1 \ No newline at end of file diff --git a/cacheData/19 b/cacheData/19 deleted file mode 100644 index f10af91..0000000 --- a/cacheData/19 +++ /dev/null @@ -1 +0,0 @@ -Data 19 1 \ No newline at end of file diff --git a/cacheData/190 b/cacheData/190 deleted file mode 100644 index 1e07c8a..0000000 --- a/cacheData/190 +++ /dev/null @@ -1 +0,0 @@ -Data 190 1 \ No newline at end of file diff --git a/cacheData/191 b/cacheData/191 deleted file mode 100644 index 5466521..0000000 --- a/cacheData/191 +++ /dev/null @@ -1 +0,0 @@ -Data 191 1 \ No newline at end of file diff --git a/cacheData/192 b/cacheData/192 deleted file mode 100644 index 0117205..0000000 --- a/cacheData/192 +++ /dev/null @@ -1 +0,0 @@ -Data 192 1 \ No newline at end of file diff --git a/cacheData/193 b/cacheData/193 deleted file mode 100644 index 9acc64e..0000000 --- a/cacheData/193 +++ /dev/null @@ -1 +0,0 @@ -Data 193 1 \ No newline at end of file diff --git a/cacheData/194 b/cacheData/194 deleted file mode 100644 index 3aa4631..0000000 --- a/cacheData/194 +++ /dev/null @@ -1 +0,0 @@ -Data 194 1 \ No newline at end of file diff --git a/cacheData/195 b/cacheData/195 deleted file mode 100644 index 6c9242a..0000000 --- a/cacheData/195 +++ /dev/null @@ -1 +0,0 @@ -Data 195 1 \ No newline at end of file diff --git a/cacheData/196 b/cacheData/196 deleted file mode 100644 index 0a2f8fb..0000000 --- a/cacheData/196 +++ /dev/null @@ -1 +0,0 @@ -Data 196 1 \ No newline at end of file diff --git a/cacheData/197 b/cacheData/197 deleted file mode 100644 index 79a0055..0000000 --- a/cacheData/197 +++ /dev/null @@ -1 +0,0 @@ -Data 197 1 \ No newline at end of file diff --git a/cacheData/198 b/cacheData/198 deleted file mode 100644 index a67c0e9..0000000 --- a/cacheData/198 +++ /dev/null @@ -1 +0,0 @@ -Data 198 1 \ No newline at end of file diff --git a/cacheData/199 b/cacheData/199 deleted file mode 100644 index ba6c121..0000000 --- a/cacheData/199 +++ /dev/null @@ -1 +0,0 @@ -Data 199 1 \ No newline at end of file diff --git a/cacheData/2 b/cacheData/2 deleted file mode 100644 index 93acb00..0000000 --- a/cacheData/2 +++ /dev/null @@ -1 +0,0 @@ -Data 2 1 \ No newline at end of file diff --git a/cacheData/20 b/cacheData/20 deleted file mode 100644 index 0d4d222..0000000 --- a/cacheData/20 +++ /dev/null @@ -1 +0,0 @@ -Data 20 1 \ No newline at end of file diff --git a/cacheData/200 b/cacheData/200 deleted file mode 100644 index 312ce1d..0000000 --- a/cacheData/200 +++ /dev/null @@ -1 +0,0 @@ -Data 200 1 \ No newline at end of file diff --git a/cacheData/21 b/cacheData/21 deleted file mode 100644 index ed65eca..0000000 --- a/cacheData/21 +++ /dev/null @@ -1 +0,0 @@ -Data 21 1 \ No newline at end of file diff --git a/cacheData/22 b/cacheData/22 deleted file mode 100644 index 1da6db7..0000000 --- a/cacheData/22 +++ /dev/null @@ -1 +0,0 @@ -Data 22 1 \ No newline at end of file diff --git a/cacheData/23 b/cacheData/23 deleted file mode 100644 index e6b6a6c..0000000 --- a/cacheData/23 +++ /dev/null @@ -1 +0,0 @@ -Data 23 1 \ No newline at end of file diff --git a/cacheData/24 b/cacheData/24 deleted file mode 100644 index 772163d..0000000 --- a/cacheData/24 +++ /dev/null @@ -1 +0,0 @@ -Data 24 1 \ No newline at end of file diff --git a/cacheData/25 b/cacheData/25 deleted file mode 100644 index ccbcc89..0000000 --- a/cacheData/25 +++ /dev/null @@ -1 +0,0 @@ -Data 25 1 \ No newline at end of file diff --git a/cacheData/26 b/cacheData/26 deleted file mode 100644 index 968b640..0000000 --- a/cacheData/26 +++ /dev/null @@ -1 +0,0 @@ -Data 26 1 \ No newline at end of file diff --git a/cacheData/27 b/cacheData/27 deleted file mode 100644 index 29d36fc..0000000 --- a/cacheData/27 +++ /dev/null @@ -1 +0,0 @@ -Data 27 1 \ No newline at end of file diff --git a/cacheData/28 b/cacheData/28 deleted file mode 100644 index c5a2f34..0000000 --- a/cacheData/28 +++ /dev/null @@ -1 +0,0 @@ -Data 28 1 \ No newline at end of file diff --git a/cacheData/29 b/cacheData/29 deleted file mode 100644 index 0c466c1..0000000 --- a/cacheData/29 +++ /dev/null @@ -1 +0,0 @@ -Data 29 1 \ No newline at end of file diff --git a/cacheData/3 b/cacheData/3 deleted file mode 100644 index 0232d4a..0000000 --- a/cacheData/3 +++ /dev/null @@ -1 +0,0 @@ -Data 3 1 \ No newline at end of file diff --git a/cacheData/30 b/cacheData/30 deleted file mode 100644 index 425eaa6..0000000 --- a/cacheData/30 +++ /dev/null @@ -1 +0,0 @@ -Data 30 1 \ No newline at end of file diff --git a/cacheData/31 b/cacheData/31 deleted file mode 100644 index 135b026..0000000 --- a/cacheData/31 +++ /dev/null @@ -1 +0,0 @@ -Data 31 1 \ No newline at end of file diff --git a/cacheData/32 b/cacheData/32 deleted file mode 100644 index bab7713..0000000 --- a/cacheData/32 +++ /dev/null @@ -1 +0,0 @@ -Data 32 1 \ No newline at end of file diff --git a/cacheData/33 b/cacheData/33 deleted file mode 100644 index bd39837..0000000 --- a/cacheData/33 +++ /dev/null @@ -1 +0,0 @@ -Data 33 1 \ No newline at end of file diff --git a/cacheData/34 b/cacheData/34 deleted file mode 100644 index 9c5187a..0000000 --- a/cacheData/34 +++ /dev/null @@ -1 +0,0 @@ -Data 34 1 \ No newline at end of file diff --git a/cacheData/35 b/cacheData/35 deleted file mode 100644 index 4769b65..0000000 --- a/cacheData/35 +++ /dev/null @@ -1 +0,0 @@ -Data 35 1 \ No newline at end of file diff --git a/cacheData/36 b/cacheData/36 deleted file mode 100644 index 12f6cb3..0000000 --- a/cacheData/36 +++ /dev/null @@ -1 +0,0 @@ -Data 36 1 \ No newline at end of file diff --git a/cacheData/37 b/cacheData/37 deleted file mode 100644 index 2fb2537..0000000 --- a/cacheData/37 +++ /dev/null @@ -1 +0,0 @@ -Data 37 1 \ No newline at end of file diff --git a/cacheData/38 b/cacheData/38 deleted file mode 100644 index 9c613bd..0000000 --- a/cacheData/38 +++ /dev/null @@ -1 +0,0 @@ -Data 38 1 \ No newline at end of file diff --git a/cacheData/39 b/cacheData/39 deleted file mode 100644 index 094e1bc..0000000 --- a/cacheData/39 +++ /dev/null @@ -1 +0,0 @@ -Data 39 1 \ No newline at end of file diff --git a/cacheData/4 b/cacheData/4 deleted file mode 100644 index 7f63298..0000000 --- a/cacheData/4 +++ /dev/null @@ -1 +0,0 @@ -Data 4 1 \ No newline at end of file diff --git a/cacheData/40 b/cacheData/40 deleted file mode 100644 index 92c410d..0000000 --- a/cacheData/40 +++ /dev/null @@ -1 +0,0 @@ -Data 40 1 \ No newline at end of file diff --git a/cacheData/41 b/cacheData/41 deleted file mode 100644 index 30b1720..0000000 --- a/cacheData/41 +++ /dev/null @@ -1 +0,0 @@ -Data 41 1 \ No newline at end of file diff --git a/cacheData/42 b/cacheData/42 deleted file mode 100644 index 2a43953..0000000 --- a/cacheData/42 +++ /dev/null @@ -1 +0,0 @@ -Data 42 1 \ No newline at end of file diff --git a/cacheData/43 b/cacheData/43 deleted file mode 100644 index b4f9b60..0000000 --- a/cacheData/43 +++ /dev/null @@ -1 +0,0 @@ -Data 43 1 \ No newline at end of file diff --git a/cacheData/44 b/cacheData/44 deleted file mode 100644 index 30f3402..0000000 --- a/cacheData/44 +++ /dev/null @@ -1 +0,0 @@ -Data 44 1 \ No newline at end of file diff --git a/cacheData/45 b/cacheData/45 deleted file mode 100644 index 0290572..0000000 --- a/cacheData/45 +++ /dev/null @@ -1 +0,0 @@ -Data 45 1 \ No newline at end of file diff --git a/cacheData/46 b/cacheData/46 deleted file mode 100644 index dc85824..0000000 --- a/cacheData/46 +++ /dev/null @@ -1 +0,0 @@ -Data 46 1 \ No newline at end of file diff --git a/cacheData/47 b/cacheData/47 deleted file mode 100644 index 5cfa1a5..0000000 --- a/cacheData/47 +++ /dev/null @@ -1 +0,0 @@ -Data 47 1 \ No newline at end of file diff --git a/cacheData/48 b/cacheData/48 deleted file mode 100644 index fc3d1da..0000000 --- a/cacheData/48 +++ /dev/null @@ -1 +0,0 @@ -Data 48 1 \ No newline at end of file diff --git a/cacheData/49 b/cacheData/49 deleted file mode 100644 index 6e2520d..0000000 --- a/cacheData/49 +++ /dev/null @@ -1 +0,0 @@ -Data 49 1 \ No newline at end of file diff --git a/cacheData/5 b/cacheData/5 deleted file mode 100644 index face139..0000000 --- a/cacheData/5 +++ /dev/null @@ -1 +0,0 @@ -Data 5 1 \ No newline at end of file diff --git a/cacheData/50 b/cacheData/50 deleted file mode 100644 index a40595b..0000000 --- a/cacheData/50 +++ /dev/null @@ -1 +0,0 @@ -Data 50 1 \ No newline at end of file diff --git a/cacheData/51 b/cacheData/51 deleted file mode 100644 index 749e012..0000000 --- a/cacheData/51 +++ /dev/null @@ -1 +0,0 @@ -Data 51 1 \ No newline at end of file diff --git a/cacheData/52 b/cacheData/52 deleted file mode 100644 index 73d8e55..0000000 --- a/cacheData/52 +++ /dev/null @@ -1 +0,0 @@ -Data 52 1 \ No newline at end of file diff --git a/cacheData/53 b/cacheData/53 deleted file mode 100644 index f25f611..0000000 --- a/cacheData/53 +++ /dev/null @@ -1 +0,0 @@ -Data 53 1 \ No newline at end of file diff --git a/cacheData/54 b/cacheData/54 deleted file mode 100644 index b1037de..0000000 --- a/cacheData/54 +++ /dev/null @@ -1 +0,0 @@ -Data 54 1 \ No newline at end of file diff --git a/cacheData/55 b/cacheData/55 deleted file mode 100644 index 44757e4..0000000 --- a/cacheData/55 +++ /dev/null @@ -1 +0,0 @@ -Data 55 1 \ No newline at end of file diff --git a/cacheData/56 b/cacheData/56 deleted file mode 100644 index 5573577..0000000 --- a/cacheData/56 +++ /dev/null @@ -1 +0,0 @@ -Data 56 1 \ No newline at end of file diff --git a/cacheData/57 b/cacheData/57 deleted file mode 100644 index 9c2d5b2..0000000 --- a/cacheData/57 +++ /dev/null @@ -1 +0,0 @@ -Data 57 1 \ No newline at end of file diff --git a/cacheData/58 b/cacheData/58 deleted file mode 100644 index ca0d3c9..0000000 --- a/cacheData/58 +++ /dev/null @@ -1 +0,0 @@ -Data 58 1 \ No newline at end of file diff --git a/cacheData/59 b/cacheData/59 deleted file mode 100644 index df0cebb..0000000 --- a/cacheData/59 +++ /dev/null @@ -1 +0,0 @@ -Data 59 1 \ No newline at end of file diff --git a/cacheData/6 b/cacheData/6 deleted file mode 100644 index 15afd1c..0000000 --- a/cacheData/6 +++ /dev/null @@ -1 +0,0 @@ -Data 6 1 \ No newline at end of file diff --git a/cacheData/60 b/cacheData/60 deleted file mode 100644 index 66cd78c..0000000 --- a/cacheData/60 +++ /dev/null @@ -1 +0,0 @@ -Data 60 1 \ No newline at end of file diff --git a/cacheData/61 b/cacheData/61 deleted file mode 100644 index c9dc141..0000000 --- a/cacheData/61 +++ /dev/null @@ -1 +0,0 @@ -Data 61 1 \ No newline at end of file diff --git a/cacheData/62 b/cacheData/62 deleted file mode 100644 index e6080d4..0000000 --- a/cacheData/62 +++ /dev/null @@ -1 +0,0 @@ -Data 62 1 \ No newline at end of file diff --git a/cacheData/63 b/cacheData/63 deleted file mode 100644 index 70e7b1d..0000000 --- a/cacheData/63 +++ /dev/null @@ -1 +0,0 @@ -Data 63 1 \ No newline at end of file diff --git a/cacheData/64 b/cacheData/64 deleted file mode 100644 index e279491..0000000 --- a/cacheData/64 +++ /dev/null @@ -1 +0,0 @@ -Data 64 1 \ No newline at end of file diff --git a/cacheData/65 b/cacheData/65 deleted file mode 100644 index ebe2135..0000000 --- a/cacheData/65 +++ /dev/null @@ -1 +0,0 @@ -Data 65 1 \ No newline at end of file diff --git a/cacheData/66 b/cacheData/66 deleted file mode 100644 index 6cc6945..0000000 --- a/cacheData/66 +++ /dev/null @@ -1 +0,0 @@ -Data 66 1 \ No newline at end of file diff --git a/cacheData/67 b/cacheData/67 deleted file mode 100644 index 6be3722..0000000 --- a/cacheData/67 +++ /dev/null @@ -1 +0,0 @@ -Data 67 1 \ No newline at end of file diff --git a/cacheData/68 b/cacheData/68 deleted file mode 100644 index 950e032..0000000 --- a/cacheData/68 +++ /dev/null @@ -1 +0,0 @@ -Data 68 1 \ No newline at end of file diff --git a/cacheData/69 b/cacheData/69 deleted file mode 100644 index 713921a..0000000 --- a/cacheData/69 +++ /dev/null @@ -1 +0,0 @@ -Data 69 1 \ No newline at end of file diff --git a/cacheData/7 b/cacheData/7 deleted file mode 100644 index bfd5228..0000000 --- a/cacheData/7 +++ /dev/null @@ -1 +0,0 @@ -Data 7 1 \ No newline at end of file diff --git a/cacheData/70 b/cacheData/70 deleted file mode 100644 index 6a2b77b..0000000 --- a/cacheData/70 +++ /dev/null @@ -1 +0,0 @@ -Data 70 1 \ No newline at end of file diff --git a/cacheData/71 b/cacheData/71 deleted file mode 100644 index 148295f..0000000 --- a/cacheData/71 +++ /dev/null @@ -1 +0,0 @@ -Data 71 1 \ No newline at end of file diff --git a/cacheData/72 b/cacheData/72 deleted file mode 100644 index 0a0ce0e..0000000 --- a/cacheData/72 +++ /dev/null @@ -1 +0,0 @@ -Data 72 1 \ No newline at end of file diff --git a/cacheData/73 b/cacheData/73 deleted file mode 100644 index 4793f42..0000000 --- a/cacheData/73 +++ /dev/null @@ -1 +0,0 @@ -Data 73 1 \ No newline at end of file diff --git a/cacheData/74 b/cacheData/74 deleted file mode 100644 index 51b8ef9..0000000 --- a/cacheData/74 +++ /dev/null @@ -1 +0,0 @@ -Data 74 1 \ No newline at end of file diff --git a/cacheData/75 b/cacheData/75 deleted file mode 100644 index 69cee4e..0000000 --- a/cacheData/75 +++ /dev/null @@ -1 +0,0 @@ -Data 75 1 \ No newline at end of file diff --git a/cacheData/76 b/cacheData/76 deleted file mode 100644 index d9a03a7..0000000 --- a/cacheData/76 +++ /dev/null @@ -1 +0,0 @@ -Data 76 1 \ No newline at end of file diff --git a/cacheData/77 b/cacheData/77 deleted file mode 100644 index b48069d..0000000 --- a/cacheData/77 +++ /dev/null @@ -1 +0,0 @@ -Data 77 1 \ No newline at end of file diff --git a/cacheData/78 b/cacheData/78 deleted file mode 100644 index 8d186cf..0000000 --- a/cacheData/78 +++ /dev/null @@ -1 +0,0 @@ -Data 78 1 \ No newline at end of file diff --git a/cacheData/79 b/cacheData/79 deleted file mode 100644 index aee6b34..0000000 --- a/cacheData/79 +++ /dev/null @@ -1 +0,0 @@ -Data 79 1 \ No newline at end of file diff --git a/cacheData/8 b/cacheData/8 deleted file mode 100644 index 48edbbe..0000000 --- a/cacheData/8 +++ /dev/null @@ -1 +0,0 @@ -Data 8 1 \ No newline at end of file diff --git a/cacheData/80 b/cacheData/80 deleted file mode 100644 index bd7649f..0000000 --- a/cacheData/80 +++ /dev/null @@ -1 +0,0 @@ -Data 80 1 \ No newline at end of file diff --git a/cacheData/81 b/cacheData/81 deleted file mode 100644 index edb7bcf..0000000 --- a/cacheData/81 +++ /dev/null @@ -1 +0,0 @@ -Data 81 1 \ No newline at end of file diff --git a/cacheData/82 b/cacheData/82 deleted file mode 100644 index 53abdbc..0000000 --- a/cacheData/82 +++ /dev/null @@ -1 +0,0 @@ -Data 82 1 \ No newline at end of file diff --git a/cacheData/83 b/cacheData/83 deleted file mode 100644 index d29a3e7..0000000 --- a/cacheData/83 +++ /dev/null @@ -1 +0,0 @@ -Data 83 1 \ No newline at end of file diff --git a/cacheData/84 b/cacheData/84 deleted file mode 100644 index abd33e8..0000000 --- a/cacheData/84 +++ /dev/null @@ -1 +0,0 @@ -Data 84 1 \ No newline at end of file diff --git a/cacheData/85 b/cacheData/85 deleted file mode 100644 index 08b80c5..0000000 --- a/cacheData/85 +++ /dev/null @@ -1 +0,0 @@ -Data 85 1 \ No newline at end of file diff --git a/cacheData/86 b/cacheData/86 deleted file mode 100644 index 6d400be..0000000 --- a/cacheData/86 +++ /dev/null @@ -1 +0,0 @@ -Data 86 1 \ No newline at end of file diff --git a/cacheData/87 b/cacheData/87 deleted file mode 100644 index feaea7b..0000000 --- a/cacheData/87 +++ /dev/null @@ -1 +0,0 @@ -Data 87 1 \ No newline at end of file diff --git a/cacheData/88 b/cacheData/88 deleted file mode 100644 index 1f53caa..0000000 --- a/cacheData/88 +++ /dev/null @@ -1 +0,0 @@ -Data 88 1 \ No newline at end of file diff --git a/cacheData/89 b/cacheData/89 deleted file mode 100644 index d3cc4bd..0000000 --- a/cacheData/89 +++ /dev/null @@ -1 +0,0 @@ -Data 89 1 \ No newline at end of file diff --git a/cacheData/9 b/cacheData/9 deleted file mode 100644 index 5ba1b11..0000000 --- a/cacheData/9 +++ /dev/null @@ -1 +0,0 @@ -Data 9 1 \ No newline at end of file diff --git a/cacheData/90 b/cacheData/90 deleted file mode 100644 index 5412223..0000000 --- a/cacheData/90 +++ /dev/null @@ -1 +0,0 @@ -Data 90 1 \ No newline at end of file diff --git a/cacheData/91 b/cacheData/91 deleted file mode 100644 index fc599a6..0000000 --- a/cacheData/91 +++ /dev/null @@ -1 +0,0 @@ -Data 91 1 \ No newline at end of file diff --git a/cacheData/92 b/cacheData/92 deleted file mode 100644 index b232a29..0000000 --- a/cacheData/92 +++ /dev/null @@ -1 +0,0 @@ -Data 92 1 \ No newline at end of file diff --git a/cacheData/93 b/cacheData/93 deleted file mode 100644 index 24c391e..0000000 --- a/cacheData/93 +++ /dev/null @@ -1 +0,0 @@ -Data 93 1 \ No newline at end of file diff --git a/cacheData/94 b/cacheData/94 deleted file mode 100644 index 19fb196..0000000 --- a/cacheData/94 +++ /dev/null @@ -1 +0,0 @@ -Data 94 1 \ No newline at end of file diff --git a/cacheData/95 b/cacheData/95 deleted file mode 100644 index abfbf56..0000000 --- a/cacheData/95 +++ /dev/null @@ -1 +0,0 @@ -Data 95 1 \ No newline at end of file diff --git a/cacheData/96 b/cacheData/96 deleted file mode 100644 index e52e8bd..0000000 --- a/cacheData/96 +++ /dev/null @@ -1 +0,0 @@ -Data 96 1 \ No newline at end of file diff --git a/cacheData/97 b/cacheData/97 deleted file mode 100644 index e5787f3..0000000 --- a/cacheData/97 +++ /dev/null @@ -1 +0,0 @@ -Data 97 1 \ No newline at end of file diff --git a/cacheData/98 b/cacheData/98 deleted file mode 100644 index ed9016c..0000000 --- a/cacheData/98 +++ /dev/null @@ -1 +0,0 @@ -Data 98 1 \ No newline at end of file diff --git a/cacheData/99 b/cacheData/99 deleted file mode 100644 index 24c3ffa..0000000 --- a/cacheData/99 +++ /dev/null @@ -1 +0,0 @@ -Data 99 1 \ No newline at end of file diff --git a/cleanTCacheData.sh b/cleanTCacheData.sh new file mode 100755 index 0000000..cff6922 --- /dev/null +++ b/cleanTCacheData.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +# recusivly clean out all the .tcachedata dirs inside the project folder +find . -type d -name ".tcachedata" -print0 | xargs -0 -I {} /bin/rm -rf "{}" diff --git a/demos/.tcachedata/1 b/demos/.tcachedata/1 deleted file mode 100644 index 56a6051..0000000 --- a/demos/.tcachedata/1 +++ /dev/null @@ -1 +0,0 @@ -1 \ No newline at end of file diff --git a/demos/.tcachedata/Emp1 b/demos/.tcachedata/Emp1 deleted file mode 100644 index fb36da6..0000000 --- a/demos/.tcachedata/Emp1 +++ /dev/null @@ -1 +0,0 @@ -Emp {ename = "Emp1", salary = 37400.0} \ No newline at end of file diff --git a/demos/.tcachedata/Emp2 b/demos/.tcachedata/Emp2 deleted file mode 100644 index 9e35aab..0000000 --- a/demos/.tcachedata/Emp2 +++ /dev/null @@ -1 +0,0 @@ -Emp {ename = "Emp2", salary = 38500.0} \ No newline at end of file diff --git a/demos/.tcachedata/Emp3 b/demos/.tcachedata/Emp3 deleted file mode 100644 index 3cd630f..0000000 --- a/demos/.tcachedata/Emp3 +++ /dev/null @@ -1 +0,0 @@ -Emp {ename = "Emp3", salary = 10000.0} \ No newline at end of file diff --git a/demos/.tcachedata/Emp4 b/demos/.tcachedata/Emp4 deleted file mode 100644 index 02be9d7..0000000 --- a/demos/.tcachedata/Emp4 +++ /dev/null @@ -1 +0,0 @@ -Emp {ename = "Emp4", salary = 70400.0} \ No newline at end of file diff --git a/demos/.tcachedata/I54321 b/demos/.tcachedata/I54321 deleted file mode 100644 index 27b5065..0000000 --- a/demos/.tcachedata/I54321 +++ /dev/null @@ -1 +0,0 @@ -Item {iname = "PC", iid = "I54321", price = 6000, stock = 0} \ No newline at end of file diff --git a/demos/.tcachedata/Queue#hi b/demos/.tcachedata/Queue#hi deleted file mode 100644 index 898b69d..0000000 --- a/demos/.tcachedata/Queue#hi +++ /dev/null @@ -1,5 +0,0 @@ -"hi" [ v20 , v20 ] [] -where{ - v20= "a" ; - -} \ No newline at end of file diff --git a/demos/.tcachedata/U12345 b/demos/.tcachedata/U12345 deleted file mode 100644 index 7a70420..0000000 --- a/demos/.tcachedata/U12345 +++ /dev/null @@ -1 +0,0 @@ -User {uname = "John", uid = "U12345", spent = 60000} \ No newline at end of file diff --git a/demos/.tcachedata/hola b/demos/.tcachedata/hola deleted file mode 100644 index 0e0b6f4..0000000 --- a/demos/.tcachedata/hola +++ /dev/null @@ -1 +0,0 @@ -"hola" \ No newline at end of file diff --git a/demos/.tcachedata/mycompany b/demos/.tcachedata/mycompany deleted file mode 100644 index 325083d..0000000 --- a/demos/.tcachedata/mycompany +++ /dev/null @@ -1 +0,0 @@ -Company {cname = "mycompany", personnel = [DBRef "Emp1",DBRef "Emp2",DBRef "Emp3",DBRef "Emp4"], other = Other "blah blah blah"} \ No newline at end of file diff --git a/demos/.tcachedata/ops b/demos/.tcachedata/ops deleted file mode 100644 index a0d8c89..0000000 --- a/demos/.tcachedata/ops +++ /dev/null @@ -1 +0,0 @@ -Plus \ No newline at end of file diff --git a/demos/DBRef.hs b/demos/DBRef.hs index 6479bea..8561083 100644 --- a/demos/DBRef.hs +++ b/demos/DBRef.hs @@ -54,11 +54,19 @@ myCompanyRef= unsafePerformIO . atomically $ do increaseSalaries percent= do - Just mycompany <- readDBRef myCompanyRef - mapM_ (increase percent ) $ personnel mycompany + mycompany' <- readDBRef myCompanyRef + mycompany <- case mycompany' of + Just x -> pure x + Nothing -> error "Boom" + + mapM_ (increase percent ) $ personnel mycompany where increase percent ref= do - Just emp <- readDBRef ref + emp' <- readDBRef ref + emp <- case emp' of + Just x -> pure x + Nothing -> error "Boom" + writeDBRef ref $ emp{salary= salary emp * factor} where factor= 1+ percent/ 100 @@ -108,7 +116,7 @@ main= do putStrLn "checking race condition on cache cleaning" - let emp1= Emp{ename="Emp1"} + let emp1= Emp{ename="Emp1", salary=(-1)} let key= keyResource emp1 let remp1 = getDBRef key Just emp1 <- atomically $ readDBRef remp1 @@ -121,3 +129,4 @@ main= do + diff --git a/demos/DynamicSample.hs b/demos/DynamicSample.hs index 7e13248..6f1d2b6 100644 --- a/demos/DynamicSample.hs +++ b/demos/DynamicSample.hs @@ -13,14 +13,14 @@ example of IDynamic usage. --very simple data: --two objects with two different datatypes: Int and String - -instance Indexable Int where - key = show +{- +instance Indexable Int where + key = show instance Indexable String where key x= take 2 x - +-} instance (Read a, Show a) => Serializable a where serialize= pack . show deserialize= read . unpack @@ -30,22 +30,22 @@ main= do putStrLn "see the code to know the meaning of he results" -- NOTE: registerType no longer needed - - + + let x= 1:: Int -- now *Resources primitives suppont different datatypes -- without the need of Data.Dynamic withResources [] $ const [x] - withResources [] $ const ["hola"] --resources creation - - syncCache - - res <- getResource x - print res - - res <- getResource "ho" - print res + withResources [] $ const ["hola"] --resources creation + + syncCache + + res <- getResource x + print res + + res <- getResource "ho" + print res -- to use heterogeneous data in the same transaction, -- use DBRef's: @@ -62,5 +62,5 @@ main= do -- however, retrieval of data with the incorrect type will generate an exception: syncCache - + diff --git a/demos/TCacheData/I54321 b/demos/TCacheData/I54321 deleted file mode 100644 index 27b5065..0000000 --- a/demos/TCacheData/I54321 +++ /dev/null @@ -1 +0,0 @@ -Item {iname = "PC", iid = "I54321", price = 6000, stock = 0} \ No newline at end of file diff --git a/demos/TCacheData/Index User[Char] b/demos/TCacheData/Index User[Char] deleted file mode 100644 index 3738beb..0000000 --- a/demos/TCacheData/Index User[Char] +++ /dev/null @@ -1 +0,0 @@ -Index (fromList [("admin",[getDBRef "User#admin"])]) \ No newline at end of file diff --git a/demos/TCacheData/U12345 b/demos/TCacheData/U12345 deleted file mode 100644 index 7a70420..0000000 --- a/demos/TCacheData/U12345 +++ /dev/null @@ -1 +0,0 @@ -User {uname = "John", uid = "U12345", spent = 60000} \ No newline at end of file diff --git a/demos/TCacheData/Workflow/Running b/demos/TCacheData/Workflow/Running deleted file mode 100644 index 758b493..0000000 --- a/demos/TCacheData/Workflow/Running +++ /dev/null @@ -1 +0,0 @@ -Running [ ( "count/0" , "count" ) , ( "count/void" , "count" ) ] \ No newline at end of file diff --git a/demos/TCacheData/Workflow/Stat/count/0 b/demos/TCacheData/Workflow/Stat/count/0 deleted file mode 100644 index 2bef653..0000000 --- a/demos/TCacheData/Workflow/Stat/count/0 +++ /dev/null @@ -1,9 +0,0 @@ -135 6 - [ "0 " - - , "() " - , "() " - , "() " - , "() " - , "() " ] - Stat "count/0" 6 ( Nothing ) 0 \ No newline at end of file diff --git a/demos/TCacheData/Workflow/Stat/count/void b/demos/TCacheData/Workflow/Stat/count/void deleted file mode 100644 index 6542435..0000000 --- a/demos/TCacheData/Workflow/Stat/count/void +++ /dev/null @@ -1,9 +0,0 @@ -136 6 - [ "() " - - , "() " - , "() " - , "() " - , "() " - , "() " ] - Stat "count/void" 6 ( Nothing ) 0 \ No newline at end of file diff --git a/demos/pr.hi b/demos/pr.hi deleted file mode 100644 index b0ce3c0..0000000 Binary files a/demos/pr.hi and /dev/null differ diff --git a/demos/testnewdbref.hs b/demos/testnewdbref.hs index 881aa8d..570248f 100644 --- a/demos/testnewdbref.hs +++ b/demos/testnewdbref.hs @@ -27,3 +27,8 @@ userRegister user password = atomically $ newDBRef $ User user password instance (Show a, Read a)=> Serializable a where serialize= pack . show deserialize= read . unpack + +main :: IO () +main = do + userRegister "test" "12345678" + print "(WIP)" diff --git a/stack.yaml b/stack.yaml new file mode 100644 index 0000000..f08a43f --- /dev/null +++ b/stack.yaml @@ -0,0 +1,64 @@ +# This file was automatically generated by 'stack init' +# +# Some commonly used options have been documented as comments in this file. +# For advanced use and comprehensive documentation of the format, please see: +# https://docs.haskellstack.org/en/stable/yaml_configuration/ + +# Resolver to choose a 'specific' stackage snapshot or a compiler version. +# A snapshot resolver dictates the compiler version and the set of packages +# to be used for project dependencies. For example: +# +# resolver: lts-3.5 +# resolver: nightly-2015-09-21 +# resolver: ghc-7.10.2 +# +# The location of a snapshot can be provided as a file or url. Stack assumes +# a snapshot provided as a file might change, whereas a url resource does not. +# +# resolver: ./custom-snapshot.yaml +# resolver: https://example.com/snapshots/2018-01-01.yaml +resolver: lts-13.15 + +# User packages to be built. +# Various formats can be used as shown in the example below. +# +# packages: +# - some-directory +# - https://example.com/foo/bar/baz-0.0.2.tar.gz +# - location: +# git: https://github.com/commercialhaskell/stack.git +# commit: e7b331f14bcffb8367cd58fbfc8b40ec7642100a +# - location: https://github.com/commercialhaskell/stack/commit/e7b331f14bcffb8367cd58fbfc8b40ec7642100a +# subdirs: +# - auto-update +# - wai +packages: +- . +# Dependency packages to be pulled from upstream that are not in the resolver +# using the same syntax as the packages field. +# (e.g., acme-missiles-0.3) +# extra-deps: [] + +# Override default flag values for local packages and extra-deps +# flags: {} + +# Extra package databases containing global packages +# extra-package-dbs: [] + +# Control whether we use the GHC we find on the path +# system-ghc: true +# +# Require a specific version of stack, using version ranges +# require-stack-version: -any # Default +# require-stack-version: ">=1.9" +# +# Override the architecture used by stack, especially useful on Windows +# arch: i386 +# arch: x86_64 +# +# Extra directories used by stack for building +# extra-include-dirs: [/path/to/dir] +# extra-lib-dirs: [/path/to/dir] +# +# Allow a newer minor version of GHC than the snapshot specifies +# compiler-check: newer-minor