Пример #1
0
void cactusDisk_destruct(CactusDisk *cactusDisk) {
    Flower *flower;
    MetaSequence *metaSequence;

    while ((flower = stSortedSet_getFirst(cactusDisk->flowers)) != NULL) {
        flower_destruct(flower, FALSE);
    }
    stSortedSet_destruct(cactusDisk->flowers);

    stSortedSet_destruct(cactusDisk->flowerNamesMarkedForDeletion);

    while ((metaSequence = stSortedSet_getFirst(cactusDisk->metaSequences)) != NULL) {
        metaSequence_destruct(metaSequence);
    }
    stSortedSet_destruct(cactusDisk->metaSequences);

    //close DB
    stKVDatabase_destruct(cactusDisk->database);

    //Close the sequences files.
    if (cactusDisk->storeSequencesInAFile) {
        free(cactusDisk->sequencesFileName);
        free(cactusDisk->absSequencesFileName);
        if (cactusDisk->sequencesReadFileHandle != NULL) {
            fclose(cactusDisk->sequencesReadFileHandle);
        }
        if (cactusDisk->sequencesWriteFileHandle != NULL) {
            fsync(fileno(cactusDisk->sequencesWriteFileHandle));
            fclose(cactusDisk->sequencesWriteFileHandle);
        }
    } else {
        assert(cactusDisk->sequencesFileName == NULL);
        assert(cactusDisk->sequencesReadFileHandle == NULL);
        assert(cactusDisk->absSequencesFileName == NULL);
    }

    stCache_destruct(cactusDisk->cache); //Get rid of the cache
    stCache_destruct(cactusDisk->stringCache);

    stList_destruct(cactusDisk->updateRequests);

    free(cactusDisk);
}
Пример #2
0
static void test_stSortedSet(CuTest* testCase) {
    sonLibSortedSetTestSetup();
    int32_t i;
    CuAssertIntEquals(testCase, 0, stSortedSet_size(sortedSet));
    for(i=0; i<size; i++) {
        stSortedSet_insert(sortedSet, stIntTuple_construct(1, input[i]));
    }
    CuAssertIntEquals(testCase, sortedSize, stSortedSet_size(sortedSet));
    CuAssertIntEquals(testCase, sortedInput[0], stIntTuple_getPosition(stSortedSet_getFirst(sortedSet), 0));
    CuAssertIntEquals(testCase, sortedInput[sortedSize-1], stIntTuple_getPosition(stSortedSet_getLast(sortedSet), 0));
    for(i=0; i<sortedSize; i++) {
        CuAssertIntEquals(testCase, sortedSize-i, stSortedSet_size(sortedSet));
        stIntTuple *tuple = stIntTuple_construct(1, sortedInput[i]);
        CuAssertTrue(testCase, stIntTuple_getPosition(stSortedSet_search(sortedSet, tuple), 0) == sortedInput[i]);
        stSortedSet_remove(sortedSet, tuple);
        CuAssertTrue(testCase, stSortedSet_search(sortedSet, tuple) == NULL);
        stIntTuple_destruct(tuple);
    }
    sonLibSortedSetTestTeardown();
}
Пример #3
0
Segment *block_getFirst(Block *block) {
	return block_getInstanceP(block, stSortedSet_getFirst(block->blockContents->segments));
}
Пример #4
0
Event *eventTree_getFirst(EventTree *eventTree) {
	return stSortedSet_getFirst(eventTree->events);
}
Пример #5
0
Face *flower_getFirstFace(Flower *flower) {
    return stSortedSet_getFirst(flower->faces);
}
Пример #6
0
Chain *flower_getFirstChain(Flower *flower) {
    return stSortedSet_getFirst(flower->chains);
}
Пример #7
0
Group *flower_getFirstGroup(Flower *flower) {
    return stSortedSet_getFirst(flower->groups);
}
Пример #8
0
Block *flower_getFirstBlock(Flower *flower) {
    return stSortedSet_getFirst(flower->blocks);
}
Пример #9
0
Segment *flower_getFirstSegment(Flower *flower) {
    return stSortedSet_getFirst(flower->segments);
}
Пример #10
0
End *flower_getFirstEnd(Flower *flower) {
    return stSortedSet_getFirst(flower->ends);
}
Пример #11
0
Cap *flower_getFirstCap(Flower *flower) {
    return stSortedSet_getFirst(flower->caps);
}
Пример #12
0
Sequence *flower_getFirstSequence(Flower *flower) {
    return stSortedSet_getFirst(flower->sequences);
}