#include //" #include "svcenum.h" //?> #include #include #include SvcEnum::SvcEnum() : type(WaSvc::NONE), factory(NULL) { reset(); } void *SvcEnum::_getNext(int global_lock) { if (WASABI_API_SVC == NULL) return NULL; for (;;) { factory = WASABI_API_SVC->service_enumService(type, pos++); if (factory == NULL) return NULL; void *s = factory->getInterface(FALSE);// get but don't lock if (s) { if (_testService(s)) { if (global_lock) WASABI_API_SVC->service_lock(factory, s); // lock in sys tables return s; } factory->releaseInterface(s); } } } void SvcEnum::reset() { pos = 0; factory = NULL; } int SvcEnum::release(void *ptr) { return WASABI_API_SVC->service_release(ptr); } waServiceFactory *SvcEnum::getLastFactory() { return factory; }