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()); }
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); }