Library: switch rest of implementation
...and remove now obsolete metadata fields in the collection and builder classes
This commit is contained in:
parent
deaabcda6e
commit
bbec35ce65
3 changed files with 35 additions and 31 deletions
|
|
@ -267,8 +267,6 @@ namespace lib {
|
|||
{
|
||||
using Coll = Several<I>;
|
||||
|
||||
size_t storageSiz_{0};
|
||||
|
||||
public:
|
||||
SeveralBuilder() = default;
|
||||
|
||||
|
|
@ -308,7 +306,7 @@ namespace lib {
|
|||
size_t demand{cnt*spread};
|
||||
Coll::data_ = POL::realloc (Coll::data_, demand);
|
||||
ENSURE (Coll::data_);
|
||||
if (spread != Coll::data_->spread) ///////////////OOO API für spread?
|
||||
if (spread != Coll::spread())
|
||||
adjustSpread (spread);
|
||||
}
|
||||
|
||||
|
|
@ -316,7 +314,7 @@ namespace lib {
|
|||
fitStorage()
|
||||
{
|
||||
if (not Coll::data_) return;
|
||||
size_t demand{Coll::size_ * Coll::data_->spread};
|
||||
size_t demand{Coll::size() * Coll::spread()};
|
||||
Coll::data_ = POL::realloc (Coll::data_, demand);
|
||||
}
|
||||
|
||||
|
|
@ -325,8 +323,8 @@ namespace lib {
|
|||
adjustSpread (size_t newSpread)
|
||||
{
|
||||
REQUIRE (Coll::data_);
|
||||
REQUIRE (newSpread * Coll::size_ <= storageSiz_);
|
||||
size_t oldSpread = Coll::data_->spread;
|
||||
REQUIRE (newSpread * Coll::size() <= Coll::data_->buffSiz);
|
||||
size_t oldSpread = Coll::spread();
|
||||
if (newSpread > oldSpread)
|
||||
// need to spread out
|
||||
for (size_t i=Coll::size()-1; 0<i; --i)
|
||||
|
|
@ -366,8 +364,7 @@ namespace lib {
|
|||
size_t
|
||||
requiredSpread (size_t elmSiz)
|
||||
{
|
||||
size_t currSpread = Coll::empty()? 0 : Coll::data_->spread;
|
||||
return util::max (currSpread, elmSiz);
|
||||
return util::max (Coll::spread(), elmSiz);
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -134,7 +134,6 @@ namespace lib {
|
|||
protected:
|
||||
using Bucket = ArrayBucket<I>*;
|
||||
|
||||
size_t size_{0};
|
||||
Bucket data_{nullptr};
|
||||
|
||||
Several() =default; ///< may only be created through SeveralBuilder
|
||||
|
|
@ -181,6 +180,14 @@ namespace lib {
|
|||
friend auto begin (Several const& svl) { return svl.begin();}
|
||||
friend auto end (Several const& svl) { return svl.end(); }
|
||||
|
||||
|
||||
protected:
|
||||
size_t
|
||||
spread() const
|
||||
{
|
||||
return data_? data_->spread : sizeof(I);
|
||||
}
|
||||
|
||||
private:
|
||||
void
|
||||
discardData()
|
||||
|
|
|
|||
|
|
@ -81809,9 +81809,9 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1717796539825" ID="ID_719213336" MODIFIED="1717803235299" TEXT="Umbau Storage: alle Metadaten in das ArrayBucket verlagern">
|
||||
<linktarget COLOR="#af28b1" DESTINATION="ID_719213336" ENDARROW="Default" ENDINCLINATION="-878;40;" ID="Arrow_ID_1140258959" SOURCE="ID_505052942" STARTARROW="None" STARTINCLINATION="-488;-57;"/>
|
||||
<icon BUILTIN="pencil"/>
|
||||
<node COLOR="#338800" CREATED="1717796539825" ID="ID_719213336" MODIFIED="1717804833682" TEXT="Umbau Storage: alle Metadaten in das ArrayBucket verlagern">
|
||||
<linktarget COLOR="#286bb1" DESTINATION="ID_719213336" ENDARROW="Default" ENDINCLINATION="-878;40;" ID="Arrow_ID_1140258959" SOURCE="ID_505052942" STARTARROW="None" STARTINCLINATION="-488;-57;"/>
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node CREATED="1717796640496" ID="ID_962872298" MODIFIED="1717796742452" TEXT="Begründung: Raum für zukünftige Optimierungen schaffen">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
|
@ -81826,22 +81826,22 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</richcontent>
|
||||
<icon BUILTIN="info"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1717796744022" ID="ID_37258983" MODIFIED="1717796967258" TEXT="cnt-Parameter in das ArrayBucket">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1717796758675" ID="ID_307915281" MODIFIED="1717797027645" TEXT="neue size()-Methode">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node COLOR="#338800" CREATED="1717796744022" ID="ID_37258983" MODIFIED="1717804825999" TEXT="cnt-Parameter in das ArrayBucket">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node COLOR="#338800" CREATED="1717796758675" ID="ID_307915281" MODIFIED="1717804828423" TEXT="neue size()-Methode">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1717796764642" ID="ID_1761107240" MODIFIED="1717797027646" TEXT="diese konsequent einsetzen im Builder">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node COLOR="#338800" CREATED="1717796764642" ID="ID_1761107240" MODIFIED="1717804829789" TEXT="diese konsequent einsetzen im Builder">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1717796968326" ID="ID_992819253" MODIFIED="1717797326906" TEXT="buffSiz-Parameter (raw storage size)">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1717796995074" ID="ID_535611702" MODIFIED="1717797027646" TEXT="alle Zugriffe aus dem Builder verlagern">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node COLOR="#338800" CREATED="1717796968326" ID="ID_992819253" MODIFIED="1717804827202" TEXT="buffSiz-Parameter (raw storage size)">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node COLOR="#338800" CREATED="1717796995074" ID="ID_535611702" MODIFIED="1717804831049" TEXT="alle Zugriffe aus dem Builder verlagern">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1717797008138" ID="ID_988757676" MODIFIED="1717797027647" TEXT="Allokation / Deallokation umschreiben">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node COLOR="#338800" CREATED="1717797008138" ID="ID_988757676" MODIFIED="1717804832339" TEXT="Allokation / Deallokation umschreiben">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
|
|
@ -82497,7 +82497,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#f0d5c5" COLOR="#990033" CREATED="1717771668227" ID="ID_218024173" MODIFIED="1717771674057" TEXT="was für Auswege gibt es?">
|
||||
<node COLOR="#435e98" CREATED="1717771668227" ID="ID_218024173" MODIFIED="1717804875317" TEXT="was für Auswege gibt es?">
|
||||
<icon BUILTIN="help"/>
|
||||
<node CREATED="1717771677991" ID="ID_1848656527" MODIFIED="1717771708671" TEXT="das zusätzliche Datenfeld einfach akzeptieren">
|
||||
<node CREATED="1717771763428" ID="ID_823499935" MODIFIED="1717771767903" TEXT="leicht zu implementieren"/>
|
||||
|
|
@ -82521,8 +82521,8 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<node CREATED="1717772041335" ID="ID_871652702" MODIFIED="1717772085852" TEXT="wenn nicht, dann verschwenden wir im AllocationCluster den ganzen bisherigen Platz"/>
|
||||
<node CREATED="1717772086536" ID="ID_1322940252" MODIFIED="1717772099619" TEXT="und für Heap-Allokation müssen wir zumindest noch einmal alles umkopieren"/>
|
||||
</node>
|
||||
<node CREATED="1717773260668" ID="ID_1403509932" MODIFIED="1717796516735" TEXT="das ArrayBucket dynamisch flexibel machen">
|
||||
<arrowlink COLOR="#5a38d9" DESTINATION="ID_505052942" ENDARROW="Default" ENDINCLINATION="83;-42;" ID="Arrow_ID_1081178000" STARTARROW="None" STARTINCLINATION="-249;16;"/>
|
||||
<node BACKGROUND_COLOR="#c8c0b6" CREATED="1717773260668" ID="ID_1403509932" MODIFIED="1717804878671" TEXT="das ArrayBucket dynamisch flexibel machen">
|
||||
<arrowlink COLOR="#575baf" DESTINATION="ID_505052942" ENDARROW="Default" ENDINCLINATION="83;-42;" ID="Arrow_ID_1081178000" STARTARROW="None" STARTINCLINATION="-249;16;"/>
|
||||
<icon BUILTIN="forward"/>
|
||||
<node CREATED="1717773280353" ID="ID_1332303474" MODIFIED="1717773295509" TEXT="alle weiteren Metadaten liegen im ArrayBucket"/>
|
||||
<node CREATED="1717773296351" ID="ID_129834213" MODIFIED="1717773606110" TEXT="dabei wird ein spezielles optimiertes Placement verwendet">
|
||||
|
|
@ -82568,10 +82568,10 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1717796486424" ID="ID_505052942" MODIFIED="1717803235298" TEXT="Konsequenz: Storage umbauen">
|
||||
<arrowlink COLOR="#af28b1" DESTINATION="ID_719213336" ENDARROW="Default" ENDINCLINATION="-878;40;" ID="Arrow_ID_1140258959" STARTARROW="None" STARTINCLINATION="-488;-57;"/>
|
||||
<linktarget COLOR="#5a38d9" DESTINATION="ID_505052942" ENDARROW="Default" ENDINCLINATION="83;-42;" ID="Arrow_ID_1081178000" SOURCE="ID_1403509932" STARTARROW="None" STARTINCLINATION="-249;16;"/>
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node COLOR="#338800" CREATED="1717796486424" ID="ID_505052942" MODIFIED="1717804847524" TEXT="Konsequenz: Storage umbauen">
|
||||
<arrowlink COLOR="#286bb1" DESTINATION="ID_719213336" ENDARROW="Default" ENDINCLINATION="-878;40;" ID="Arrow_ID_1140258959" STARTARROW="None" STARTINCLINATION="-488;-57;"/>
|
||||
<linktarget COLOR="#575baf" DESTINATION="ID_505052942" ENDARROW="Default" ENDINCLINATION="83;-42;" ID="Arrow_ID_1081178000" SOURCE="ID_1403509932" STARTARROW="None" STARTINCLINATION="-249;16;"/>
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
|
|
|
|||
Loading…
Reference in a new issue