From: Michael D. <mi...@mi...> - 2007-12-11 18:02:27
|
On Dec 11, 2007, at 12:26 AM, Dean Michael Berris wrote: > Hi Mike! > > On Dec 11, 2007 10:40 AM, Michael Dickey <mi...@mi...> wrote: >> Dean and I have been talking on the boost development list about ways >> to integrate Pion code into the current cpp-netlib structure. Seemed >> like a good idea to move that discussion over to this list instead. > > I agree, though I'd also like to have other people in the Boost > mailing list involved somehow. I like the input that we get there, and > I'm thankful that the discussion has brought out interesting insights > from people in the list. :) I'm new to the Boost list, so I just wasn't sure about overwhelming it messages on this topic -- in particular as we get more into implementation details. I can re-post my message there though if you think others would be interested in chiming in. ... >> In any case, if we could figure out how to merge this functionality >> over I'd be happy to switch over to using cpp-netlib in Pion instead >> of our own message-like classes. >> > > Sweet! That sounds like good motivation for me to actually write more > documentation, try porting your better parser, and see how else we can > improve on decoupling the logging/networking/etc. from the actual > parsing. Great, feel free to use as much or little of it as you like! =) And of course, let me know if you have any questions.. > Just a question: why shouldn't we be using Boost.Spirit for this > sort of thing? The main reason I didn't use it is that I'm not familiar with Boost.Spirit, and the parsing code was original based on Chris' http_server examples in ASIO (which do not use Spirit). I got the impression from reading through the Spirit pages that it does incur a performance penalty, and I wanted to make everything in Pion as fast as possible. Also, I wasn't clear if Spirit could handle the incremental processing needs. Namely, the parser needs to be able to consume as few as 1 byte at a time to make it asynchronous, low- memory and HTTP/1.1 compatible. Take care, -Mike |