Completely removed the entire representation tree from the GUI . . .
commited7e417afad572ee0df02d2e9fa16483251353b5
authorstrange <kawk256@gmail.com>
Sun, 7 Feb 2010 00:09:38 +0000 (6 17:09 -0700)
committerstrange <kawk256@gmail.com>
Sun, 7 Feb 2010 00:09:38 +0000 (6 17:09 -0700)
treedc254f0f95ba8809aa3f8f4dc67ea6725ff3e01f
parent00d493329312077540203008d867243d9942b1b5
Completely removed the entire representation tree from the GUI . . .

. . . and am redesigning it. First off, a few definitions of the terms that
I'm using:
+ Event: Single modification of the representation, such as a block
    allocation
+ Snapshot: Complete representation of the program's memory for a given point
    in time

Now, for what I'm thinking for the new design . . . the most radical change is
the method of storing the blocks (references will be stored in a similar
manner as well), which is a tree, rather than a flat container. Something
along the lines of this:

           |
       |       |
   |       |       |
 Block   Block   Block

A snapshot is simply a "head" element of a tree. Each tree node stores an ID,
the ID of the snapshot that last modified it. In that way, a sort of copy-on-
write algorithm is implemented.

Each snapshot stores a list of events that follow it. As such, an exact
representation of the program's memory at any given point is stored, without
an exorbitant amount of memory used. The event list can also be removed
without undue harm to the tree other than the removal of accuracy . . .

A list of snapshots is required as well, of course . . .

So, the classes that are required:
+ Event
+ EventList
+ Snapshot
+ SnapshotList

SnapshotList does not share any code with EventList (or, at least, very
little . . . perhaps the "class" keyword?), so it is a distinct class unto
itself. EventLists additionally need to store the snapshots directly before
and after them.

As for Events . . . regarding blocks, there are only two event types required,
block creation and block removal -- a resize is simply the removal of the old
block, and another block inserted . . . AllocBlock and FreeBlock, I suppose.

I think that's about it for the moment . . . time to get to work.
37 files changed:
gui/src/ActiveSession.cpp [deleted file]
gui/src/ActiveSession.h [deleted file]
gui/src/ActiveSessionBlockView.cpp [deleted file]
gui/src/ActiveSessionBlockView.h [deleted file]
gui/src/ActiveSessionMemory.cpp [deleted file]
gui/src/ActiveSessionMemory.h [deleted file]
gui/src/ActiveSessionMemoryStorage.cpp [deleted file]
gui/src/ActiveSessionMemoryStorage.h [deleted file]
gui/src/ActiveSessionOverview.cpp [deleted file]
gui/src/ActiveSessionOverview.h [deleted file]
gui/src/ActiveSessionSocket.cpp [deleted file]
gui/src/ActiveSessionSocket.h [deleted file]
gui/src/Aesalon.cpp
gui/src/CMakeLists.txt
gui/src/Session.cpp [deleted file]
gui/src/Session.h [deleted file]
gui/src/SessionEditor.cpp [deleted file]
gui/src/SessionEditor.h [deleted file]
gui/src/SessionListWidget.cpp [deleted file]
gui/src/SessionListWidget.h [deleted file]
gui/src/SessionManager.cpp [deleted file]
gui/src/SessionManager.h [deleted file]
gui/src/data/DataReceiver.cpp [new file with mode: 0644]
gui/src/data/DataReceiver.h [new file with mode: 0644]
gui/src/data/DataSource.cpp [new file with mode: 0644]
gui/src/data/DataSource.h [new file with mode: 0644]
gui/src/data/NetworkReceiver.cpp [new file with mode: 0644]
gui/src/data/NetworkReceiver.h [new file with mode: 0644]
gui/src/data/NetworkSource.cpp [new file with mode: 0644]
gui/src/data/NetworkSource.h [new file with mode: 0644]
gui/src/main/Configuration.cpp [moved from gui/src/Configuration.cpp with 100% similarity]
gui/src/main/Configuration.h [moved from gui/src/Configuration.h with 100% similarity]
gui/src/main/MainArea.cpp [moved from gui/src/MainArea.cpp with 63% similarity]
gui/src/main/MainArea.h [moved from gui/src/MainArea.h with 96% similarity]
gui/src/main/MainWindow.cpp [moved from gui/src/MainWindow.cpp with 99% similarity]
gui/src/main/MainWindow.h [moved from gui/src/MainWindow.h with 98% similarity]
monitor/src/ProgramManager.cpp