There's several ways to describe the main change at a high-level:
change DataSetBlock such that it is fully functional without being a child class of DataSet
completely decouple DataSetBlock from DataSet
allow the creation of blocks (instances of DataSetBlock) without a "base" (instance of DataSet)
At a lower-level, the changes are:
modify DataSetBlock to be fully functional (as required by methods and the task runner) without using DataSet as a base class
remove the use of DataSet and FullFileDataSet from the data store writer + reader and task runner
remove the use of FullFileDataSet from StandardTomoLoader
remove DataSet and FullFileDataSet completely
Motivation
This change was partly motivated by the difficulties seen in trying to use FullFileDataSet in StandardTomoLoader to create blocks (ie, to create instances of DataSetBlock).
Another reason for this change was that, as development has continued, it was recognised that the main data object that methods and the task runner work with are blocks rather than chunks. In other words, blocks are the fundamental data object in httomo, not chunks. On the other hand, the original dataset design involves a class hierarchy where a chunk (represented by DataSet) is the fundamental data object, and from which other data objects derive from to get certain behaviour (DataSetBlock and FullFileDataSet). These two choices about which data object is the fundamental one clash, and consequences of this clash are likely manifested in some of the difficulties that have been encountered during development.
Changes
There's several ways to describe the main change at a high-level:
DataSetBlock
such that it is fully functional without being a child class ofDataSet
DataSetBlock
fromDataSet
DataSetBlock
) without a "base" (instance ofDataSet
)At a lower-level, the changes are:
DataSetBlock
to be fully functional (as required by methods and the task runner) without usingDataSet
as a base classDataSet
andFullFileDataSet
from the data store writer + reader and task runnerFullFileDataSet
fromStandardTomoLoader
DataSet
andFullFileDataSet
completelyMotivation
This change was partly motivated by the difficulties seen in trying to use
FullFileDataSet
inStandardTomoLoader
to create blocks (ie, to create instances ofDataSetBlock
).Another reason for this change was that, as development has continued, it was recognised that the main data object that methods and the task runner work with are blocks rather than chunks. In other words, blocks are the fundamental data object in httomo, not chunks. On the other hand, the original dataset design involves a class hierarchy where a chunk (represented by
DataSet
) is the fundamental data object, and from which other data objects derive from to get certain behaviour (DataSetBlock
andFullFileDataSet
). These two choices about which data object is the fundamental one clash, and consequences of this clash are likely manifested in some of the difficulties that have been encountered during development.