You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@thrift.apache.org by Apache Wiki <wi...@apache.org> on 2010/03/20 09:10:53 UTC
[Thrift Wiki] Update of "ThriftUsageC++" by TimWilson-Brown
Dear Wiki user,
You have subscribed to a wiki page or wiki category on "Thrift Wiki" for change notification.
The "ThriftUsageC++" page has been changed by TimWilson-Brown.
The comment on this change is: added link to Win32 instructions for C++.
http://wiki.apache.org/thrift/ThriftUsageC%2B%2B?action=diff&rev1=18&rev2=19
--------------------------------------------------
= Getting started =
- The first thing you need to know is that the C++ code generated by Thrift compiles only on Unix based systems.
+ The first thing you need to know is that the C++ code generated by Thrift compiles only on Unix based systems, although some success has been reported using Cygwin on Win32 in ThriftInstallationWin32.
== Requirements ==
Make sure that your system meets the requirements as noted in ThriftRequirements
@@ -18, +18 @@
1. Run {{{ make install}}} to install the library. Your user needs root permissions.
== Generating the server code ==
+ In this example we use an imaginary file called {{{your-thrift-file.thrift}}}:
- In this example we use an imaginary file called {{{your-thrift-file.thrift}}}:
- {{{
- #!/usr/local/bin/thrift --gen cpp
+ {{{#!/usr/local/bin/thrift --gen cpp
namespace cpp Test
service Something {
- i32 ping()
- }
- }}}
- Now run:
+ . i32 ping()
+
+ } }}} Now run:
+
{{{
thrift --gen cpp your-thrift-file.thrift
- }}}
+ }}}
-
=== Exploring the generated code - The Server ===
-
The generated code should be under the {{{gen-cpp}}} directory. You will see a number of generated C++ and header files along with an automatically generated server skeleton code (in bold).
* Something.cpp
@@ -48, +45 @@
* your-thrift-file_types.h
=== Implementing the Server ===
+ Copy the generated server skeleton to a file named Something_server.cpp and keep the original:
- Copy the generated server skeleton to a file named Something_server.cpp and keep the original:
{{{
cp Something_server.skeleton.cpp Something_server.cpp
}}}
-
-
When this server is run in console it prints "ping" on the console window each time the function is called from a client.
Here's the autogenerated skeleton file to illustrate how to write a server: '''Something_server.cpp'''
+
{{{
#include "Something.h"
#include <protocol/TBinaryProtocol.h>
@@ -100, +96 @@
return 0;
}
}}}
+ == Compiling/Building the server ==
+ To quickly build a binary using a single command use:
- == Compiling/Building the server ==
-
- To quickly build a binary using a single command use:
{{{
g++ -Wall -I/usr/local/include/thrift *.cpp -lthrift -o something
}}}
-
=== Compiling ===
-
You need to point your compiler to the thrift include path (CXX flag: {{{ -I/usr/local/include/thrift}}})
{{{
@@ -118, +111 @@
g++ -Wall -I/usr/local/include/thrift -c your-thrift-file_constants.cpp -o constants.o
g++ -Wall -I/usr/local/include/thrift -c your-thrift-file_types.cpp -o types.o
}}}
-
=== Linking ===
You need to point your linker to the thrift library. (Linker flag: {{{ -lthrift }}} or {{{ -l/usr/local/lib/libthrift.so }}}
{{{
ld -L/usr/local/lib -lthrift *.o -o Something_server
}}}
-
== Generating the client code ==
-
A client is a bit simpler to generate.
{{{
@@ -159, +149 @@
return 0;
}
-
}}}