#include <iostream>
#include <thrift/protocol/TBinaryProtocol.h>
+#include <thrift/protocol/TCompactProtocol.h>
#include <thrift/protocol/TJSONProtocol.h>
#include <thrift/transport/THttpClient.h>
#include <thrift/transport/TTransportUtils.h>
("port", boost::program_options::value<int>(&port)->default_value(port), "Port number to connect")
("domain-socket", boost::program_options::value<string>(&domain_socket)->default_value(domain_socket), "Domain Socket (e.g. /tmp/ThriftTest.thrift), instead of host and port")
("transport", boost::program_options::value<string>(&transport_type)->default_value(transport_type), "Transport: buffered, framed, http, evhttp")
- ("protocol", boost::program_options::value<string>(&protocol_type)->default_value(protocol_type), "Protocol: binary, json")
+ ("protocol", boost::program_options::value<string>(&protocol_type)->default_value(protocol_type), "Protocol: binary, compact, json")
("ssl", "Encrypted Transport using SSL")
("testloops,n", boost::program_options::value<int>(&numTests)->default_value(numTests), "Number of Tests")
;
if (protocol_type.compare("json") == 0) {
boost::shared_ptr<TProtocol> jsonProtocol(new TJSONProtocol(transport));
protocol = jsonProtocol;
+ } else if (protocol_type.compare("compact") == 0) {
+ boost::shared_ptr<TProtocol> compactProtocol(new TCompactProtocol(transport));
+ protocol = compactProtocol;
} else{
boost::shared_ptr<TBinaryProtocol> binaryProtocol(new TBinaryProtocol(transport));
protocol = binaryProtocol;
#include <thrift/concurrency/ThreadManager.h>
#include <thrift/concurrency/PlatformThreadFactory.h>
#include <thrift/protocol/TBinaryProtocol.h>
+#include <thrift/protocol/TCompactProtocol.h>
#include <thrift/protocol/TJSONProtocol.h>
#include <thrift/server/TSimpleServer.h>
#include <thrift/server/TThreadedServer.h>
("transport", boost::program_options::value<string>(&transport_type)->default_value(transport_type),
"transport: buffered, framed, http")
("protocol", boost::program_options::value<string>(&protocol_type)->default_value(protocol_type),
- "protocol: binary, json")
+ "protocol: binary, compact, json")
("ssl", "Encrypted Transport using SSL")
("processor-events", "processor-events")
("workers,n", boost::program_options::value<size_t>(&workers)->default_value(workers),
if (protocol_type == "json") {
boost::shared_ptr<TProtocolFactory> jsonProtocolFactory(new TJSONProtocolFactory());
protocolFactory = jsonProtocolFactory;
+ } else if (protocol_type == "compact") {
+ boost::shared_ptr<TProtocolFactory> compactProtocolFactory(new TCompactProtocolFactory());
+ protocolFactory = compactProtocolFactory;
} else {
boost::shared_ptr<TProtocolFactory> binaryProtocolFactory(new TBinaryProtocolFactoryT<TBufferBase>());
protocolFactory = binaryProtocolFactory;
#TODO add enum for parameters
#TODO align program arguments across languages
-cpp_protocols="binary json"
-java_protocols="binary json compact"
+cpp_protocols="binary compact json"
+java_protocols="binary compact json"
cpp_transports="buffered framed http"
java_server_transports="buffered framed fastframed"
java_client_transports=${java_server_transports}" http"