コード例 #1
0
        public IList <HashedFingerprint> ReadHashedFingerprintsByTrackReference(IModelReference trackReference)
        {
            var subFingerprints = storage.ReadSubFingerprintByTrackReference(trackReference);

            return(subFingerprints.Select(data => new HashedFingerprint(
                                              data.Hashes,
                                              data.SequenceNumber,
                                              data.SequenceAt,
                                              data.Clusters))
                   .ToList());
        }
コード例 #2
0
        private InMemoryModelService(ITrackDao trackDao, ISubFingerprintDao subFingerprintDao, ISpectralImageDao spectralImageDao, IRAMStorage ramStorage)
        {
            this.ramStorage = ramStorage;
            Id                = "in-memory-model-service";
            TrackDao          = trackDao;
            SubFingerprintDao = subFingerprintDao;
            SpectralImageDao  = spectralImageDao;

            IModelReference?lastTrackReference = null;
            uint            maxTrackId         = 0;

            if (ramStorage.Tracks.Any())
            {
                (lastTrackReference, maxTrackId) = ramStorage.Tracks.Keys
                                                   .Select(_ => (_, _.Get <uint>()))
                                                   .OrderByDescending(_ => _.Item2)
                                                   .First();
            }

            uint maxSubFingerprintId = 0;

            if (lastTrackReference != null)
            {
                maxSubFingerprintId = ramStorage
                                      .ReadSubFingerprintByTrackReference(lastTrackReference)
                                      .Max(_ => _.SubFingerprintReference.Get <uint>());
            }

            modelReferenceTracker = new UIntModelReferenceTracker(maxTrackId, maxSubFingerprintId);

            uint maxSpectralImageId = 0;

            if (lastTrackReference != null)
            {
                var spectralImages = ramStorage.GetSpectralImagesByTrackReference(lastTrackReference).ToList();
                if (spectralImages.Any())
                {
                    maxSpectralImageId = spectralImages.Max(_ => _.SpectralImageReference.Get <uint>());
                }
            }

            spectralReferenceProvider = new UIntModelReferenceProvider(maxSpectralImageId);
        }
コード例 #3
0
 public IEnumerable <SubFingerprintData> ReadHashedFingerprintsByTrackReference(IModelReference trackReference)
 {
     return(storage.ReadSubFingerprintByTrackReference(trackReference));
 }