diff --git a/activemq-cpp/src/examples/examples.vcproj b/activemq-cpp/src/examples/examples.vcproj
new file mode 100644
index 0000000000..f05af3603b
--- /dev/null
+++ b/activemq-cpp/src/examples/examples.vcproj
@@ -0,0 +1,205 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/activemq-cpp/src/examples/main.cpp b/activemq-cpp/src/examples/main.cpp
index 836f34daf2..f5df48a98c 100644
--- a/activemq-cpp/src/examples/main.cpp
+++ b/activemq-cpp/src/examples/main.cpp
@@ -1,243 +1,243 @@
-
-// START SNIPPET: demo
-
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-
-using namespace activemq::core;
-using namespace activemq::concurrent;
-using namespace cms;
-using namespace std;
-
-class HelloWorldProducer : public Runnable {
-private:
-
- Connection* connection;
- Session* session;
- Destination* destination;
- MessageProducer* producer;
- int numMessages;
-
-public:
-
- HelloWorldProducer( int numMessages ){
- connection = NULL;
- session = NULL;
- destination = NULL;
- producer = NULL;
- this->numMessages = numMessages;
- }
-
- virtual ~HelloWorldProducer(){
- cleanup();
- }
-
- virtual void run() {
- try {
- // Create a ConnectionFactory
- ActiveMQConnectionFactory* connectionFactory = new ActiveMQConnectionFactory("tcp://127.0.0.1:61613");
-
- // Create a Connection
- connection = connectionFactory->createConnection();
- connection->start();
-
- // Create a Session
- session = connection->createSession( Session::AutoAcknowledge );
-
- // Create the destination (Topic or Queue)
- destination = session->createQueue("TEST.FOO");
-
- // Create a MessageProducer from the Session to the Topic or Queue
- producer = session->createProducer(*destination);
- producer->setDeliveryMode( Message::NONPERSISTANT);
-
- // Stringify the thread id
- char threadIdStr[100];
- itoa( Thread::getId(), threadIdStr, 10 );
-
- // Create a messages
- string text = (string)"Hello world! from thread " + threadIdStr;
-
- for( int ix=0; ixcreateTextMessage( text );
-
- // Tell the producer to send the message
- printf( "Sent message from thread %s\n", threadIdStr );
- producer->send(*message);
-
- delete message;
- }
-
- }catch (CMSException& e) {
- e.printStackTrace();
- }
- }
-
-private:
-
- void cleanup(){
-
- // Close open resources.
- try{
- if( session != NULL ) session->close();
- if( connection != NULL ) connection->close();
- }catch (CMSException& e) {}
-
- // Destroy resources.
- try{
- if( destination != NULL ) delete destination;
- }catch (CMSException& e) {}
- destination = NULL;
-
- try{
- if( producer != NULL ) delete producer;
- }catch (CMSException& e) {}
- producer = NULL;
-
- try{
- if( session != NULL ) delete session;
- }catch (CMSException& e) {}
- session = NULL;
-
- try{
- if( connection != NULL ) delete connection;
- }catch (CMSException& e) {}
- connection = NULL;
- }
-};
-
-class HelloWorldConsumer : public ExceptionListener,
- public MessageListener,
- public Runnable {
-
-private:
-
- Connection* connection;
- Session* session;
- Destination* destination;
- MessageConsumer* consumer;
- long waitMillis;
-
-public:
-
- HelloWorldConsumer( long waitMillis ){
- connection = NULL;
- session = NULL;
- destination = NULL;
- consumer = NULL;
- this->waitMillis = waitMillis;
- }
- virtual ~HelloWorldConsumer(){
- cleanup();
- }
-
- virtual void run() {
-
- try {
-
- // Create a ConnectionFactory
- ActiveMQConnectionFactory* connectionFactory = new ActiveMQConnectionFactory("tcp://127.0.0.1:61613");
-
- // Create a Connection
- connection = connectionFactory->createConnection();
- delete connectionFactory;
- connection->start();
-
- connection->setExceptionListener(this);
-
- // Create a Session
- session = connection->createSession( Session::AutoAcknowledge );
-
- // Create the destination (Topic or Queue)
- destination = session->createQueue("TEST.FOO");
-
- // Create a MessageConsumer from the Session to the Topic or Queue
- consumer = session->createConsumer(*destination);
-
- consumer->setMessageListener( this );
-
- // Sleep while asynchronous messages come in.
- Thread::sleep( waitMillis );
-
- } catch (CMSException& e) {
- e.printStackTrace();
- }
- }
-
- virtual void onMessage( const Message& message ){
-
- try
- {
- const TextMessage& textMessage = dynamic_cast(message);
- string text = textMessage.getText();
- printf( "Received: %s\n", text.c_str() );
- }
- catch( std::bad_cast& ex )
- {
- printf( "Received something other than a text Message\n" );
- }
- }
-
- virtual void onException( const CMSException& ex ) {
- printf("JMS Exception occured. Shutting down client.\n");
- }
-
-private:
-
- void cleanup(){
-
- // Close open resources.
- try{
- if( session != NULL ) session->close();
- if( connection != NULL ) connection->close();
- }catch (CMSException& e) {}
-
- // Destroy resources.
- try{
- if( destination != NULL ) delete destination;
- }catch (CMSException& e) {}
- destination = NULL;
-
- try{
- if( consumer != NULL ) delete consumer;
- }catch (CMSException& e) {}
- consumer = NULL;
-
- try{
- if( session != NULL ) delete session;
- }catch (CMSException& e) {}
- session = NULL;
-
- try{
- if( connection != NULL ) delete connection;
- }catch (CMSException& e) {}
- connection = NULL;
- }
-};
-
-void main(int argc, char* argv[]) {
-
- HelloWorldProducer producer( 1000 );
- HelloWorldConsumer consumer( 5000 );
-
- // Start the consumer thread.
- Thread consumerThread( &consumer );
- consumerThread.start();
-
- // Start the producer thread.
- Thread producerThread( &producer );
- producerThread.start();
-
- // Wait for the threads to complete.
- producerThread.join();
- consumerThread.join();
-}
-
-// END SNIPPET: demo
+
+// START SNIPPET: demo
+
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+using namespace activemq::core;
+using namespace activemq::concurrent;
+using namespace cms;
+using namespace std;
+
+class HelloWorldProducer : public Runnable {
+private:
+
+ Connection* connection;
+ Session* session;
+ Destination* destination;
+ MessageProducer* producer;
+ int numMessages;
+
+public:
+
+ HelloWorldProducer( int numMessages ){
+ connection = NULL;
+ session = NULL;
+ destination = NULL;
+ producer = NULL;
+ this->numMessages = numMessages;
+ }
+
+ virtual ~HelloWorldProducer(){
+ cleanup();
+ }
+
+ virtual void run() {
+ try {
+ // Create a ConnectionFactory
+ ActiveMQConnectionFactory* connectionFactory = new ActiveMQConnectionFactory("tcp://127.0.0.1:61613");
+
+ // Create a Connection
+ connection = connectionFactory->createConnection();
+ connection->start();
+
+ // Create a Session
+ session = connection->createSession( Session::AUTO_ACKNOWLEDGE );
+
+ // Create the destination (Topic or Queue)
+ destination = session->createQueue( "TEST.FOO" );
+
+ // Create a MessageProducer from the Session to the Topic or Queue
+ producer = session->createProducer( destination );
+ producer->setDeliveryMode( DeliveryMode::NON_PERSISTANT );
+
+ // Stringify the thread id
+ char threadIdStr[100];
+ itoa( Thread::getId(), threadIdStr, 10 );
+
+ // Create a messages
+ string text = (string)"Hello world! from thread " + threadIdStr;
+
+ for( int ix=0; ixcreateTextMessage( text );
+
+ // Tell the producer to send the message
+ printf( "Sent message from thread %s\n", threadIdStr );
+ producer->send( message );
+
+ delete message;
+ }
+
+ }catch ( CMSException& e ) {
+ e.printStackTrace();
+ }
+ }
+
+private:
+
+ void cleanup(){
+
+ // Destroy resources.
+ try{
+ if( destination != NULL ) delete destination;
+ }catch ( CMSException& e ) {}
+ destination = NULL;
+
+ try{
+ if( producer != NULL ) delete producer;
+ }catch ( CMSException& e ) {}
+ producer = NULL;
+
+ // Close open resources.
+ try{
+ if( session != NULL ) session->close();
+ if( connection != NULL ) connection->close();
+ }catch ( CMSException& e ) {}
+
+ try{
+ if( session != NULL ) delete session;
+ }catch ( CMSException& e ) {}
+ session = NULL;
+
+ try{
+ if( connection != NULL ) delete connection;
+ }catch ( CMSException& e ) {}
+ connection = NULL;
+ }
+};
+
+class HelloWorldConsumer : public ExceptionListener,
+ public MessageListener,
+ public Runnable {
+
+private:
+
+ Connection* connection;
+ Session* session;
+ Destination* destination;
+ MessageConsumer* consumer;
+ long waitMillis;
+
+public:
+
+ HelloWorldConsumer( long waitMillis ){
+ connection = NULL;
+ session = NULL;
+ destination = NULL;
+ consumer = NULL;
+ this->waitMillis = waitMillis;
+ }
+ virtual ~HelloWorldConsumer(){
+ cleanup();
+ }
+
+ virtual void run() {
+
+ try {
+
+ // Create a ConnectionFactory
+ ActiveMQConnectionFactory* connectionFactory =
+ new ActiveMQConnectionFactory( "tcp://127.0.0.1:61613" );
+
+ // Create a Connection
+ connection = connectionFactory->createConnection();
+ delete connectionFactory;
+ connection->start();
+
+ connection->setExceptionListener(this);
+
+ // Create a Session
+ session = connection->createSession( Session::AUTO_ACKNOWLEDGE );
+
+ // Create the destination (Topic or Queue)
+ destination = session->createQueue( "TEST.FOO" );
+
+ // Create a MessageConsumer from the Session to the Topic or Queue
+ consumer = session->createConsumer( destination );
+
+ consumer->setMessageListener( this );
+
+ // Sleep while asynchronous messages come in.
+ Thread::sleep( waitMillis );
+
+ } catch (CMSException& e) {
+ e.printStackTrace();
+ }
+ }
+
+ virtual void onMessage( const Message* message ){
+
+ try
+ {
+ const TextMessage* textMessage =
+ dynamic_cast< const TextMessage* >( message );
+ string text = textMessage->getText();
+ printf( "Received: %s\n", text.c_str() );
+ } catch (CMSException& e) {
+ e.printStackTrace();
+ }
+ }
+
+ virtual void onException( const CMSException& ex ) {
+ printf("JMS Exception occured. Shutting down client.\n");
+ }
+
+private:
+
+ void cleanup(){
+
+ // Destroy resources.
+ try{
+ if( destination != NULL ) delete destination;
+ }catch (CMSException& e) {}
+ destination = NULL;
+
+ try{
+ if( consumer != NULL ) delete consumer;
+ }catch (CMSException& e) {}
+ consumer = NULL;
+
+ // Close open resources.
+ try{
+ if( session != NULL ) session->close();
+ if( connection != NULL ) connection->close();
+ }catch (CMSException& e) {}
+
+ try{
+ if( session != NULL ) delete session;
+ }catch (CMSException& e) {}
+ session = NULL;
+
+ try{
+ if( connection != NULL ) delete connection;
+ }catch (CMSException& e) {}
+ connection = NULL;
+ }
+};
+
+void main(int argc, char* argv[]) {
+
+ HelloWorldProducer producer( 1000 );
+ HelloWorldConsumer consumer( 5000 );
+
+ // Start the consumer thread.
+ Thread consumerThread( &consumer );
+ consumerThread.start();
+
+ // Start the producer thread.
+ Thread producerThread( &producer );
+ producerThread.start();
+
+ // Wait for the threads to complete.
+ producerThread.join();
+ consumerThread.join();
+}
+
+// END SNIPPET: demo