#include "VSink.h"#include "Current.h"VSink::VSink( void ){		itsCurrentList = NULL;	isDying = 0;}VSink::~VSink( void ){	isDying = 1;		// We delete our Currents before we die.		CurrentNode *cur=itsCurrentList;	CurrentNode *next;		while (cur) {		next = cur->itsNext;		delete cur->itsCurrent;		delete cur;		cur = next;	}}void VSink::AddCurrent( Current *pCurrent ){	CurrentNode *newbie = new CurrentNode( pCurrent );	CurrentNode *prev = NULL;	for (CurrentNode *cur=itsCurrentList; cur; prev=cur, cur=cur->itsNext)		;	if (prev) prev->itsNext = newbie;	else itsCurrentList = newbie;}	void VSink::RemoveCurrent( Current *pCurrent ){	// Remove the Current from our list (unless we're already dying).	// This function does not actually destroy the Current.		if (isDying) return;		CurrentNode *cur,*prev=NULL;		for (cur=itsCurrentList; cur; prev=cur, cur=cur->itsNext) {		if (cur->itsCurrent == pCurrent) {			if (prev) prev->itsNext = cur->itsNext;			else itsCurrentList = cur->itsNext;			delete cur;			return;		}	}}
