ed5bdc91ed
* add ServerObjectManagerFactory
* add usage of a command pool
* add more disposal
* save saving increase
* fix tests
* fixes
* push out concurrency and disposablity
* Add a custom task scheduler
* Better usage, don't wait to enqueue to save to channels
* Completely pre-cal batch size to avoid spinning issues
* Try to fix cache counting
* properly dispose things
* format
* clean up
* adjust count and save on current thread
* move batch it's own file
* update a few packages
* fix build and add batch tests
* revert and format
* Revert "save saving increase"
This reverts commit 3b50c857fb.
* revert change
* adjust and add tests
* Dispose sqlite manager properly
* Make Batch a IMemoryOwner to allow for pooling
* Fix tests
* Upgrade some deps
* try to make tests more explicit
* remove return value
* Use named tuple for all objects
36 lines
1.1 KiB
C#
36 lines
1.1 KiB
C#
namespace Speckle.Sdk.SQLite;
|
|
|
|
public enum CacheOperation
|
|
{
|
|
InsertOrIgnore,
|
|
InsertOrReplace,
|
|
Has,
|
|
Get,
|
|
Delete,
|
|
GetAll,
|
|
BulkInsertOrIgnore,
|
|
}
|
|
|
|
public static class CacheDbCommands
|
|
{
|
|
public static readonly string[] Commands;
|
|
public static readonly int Count = Enum.GetValues(typeof(CacheOperation)).Length;
|
|
|
|
#pragma warning disable CA1810
|
|
static CacheDbCommands()
|
|
#pragma warning restore CA1810
|
|
{
|
|
Commands = new string[Count];
|
|
|
|
Commands[(int)CacheOperation.InsertOrIgnore] =
|
|
"INSERT OR IGNORE INTO objects(hash, content) VALUES(@hash, @content)";
|
|
Commands[(int)CacheOperation.InsertOrReplace] = "REPLACE INTO objects(hash, content) VALUES(@hash, @content)";
|
|
Commands[(int)CacheOperation.Has] = "SELECT 1 FROM objects WHERE hash = @hash LIMIT 1";
|
|
Commands[(int)CacheOperation.Get] = "SELECT content FROM objects WHERE hash = @hash LIMIT 1";
|
|
Commands[(int)CacheOperation.Delete] = "DELETE FROM objects WHERE hash = @hash";
|
|
Commands[(int)CacheOperation.GetAll] = "SELECT hash, content FROM objects";
|
|
|
|
Commands[(int)CacheOperation.BulkInsertOrIgnore] = "INSERT OR IGNORE INTO objects (hash, content) VALUES ";
|
|
}
|
|
}
|