示例#1
0
 public static void SetHashTableElements(SubFingerprint subFingerprint, int[] hashBins)
 {
     subFingerprint.HashTable0  = hashBins[0];
     subFingerprint.HashTable1  = hashBins[1];
     subFingerprint.HashTable2  = hashBins[2];
     subFingerprint.HashTable3  = hashBins[3];
     subFingerprint.HashTable4  = hashBins[4];
     subFingerprint.HashTable5  = hashBins[5];
     subFingerprint.HashTable6  = hashBins[6];
     subFingerprint.HashTable7  = hashBins[7];
     subFingerprint.HashTable8  = hashBins[8];
     subFingerprint.HashTable9  = hashBins[9];
     subFingerprint.HashTable10 = hashBins[10];
     subFingerprint.HashTable11 = hashBins[11];
     subFingerprint.HashTable12 = hashBins[12];
     subFingerprint.HashTable13 = hashBins[13];
     subFingerprint.HashTable14 = hashBins[14];
     subFingerprint.HashTable15 = hashBins[15];
     subFingerprint.HashTable16 = hashBins[16];
     subFingerprint.HashTable17 = hashBins[17];
     subFingerprint.HashTable18 = hashBins[18];
     subFingerprint.HashTable19 = hashBins[19];
     subFingerprint.HashTable20 = hashBins[20];
     subFingerprint.HashTable21 = hashBins[21];
     subFingerprint.HashTable22 = hashBins[22];
     subFingerprint.HashTable23 = hashBins[23];
     subFingerprint.HashTable24 = hashBins[24];
 }
示例#2
0
        public static int[] FromHashTableElementsToHashes(SubFingerprint subFingerprint)
        {
            var hashBins = new int[25];

            hashBins[0]  = subFingerprint.HashTable0;
            hashBins[1]  = subFingerprint.HashTable1;
            hashBins[2]  = subFingerprint.HashTable2;
            hashBins[3]  = subFingerprint.HashTable3;
            hashBins[4]  = subFingerprint.HashTable4;
            hashBins[5]  = subFingerprint.HashTable5;
            hashBins[6]  = subFingerprint.HashTable6;
            hashBins[7]  = subFingerprint.HashTable7;
            hashBins[8]  = subFingerprint.HashTable8;
            hashBins[9]  = subFingerprint.HashTable9;
            hashBins[10] = subFingerprint.HashTable10;
            hashBins[11] = subFingerprint.HashTable11;
            hashBins[12] = subFingerprint.HashTable12;
            hashBins[13] = subFingerprint.HashTable13;
            hashBins[14] = subFingerprint.HashTable14;
            hashBins[15] = subFingerprint.HashTable15;
            hashBins[16] = subFingerprint.HashTable16;
            hashBins[17] = subFingerprint.HashTable17;
            hashBins[18] = subFingerprint.HashTable18;
            hashBins[19] = subFingerprint.HashTable19;
            hashBins[20] = subFingerprint.HashTable20;
            hashBins[21] = subFingerprint.HashTable21;
            hashBins[22] = subFingerprint.HashTable22;
            hashBins[23] = subFingerprint.HashTable23;
            hashBins[24] = subFingerprint.HashTable24;
            return(hashBins);
        }
示例#3
0
 public static SubFingerprintData CopyToSubFingerprintData(SubFingerprint subFingerprint)
 {
     return(new SubFingerprintData(
                FromHashTableElementsToHashes(subFingerprint),
                (uint)subFingerprint.SequenceNumber,
                subFingerprint.SequenceAt,
                new ModelReference <int>(subFingerprint.Id),
                new ModelReference <int>(subFingerprint.TrackId)));
 }
        public IModelReference InsertSubFingerprint(byte[] signature, IModelReference trackReference)
        {
            var subFingerprint = new SubFingerprint
            {
                Signature = signature, TrackId = (ObjectId)trackReference.Id
            };

            GetCollection <SubFingerprint>(SubFingerprints).Insert(subFingerprint);
            return(new MongoModelReference(subFingerprint.Id));
        }
示例#5
0
        public static SubFingerprint CopyToSubFingerprint(IModelReference trackReference, HashedFingerprint hash)
        {
            var subFingerprint = new SubFingerprint()
            {
                TrackId        = (int)trackReference.Id,
                SequenceNumber = (int)hash.SequenceNumber,
                SequenceAt     = hash.StartsAt,
            };

            SetHashTableElements(subFingerprint, hash.HashBins);

            return(subFingerprint);
        }