LD = g++
# Compiler flags
-DCFL = -Wall -O3 -g -I./gen-cpp $(include_flags) -L$(thrift_home)/lib/cpp -lthrift
-CFL = -Wall -O3 -I./gen-cpp $(include_flags) -L$(thrift_home)/lib/cpp -lthrift
+DCFL = -Wall -O3 -g -I./gen-cpp $(include_flags) -L$(thrift_home)/lib/cpp -lthrift -levent
+CFL = -Wall -O3 -I./gen-cpp $(include_flags) -L$(thrift_home)/lib/cpp -lthrift -levent
all: server client
$(THRIFT) --cpp ../ThriftTest.thrift
server-debug: stubs
- g++ -o TestServer $(DCFL) src/TestServer.cc ./gen-cpp/ThriftTest.cc ./gen-cpp/ThriftTest_types.cc
+ g++ -o TestServer $(DCFL) src/TestServer.cc ./gen-cpp/ThriftTest.cc ./gen-cpp/ThriftTest_types.cc
client-debug: stubs
g++ -o TestClient $(DCFL) src/TestClient.cc ./gen-cpp/ThriftTest.cc ./gen-cpp/ThriftTest_types.cc
/**
* LIST TEST
*/
- list<int32_t> listout;
+ vector<int32_t> listout;
for (int32_t i = -2; i < 3; ++i) {
listout.push_back(i);
}
printf("testList({");
- list<int32_t>::const_iterator l_iter;
+ vector<int32_t>::const_iterator l_iter;
first = true;
for (l_iter = listout.begin(); l_iter != listout.end(); ++l_iter) {
if (first) {
printf("%d", *l_iter);
}
printf("})");
- list<int32_t> listin = testClient.testList(listout);
+ vector<int32_t> listin = testClient.testList(listout);
printf(" = {");
first = true;
for (l_iter = listin.begin(); l_iter != listin.end(); ++l_iter) {
}
printf("}, ");
- list<Xtruct> xtructs = i2_iter->second.xtructs;
- list<Xtruct>::const_iterator x;
+ vector<Xtruct> xtructs = i2_iter->second.xtructs;
+ vector<Xtruct>::const_iterator x;
printf("{");
for (x = xtructs.begin(); x != xtructs.end(); ++x) {
printf("{\"%s\", %d, %d, %ld}, ",
#include <protocol/TBinaryProtocol.h>
#include <server/TSimpleServer.h>
#include <server/TThreadPoolServer.h>
+#include <server/TNonblockingServer.h>
#include <transport/TServerSocket.h>
#include <transport/TBufferedTransportFactory.h>
#include "ThriftTest.h"
return thing;
}
- list<int32_t> testList(list<int32_t> thing) {
+ vector<int32_t> testList(vector<int32_t> thing) {
printf("testList({");
- list<int32_t>::const_iterator l_iter;
+ vector<int32_t>::const_iterator l_iter;
bool first = true;
for (l_iter = thing.begin(); l_iter != thing.end(); ++l_iter) {
if (first) {
}
printf("}, ");
- list<Xtruct> xtructs = i2_iter->second.xtructs;
- list<Xtruct>::const_iterator x;
+ vector<Xtruct> xtructs = i2_iter->second.xtructs;
+ vector<Xtruct>::const_iterator x;
printf("{");
for (x = xtructs.begin(); x != xtructs.end(); ++x) {
printf("{\"%s\", %d, %d, %ld}, ", x->string_thing.c_str(), (int)x->byte_thing, x->i32_thing, x->i64_thing);
serverType = args["server-type"];
if (serverType == "simple") {
} else if (serverType == "thread-pool") {
+ } else if (serverType == "nonblocking") {
} else {
throw invalid_argument("Unknown server type "+serverType);
}
printf("Starting the server on port %d...\n", port);
threadPoolServer.serve();
+
+ } else if (serverType == "nonblocking") {
+
+ TNonblockingServer nonblockingServer(testProcessor,
+ serverOptions,
+ port);
+ printf("Starting the nonblocking server on port %d...\n", port);
+ nonblockingServer.serve();
+
}
printf("done.\n");
#!/bin/bash -v
-java -cp thrifttest.jar:/usr/local/lib/libthrift.jar com.facebook.thrift.test.TestClient $1 $2 $3
+java -cp thrifttest.jar:/usr/local/lib/libthrift.jar com.facebook.thrift.test.TestClient $*
#!/bin/bash -v
-java -server -cp thrifttest.jar:/usr/local/lib/libthrift.jar com.facebook.thrift.test.TestServer $1
+java -server -cp thrifttest.jar:/usr/local/lib/libthrift.jar com.facebook.thrift.test.TestServer $*
// Generated code
import thrift.test.*;
+import com.facebook.thrift.transport.TTransport;
import com.facebook.thrift.transport.TSocket;
+import com.facebook.thrift.transport.THttpClient;
import com.facebook.thrift.transport.TTransportException;
import com.facebook.thrift.protocol.TBinaryProtocol;
try {
String host = "localhost";
int port = 9090;
+ String url = null;
int numTests = 1;
-
- if (args.length > 0) {
- host = args[0];
- }
- if (args.length > 1) {
- port = Integer.valueOf(args[1]);
- }
- if (args.length > 2) {
- numTests = Integer.valueOf(args[2]);
+
+ try {
+ for (int i = 0; i < args.length; ++i) {
+ if (args[i].equals("-h")) {
+ String[] hostport = (args[++i]).split(";");
+ host = hostport[0];
+ port = Integer.valueOf(hostport[1]);
+ }
+
+ if (args[i].equals("-u")) {
+ url = args[++i];
+ }
+
+ if (args[i].equals("-n")) {
+ numTests = Integer.valueOf(args[++i]);
+ }
+ }
+ } catch (Exception x) {
+ x.printStackTrace();
}
- TSocket tSocket =
- new TSocket(host, port);
+ TTransport transport;
+
+ if (url != null) {
+ transport = new THttpClient(url);
+ } else {
+ transport = new TSocket(host, port);
+ }
+
TBinaryProtocol binaryProtocol =
new TBinaryProtocol();
ThriftTest.Client testClient =
- new ThriftTest.Client(tSocket, binaryProtocol);
+ new ThriftTest.Client(transport, binaryProtocol);
long timeMin = 0;
long timeMax = 0;
*/
System.out.println("Test #" + (test+1) + ", " + "connect " + host + ":" + port);
try {
- tSocket.open();
+ transport.open();
} catch (TTransportException ttx) {
System.out.println("Connect failed: " + ttx.getMessage());
continue;
}
timeTot += tot;
- tSocket.close();
+ transport.close();
}
long timeAvg = timeTot / numTests;