Initial imss Basic Module
This commit is contained in:
parent
5c030f2eff
commit
da87ec4993
4 changed files with 145 additions and 0 deletions
3
.gitmodules
vendored
Normal file
3
.gitmodules
vendored
Normal file
|
@ -0,0 +1,3 @@
|
|||
[submodule "lhs_lib"]
|
||||
path = lhs_lib
|
||||
url = https://gitea.lihaso.com/PB_Includes/lhs_lib.git
|
26
imss.pb
Normal file
26
imss.pb
Normal file
|
@ -0,0 +1,26 @@
|
|||
;***************************************************************
|
||||
;*
|
||||
;* IMSS Sample
|
||||
;*
|
||||
;* (c) 2023 by Linder Hard- und Software
|
||||
;*
|
||||
;* GPL v2.0 Only
|
||||
;*
|
||||
;*
|
||||
;***************************************************************
|
||||
|
||||
EnableExplicit
|
||||
|
||||
Define MyUUID.s
|
||||
XIncludeFile "imss.pbi"
|
||||
|
||||
MyUUID = imss::Create()
|
||||
|
||||
Debug "Database Created:"+MyUUID
|
||||
|
||||
imss::Save(MyUUID, "TestName", "TestValue")
|
||||
Debug "Test:"+imss::Get(MyUUID, "TestName")
|
||||
imss::Del(MyUUID, "TestName")
|
||||
Debug "Test:"+imss::Get(MyUUID, "TestName")
|
||||
imss::Kill(MyUUID)
|
||||
Debug "Killed"
|
115
imss.pbi
Normal file
115
imss.pbi
Normal file
|
@ -0,0 +1,115 @@
|
|||
;***************************************************************
|
||||
;*
|
||||
;* IMSS Main Module
|
||||
;*
|
||||
;* (c) 2023 by Linder Hard- und Software
|
||||
;*
|
||||
;* GPL v2.0 Only
|
||||
;*
|
||||
;*
|
||||
;***************************************************************
|
||||
|
||||
EnableExplicit
|
||||
|
||||
|
||||
DeclareModule IMSS
|
||||
Declare.s Create()
|
||||
Declare Save(UUID.s, ValueName.s, Value.s, UID.s = "", LockID = 0 , Lock = 0)
|
||||
Declare.s Get(UUID.s, ValueName.s, UID.s = "", LockID = 0 , Lock = 0)
|
||||
Declare Del(UUID.s, ValueName.s, UID.s = "", LockID = 0 , Lock = 0)
|
||||
Declare DelUID(UUID.s, UID.s, LockID = 0 , Lock = 0)
|
||||
Declare Lock(UUID.s, ValueName.s, UID.s = "", LockID = 0, Lock = 0)
|
||||
Declare LockUID(UUID.s, UID.s, LockID, Lock)
|
||||
Declare UnLock(UUID.s, ValueName.s, UID.s = "", LockID = 0 , Lock = 0)
|
||||
Declare UnLockUID(UUID.s, UID.s, LockID, Lock)
|
||||
Declare Kill(UUID.s)
|
||||
EndDeclareModule
|
||||
|
||||
Module IMSS
|
||||
|
||||
IncludeFile "lhs_lib/SYS/lhs_uuid.pbi"
|
||||
|
||||
Structure Imss_Object
|
||||
Map Value.s()
|
||||
Lock.i
|
||||
LockID.i
|
||||
EndStructure
|
||||
|
||||
Structure Imss_Database
|
||||
Map Database.Imss_Object()
|
||||
Lock.i
|
||||
LockID.i
|
||||
EndStructure
|
||||
|
||||
Global NewMap IMSSDB.Imss_Database()
|
||||
|
||||
Procedure.s Create()
|
||||
Protected.s UUID
|
||||
UUID.s = CreateUUID()
|
||||
IMSSDB(UUID)\Lock = 0
|
||||
ProcedureReturn UUID
|
||||
EndProcedure
|
||||
|
||||
Procedure Save(UUID.s, ValueName.s, Value.s, UID.s = "")
|
||||
If FindMapElement(IMSSDB(), UUID)
|
||||
If UID = ""
|
||||
IMSSDB(UUID)\Database(ValueName)\Value("Value") = Value
|
||||
Else
|
||||
IMSSDB(UUID)\Database(UID)\Value(ValueName) = Value
|
||||
EndIf
|
||||
ProcedureReturn #True
|
||||
Else
|
||||
ProcedureReturn #False
|
||||
EndIf
|
||||
EndProcedure
|
||||
|
||||
Procedure.s Get(UUID.s, ValueName.s, UID.s = "")
|
||||
If FindMapElement(IMSSDB(), UUID)
|
||||
If UID = ""
|
||||
If FindMapElement(IMSSDB(UUID)\Database(), ValueName)
|
||||
ProcedureReturn IMSSDB(UUID)\Database(ValueName)\Value("Value")
|
||||
Else
|
||||
ProcedureReturn ""
|
||||
EndIf
|
||||
Else
|
||||
If FindMapElement(IMSSDB(UUID)\Database(), UID)
|
||||
If FindMapElement(IMSSDB(UUID)\Database(UID)\Value(), ValueName)
|
||||
ProcedureReturn IMSSDB(UUID)\Database(UID)\Value(ValueName)
|
||||
EndIf
|
||||
EndIf
|
||||
EndIf
|
||||
EndIf
|
||||
EndProcedure
|
||||
|
||||
Procedure Del(UUID.s, ValueName.s, UID.s = "")
|
||||
If FindMapElement(IMSSDB(), UUID)
|
||||
If UID = ""
|
||||
If FindMapElement(IMSSDB(UUID)\Database(), ValueName)
|
||||
DeleteMapElement(IMSSDB(UUID)\Database(), ValueName)
|
||||
EndIf
|
||||
Else
|
||||
If FindMapElement(IMSSDB(UUID)\Database(), UID)
|
||||
If FindMapElement(IMSSDB(UUID)\Database(UID)\Value(), ValueName)
|
||||
DeleteMapElement(IMSSDB(UUID)\Database(UID)\Value(), ValueName)
|
||||
EndIf
|
||||
EndIf
|
||||
EndIf
|
||||
EndIf
|
||||
|
||||
EndProcedure
|
||||
|
||||
Procedure DelUID(UUID.s, UID.s)
|
||||
If FindMapElement(IMSSDB(), UUID)
|
||||
If FindMapElement(IMSSDB(UUID)\Database(), UID)
|
||||
DeleteMapElement(IMSSDB(UUID)\Database(), UID)
|
||||
EndIf
|
||||
EndIf
|
||||
EndProcedure
|
||||
|
||||
Procedure Kill(UUID.s)
|
||||
If FindMapElement(IMSSDB(), UUID)
|
||||
DeleteMapElement(IMSSDB(), UUID)
|
||||
EndIf
|
||||
EndProcedure
|
||||
|
||||
EndModule
|
1
lhs_lib
Submodule
1
lhs_lib
Submodule
|
@ -0,0 +1 @@
|
|||
Subproject commit 28ddc320e56090f5fc0fd827d83e97aa9863f116
|
Loading…
Reference in a new issue