diff options
Diffstat (limited to 'cpp/src/tests/qrsh.cpp')
-rw-r--r-- | cpp/src/tests/qrsh.cpp | 169 |
1 files changed, 0 insertions, 169 deletions
diff --git a/cpp/src/tests/qrsh.cpp b/cpp/src/tests/qrsh.cpp deleted file mode 100644 index 0cb52b6b05..0000000000 --- a/cpp/src/tests/qrsh.cpp +++ /dev/null @@ -1,169 +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. - * - */ - -#include <qpid/client/Connection.h> -#include <qpid/client/Session.h> -#include <qpid/client/AsyncSession.h> -#include <qpid/client/Message.h> -#include <qpid/client/MessageListener.h> -#include <qpid/client/SubscriptionManager.h> - -#include <stdio.h> -#include <cstdlib> -#include <iostream> - -#include <sstream> - -using namespace qpid::client; -using namespace qpid::framing; - -using namespace std; - -namespace qpid { -namespace tests { - -class ResponseListener : public MessageListener -{ - public : - - int exitCode; - - ResponseListener ( SubscriptionManager & subscriptions ) - : exitCode(-1), - subscriptions ( subscriptions ) - { - } - - virtual void - received ( Message & message ) - { - char first_word[1000]; - sscanf ( message.getData().c_str(), "%s", first_word ); - - if ( ! strcmp ( first_word, "wait_response" ) ) - { - // If we receive a message here, parse out the exit code. - sscanf ( message.getData().c_str(), "%*s%d", & exitCode ); - subscriptions.cancel(message.getDestination()); - } - else - if ( ! strcmp ( first_word, "get_response" ) ) - { - // The remainder of the message is the file we requested. - fprintf ( stdout, - "%s", - message.getData().c_str() + strlen("get_response" ) - ); - subscriptions.cancel(message.getDestination()); - } - } - - - private : - - SubscriptionManager & subscriptions; -}; - -}} // namespace qpid::tests - -using namespace qpid::tests; - -/* - * argv[1] host - * argv[2] port - * argv[3] server name - * argv[4] command name - * argv[5..N] args to the command - */ -int -main ( int argc, char ** argv ) -{ - const char* host = argv[1]; - int port = atoi(argv[2]); - - - Connection connection; - - try - { - connection.open ( host, port ); - Session session = connection.newSession ( ); - - // Make a queue and bind it to fanout. - string myQueue = session.getId().getName(); - - session.queueDeclare ( arg::queue=myQueue, - arg::exclusive=true, - arg::autoDelete=true - ); - - session.exchangeBind ( arg::exchange="amq.fanout", - arg::queue=myQueue, - arg::bindingKey="my-key" - ); - - // Get ready to listen for the wait-response. - // or maybe a get-response. - // ( Although this may not be one of those types - // of command, get ready anyway. - SubscriptionManager subscriptions ( session ); - ResponseListener responseListener ( subscriptions ); - subscriptions.subscribe ( responseListener, myQueue ); - - bool response_command = false; - if(! strcmp("exec_wait", argv[4] )) - response_command = true; - else - if(! strcmp("exited", argv[4] )) - response_command = true; - else - if(! strcmp("get", argv[4] )) - response_command = true; - - // Send the payload message. - // Skip "qrsh host_name port" - Message message; - stringstream ss; - for ( int i = 3; i < argc; ++ i ) - ss << argv[i] << ' '; - - message.setData ( ss.str() ); - - session.messageTransfer(arg::content=message, - arg::destination="amq.fanout"); - - if ( response_command ) - subscriptions.run(); - - session.close(); - connection.close(); - return responseListener.exitCode; - } - catch ( exception const & e) - { - cerr << e.what() << endl; - } - - return 1; -} - - - |