#include "grouplist.h"

// ******** Group List Element **********

groupListElement::groupListElement(char *groupName, groupListElementPointer oldList) {
	thisGroup = strdup(groupName);
	next = oldList;
}

groupListElement::~groupListElement() {
	delete thisGroup;
}

// ********* Group list ******************

groupList::groupList() {
	num = 0; next = NULL; last = NULL;
}

void groupList::addGroup(char *groupName) {
	if (num == 0) {
		last = next = new groupListElement(groupName, NULL);
	} else {
		groupListElementPointer newG = 
					new groupListElement(groupName, NULL);
		last->next = newG;
		last = newG;
	}
	num++;
}

char *groupList::nextGroup() {
	groupListElementPointer old = next;
	next = next->next;
	char *ret = strdup(old->thisGroup);
	delete old;
	num--;
	if (num == 0) last = NULL;
	return ret;
}

int groupList::numGroups() {
	return num;
}


syntax highlighted by Code2HTML, v. 0.9.1