Batch by size, Closures and Detached items are computed differently (#164)
* Can debug dependencies * Different exceptions * Uses root id only after we found it to signal the end * DataChunks are created later and need to be accounted for * format * use app ids in tests and references * check sqlite cache after serialize * use dummy to go through channels to end * fmt * Extend channel lib to batch by size * fmt * build fix * adjust limits * FIx sending * Optimize reference generation * more * remove tolist * rework closures to be constant and serializer only deals with current....references bases are cached * fix chunk creation * another bug fix * clean up with factories * add deserializer factory * Needed to reference interface * move around streamId * some clean up * Use StringBuilder pool on serialization to reduce memory pressure * remove extra * remove extra clears * Fix a flaw in batchsize * use default complete * format * loader should use 1 writer that is batched * remove redundant ref gen * Fix graphql commands by adding project id
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
using Speckle.Sdk.Helpers;
|
||||
using Speckle.Sdk.Logging;
|
||||
using Speckle.Sdk.Serialisation.V2.Receive;
|
||||
using Speckle.Sdk.Serialisation.V2.Send;
|
||||
using Speckle.Sdk.Transports;
|
||||
|
||||
namespace Speckle.Sdk.Serialisation.V2;
|
||||
|
||||
public interface ISerializeProcessFactory
|
||||
{
|
||||
ISerializeProcess CreateSerializeProcess(
|
||||
Uri url,
|
||||
string streamId,
|
||||
string? authorizationToken,
|
||||
IProgress<ProgressArgs>? progress
|
||||
);
|
||||
IDeserializeProcess CreateDeserializeProcess(
|
||||
Uri url,
|
||||
string streamId,
|
||||
string? authorizationToken,
|
||||
IProgress<ProgressArgs>? progress
|
||||
);
|
||||
}
|
||||
|
||||
public class SerializeProcessFactory(
|
||||
ISpeckleHttp speckleHttp,
|
||||
ISdkActivityFactory activityFactory,
|
||||
IBaseChildFinder baseChildFinder,
|
||||
IObjectSerializerFactory objectSerializerFactory,
|
||||
IObjectDeserializerFactory objectDeserializerFactory
|
||||
) : ISerializeProcessFactory
|
||||
{
|
||||
public ISerializeProcess CreateSerializeProcess(
|
||||
Uri url,
|
||||
string streamId,
|
||||
string? authorizationToken,
|
||||
IProgress<ProgressArgs>? progress
|
||||
)
|
||||
{
|
||||
var sqliteSendCacheManager = new SQLiteSendCacheManager(streamId);
|
||||
var serverObjectManager = new ServerObjectManager(speckleHttp, activityFactory, url, streamId, authorizationToken);
|
||||
return new SerializeProcess(
|
||||
progress,
|
||||
sqliteSendCacheManager,
|
||||
serverObjectManager,
|
||||
baseChildFinder,
|
||||
objectSerializerFactory
|
||||
);
|
||||
}
|
||||
|
||||
public IDeserializeProcess CreateDeserializeProcess(
|
||||
Uri url,
|
||||
string streamId,
|
||||
string? authorizationToken,
|
||||
IProgress<ProgressArgs>? progress
|
||||
)
|
||||
{
|
||||
var sqliteSendCacheManager = new SQLiteReceiveCacheManager(streamId);
|
||||
var serverObjectManager = new ServerObjectManager(speckleHttp, activityFactory, url, streamId, authorizationToken);
|
||||
|
||||
var objectLoader = new ObjectLoader(sqliteSendCacheManager, serverObjectManager, progress);
|
||||
return new DeserializeProcess(progress, objectLoader, objectDeserializerFactory);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user