qpid-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Alan Conway (JIRA)" <qpid-...@incubator.apache.org>
Subject [jira] Commented: (QPID-342) Imrpove C++ client API
Date Mon, 05 Mar 2007 16:49:50 GMT

    [ https://issues.apache.org/jira/browse/QPID-342?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12478094

Alan Conway commented on QPID-342:

We need to go a bit further and provide a full Pimpl client API to provide a binary compatibility
safeguard.  (http://en.wikipedia.org/wiki/Pimpl for definition of Pimpl) We should use shared_ptr
to get normal copy semantics and automated memory management and templatize as much repetative
code as possible. 

> Imrpove C++ client API
> ----------------------
>                 Key: QPID-342
>                 URL: https://issues.apache.org/jira/browse/QPID-342
>             Project: Qpid
>          Issue Type: Improvement
>          Components: C++ Client
>            Reporter: Alan Conway
> Currently the C++ client API is like this:
> Connection myConnection;
> myConnection.open(...);
> Channel myChannel;
> myConnection.openChannel(myChannel);
> myChannel.dostuff...
> I would like to change it to be like this:
> Connection::shared_ptr myConnection = Connection::open(...); 
> Channel::shared_ptr myChannel = myConnection->openChannel(...channel args);
> myChannel->dostuff...
> There are two problems with the current approach:
>  - constructor creates "lame" objects, need an open() call to make them
> useful.
>  - Letting user call constructor directly means we can't change the
> implementation class, whereas the second approach allows us to return
> anything inheriting from the user-visible class.

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message