Uploaded image for project: 'Qpid'
  1. Qpid
  2. QPID-342

Isolate C++ client API

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Major
    • Resolution: Duplicate
    • None
    • M3
    • C++ Client
    • None

    Description

      (See API proposal in QPID-664)

      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.

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              aconway Alan Conway
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: