X-Git-Url: http://sru.miketaylor.org.uk/?a=blobdiff_plain;f=src%2Fyaz-z-cache.cpp;h=1468b7df8af9e096e26ba71ee0bbfddd60feaa1f;hb=7fc0fddcb85cd64461c7b3dd3e68791eb88b40be;hp=8571410a7a3183a0c632c793b71474a5a7ff460e;hpb=5053dee0c4d74ee87d8068fc1230eb721262e786;p=yazpp-moved-to-github.git diff --git a/src/yaz-z-cache.cpp b/src/yaz-z-cache.cpp index 8571410..1468b7d 100644 --- a/src/yaz-z-cache.cpp +++ b/src/yaz-z-cache.cpp @@ -2,7 +2,7 @@ * Copyright (c) 2002-2003, Index Data. * See the file LICENSE for details. * - * $Id: yaz-z-cache.cpp,v 1.4 2003-08-28 18:46:54 adam Exp $ + * $Id: yaz-z-cache.cpp,v 1.6 2003-10-08 08:52:59 adam Exp $ */ #include @@ -21,6 +21,7 @@ Yaz_RecordCache::Yaz_RecordCache () m_entries = 0; m_presentRequest = 0; m_searchRequest = 0; + m_max_size = 200000; } Yaz_RecordCache::~Yaz_RecordCache () @@ -28,6 +29,11 @@ Yaz_RecordCache::~Yaz_RecordCache () nmem_destroy(m_mem); } +void Yaz_RecordCache::set_max_size(int sz) +{ + m_max_size = sz; +} + void Yaz_RecordCache::clear () { nmem_destroy(m_mem); @@ -80,6 +86,8 @@ void Yaz_RecordCache::copy_presentRequest(Z_PresentRequest *pr) void Yaz_RecordCache::add (ODR o, Z_NamePlusRecordList *npr, int start, int hits) { + if (nmem_total(m_mem) > m_max_size) + return; // Build appropriate compspec for this response Z_RecordComposition *comp = 0; if (hits == -1 && m_presentRequest) @@ -160,7 +168,7 @@ int Yaz_RecordCache::lookup (ODR o, Z_NamePlusRecordList **npr, Z_RecordComposition *comp) { int i; - yaz_log(LOG_LOG, "cache lookup start=%d num=%d", start, num); + yaz_log(LOG_DEBUG, "cache lookup start=%d num=%d", start, num); for (i = 0; i