From e6889de36f2be33d398e15802151690e25be24f0 Mon Sep 17 00:00:00 2001 From: Marc Slemko Date: Sat, 12 Aug 2006 00:32:53 +0000 Subject: [PATCH] Fixed a few typos - test client and server samples now working with new code generation git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664753 13f79535-47bb-0310-9956-ffa450edef68 --- compiler/src/cpp_generator.py | 10 ++++----- lib/cpp/src/concurrency/Util.h | 4 ++++ lib/cpp/src/protocol/TBinaryProtocol.cc | 22 +++++++++++++++---- lib/cpp/src/protocol/TBinaryProtocol.h | 8 +++---- test/ThriftTest.thrift | 2 +- test/cpp/Makefile | 29 ++++++++++++++++--------- test/cpp/src/TestServer.cc | 12 ++++++++++ 7 files changed, 63 insertions(+), 24 deletions(-) diff --git a/compiler/src/cpp_generator.py b/compiler/src/cpp_generator.py index 06c253da..b03ca5d8 100644 --- a/compiler/src/cpp_generator.py +++ b/compiler/src/cpp_generator.py @@ -230,7 +230,7 @@ CPP_INTERFACE_FUNCTION_DECLARATION = Template(""" virtual ${functionDeclarati CPP_INTERFACE_DECLARATION = Template(""" class ${service}If { public: - ~${service}If() {} + virtual ~${service}If() {} ${functionDeclarations}}; """) @@ -322,8 +322,6 @@ void ${service}ServerIf::process_${function}(uint32_t seqid, """+CPP_TRANSPORTP+ CPP_SERVER_PROCESS_DEFINITION = Template(""" bool ${service}ServerIf::process("""+CPP_TRANSPORTP+""" itrans, """+CPP_TRANSPORTP+""" otrans) { - uint32_t xfer = 0; - std::string name; """+CPP_PROTOCOL_MESSAGE_TYPE+""" messageType; @@ -337,6 +335,8 @@ ${callProcessSwitch} } else { throw """+CPP_EXCEPTION+"""(\"Unexpected message type\"); } + + return true; } """) @@ -785,7 +785,7 @@ uint32_t read_${suffix}("""+CPP_PROTOCOLP+""" iprot, """+CPP_TRANSPORTP+""" itra xfer += iprot->readU32(itrans, count); - for(int ix = 0; ix < count; ix++) { + for(uint32_t ix = 0; ix < count; ix++) { ${keyReaderCall}; ${valueReaderCall}; value.insert(std::make_pair(key, elem)); @@ -819,7 +819,7 @@ uint32_t read_${suffix}("""+CPP_PROTOCOLP+""" iprot, """+CPP_TRANSPORTP+""" itra xfer+= iprot->readU32(itrans, count); - for(int ix = 0; ix < count; ix++) { + for(uint32_t ix = 0; ix < count; ix++) { ${valueReaderCall}; value.${insert}(elem); } diff --git a/lib/cpp/src/concurrency/Util.h b/lib/cpp/src/concurrency/Util.h index 33426539..df37471b 100644 --- a/lib/cpp/src/concurrency/Util.h +++ b/lib/cpp/src/concurrency/Util.h @@ -5,7 +5,11 @@ #include #include +#if defined(HAVE_CLOCK_GETTIME) +#include +#else // defined(HAVE_CLOCK_GETTIME) #include +#endif // defined(HAVE_CLOCK_GETTIME) namespace facebook { namespace thrift { namespace concurrency { diff --git a/lib/cpp/src/protocol/TBinaryProtocol.cc b/lib/cpp/src/protocol/TBinaryProtocol.cc index 7ad3b2bf..3cd11ba0 100644 --- a/lib/cpp/src/protocol/TBinaryProtocol.cc +++ b/lib/cpp/src/protocol/TBinaryProtocol.cc @@ -110,6 +110,20 @@ uint32_t TBinaryProtocol::writeI16(shared_ptr out, return 2; } +uint32_t TBinaryProtocol::writeU32(shared_ptr out, + const uint32_t u32) const { + uint32_t net = (uint32_t)htonl(u32); + out->write((uint8_t*)&net, 4); + return 4; +} + +uint32_t TBinaryProtocol::writeI32(shared_ptr out, + const int32_t i32) const { + int32_t net = (int32_t)htonl(i32); + out->write((uint8_t*)&net, 4); + return 4; +} + uint32_t TBinaryProtocol::writeU64(shared_ptr out, const uint64_t u64) const { uint64_t net = (uint64_t)htonll(u64); @@ -135,10 +149,10 @@ uint32_t TBinaryProtocol::writeString(shared_ptr out, * Reading functions */ -uint32_t TBinaryProtocol::readMessasgeBegin(shared_ptr in, - std::string& name, - TMessageType& messageType, - uint32_t& seqid) const { +uint32_t TBinaryProtocol::readMessageBegin(shared_ptr in, + std::string& name, + TMessageType& messageType, + uint32_t& seqid) const { uint32_t result = 0; uint8_t type; diff --git a/lib/cpp/src/protocol/TBinaryProtocol.h b/lib/cpp/src/protocol/TBinaryProtocol.h index e70f687f..480182d5 100644 --- a/lib/cpp/src/protocol/TBinaryProtocol.h +++ b/lib/cpp/src/protocol/TBinaryProtocol.h @@ -97,10 +97,10 @@ using namespace boost; */ - uint32_t readMessasgeBegin(shared_ptr in, - std::string& name, - TMessageType& messageType, - uint32_t& seqid) const; + uint32_t readMessageBegin(shared_ptr in, + std::string& name, + TMessageType& messageType, + uint32_t& seqid) const; uint32_t readMessageEnd(shared_ptr in) const; diff --git a/test/ThriftTest.thrift b/test/ThriftTest.thrift index 64c045a3..a8f5d868 100644 --- a/test/ThriftTest.thrift +++ b/test/ThriftTest.thrift @@ -28,7 +28,7 @@ struct Xtruct2 struct Insanity { map userMap = 0, - list xtructList = 1 + list xtructs = 1 } struct Empty {} diff --git a/test/cpp/Makefile b/test/cpp/Makefile index 693dbadb..daaa15ea 100644 --- a/test/cpp/Makefile +++ b/test/cpp/Makefile @@ -8,15 +8,24 @@ ifndef thrift_home thrift_home=../../build endif #thrift_home + +target: all + +ifndef boost_home +boost_home=../../../../../thirdparty/boost_1_33_1 +endif #thrift_home target: all +include_paths = $(thrift_home)/include/thrift \ + $(boost_home) + +include_flags = $(patsubst %,-I%, $(include_paths)) + # Tools -THRIFT = thrift +THRIFT = python ../../compiler/src/thrift.py ~/ws/thrift/dev/test/ThriftTest.thrift --cpp CC = g++ LD = g++ -include_flags = $(patsubst %,-I$(thrift_home)/include/%, thrift boost-1_33_1) - # Compiler flags LIBS = ../../lib/cpp/src/server/TSimpleServer.cc \ ../../lib/cpp/src/protocol/TBinaryProtocol.cc \ @@ -24,8 +33,8 @@ LIBS = ../../lib/cpp/src/server/TSimpleServer.cc \ ../../lib/cpp/src/transport/TChunkedTransport.cc \ ../../lib/cpp/src/transport/TServerSocket.cc \ ../../lib/cpp/src/transport/TSocket.cc -DCFL = -Wall -O3 -g -Igen-cpp $(include_flags) $(LIBS) -CFL = -Wall -O3 -Igen-cpp $(include_flags) -L$(thrift_home)/lib -lthrift +DCFL = -Wall -O3 -g -I../cpp-gen $(include_flags) $(LIBS) +CFL = -Wall -O3 -I../cpp-gen $(include_flags) -L$(thrift_home)/lib -lthrift all: server client @@ -35,16 +44,16 @@ stubs: ../ThriftTest.thrift $(THRIFT) -cpp ../ThriftTest.thrift server-debug: stubs - g++ -o TestServer $(DCFL) src/TestServer.cc gen-cpp/ThriftTest.cc + g++ -o TestServer $(DCFL) src/TestServer.cc ../cpp-gen/ThriftTest.cc client-debug: stubs - g++ -o TestClient $(DCFL) src/TestClient.cc gen-cpp/ThriftTest.cc + g++ -o TestClient $(DCFL) src/TestClient.cc ../cpp-gen/ThriftTest.cc server: stubs - g++ -o TestServer $(CFL) src/TestServer.cc gen-cpp/ThriftTest.cc + g++ -o TestServer $(CFL) src/TestServer.cc ../cpp-gen/ThriftTest.cc client: stubs - g++ -o TestClient $(CFL) src/TestClient.cc gen-cpp/ThriftTest.cc + g++ -o TestClient $(CFL) src/TestClient.cc ../cpp-gen/ThriftTest.cc clean: - rm -fr TestServer TestClient gen-cpp + rm -fr TestServer TestClient ../cpp-gen diff --git a/test/cpp/src/TestServer.cc b/test/cpp/src/TestServer.cc index eb95720b..27a983c6 100644 --- a/test/cpp/src/TestServer.cc +++ b/test/cpp/src/TestServer.cc @@ -215,6 +215,18 @@ class TestServer : public ThriftTestServerIf { return insane; } + + Xtruct testMulti(uint8_t arg0, int32_t arg1, uint64_t arg2, std::map arg3, Numberz arg4, UserId arg5) { + printf("testMulti()\n"); + + Xtruct hello; + hello.string_thing = "Hello2"; + hello.byte_thing = arg0; + hello.i32_thing = arg1; + hello.i64_thing = (int64_t)arg2; + + return hello; + } }; int main(int argc, char **argv) { -- 2.17.1