DIRECTORY Atom, IO, RoseEvents, RoseRun, RoseSets, RoseTypes, RoseValueSequences; RoseSimValueSequences: CEDAR PROGRAM IMPORTS IO, RoseEvents, RoseValueSequences = { OPEN RoseSets, RoseTypes, RoseValueSequences; HeaderSource: TYPE = REF HeaderSourceRep; HeaderSourceRep: TYPE = RECORD [ nodes: Set, stripPrefix: NamePath]; ProduceFromSimulation: PUBLIC PROC [sim: Simulation, nodes: Set, stripPrefix: NamePath _ NIL] RETURNS [p: Producer] = { c: Consumer; hs: HeaderSource _ NEW [HeaderSourceRep _ [nodes, stripPrefix]]; [p, c] _ CreatePipe[]; c.takeHeader[c.data, NEW [HeaderRep _ [hs, EnumerateHeader]]]; RoseEvents.AddWatcher[$Settled, [NoteSettle, c], sim]; }; NoteSettle: PROC [event: ATOM, watched, watcherData, arg: REF ANY] = { c: Consumer _ NARROW[watcherData]; c.synch.PutChar['x]; }; EnumerateHeader: PROC [h: Header, to: HeaderEltConsumer] = { hs: HeaderSource _ NARROW[h.data]; NoteNode: PROC [data: REF ANY, elt: REF ANY] = { node: Node _ NARROW[elt]; to.consume[elt: [path: PathName[node], type: node.type, val: node.valPtr], data: to.data]; }; TRUSTED {hs.nodes.class.Enumerate[hs.nodes, [NIL, NoteNode]]}; }; PathName: PROC [node: Node] RETURNS [NamePath] = {RETURN [ERROR--not yet implemented--]}; }. tRoseSimValueSequences.Mesa Last Edited by: Spreitzer, May 20, 1985 10:08:04 am PDT EXPORTS RoseValueSequences Κ₯– "cedar" style˜Icode™K™7K˜KšΟk œœ?˜QK˜šΠbxœœ˜$Kšœœ ˜*Kšœ™K˜Kšœ˜Kšœ)˜-K˜Kšœœœ˜)šœœœ˜ Kšœ ˜ Kšœ˜—K˜š Οnœœœ7œœ˜wK˜ Kšœœ*˜@Kšœ˜Kšœœ&˜>K˜6K˜—K˜š Ÿ œœ œœœ˜FKšœœ˜"K˜K˜—K˜šŸœœ'˜K˜—K˜Kš ŸœœœœΟcœ˜YK˜K˜——…—Ξη