From 17ae93f916438ff444b4eb0a8a1970412c35892e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Van=20Canneyt?= Date: Fri, 23 May 2025 18:02:31 +0200 Subject: [PATCH] * Demo for storage --- .../wasm-utils/demo/storage/demostorage.lpi | 57 +++++++++++++++++++ .../wasm-utils/demo/storage/demostorage.lpr | 42 ++++++++++++++ 2 files changed, 99 insertions(+) create mode 100644 packages/wasm-utils/demo/storage/demostorage.lpi create mode 100644 packages/wasm-utils/demo/storage/demostorage.lpr diff --git a/packages/wasm-utils/demo/storage/demostorage.lpi b/packages/wasm-utils/demo/storage/demostorage.lpi new file mode 100644 index 0000000000..e494887fcd --- /dev/null +++ b/packages/wasm-utils/demo/storage/demostorage.lpi @@ -0,0 +1,57 @@ + + + + + + + + + + + + + <UseAppBundle Value="False"/> + <ResourceType Value="res"/> + </General> + <BuildModes> + <Item Name="Default" Default="True"/> + </BuildModes> + <PublishOptions> + <Version Value="2"/> + <UseFileFilters Value="True"/> + </PublishOptions> + <RunParams> + <FormatVersion Value="2"/> + </RunParams> + <Units> + <Unit> + <Filename Value="demostorage.lpr"/> + <IsPartOfProject Value="True"/> + </Unit> + </Units> + </ProjectOptions> + <CompilerOptions> + <Version Value="11"/> + <Target> + <Filename Value="demostorage.wasm" ApplyConventions="False"/> + </Target> + <SearchPaths> + <IncludeFiles Value="$(ProjOutDir)"/> + <OtherUnitFiles Value="../../src"/> + <UnitOutputDirectory Value="lib/$(TargetCPU)-$(TargetOS)"/> + </SearchPaths> + </CompilerOptions> + <Debugging> + <Exceptions> + <Item> + <Name Value="EAbort"/> + </Item> + <Item> + <Name Value="ECodetoolError"/> + </Item> + <Item> + <Name Value="EFOpenError"/> + </Item> + </Exceptions> + </Debugging> +</CONFIG> diff --git a/packages/wasm-utils/demo/storage/demostorage.lpr b/packages/wasm-utils/demo/storage/demostorage.lpr new file mode 100644 index 0000000000..d8e062b049 --- /dev/null +++ b/packages/wasm-utils/demo/storage/demostorage.lpr @@ -0,0 +1,42 @@ +program demostorage; + +{$mode objfpc} +{$h+} + +uses wasm.storage.objects; + +procedure DumpKeys(aStorage : TWasmStorage); + +var + I,lCount : Integer; + lKey,lValue : UTF8String; + +begin + lCount:=aStorage.Count; + Writeln('Have ',lCount,' keys'); + For I:=0 to lCount-1 do + begin + lKey:=aStorage.Keys[i]; + lValue:=aStorage.Items[lKey]; + Writeln('[',I,'] ',lKey,' = "',lValue,'"'); + end; +end; + +var + lStorage : TWasmLocalStorage; + lKey,lValue : UTF8String; + +begin + lStorage:=TWasmLocalStorage.Create; + Writeln('Existing keys at start: '); + DumpKeys(lStorage); + Writeln('Setting key "xyz" to value "123"'); + lStorage.Items['xyz']:='123'; + Writeln('Retrieving value of key "xyz" : "',lStorage.Items['xyz'],'"'); + Writeln('Deleting key "xyz"'); + lStorage.Remove('xyz'); + Writeln('Retrieving value of key "xyz" (again): "',lStorage.Items['xyz'],'"'); + Writeln('Existing keys at end: '); + DumpKeys(lStorage); +end. +