36 lines
998 B
C++
36 lines
998 B
C++
|
#include <precomp.h>
|
||
|
#include "svccache.h"
|
||
|
#include <bfc/string/bfcstring.h>
|
||
|
|
||
|
#if !defined(WASABI_API_SVC)
|
||
|
#error no no
|
||
|
#endif
|
||
|
|
||
|
SvcCache::SvcCache(FOURCC type) {
|
||
|
int p = 0;
|
||
|
list.setAutoSort(FALSE);
|
||
|
for (;;) {
|
||
|
waServiceFactory *svc = WASABI_API_SVC->service_enumService(type, p++);
|
||
|
if (svc == NULL) break;
|
||
|
const wchar_t *teststr = svc->getTestString();
|
||
|
if (teststr == NULL || *teststr == '\0') continue;
|
||
|
//CUT DebugString("cachin %s\n", teststr);
|
||
|
list.addItem(svc);
|
||
|
}
|
||
|
list.setAutoSort(TRUE);
|
||
|
}
|
||
|
|
||
|
waServiceFactory *SvcCache::findServiceFactory(const wchar_t *searchval) {
|
||
|
return list.findItem(searchval);
|
||
|
}
|
||
|
|
||
|
int SvcCache::waServiceFactoryCompare::compareItem(waServiceFactory *p1, waServiceFactory* p2) {
|
||
|
int r = WCSICMP(p1->getTestString(), p2->getTestString());
|
||
|
if (r == 0) return CMP3(p1, p2);
|
||
|
return r;
|
||
|
}
|
||
|
|
||
|
int SvcCache::waServiceFactoryCompare::compareAttrib(const wchar_t *attrib, waServiceFactory *item) {
|
||
|
return WCSICMP(attrib, item->getTestString());
|
||
|
}
|