Hi Guys!

I just wanted to give a heads up to everyone on the list, and give
everyone an update on what I've been up to so far.

First though, there's been a sudden change in my availability to work
on cpp-netlib. As of yesterday Philippine time I no longer have
anything else to do but to work on cpp-netlib (and find a job on the
side). My consulting engagement had been cut short due to some
unfortunate circumstances. So now until I get a new gig, I'm going to
be dedicating my days working on cpp-netlib (yay! :D).

So here's what's been happening to the library:

  * The tags system now uses heavy metaprogramming with Boost.MPL.
  * The incremental parser now has a stable generic interface and I
intend to lift a concept out of it as soon as I get around to
implementing other incremental parsers for different protocols.
  * There are a number of enhancements in the way the directive system
works, using the Boost.Variant trick that I emailed a couple weeks
ago. That's in 0.7-devel and should make directive making a little
more pleasant with definite extension points to look through.
  * The tags "http_async_8bit_(udp|tcp)_resolve" are now supported and
implemented; there should be no changes to client code that wants to
use the asynchronous (I should say "active") HTTP client
implementation.

There are a number of things that have yet to be done for packaging
and releasing 0.7-devel:

  * Make the HTTP 1.0 and HTTP 1.1 tests pass. Right now only the HTTP
1.0 test includes the new asynchronous tags in the build. The HTTP 1.1
chunked-encoding transfer is what I intend to work on next, which will
also require a new implementation of the incremental parser to support
just the chunked-encoding body.
  * Update and merge the documentation.
  * Implement a callback-based HTTP Client API. The rationale for this
is so that instead of returning a response object that has
Boost.Thread futures embedded in it (and neatly abstracted away), the
client can then just call the appropriate callback(s) for processing
headers and the body stream as they become available.
  * Implement a streaming HTTP Client API. This means returning a
response object that has a stream for a body instead of a pre-built
string, as well as taking a request object that has a stream for a
body. This should help with file-uploads through PUT/POST to make it
not require all the contents of the file be in memory, a shared_ptr<>
to a stream should suffice.

As of now I don't have access to a MSVC compiler yet -- I'll see if I
can get my hands on a Windows machine or VM soon, so that I can
continue development on Windows -- but I have been building and
testing with Clang and GCC in Linux, against Boost 1.44.0. I need some
help in this regard as well as with the identification of issues in
case there are any that you come across in the implementation.

Thanks for reading up to here and let me know if there's anything
immediate that I need to address before I hunker down and finish off
the HTTP client implementation for 0.7.

Have a good one everyone and I hope to hear from you soon!

-- 
Dean Michael Berris
deanberris.com

------------------------------------------------------------------------------
Start uncovering the many advantages of virtual appliances
and start using them to simplify application deployment and
accelerate your shift to cloud computing.
http://p.sf.net/sfu/novell-sfdev2dev
_______________________________________________
Cpp-netlib-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/cpp-netlib-devel

Reply via email to