gzz-dev
[Top][All Lists]
Advanced

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

Re: [Gzz] Questions


From: B. Fallenstein
Subject: Re: [Gzz] Questions
Date: Tue, 04 Jun 2002 17:14:00 +0200
User-agent: Mozilla/5.0 (X11; U; Linux ppc; en-US; rv:0.9.9) Gecko/20020414 Debian/0.9.9-6

Tuomas Lukka wrote:
Ok, let's start with these questions about the state of Leo:

1. What's currently coded, what's not?

For saving, the missing thing as far as I can see is something stringing it all together. We have:

  * History to keep an undo list
  * ChangeMerger (used by History) to merge the undo list changes
  * ChangeSplitter to split the changes returned by History into
    per-slice parts
  * ChangeSerializer to make this changes into a serializable form
    (recursive Maps/Lists/String arrays); this DOES NOT DO
    PREFLETS YET
  * Pickler to serialize the Map structure

What we need (besides preflet saving in ChangeSerializer), in Pseudocode:
    Save Leo's TransientTextScroll and create a new one

    Get the change since the last save from History
    Split the change
    For every slice's subchange:
        Create the Map structure for the change
        Make the Map structure into a byte stream (using Pickler)
        Save the byte stream

There may be details lurking in there, though.

        - vstreams?

VStreams are coded and there are tests, but not for the new text calls you have added (for inserting, deleting, moving and copying text). Please limit changes here to VStreamSpace, AbstractVStreamSpace and TestVStreamSpace.

2. Could you go through the javadocs to make sure that
   everything has at least minimal documentation as to
   what it's supposed to be doing and where it's not doing that
   yet, XXX.

Looks like minimal doc is everywhere. But I don't have the time to look through it closely..

3. Slices: how do they work now?

Each slice is a Slice object. Each cell is a SliceCell that knows its slice. The cell creation commands and so on use that.

Each slice stores its preflets. Each Change stores a slices old/new preflet sets, if they have changed. A LeoImpl has a PrefletResolver that is able to attach/detach the slices in the Leo. When slices are attached, their preflets are resolved; when slices are detached, they are given preflets again, in conformance to Ted's spec.

With the current History implementation, slices are detached after every keypress (History.check() has to be called then). This could be done differently, as long as History.getChange() still returns a Change that is between two Leo versions with slices *detached*. (There may not be any inter-slice connections in the Change we're going to save.)

4. For which parts are the tests reasonably complete?

History (in History.spec.ly). VStreams (except the new interface). Preflet resolving (in Leo4.test.py).

ChangeSerializer has some testing, but does not seem to go very deep.

- Benja




reply via email to

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