Quintiq file version 2.0
|
#parent: #root
|
Method RecursiveDeleteSnapshots (
|
LibOpt_Snapshot snapshot,
|
Number number_to_delete
|
) as Number
|
{
|
Description:
|
[*
|
Recursively walk the list of snapshots starting from the provided `LibOpt_Snapshot` and find snapshots that can be deleted.
|
A snapshot that can be deleted is a snapshot without grand children.
|
This is because deleting a child `LibOpt_Snapshot` would leave incomplete information underneath the parent `LibOpt_Snapshot`.
|
*]
|
TextBody:
|
[*
|
// benlong Mar-28-2022 (created)
|
if( snapshot.CanAutoDelete() )
|
{
|
snapshotsBeforeDelete := this.Snapshot( relsize );
|
snapshot.Delete();
|
snapshotsAfterDelete := this.Snapshot( relsize );
|
|
number_to_delete := number_to_delete - ( snapshotsBeforeDelete - snapshotsAfterDelete );
|
}
|
else
|
{
|
traverse( snapshot, Children, child, number_to_delete > 0 )
|
{
|
number_to_delete := this.RecursiveDeleteSnapshots( child, number_to_delete );
|
}
|
}
|
return number_to_delete;
|
*]
|
}
|