blob: 64498390aa54d6d00a98749843ef30e2164fdb29 [file] [log] [blame]
#include <iostream>
#include <thrift/protocol/TCompactProtocol.h>
#include <thrift/transport/TSocket.h>
#include <thrift/transport/THttpClient.h>
#include <thrift/transport/TTransportUtils.h>
#include "Hawk.h"
using namespace std;
using namespace boost;
using namespace apache::thrift;
using namespace apache::thrift::protocol;
using namespace apache::thrift::transport;
namespace {
const string DEFAULT_HOST = "localhost";
const int DEFAULT_PORT = 8080;
}
int main(int argc, char* argv[]) {
const string host = argc > 1 ? argv[1] : DEFAULT_HOST;
const int port = argc > 2 ? atoi(argv[2]) : DEFAULT_PORT;
boost::shared_ptr<TTransport> socket(new TSocket(host, port));
boost::shared_ptr<TTransport> transport(new THttpClient(socket, host, "/thrift/hawk/compact"));
boost::shared_ptr<TProtocol> protocol(new TCompactProtocol(transport));
HawkClient client(protocol);
try {
transport->open();
vector<HawkInstance> instances;
client.listInstances(instances);
if (instances.empty()) {
cout << "No instances in the specified server";
} else {
cout << "Found " << instances.size() << " in the server" << endl;
for (auto it = instances.begin(); it != instances.end(); ++it) {
cout << "* " << it->name << endl;
}
}
transport->close();
} catch (TException& tex) {
cerr << "ERROR: " << tex.what() << endl;
return EXIT_FAILURE;
}
return EXIT_SUCCESS;
}