summaryrefslogtreecommitdiff
path: root/cpp/examples/messaging
diff options
context:
space:
mode:
authorGordon Sim <gsim@apache.org>2010-03-19 17:04:18 +0000
committerGordon Sim <gsim@apache.org>2010-03-19 17:04:18 +0000
commit45b5d1cc1f48ed8f6caef8ee9652f788d69747a5 (patch)
tree285eebffee4dd1252abde2dd39872531565987d3 /cpp/examples/messaging
parentd6de561675087e8b1a6978d82569467c4aeff398 (diff)
downloadqpid-python-45b5d1cc1f48ed8f6caef8ee9652f788d69747a5.tar.gz
QPID-664: Prevent dangling pointers when receiver/sender handles stay in scope after connection/session handles goes out of scope. This change require connections to be closed explicitly to avoid leaking memory.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@925332 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/examples/messaging')
-rw-r--r--cpp/examples/messaging/client.cpp3
-rw-r--r--cpp/examples/messaging/drain.cpp3
-rw-r--r--cpp/examples/messaging/map_receiver.cpp3
-rw-r--r--cpp/examples/messaging/map_sender.cpp4
-rw-r--r--cpp/examples/messaging/queue_receiver.cpp3
-rw-r--r--cpp/examples/messaging/queue_sender.cpp4
-rw-r--r--cpp/examples/messaging/server.cpp3
-rw-r--r--cpp/examples/messaging/spout.cpp3
-rw-r--r--cpp/examples/messaging/topic_receiver.cpp3
-rw-r--r--cpp/examples/messaging/topic_sender.cpp3
10 files changed, 20 insertions, 12 deletions
diff --git a/cpp/examples/messaging/client.cpp b/cpp/examples/messaging/client.cpp
index 4d68d7c575..3f7afb5e3e 100644
--- a/cpp/examples/messaging/client.cpp
+++ b/cpp/examples/messaging/client.cpp
@@ -39,8 +39,8 @@ using std::string;
int main(int argc, char** argv) {
const char* url = argc>1 ? argv[1] : "amqp:tcp:127.0.0.1:5672";
+ Connection connection;
try {
- Connection connection;
connection.open(url);
Session session = connection.newSession();
@@ -70,6 +70,7 @@ int main(int argc, char** argv) {
return 0;
} catch(const std::exception& error) {
std::cout << error.what() << std::endl;
+ connection.close();
}
return 1;
}
diff --git a/cpp/examples/messaging/drain.cpp b/cpp/examples/messaging/drain.cpp
index bd18fd3884..38f6bdbb98 100644
--- a/cpp/examples/messaging/drain.cpp
+++ b/cpp/examples/messaging/drain.cpp
@@ -93,8 +93,8 @@ int main(int argc, char** argv)
{
Options options(argv[0]);
if (options.parse(argc, argv)) {
+ Connection connection(options.connectionOptions);
try {
- Connection connection(options.connectionOptions);
connection.open(options.url);
Session session = connection.newSession();
Receiver receiver = session.createReceiver(options.address);
@@ -116,6 +116,7 @@ int main(int argc, char** argv)
return 0;
} catch(const std::exception& error) {
std::cout << error.what() << std::endl;
+ connection.close();
}
}
return 1;
diff --git a/cpp/examples/messaging/map_receiver.cpp b/cpp/examples/messaging/map_receiver.cpp
index 05be4090d2..cdbae6007e 100644
--- a/cpp/examples/messaging/map_receiver.cpp
+++ b/cpp/examples/messaging/map_receiver.cpp
@@ -38,8 +38,8 @@ using std::string;
int main(int argc, char** argv) {
const char* url = argc>1 ? argv[1] : "amqp:tcp:127.0.0.1:5672";
+ Connection connection;
try {
- Connection connection;
connection.open(url);
Session session = connection.newSession();
Receiver receiver = session.createReceiver("message_queue");
@@ -52,6 +52,7 @@ int main(int argc, char** argv) {
return 0;
} catch(const std::exception& error) {
std::cout << error.what() << std::endl;
+ connection.close();
}
return 1;
}
diff --git a/cpp/examples/messaging/map_sender.cpp b/cpp/examples/messaging/map_sender.cpp
index b6e0621844..037bb55201 100644
--- a/cpp/examples/messaging/map_sender.cpp
+++ b/cpp/examples/messaging/map_sender.cpp
@@ -37,9 +37,8 @@ using std::string;
int main(int argc, char** argv) {
const char* url = argc>1 ? argv[1] : "amqp:tcp:127.0.0.1:5672";
-
+ Connection connection;
try {
- Connection connection;
connection.open(url);
Session session = connection.newSession();
Sender sender = session.createSender("message_queue");
@@ -64,6 +63,7 @@ int main(int argc, char** argv) {
return 0;
} catch(const std::exception& error) {
std::cout << error.what() << std::endl;
+ connection.close();
}
return 1;
}
diff --git a/cpp/examples/messaging/queue_receiver.cpp b/cpp/examples/messaging/queue_receiver.cpp
index 192b90088d..95756a9a3d 100644
--- a/cpp/examples/messaging/queue_receiver.cpp
+++ b/cpp/examples/messaging/queue_receiver.cpp
@@ -31,8 +31,8 @@ using namespace qpid::messaging;
int main(int argc, char** argv) {
const char* url = argc>1 ? argv[1] : "amqp:tcp:127.0.0.1:5672";
+ Connection connection;
try {
- Connection connection;
connection.open(url);
Session session = connection.newSession();
Receiver receiver = session.createReceiver("message_queue");
@@ -51,6 +51,7 @@ int main(int argc, char** argv) {
return 0;
} catch(const std::exception& error) {
std::cout << error.what() << std::endl;
+ connection.close();
}
return 1;
}
diff --git a/cpp/examples/messaging/queue_sender.cpp b/cpp/examples/messaging/queue_sender.cpp
index b2535d90bf..439e1dffaf 100644
--- a/cpp/examples/messaging/queue_sender.cpp
+++ b/cpp/examples/messaging/queue_sender.cpp
@@ -34,8 +34,8 @@ int main(int argc, char** argv) {
const char* url = argc>1 ? argv[1] : "amqp:tcp:127.0.0.1:5672";
int count = argc>2 ? atoi(argv[2]) : 10;
+ Connection connection;
try {
- Connection connection;
connection.open(url);
Session session = connection.newSession();
Sender sender = session.createSender("message_queue");
@@ -50,10 +50,10 @@ int main(int argc, char** argv) {
// And send a final message to indicate termination.
sender.send(Message("That's all, folks!"));
session.sync();
- connection.close();
return 0;
} catch(const std::exception& error) {
std::cout << error.what() << std::endl;
+ connection.close();
}
return 1;
}
diff --git a/cpp/examples/messaging/server.cpp b/cpp/examples/messaging/server.cpp
index 0a80a5fb02..046a209e2f 100644
--- a/cpp/examples/messaging/server.cpp
+++ b/cpp/examples/messaging/server.cpp
@@ -41,8 +41,8 @@ using std::string;
int main(int argc, char** argv) {
const char* url = argc>1 ? argv[1] : "amqp:tcp:127.0.0.1:5672";
+ Connection connection;
try {
- Connection connection;
connection.open(url);
Session session = connection.newSession();
Receiver receiver = session.createReceiver("service_queue; {create: always}");
@@ -70,6 +70,7 @@ int main(int argc, char** argv) {
return 0;
} catch(const std::exception& error) {
std::cout << error.what() << std::endl;
+ connection.close();
}
return 1;
}
diff --git a/cpp/examples/messaging/spout.cpp b/cpp/examples/messaging/spout.cpp
index cbb6b52b34..4819c6bc00 100644
--- a/cpp/examples/messaging/spout.cpp
+++ b/cpp/examples/messaging/spout.cpp
@@ -156,8 +156,8 @@ int main(int argc, char** argv)
{
Options options(argv[0]);
if (options.parse(argc, argv)) {
+ Connection connection(options.connectionOptions);
try {
- Connection connection(options.connectionOptions);
connection.open(options.url);
Session session = connection.newSession();
Sender sender = session.createSender(options.address);
@@ -183,6 +183,7 @@ int main(int argc, char** argv)
return 0;
} catch(const std::exception& error) {
std::cout << error.what() << std::endl;
+ connection.close();
}
}
return 1;
diff --git a/cpp/examples/messaging/topic_receiver.cpp b/cpp/examples/messaging/topic_receiver.cpp
index 13f881e574..9e0264a4c3 100644
--- a/cpp/examples/messaging/topic_receiver.cpp
+++ b/cpp/examples/messaging/topic_receiver.cpp
@@ -34,8 +34,8 @@ int main(int argc, char** argv) {
const std::string url = argc>1 ? argv[1] : "amqp:tcp:127.0.0.1:5672";
const std::string pattern = argc>2 ? argv[2] : "#.#";
+ Connection connection;
try {
- Connection connection;
connection.open(url);
Session session = connection.newSession();
Receiver receiver = session.createReceiver("news_service; {filter:[control, " + pattern + "]}");
@@ -53,6 +53,7 @@ int main(int argc, char** argv) {
return 0;
} catch(const std::exception& error) {
std::cout << error.what() << std::endl;
+ connection.close();
}
return 1;
}
diff --git a/cpp/examples/messaging/topic_sender.cpp b/cpp/examples/messaging/topic_sender.cpp
index d1ada45864..a37d4b5371 100644
--- a/cpp/examples/messaging/topic_sender.cpp
+++ b/cpp/examples/messaging/topic_sender.cpp
@@ -51,8 +51,8 @@ int main(int argc, char** argv) {
const char* url = argc>1 ? argv[1] : "amqp:tcp:127.0.0.1:5672";
int count = argc>2 ? atoi(argv[2]) : 10;
+ Connection connection;
try {
- Connection connection;
connection.open(url);
Session session = connection.newSession();
Sender sender = session.createSender("news_service");
@@ -72,6 +72,7 @@ int main(int argc, char** argv) {
return 0;
} catch(const std::exception& error) {
std::cout << error.what() << std::endl;
+ connection.close();
}
return 1;
}