Esempio n. 1
0
            public async ValueTask <RemotableData?> TryGetRemotableDataAsync(Checksum checksum, CancellationToken cancellationToken)
            {
                var finder = new SolutionChecksumFinder(SolutionState, _serializer, cancellationToken);

                var syncObject = await finder.FindAsync(checksum).ConfigureAwait(false);

                if (syncObject != null)
                {
                    return(syncObject);
                }

                // this cache has no reference to the given checksum
                return(null);
            }
Esempio n. 2
0
            public void AppendRemotableData(HashSet <Checksum> searchingChecksumsLeft, Dictionary <Checksum, RemotableData> result, CancellationToken cancellationToken)
            {
                var finder = new SolutionChecksumFinder(SolutionState, _serializer, cancellationToken);

                finder.Append(searchingChecksumsLeft, result);
                if (searchingChecksumsLeft.Count == 0)
                {
                    // there is no checksum left to find
                    return;
                }

                // storage has extra data that we need to search as well
                if (_additionalAssets == null)
                {
                    // checksum looks like belong to global asset
                    return;
                }

                AppendRemotableDataFromAdditionalAssets(result, searchingChecksumsLeft, cancellationToken);
            }
Esempio n. 3
0
            public RemotableData TryGetRemotableData(Checksum checksum, CancellationToken cancellationToken)
            {
                var finder = new SolutionChecksumFinder(SolutionState, _serializer, cancellationToken);

                var syncObject = finder.Find(checksum);

                if (syncObject != null)
                {
                    return(syncObject);
                }

                CustomAsset asset = null;

                if (_additionalAssets?.TryGetValue(checksum, out asset) == true)
                {
                    return(asset);
                }

                // this cache has no reference to the given checksum
                return(null);
            }
Esempio n. 4
0
 public async Task AppendRemotableDataAsync(HashSet <Checksum> searchingChecksumsLeft, Dictionary <Checksum, RemotableData> result, CancellationToken cancellationToken)
 {
     var finder = new SolutionChecksumFinder(SolutionState, _serializer, cancellationToken);
     await finder.AppendAsync(searchingChecksumsLeft, result).ConfigureAwait(false);
 }