Tile file lifetime management
This commit is contained in:
23
PBMap.pb
23
PBMap.pb
@@ -192,6 +192,7 @@ Module PBMap
|
|||||||
ShowPointer.i
|
ShowPointer.i
|
||||||
TimerInterval.i
|
TimerInterval.i
|
||||||
MaxMemCache.i ; in MiB
|
MaxMemCache.i ; in MiB
|
||||||
|
TileLifetime.i
|
||||||
Verbose.i ; Maximum debug informations
|
Verbose.i ; Maximum debug informations
|
||||||
Warning.i ; Warning requesters
|
Warning.i ; Warning requesters
|
||||||
ShowMarkersNb.i
|
ShowMarkersNb.i
|
||||||
@@ -660,6 +661,8 @@ Module PBMap
|
|||||||
PBMap\Options\HDDCachePath = Value
|
PBMap\Options\HDDCachePath = Value
|
||||||
Case "maxmemcache"
|
Case "maxmemcache"
|
||||||
PBMap\Options\MaxMemCache = Val(Value)
|
PBMap\Options\MaxMemCache = Val(Value)
|
||||||
|
Case "tilelifetime"
|
||||||
|
PBMap\Options\TileLifetime = Val(Value)
|
||||||
Case "verbose"
|
Case "verbose"
|
||||||
SelBool(Verbose)
|
SelBool(Verbose)
|
||||||
Case "warning"
|
Case "warning"
|
||||||
@@ -725,6 +728,8 @@ Module PBMap
|
|||||||
ProcedureReturn \HDDCachePath
|
ProcedureReturn \HDDCachePath
|
||||||
Case "maxmemcache"
|
Case "maxmemcache"
|
||||||
ProcedureReturn StrU(\MaxMemCache)
|
ProcedureReturn StrU(\MaxMemCache)
|
||||||
|
Case "tilelifetime"
|
||||||
|
ProcedureReturn StrU(\TileLifetime)
|
||||||
Case "verbose"
|
Case "verbose"
|
||||||
ProcedureReturn GetBoolString(\Verbose)
|
ProcedureReturn GetBoolString(\Verbose)
|
||||||
Case "warning"
|
Case "warning"
|
||||||
@@ -784,6 +789,7 @@ Module PBMap
|
|||||||
PreferenceGroup("OPTIONS")
|
PreferenceGroup("OPTIONS")
|
||||||
WritePreferenceInteger("WheelMouseRelative", \WheelMouseRelative)
|
WritePreferenceInteger("WheelMouseRelative", \WheelMouseRelative)
|
||||||
WritePreferenceInteger("MaxMemCache", \MaxMemCache)
|
WritePreferenceInteger("MaxMemCache", \MaxMemCache)
|
||||||
|
WritePreferenceInteger("TileLifetime", \TileLifetime)
|
||||||
WritePreferenceInteger("Verbose", \Verbose)
|
WritePreferenceInteger("Verbose", \Verbose)
|
||||||
WritePreferenceInteger("Warning", \Warning)
|
WritePreferenceInteger("Warning", \Warning)
|
||||||
WritePreferenceInteger("ShowDegrees", \ShowDegrees)
|
WritePreferenceInteger("ShowDegrees", \ShowDegrees)
|
||||||
@@ -847,6 +853,7 @@ Module PBMap
|
|||||||
PreferenceGroup("OPTIONS")
|
PreferenceGroup("OPTIONS")
|
||||||
\WheelMouseRelative = ReadPreferenceInteger("WheelMouseRelative", #True)
|
\WheelMouseRelative = ReadPreferenceInteger("WheelMouseRelative", #True)
|
||||||
\MaxMemCache = ReadPreferenceInteger("MaxMemCache", 20480) ;20 MiB, about 80 tiles in memory
|
\MaxMemCache = ReadPreferenceInteger("MaxMemCache", 20480) ;20 MiB, about 80 tiles in memory
|
||||||
|
\TileLifetime = ReadPreferenceInteger("TileLifetime", 1209600) ;about 2 weeks ; -1 = unlimited
|
||||||
\Verbose = ReadPreferenceInteger("Verbose", #False)
|
\Verbose = ReadPreferenceInteger("Verbose", #False)
|
||||||
\Warning = ReadPreferenceInteger("Warning", #False)
|
\Warning = ReadPreferenceInteger("Warning", #False)
|
||||||
\ShowDegrees = ReadPreferenceInteger("ShowDegrees", #False)
|
\ShowDegrees = ReadPreferenceInteger("ShowDegrees", #False)
|
||||||
@@ -963,8 +970,18 @@ Module PBMap
|
|||||||
;-*** These are threaded
|
;-*** These are threaded
|
||||||
|
|
||||||
Procedure.i GetTileFromHDD(CacheFile.s)
|
Procedure.i GetTileFromHDD(CacheFile.s)
|
||||||
Protected nImage.i
|
Protected nImage.i, LifeTime.i, MaxLifeTime.i = PBMap\Options\TileLifetime
|
||||||
If FileSize(CacheFile) <> -1
|
If FileSize(CacheFile) <> -1
|
||||||
|
;Manage tile file lifetime
|
||||||
|
If MaxLifeTime <> -1
|
||||||
|
LifeTime = Date() - GetFileDate(CacheFile, #PB_Date_Modified) ;There's a bug with #PB_Date_Created
|
||||||
|
If LifeTime > MaxLifeTime
|
||||||
|
MyDebug("Deleting too old (" + StrU(LifeTime) + " secs) " + CacheFile, 3)
|
||||||
|
DeleteFile(CacheFile)
|
||||||
|
ProcedureReturn -1
|
||||||
|
EndIf
|
||||||
|
EndIf
|
||||||
|
;Everything is OK, load the file
|
||||||
nImage = LoadImage(#PB_Any, CacheFile)
|
nImage = LoadImage(#PB_Any, CacheFile)
|
||||||
If IsImage(nImage)
|
If IsImage(nImage)
|
||||||
MyDebug("Success loading " + CacheFile + " as nImage " + Str(nImage), 3)
|
MyDebug("Success loading " + CacheFile + " as nImage " + Str(nImage), 3)
|
||||||
@@ -2621,8 +2638,8 @@ CompilerIf #PB_Compiler_IsMainFile
|
|||||||
CompilerEndIf
|
CompilerEndIf
|
||||||
|
|
||||||
; IDE Options = PureBasic 5.60 (Windows - x64)
|
; IDE Options = PureBasic 5.60 (Windows - x64)
|
||||||
; CursorPosition = 758
|
; CursorPosition = 2518
|
||||||
; FirstLine = 733
|
; FirstLine = 2487
|
||||||
; Folding = -------------------
|
; Folding = -------------------
|
||||||
; EnableThread
|
; EnableThread
|
||||||
; EnableXP
|
; EnableXP
|
Reference in New Issue
Block a user