File: name_store_cache.cpp

package info (click to toggle)
seqan2 2.4.0%2Bdfsg-16
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 224,180 kB
  • sloc: cpp: 256,886; ansic: 91,672; python: 8,330; sh: 995; xml: 570; makefile: 252; awk: 51; javascript: 21
file content (42 lines) | stat: -rw-r--r-- 1,335 bytes parent folder | download | duplicates (7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include <iostream>

#include <seqan/sequence.h>
#include <seqan/misc/name_store_cache.h>

using namespace seqan;

int main()
{
    typedef StringSet<CharString>      TNameStore;
    typedef NameStoreCache<TNameStore> TNameStoreCache;

    // Used below.
    unsigned idx = 0;
    bool success = false;

    // Define the name store and cache.
    TNameStore      nameStore;

    // Append two names to the name store without the cache.
    appendValue(nameStore, "I");
    appendValue(nameStore, "II");

    // Construct the name store.  The name store knows about both "I" and "II".
    TNameStoreCache nameStoreCache(nameStore);
    success = getIdByName(idx, nameStoreCache, "I");
    std::cout << "lookup I   => success=" << success << ", idx=" << idx << "\n";
    success = getIdByName(idx, nameStoreCache, "II");
    std::cout << "lookup II  => success=" << success << ", idx=" << idx << "\n";

    // Append value through cache.
    appendName(nameStoreCache, "III");
    success = getIdByName(idx, nameStoreCache, "III");
    std::cout << "lookup III => success=" << success << ", idx=" << idx << "\n";

    // Append value and query at the same time.
    idx = nameToId(nameStoreCache, "IV");
    std::cout << "lookup IV  => idx=" << idx << ", length(nameStore)="
              << length(nameStore) << "\n";

    return 0;
}