You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Charley Bay <ch...@gmail.com> on 2006/08/05 20:43:26 UTC

Improved C++ bindings (Client API)

Since "version control" is a transactional domain... it just
*screams* session/object lifecycle (to me).  I've been
assuming a Subversion C++ wrapper for the client API
would come along for the past few years... just haven't
seen it.

I'm aware some projects (like RapidSVN) create their
own C++ wrappers.  Digging into the archives, an interesting
comment from 2005 suggests that's not really a clean
wrapper, though (Oleg suggests the RapidSVN's C++
wrapper isn't really C++, but a, "wild mixture of Java&C"):

<http://svn.haxx.se/dev/archive-2005-06/0077.shtml>

But, there were no follow-ups to that thread.  Is there
no (or very little) interest?

I'd personally like to see a (clean and simple) OO
C++ wrapper to the C client API because I think it
would be much easier to use (e.g., no void* closure
objects being passed around with function pointers,
session lifecycles defined by object lifetimes, etc.)

For others interested in such a wrapper, are you happy
with what's already done (e.g., with RapidSVN's wrapper?)

This isn't a criticism of what exists -- I'm honestly curious
if there is interest in a C++ wrapper not tied to another
project (because I'd be very interested in it staying very
current with changes/updates to the client API, so it
would need some level of community interest/support
if it were to be initiated).  Would anybody use it if it
existed, and how valuable would it be?

Thoughts?

--charley

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: Improved C++ bindings (Client API)

Posted by Branko Čibej <br...@xbc.nu>.
Charley Bay wrote:
> Since "version control" is a transactional domain... it just
> *screams* session/object lifecycle (to me).  I've been
> assuming a Subversion C++ wrapper for the client API
> would come along for the past few years... just haven't
> seen it.
>
> I'm aware some projects (like RapidSVN) create their
> own C++ wrappers.  Digging into the archives, an interesting
> comment from 2005 suggests that's not really a clean
> wrapper, though (Oleg suggests the RapidSVN's C++
> wrapper isn't really C++, but a, "wild mixture of Java&C"):
>
> <http://svn.haxx.se/dev/archive-2005-06/0077.shtml>
>
> But, there were no follow-ups to that thread.  Is there
> no (or very little) interest?
>
> I'd personally like to see a (clean and simple) OO
> C++ wrapper to the C client API because I think it
> would be much easier to use (e.g., no void* closure
> objects being passed around with function pointers,
> session lifecycles defined by object lifetimes, etc.)
>
> For others interested in such a wrapper, are you happy
> with what's already done (e.g., with RapidSVN's wrapper?)
>
> This isn't a criticism of what exists -- I'm honestly curious
> if there is interest in a C++ wrapper not tied to another
> project (because I'd be very interested in it staying very
> current with changes/updates to the client API, so it
> would need some level of community interest/support
> if it were to be initiated).  Would anybody use it if it
> existed, and how valuable would it be?
A good, standard OO API wrapper for Subversion would be an extremely
good thing, IMNSHO. Even if existing clients didn't adopt it, we could
use it instead of the C API to generate script bindings -- Perl, Python
and (presumably) Ruby bindings would be much better if they were based
on the same, solid OO API.

Given how heavily the C API relies on pools, I suspect that designing a
good C++ wrapper would not be the simplest thing in the world. Whilst I
support the idea, I'd personally rather live without C++ than support a
half-baked design.

-- Brane

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org