#include "mPool.h" mPool::mPool ( ) { int i; head = new Message; tail = head; for (i=1; i<10000; ++i) { tail->Next = new Message; tail = tail->Next; } size = 10000; } mPool::~mPool ( ) { Message *tmp = head; while (head != NULL) { tmp = head; head = head->Next; delete tmp; } head = tmp = tail = NULL; } Message * mPool::checkOut ( ) { if (getSize () <= 1) { addSomeMore ( ); } Message *tmp = head; head = head->Next; --size; return tmp; } void mPool::checkIn (Message *returned) { tail->Next = returned; while (tail->Next != NULL) { ++size; tail = tail->Next; } } int mPool::getSize ( ) const { return size; } void mPool::addSomeMore ( ) { int i; for (i=0; i<100; ++i) { tail->Next=new Message; ++size; tail = tail->Next; } tail->Next = NULL; }