[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Surprise-dev] GNU Parted and Partition Surprise

From: Jan Kratochvil
Subject: Re: [Surprise-dev] GNU Parted and Partition Surprise
Date: Mon, 23 Jul 2001 02:16:01 +0200
User-agent: Mutt/1.3.19i

On Mon, Jul 23, 2001 at 09:54:45AM +1000, Andrew Clausen wrote:
> And you want to swap the order.  You need to do something like:
>       AAAAaaBBBBbb
>       AAAA  BBBBbb
>       AAAABBBB
                ^^^^=fatal requirement!
>           BBBBAAAA
        ^^^^=fatal requirement!
>       BBBBbb  AAAA
>       BBBBbbAAAAaa
> Make sense?
> So, you can't just commit to the final state immediately...
> if you commit B to it's final state, it will clobber A.

Oh, sorry, OK, I got it now . So you need "md" device to rejoin and
'virtualize' the space (otherwise you would need "min(|A|,|B|)" of free space).
Such virtualization is done by our/Tom's General Converter. If you want it by
kernel, use kernel features ("md")...

> On Mon, Jul 23, 2001 at 01:38:01AM +0200, Jan Kratochvil wrote:
> > It is implemented as use-counting transactional object system (to be glib
> > objects based, not yet) with weak and strong references. Each object (such 
> > as
> > partition, disk or free space) is referenced from all current undo-states. 
> > When
> > you for example delete partition, the partition object in fact remains 
> > existing
> > (as hidden) as it is still referenced from the state 
> > 'before-partition-delete'.
> > Only in the case you Undo to some state older-than-'before-partition-delete'
> > and you will do some action, all the further trailing undo-states get
> > destroyed (general Undo principle, for example as in VIM) and the partition
> > object will be in this case destroyed.
> Right.  That stuff is somewhat complicated, which is why I'm waiting for
> glib...  glib doesn't have any docs for gobject though :/

I don't want to dread you but the described functionality will be exactly the
seme even with glib. :-) Reference counting (for strong references), "destroy"
signal disconnections (for weak references) are just the features of glib/GTK+.
No object implementation can simplify the principle of functionality.

<divert>I was so kind that I took only the simple overlook, I haven't explained
you the partition-matching phase to synchronize object system state between two
Undo states. It has 3 layers of functionality, 6 cases for disk-space match,
some temporary storage heaps etc. :-)))
I only hope that I will never need to understand General Converter. (8+<=>)


reply via email to

[Prev in Thread] Current Thread [Next in Thread]