James Mansion wrote:
Let's at least not add this performance hit where it isn't needed, and leave
apr_socket_read/write alone.  More that I think about it, an apr_io_XXX() API
for any application that prefers more abstraction would be a win, all around.

I'd be very keen on this.  I've been experimenting with converting pdel to use
APR rather than raw interfaces, and one of the issues was that it uses funopen
to use FILE* as an abstraction, so I had to replace that with an abstraction.
When it came to wrapping the apr descriptors, it does become clear how painful
the split between apr_file_t and apr_socket_t is.  Its not as if its very
consistent, given that file is used for pipes and they have 'in between'
semantics.

I end up passing apr_descriptor and apr_datatype_e pairs around all over
and having switches and its a PITA.

I'd much rather see it all unified behind an abstraction.

This is a good aim, but certainly don't expect to see it in 1.x. I'm in favour of trying to implement it for 2.x and ripping out the seperate api's, but of course that will need some careful thought and work.

What's wrong with just using OpenSSL BIOs anyway?

Nothing, but why layer upon layer when there is no real need?

david

Reply via email to