715bb7274a
* 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
65 lines
1.9 KiB
C#
65 lines
1.9 KiB
C#
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);
|
|
}
|
|
}
|