Rafael Schloming wrote:
Jonathan Robie wrote:
C++ seems simpler and cleaner to me here. You create a Connection object, open it, then use it to create a Session object:

C++:
=====

Connection connection;

try {
  connection.open(host, port);
  Session session =  connection.newSession();


Python is more complex, because it requires:

   * a socket object
   * connection.start()
   * a unique identifier that I specify


Python:
======

socket = connect(host, port)
connection = Connection (sock=socket, username=user, password=password)
connection.start()
session = connection.session(str(uuid4()))



Should we make the Python API ape C++ here?

Here are my thoughts in no particular order:

 - How does the C++ connect work without a username and password?

That can be specified on Connection::open() either through the passed in ConnectionSetttings (preferred at present as this allows setting of various options including tcp/ssl/rdma) or as arguments with defaults in the other two cases.

- I can buy adding a static convenience method similar to the C++ one, although I'd expect a username and password somewhere as well. I think we should preserve the ability to pass in a socket from an arbitrary source though. This can be quite handy.

- I think the C++ API should probably permit an explicitly chosen session name as well, but the certainly both could default to creating the uuid when no session name is specified.

A user supplied name can indeed be passed in to the Connection::newSession() method in c++ and defaults to a uuid if none is specified.

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:[email protected]

Reply via email to