You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ta...@apache.org on 2007/03/07 00:59:51 UTC
svn commit: r515378 -
/activemq/activemq-cpp/trunk/activemq-cpp/src/examples/main.cpp
Author: tabish
Date: Tue Mar 6 15:59:51 2007
New Revision: 515378
URL: http://svn.apache.org/viewvc?view=rev&rev=515378
Log:
http://issues.apache.org/activemq/browse/AMQCPP-30
Modified:
activemq/activemq-cpp/trunk/activemq-cpp/src/examples/main.cpp
Modified: activemq/activemq-cpp/trunk/activemq-cpp/src/examples/main.cpp
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/activemq-cpp/src/examples/main.cpp?view=diff&rev=515378&r1=515377&r2=515378
==============================================================================
--- activemq/activemq-cpp/trunk/activemq-cpp/src/examples/main.cpp (original)
+++ activemq/activemq-cpp/trunk/activemq-cpp/src/examples/main.cpp Tue Mar 6 15:59:51 2007
@@ -25,6 +25,8 @@
#include <cms/Connection.h>
#include <cms/Session.h>
#include <cms/TextMessage.h>
+#include <cms/BytesMessage.h>
+#include <cms/MapMessage.h>
#include <cms/ExceptionListener.h>
#include <cms/MessageListener.h>
#include <stdlib.h>
@@ -45,16 +47,19 @@
MessageProducer* producer;
int numMessages;
bool useTopic;
+ std::string brokerURI;
public:
- HelloWorldProducer( int numMessages, bool useTopic = false ){
+ HelloWorldProducer( const std::string& brokerURI,
+ int numMessages, bool useTopic = false ){
connection = NULL;
session = NULL;
destination = NULL;
producer = NULL;
this->numMessages = numMessages;
this->useTopic = useTopic;
+ this->brokerURI = brokerURI;
}
virtual ~HelloWorldProducer(){
@@ -64,7 +69,8 @@
virtual void run() {
try {
// Create a ConnectionFactory
- ActiveMQConnectionFactory* connectionFactory = new ActiveMQConnectionFactory("tcp://127.0.0.1:61613");
+ ActiveMQConnectionFactory* connectionFactory =
+ new ActiveMQConnectionFactory( brokerURI );
// Create a Connection
connection = connectionFactory->createConnection();
@@ -93,8 +99,10 @@
for( int ix=0; ix<numMessages; ++ix ){
TextMessage* message = session->createTextMessage( text );
+ message->setIntProperty( "Integer", ix );
+
// Tell the producer to send the message
- printf( "Sent message from thread %s\n", threadIdStr.c_str() );
+ printf( "Sent message #%d from thread %s\n", ix, threadIdStr.c_str() );
producer->send( message );
delete message;
@@ -150,16 +158,19 @@
MessageConsumer* consumer;
long waitMillis;
bool useTopic;
+ std::string brokerURI;
public:
- HelloWorldConsumer( long waitMillis, bool useTopic = false ){
+ HelloWorldConsumer( const std::string& brokerURI,
+ long waitMillis, bool useTopic = false ){
connection = NULL;
session = NULL;
destination = NULL;
consumer = NULL;
this->waitMillis = waitMillis;
this->useTopic = useTopic;
+ this->brokerURI = brokerURI;
}
virtual ~HelloWorldConsumer(){
cleanup();
@@ -171,7 +182,7 @@
// Create a ConnectionFactory
ActiveMQConnectionFactory* connectionFactory =
- new ActiveMQConnectionFactory( "tcp://127.0.0.1:61613" );
+ new ActiveMQConnectionFactory( brokerURI );
// Create a Connection
connection = connectionFactory->createConnection();
@@ -195,6 +206,9 @@
consumer->setMessageListener( this );
+ std::cout.flush();
+ std::cerr.flush();
+
// Sleep while asynchronous messages come in.
Thread::sleep( waitMillis );
@@ -214,6 +228,7 @@
const TextMessage* textMessage =
dynamic_cast< const TextMessage* >( message );
string text = textMessage->getText();
+
printf( "Message #%d Received: %s\n", count, text.c_str() );
} catch (CMSException& e) {
e.printStackTrace();
@@ -271,19 +286,32 @@
std::cout << "Starting the example:" << std::endl;
std::cout << "-----------------------------------------------------\n";
+ // Set the URI to point to the IPAddress of your broker.
+ // add any optional params to the url to enable things like
+ // tightMarshalling or tcp logging etc.
+ std::string brokerURI =
+ "tcp://127.0.0.1:61613";
+// "?wireFormat=openwire"
+// "&commandTracingEnabled=true"
+// "&tcpTracingEnabled=true"
+// "&wireFormat.tightEncodingEnabled=true";
+
//============================================================
// set to true to use topics instead of queues
// Note in the code above that this causes createTopic or
// createQueue to be used in both consumer an producer.
//============================================================
- bool useTopics = false;
+ bool useTopics = true;
- HelloWorldProducer producer( 1000, useTopics );
- HelloWorldConsumer consumer( 8000, useTopics );
+ HelloWorldProducer producer( brokerURI, 2000, useTopics );
+ HelloWorldConsumer consumer( brokerURI, 12000, useTopics );
// Start the consumer thread.
Thread consumerThread( &consumer );
consumerThread.start();
+
+ // Give the consumer a but to start up.
+ Thread::sleep( 75 );
// Start the producer thread.
Thread producerThread( &producer );