Patches for the CPP examples. Jonathan
[EMAIL PROTECTED] examples]$ svn stat R verify C examples/request-response/verify.in D examples/direct/direct_publisher.cpp M examples/direct/direct_producer.cpp A examples/fanout/fanout_producer.cpp C examples/fanout/listener.cpp A examples/fanout/declare_queues.cpp
Index: examples/request-response/verify.in =================================================================== --- examples/request-response/verify.in (revision 604245) +++ examples/request-response/verify.in (working copy) @@ -6,16 +6,23 @@ Request: And the mome raths outgrabe. Waiting for all responses to arrive ... Response: TWAS BRILLIG, AND THE SLITHY TOVES -Response: DID GIRE AND GYMBLE IN THE WABE. Response: ALL MIMSY WERE THE BOROGROVES, Response: AND THE MOME RATHS OUTGRABE. +Response: DID GIRE AND GYMBLE IN THE WABE. Shutting down listener for client ==== ==== remove_uuid server.out Activating request queue listener for: request Waiting for requests +<<<<<<< .mine +Request: Did gire and gymble in the wabe. (client ) + Request: Twas brillig, and the slithy toves (client ) +Request: All mimsy were the borogroves, (client ) +Request: And the mome raths outgrabe. (client ) +======= Request: Twas brillig, and the slithy toves (client ) Request: Did gire and gymble in the wabe. (client ) Request: All mimsy were the borogroves, (client ) Request: And the mome raths outgrabe. (client ) +>>>>>>> .r604245 ==== Index: examples/direct/direct_publisher.cpp =================================================================== --- examples/direct/direct_publisher.cpp (revision 604262) +++ examples/direct/direct_publisher.cpp (working copy) @@ -1,104 +0,0 @@ -/* - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - * - */ - - -/** - * direct_publisher.cpp: - * - * This program is one of three programs designed to be used - * together. These programs do not specify the exchange type - the - * default exchange type is the direct exchange. - * - * direct_config_queues.cpp: - * - * Creates a queue on a broker, binding a routing key to route - * messages to that queue. - * - * direct_publisher.cpp (this program): - * - * Publishes to a broker, specifying a routing key. - * - * direct_listener.cpp - * - * Reads from a queue on the broker using a message listener. - * - */ - - -#include <qpid/client/Connection.h> -#include <qpid/client/Session.h> -#include <qpid/client/Message.h> - - -#include <unistd.h> -#include <cstdlib> -#include <iostream> - -#include <sstream> - -using namespace qpid::client; -using namespace qpid::framing; - -using std::stringstream; -using std::string; - -int main() { - Connection connection; - Message message; - try { - connection.open("127.0.0.1", 5672 ); - Session session = connection.newSession(); - - //--------- Main body of program -------------------------------------------- - - // The routing key is a message property. We will use the same - // routing key for each message, so we'll set this property - // just once. (In most simple cases, there is no need to set - // other message properties.) - - message.getDeliveryProperties().setRoutingKey("routing_key"); - - // Now send some messages ... - - for (int i=0; i<10; i++) { - stringstream message_data; - message_data << "Message " << i; - - message.setData(message_data.str()); - session.messageTransfer(arg::content=message); - } - - // And send a final message to indicate termination. - - message.setData("That's all, folks!"); - session.messageTransfer(arg::content=message); - - //----------------------------------------------------------------------------- - - connection.close(); - return 0; - } catch(const std::exception& error) { - std::cout << error.what() << std::endl; - } - return 1; -} - - Index: examples/direct/direct_producer.cpp =================================================================== --- examples/direct/direct_producer.cpp (revision 604252) +++ examples/direct/direct_producer.cpp (working copy) @@ -83,7 +83,7 @@ message_data << "Message " << i; message.setData(message_data.str()); - session.messageTransfer(arg::content=message, arg::destination="amq.direct"); + session.messageTransfer(arg::content=message, arg::destination="amq.direct"); } // And send a final message to indicate termination. Index: examples/fanout/fanout_producer.cpp =================================================================== --- examples/fanout/fanout_producer.cpp (revision 0) +++ examples/fanout/fanout_producer.cpp (revision 0) @@ -0,0 +1,102 @@ +/* + * + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * + */ + + +/** + * direct_publisher.cpp: + * + * This program is one of three programs designed to be used + * together. These programs do not specify the exchange type - the + * default exchange type is the direct exchange. + * + * direct_config_queues.cpp: + * + * Creates a queue on a broker, binding a routing key to route + * messages to that queue. + * + * direct_publisher.cpp (this program): + * + * Publishes to a broker, specifying a routing key. + * + * direct_listener.cpp + * + * Reads from a queue on the broker using a message listener. + * + */ + + +#include <qpid/client/Connection.h> +#include <qpid/client/Session.h> +#include <qpid/client/Message.h> + + +#include <unistd.h> +#include <cstdlib> +#include <iostream> + +#include <sstream> + +using namespace qpid::client; +using namespace qpid::framing; + +using std::stringstream; +using std::string; + +int main() { + Connection connection; + Message message; + try { + connection.open("127.0.0.1", 5672 ); + Session session = connection.newSession(); + + //--------- Main body of program -------------------------------------------- + + // Unlike topic exchanges and direct exchanges, a fanout + // exchange need not set a routing key. + + Message message; + + // Now send some messages ... + + for (int i=0; i<10; i++) { + stringstream message_data; + message_data << "Message " << i; + + message.setData(message_data.str()); + session.messageTransfer(arg::content=message, arg::destination="amq.fanout"); + } + + // And send a final message to indicate termination. + + message.setData("That's all, folks!"); + session.messageTransfer(arg::content=message, arg::destination="amq.fanout"); + + //----------------------------------------------------------------------------- + + connection.close(); + return 0; + } catch(const std::exception& error) { + std::cout << error.what() << std::endl; + } + return 1; +} + + Index: examples/fanout/listener.cpp =================================================================== --- examples/fanout/listener.cpp (revision 604253) +++ examples/fanout/listener.cpp (working copy) @@ -110,9 +110,12 @@ session.messageSubscribe(arg::queue="message_queue", arg::destination="listener_destination"); - session.messageFlow(arg::destination="listener_destination", arg::unit=0, arg::value=1);//messages ### Define a constant? - session.messageFlow(arg::destination="listener_destination", arg::unit=1, arg::value=0xFFFFFFFF);//bytes ###### Define a constant? +<<<<<<< .mine +session.messageFlow(arg::destination="listener_destination", arg::unit=0, arg::value=1);//messages ### Define a constant? +session.messageFlow(arg::destination="listener_destination", arg::unit=1, arg::value=0xFFFFFFFF);//bytes ###### Define a constant? +======= +>>>>>>> .r604253 // Tell the listener to listen to the destination we just // created above. Index: examples/fanout/declare_queues.cpp =================================================================== --- examples/fanout/declare_queues.cpp (revision 0) +++ examples/fanout/declare_queues.cpp (revision 0) @@ -0,0 +1,85 @@ +/* + * + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * + */ + +/** + * direct_config_queues.cpp + * + * This program is one of three programs designed to be used + * together. These programs use the "amq.direct" exchange. + * + * direct_config_queues.cpp (this program): + * + * Creates a queue on a broker, binding a routing key to route + * messages to that queue. + * + * direct_publisher.cpp: + * + * Publishes to a broker, specifying a routing key. + * + * direct_listener.cpp + * + * Reads from a queue on the broker using a message listener. + * + */ + +#include <qpid/client/Connection.h> +#include <qpid/client/Session.h> + +#include <unistd.h> +#include <cstdlib> +#include <iostream> + +using namespace qpid::client; +using namespace qpid::framing; + +using std::string; + + +int main() { + Connection connection; + Message msg; + try { + connection.open("127.0.0.1", 5672); + Session session = connection.newSession(); + + + //--------- Main body of program -------------------------------------------- + + // Create a queue named "message_queue", and route all messages whose + // routing key is "routing_key to this newly created queue. + + session.queueDeclare(arg::queue="message_queue"); + session.queueBind(arg::queue="message_queue", arg::exchange="amq.fanout"); + + + //----------------------------------------------------------------------------- + + connection.close(); + return 0; + } catch(const std::exception& error) { + std::cout << error.what() << std::endl; + } + return 1; + +} + + +
