From: Gabe W. <gw...@wa...> - 2002-03-01 12:29:23
|
Checked in a bunch of edits to the core stuff tonight (er, its 4:20am - thats morning I guess). Basically, I wrote the scheduler, and added in the hooks to the channel code. Added some new listener/event types and added some methods to the channel. The main thing left with that is to refactor sendToPeer to queue up messages in the outgoingMQueue instead of trying to directly write frames to the session. The scheduler will be called to "grab" frames from channels which are ready to write, instead of simply being dumped frames from channels as the channels feel the desire. I also fixed some little bugs that were breaking test cases. I didn't write any test cases for the new code commited (bad me), but that is definitely on my list. I'm happily surprised to see that most of the complicated code in the core of channel is for getting data in from the wire and sending it to profiles, which is something I'm leaving untouched - its just the path of data from the profiles through channels to the session and the wire which is getting a makeover. Its turning out to be pretty straightforward and maybe something the java beepcore people might consider. I was also thinking about threading - I think there are essentially two threads in the core plus whatever threads one desires in the app space. The two threads are a reader (ie from the wire to the channels/profiles) and a writer (which the the scheduler who takes data from the profiles/channels and puts them on the wire to the remote peer). I didn't get any reaction to my last posting about the architectural diagrams I posted http://pybeep.sourceforge.net/arch.png, so I'm assuming its understandable and there aren't any issues. Its now largely implemented, or at least sketched out in code. I know that I had divied up this task list to Sean and Huston, but I have not heard from you guys in a little while and I thought it would be easier to pound this stuff out in code rather than try to go too much farther describing it. Anyway, as always, the source is your best bet at this point. I'm thinking we need to do a major code cleanup (stylewise, naming, commenting, etc) and I'd like someone who has more energy for that to be the lead, if someone would be so kind. Hopefully I didn't step on anybody's plate of work here.... -Gabe -- Gabe Wachob gw...@wa... Personal http://www.wachob.com CTO, WiredObjects http://www.wiredobjects.com |