diff options
author | unknown <Pixel@.(none)> | 2009-09-16 22:24:08 -0700 |
---|---|---|
committer | unknown <Pixel@.(none)> | 2009-09-16 22:24:08 -0700 |
commit | 6a653b35990e9a642dd4af9b8ee5742d5a84956c (patch) | |
tree | 31dac2b537af43584bbc6237df824cad7dba1a00 /Database/internals/database-internal.h | |
parent | 2142bda77399a49f0a6684cccb4bb3420c2a10df (diff) |
Adding basic Database structure.
Diffstat (limited to 'Database/internals/database-internal.h')
-rw-r--r-- | Database/internals/database-internal.h | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/Database/internals/database-internal.h b/Database/internals/database-internal.h new file mode 100644 index 0000000..75e82c9 --- /dev/null +++ b/Database/internals/database-internal.h @@ -0,0 +1,39 @@ +#ifndef __DATABASE_INTERNAL_H__
+#define __DATABASE_INTERNAL_H__
+
+#include "database-segment.h"
+#include "database-types.h"
+
+class Database;
+class Cpu;
+
+/** A database element. Basically, the database is a collection of segments, associated with information.
+ * This class could have been merged with Segment's, but in an effort to split the segment, that only
+ * contains the raw memory, and the various data associated with it, this glue element exists. It'll also
+ * construct a linked list for the database.
+ */
+
+class DatabaseCell : public Base {
+ public:
+ /** The constructor of a DatabaseCell. Note that if you specify the origin parameter,
+ * it'll create a sub-segment based on the first one. Note also that this doesn't support
+ * the patching system, yet.
+ */
+ DatabaseCell(Cpu * cpu, Uint64 cpu_base, absolute_ptr origin, Uint32 size, Uint32 extra_size, DatabaseCell * prev);
+ ~DatabaseCell();
+ Uint32 getID() { return segment->GetID(); }
+ void LoadMemory(Handle * src) { segment->LoadMemory(src); }
+ Segment * getSegment() { return segment; }
+ Cpu * getCpu() { return cpu; }
+ Uint64 getCpuBase() { return segment->getCpuBase(); }
+ absolute_ptr getOrigin() { return origin; }
+
+ private:
+ Segment * segment;
+ Cpu * cpu;
+ absolute_ptr origin; // a data segment can come from within another one
+ DatabaseCell * next, * prev;
+ Database * parent;
+};
+
+#endif
|