00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #include <xplc/utils.h>
00023 #include "catiter.h"
00024
00025 UUID_MAP_BEGIN(CategoryIterator)
00026 UUID_MAP_ENTRY(IObject)
00027 UUID_MAP_ENTRY(ICategoryIterator)
00028 UUID_MAP_END
00029
00030 CategoryIterator::CategoryIterator(ICategory* aCategory,
00031 CategoryEntryNode* aEntries):
00032 category(aCategory),
00033 current(aEntries) {
00034
00035
00036
00037
00038 category->addRef();
00039 }
00040
00041 const UUID& CategoryIterator::getUuid() {
00042 if(current)
00043 return current->entry;
00044
00045 return UUID_null;
00046 }
00047
00048 const char* CategoryIterator::getString() {
00049 if(current)
00050 return current->str;
00051
00052 return 0;
00053 }
00054
00055 void CategoryIterator::next() {
00056 if(current)
00057 current = current->next;
00058 }
00059
00060 bool CategoryIterator::done() {
00061 return current == 0;
00062 }
00063
00064 CategoryIterator::~CategoryIterator() {
00065 category->release();
00066 }
00067