[BXXPwg] Draft Minutes of last week's meeting

Marshall Rose mrose@dbc.mtview.ca.us
Sat, 12 Aug 2000 19:52:31 -0700


> Can you share a summary of the interfaces these projects use to start
> up a channel? In particular, I'd like to see the arguments to however
> a "session" opens a new "channel."

here is how one interface does it: the xml parser for channel 0 builds
different data structures based on what the outermost element is. it knows
for a start that the pattern is:

    <start ...>
        <profile ...> data </profile>
        ...
    </start>

the key thing to note here is that data always occurs three or more levels
deep in the parse stack. therefore what the callback routines do is manage a
stack. if the depth is less than 3, then the element is processed directly.
if not, then the element, character data, etc., are simply appended to a
buffer. what comes out of this process is a list of pairs, { profile data }
this gets passed up to the beep application that selects which profile it
wants to do, invokes the init method for the profile, if the init method is
successful, and if data is non-empty, then the data method for the profile
is invoked. (this will actually parse the data a second time, but who
cares?) you can probably figure out the rest from there.

/mtr