예제 #1
0
char* rx_compile(const gcstring& s)
	{
	static CacheMap<10, gcstring, char*> cache;
	if (char** p = cache.get(s))
		return *p;
	return cache.put(s, RxCompile(s.ptr(), s.size()).compile());
	}
예제 #2
0
void LinkedHashMapTest::testRemoveEldest() {

    int i;
    int size = 10;
    CacheMap map;
    for (i = 0; i < size; i++) {
        map.put(i, i * 2);
    }

    Collection<int>& values = map.values();
    Pointer< Iterator<int> > iter(values.iterator());

    CPPUNIT_ASSERT_MESSAGE("Returned set of incorrect size 1", map.size() == values.size());
    for (i = 5; iter->hasNext(); i++) {
        int current = iter->next();
        CPPUNIT_ASSERT_MESSAGE("Returned incorrect entry set 1", current == i * 2);
    }
    CPPUNIT_ASSERT_MESSAGE("Entries left in map", !iter->hasNext());

    CPPUNIT_ASSERT_EQUAL_MESSAGE("Incorrect number of removals", 5, map.removals);
}