Skip to content
Snippets Groups Projects
Commit bcd9aafc authored by Hans Moog's avatar Hans Moog
Browse files

Feat: started adding cleanup methods

parent 505c75ca
Branches
No related tags found
No related merge requests found
...@@ -237,13 +237,8 @@ func TestAggregateAggregatedRealities(t *testing.T) { ...@@ -237,13 +237,8 @@ func TestAggregateAggregatedRealities(t *testing.T) {
objectstorage.WaitForWritesToFlush() objectstorage.WaitForWritesToFlush()
if err := ledgerState.GenerateRealityVisualization("realities1.png"); err != nil { ledgerState.GenerateRealityVisualization("realities1.png")
t.Error(err) NewVisualizer(ledgerState).RenderTransferOutputs("outputs1.png")
}
if err := NewVisualizer(ledgerState).RenderTransferOutputs("outputs1.png"); err != nil {
t.Error(err)
}
multiSpend(ledgerState, 2, outputs0[0], outputs1[0]) multiSpend(ledgerState, 2, outputs0[0], outputs1[0])
...@@ -251,13 +246,8 @@ func TestAggregateAggregatedRealities(t *testing.T) { ...@@ -251,13 +246,8 @@ func TestAggregateAggregatedRealities(t *testing.T) {
objectstorage.WaitForWritesToFlush() objectstorage.WaitForWritesToFlush()
if err := ledgerState.GenerateRealityVisualization("realities2.png"); err != nil { ledgerState.GenerateRealityVisualization("realities2.png")
t.Error(err) NewVisualizer(ledgerState).RenderTransferOutputs("outputs2.png")
}
if err := NewVisualizer(ledgerState).RenderTransferOutputs("outputs2.png"); err != nil {
t.Error(err)
}
} }
func TestElevateAggregatedReality(t *testing.T) { func TestElevateAggregatedReality(t *testing.T) {
...@@ -291,13 +281,8 @@ func TestElevateAggregatedReality(t *testing.T) { ...@@ -291,13 +281,8 @@ func TestElevateAggregatedReality(t *testing.T) {
objectstorage.WaitForWritesToFlush() objectstorage.WaitForWritesToFlush()
if err := ledgerState.GenerateRealityVisualization("realities.png"); err != nil { ledgerState.GenerateRealityVisualization("realities.png")
t.Error(err) NewVisualizer(ledgerState).RenderTransferOutputs("outputs.png")
}
if err := NewVisualizer(ledgerState).RenderTransferOutputs("outputs.png"); err != nil {
t.Error(err)
}
} }
func TestElevate(t *testing.T) { func TestElevate(t *testing.T) {
......
packages/ledgerstate/outputs1.png

106 KiB | W: | H:

packages/ledgerstate/outputs1.png

106 KiB | W: | H:

packages/ledgerstate/outputs1.png
packages/ledgerstate/outputs1.png
packages/ledgerstate/outputs1.png
packages/ledgerstate/outputs1.png
  • 2-up
  • Swipe
  • Onion skin
packages/ledgerstate/outputs2.png

121 KiB | W: | H:

packages/ledgerstate/outputs2.png

121 KiB | W: | H:

packages/ledgerstate/outputs2.png
packages/ledgerstate/outputs2.png
packages/ledgerstate/outputs2.png
packages/ledgerstate/outputs2.png
  • 2-up
  • Swipe
  • Onion skin
...@@ -16,6 +16,8 @@ type Reality struct { ...@@ -16,6 +16,8 @@ type Reality struct {
id RealityId id RealityId
parentRealityIds RealityIdSet parentRealityIds RealityIdSet
parentRealityIdsMutex sync.RWMutex parentRealityIdsMutex sync.RWMutex
subRealityIds RealityIdSet
subRealityIdsMutex sync.RWMutex
conflictIds ConflictIdSet conflictIds ConflictIdSet
conflictIdsMutex sync.RWMutex conflictIdsMutex sync.RWMutex
transferOutputCount uint32 transferOutputCount uint32
...@@ -499,23 +501,40 @@ func (reality *Reality) elevateTransferOutput(transferOutputReference *TransferO ...@@ -499,23 +501,40 @@ func (reality *Reality) elevateTransferOutput(transferOutputReference *TransferO
// Private utility function that elevates the transfer output from the current reality to the new reality. // Private utility function that elevates the transfer output from the current reality to the new reality.
func (reality *Reality) elevateTransferOutputOfCurrentReality(transferOutput *TransferOutput, newReality *Reality) (err error) { func (reality *Reality) elevateTransferOutputOfCurrentReality(transferOutput *TransferOutput, newReality *Reality) (err error) {
if err = newReality.bookTransferOutput(transferOutput); err == nil { for transferHash, addresses := range transferOutput.GetConsumers() {
for transferHash, addresses := range transferOutput.GetConsumers() { for _, addressHash := range addresses {
for _, addressHash := range addresses { if elevateErr := reality.elevateTransferOutput(NewTransferOutputReference(transferHash, addressHash), newReality); elevateErr != nil {
if elevateErr := reality.elevateTransferOutput(NewTransferOutputReference(transferHash, addressHash), newReality); elevateErr != nil { err = elevateErr
err = elevateErr
return return
}
} }
} }
} }
err = newReality.bookTransferOutput(transferOutput)
return return
} }
// endregion /////////////////////////////////////////////////////////////////////////////////////////////////////////// // endregion ///////////////////////////////////////////////////////////////////////////////////////////////////////////
func (reality *Reality) RegisterSubReality(realityId RealityId) {
reality.subRealityIdsMutex.RLock()
if _, subRealityIdExists := reality.subRealityIds[realityId]; !subRealityIdExists {
reality.subRealityIdsMutex.RLock()
reality.subRealityIdsMutex.Lock()
if _, subRealityIdExists := reality.subRealityIds[realityId]; !subRealityIdExists {
reality.subRealityIds[realityId] = void
reality.SetModified()
}
reality.subRealityIdsMutex.Unlock()
} else {
reality.subRealityIdsMutex.RUnlock()
}
}
func (reality *Reality) elevateTransferOutputOfNestedReality(transferOutput *TransferOutput, oldParentRealityId RealityId, newParentRealityId RealityId) (err error) { func (reality *Reality) elevateTransferOutputOfNestedReality(transferOutput *TransferOutput, oldParentRealityId RealityId, newParentRealityId RealityId) (err error) {
if !reality.IsAggregated() { if !reality.IsAggregated() {
reality.replaceParentReality(oldParentRealityId, newParentRealityId) reality.replaceParentReality(oldParentRealityId, newParentRealityId)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment