﻿B4A=true
Group=ATLAS CM\CLASS
ModulesStructureVersion=1
Type=Class
Version=7.3
@EndOfDesignText@
'Class module
Sub Class_Globals

	Dim m As Map
	
End Sub

'Initializes the object. You can add parameters to this method if needed.
Public Sub Initialize

End Sub

Sub check_tables(pSQL As SQL)

	If Not(mod_dbutils.TableExist(pSQL,"cache")) Then
		create_cache_table(pSQL)
	End If

End Sub
Sub create_cache_table(pSQL As SQL)

	Try 
		m.Initialize 
		m.put("cache_id",mod_dbutils.DB_TEXT )
		m.put("cache_type",mod_dbutils.DB_INTEGER)
		m.put("cache_data",mod_dbutils.DB_TEXT)
		m.put("cache_processed",mod_dbutils.DB_INTEGER)
		mod_dbutils.CreateTable(pSQL,"cache",m,"")
	Catch
		mod_functions.writelog("create_cache_table() " & LastException.Message)
	End Try

End Sub
Sub write(pType As Int, pCacheData As Object, pID As Long)
	
	
	Dim t As Map
	Dim l As List
	
	l.Initialize 
	t.Initialize 
	' // cache data entry
	t.put("cache_id",pID)
	t.put("cache_type",pType)
	t.put("cache_data", pCacheData) 
	t.put("cache_processed", 0) 
	l.Add(t) 

	mod_dbutils.InsertMaps(Starter.SQLDB,"cache",l)
	
	
End Sub
Sub update(pType As Int, pID As String)
	
	Dim f,w As Map
	
	' // close the the old TPA if it is active
	f.Initialize 
	w.Initialize 
	
	f.Put("cache_processed",1)
	w.Put("cache_id" ,pID)
	w.Put("cache_type",pType)
	mod_dbutils.UpdateRecord2(starter.SQLDB,"cache",f,w)
	
End Sub

Sub remove_all(pSql As SQL)
	
	Starter.SQLDB.ExecNonQuery($"DELETE FROM cache"$)
	
End Sub

Sub remove_processed(pSql As SQL)
	
	Starter.SQLDB.ExecNonQuery($"DELETE FROM cache WHERE cache_processed = 1"$)
	
End Sub


Sub remove_by_id(pType As Int, pID As Long)
	
	Starter.SQLDB.ExecNonQuery($"DELETE FROM cache WHERE cache_type = ${pType}
												AND cache_id = ${pID}
												"$)
	
End Sub