Ok, an XmlRpc library is pretty useless without a substrate protocol. So I’ve split off from there and started working on a simple http library which will be implemented separate from all the networking code so I can run tests off a command line or through some other streamed medium.
This gives me a very nicely decoupled set of libraries:
- XmlRpc library – which takes takes serialized methodCall object, parses it and runs it against the dispatch table to generate the methodResponse which is spit out as a simple return value (serialized.)
- Streamed Http library – full toolkit for accepting and building http requests over a stream, includes full web-server and web-client functionality without including or depending on networking code (great for CGIs and console-mode tests, for instance: in perl.)
- Stream Socket library – A series of simple classes to manage server and client TCP/IP connections (UDP support forthcoming) with adapters to provide a simple stream interface for the above libraries.
With all this in place (it’s at about %80) some extremely powerful work can finally get done.