/* WARNING: This file was generated by dkct. Changes you make here will be lost if dkct is run again! You should modify the original source and run dkct on it. Original source: test-container.cpt */ /** @file test-container.cpp The test-container module. */ #line 1 "test-container.cpt" #include "dk4conf.h" #if DK4_HAVE_STDLIB_H #include #endif #if DK4_HAVE_UNISTD_H #include #endif #if DK4_TIME_WITH_SYS_TIME #include #include #else #if DK4_HAVE_TIME_H #include #else #if DK4_HAVE_SYS_TIME_H #include #endif #endif #endif #include "Dk4Comparable.h" #include "Dk4Container.h" class RandomNumber: public DkTools4::Comparable { private: int i; public: RandomNumber(void); ~RandomNumber(); int getNumber() const; int compareAgainst(void const *data, int cr) const; }; RandomNumber::RandomNumber(void) { i = rand(); } RandomNumber::~RandomNumber() { fputs("Destructor for RandomNumber\n", stdout); } int RandomNumber::getNumber() const { return i; } int RandomNumber::compareAgainst(void const *data, int cr) const { int back = 0; int j; RandomNumber *pr = (RandomNumber *)data; j = pr->getNumber(); if(i > j) { back = 1; } else { if(i < j) { back = -1; } } return back; } int main(int argc, char *argv[]) { int i; time_t timer; RandomNumber *rndn; time(&timer); srand(timer); try { DkTools4::Container container(0, true); for(i = 0; i < 100; i++) { RandomNumber *rndn = new RandomNumber(); if(!container.add(rndn)) { delete rndn ; } } container.reset(); i = 0; while(NULL != (rndn = container.next())) { printf("%04d: %d\n", ++i, rndn->getNumber()); #if 0 if (50 == i) { throw(std::bad_alloc()); } #endif } } catch(...) { printf("Poese Exception beim Container\n"); } return 0; }