summaryrefslogtreecommitdiff
path: root/Database/database.h
diff options
context:
space:
mode:
Diffstat (limited to 'Database/database.h')
-rw-r--r--Database/database.h16
1 files changed, 12 insertions, 4 deletions
diff --git a/Database/database.h b/Database/database.h
index dffaaf5..be46598 100644
--- a/Database/database.h
+++ b/Database/database.h
@@ -7,16 +7,24 @@
class Database : public Base {
public:
- Database();
- ~Database();
+ Database() : start(0), end(0), currentId(1) { }
+ ~Database() { while(start) delete start; }
DatabaseCell * getStart() { return start; }
DatabaseCell * getEnd() { return end; }
void setStart(DatabaseCell * newStart) { start = newStart; }
void setEnd(DatabaseCell * newEnd) { end = newEnd; }
- Segment * getSegment(Uint32 id);
- Uint32 GetNextSegId();
+ Segment * getSegment(Uint32 id) {
+ DatabaseCell * cursor;
+
+ for (cursor = start; start; cursor = cursor->getNext())
+ if (cursor->getId() == id)
+ return cursor->getSegment();
+ return 0;
+ }
+ Uint32 GetNextSegId() { return currentId++; }
private:
DatabaseCell * start, * end;
+ Uint32 currentId;
};
#endif