|  | Thrift transport sample project | 
|  | ------------------------------- | 
|  |  | 
|  | This cross-platform project has been built with Windows Visual Studio 10 and | 
|  | OSX 10.7.1's g++.  The client and server support socket and pipe transports | 
|  | through command-line switches. | 
|  |  | 
|  | Windows supports both named & anonymous pipes; *NIX gets only named | 
|  | 'pipes' at this time. | 
|  |  | 
|  | Windows-only at this time: | 
|  | The client & server are double-ended. Both sides run a server and client to | 
|  | enable full duplex bidirectional event signaling. They are simple command | 
|  | line apps. The server runs until it's aborted (Ctl-C). The client connects to | 
|  | the server, informs the server of its listening pipe/port, runs some more RPCs | 
|  | and exits. The server also makes RPC calls to the client to demonstrate | 
|  | bidirectional operation. | 
|  |  | 
|  | Prequisites: | 
|  | Boost -- tested with Boost 1.47, other versions may work. | 
|  | libthrift library -- build the library under "thrift/lib/cpp/" | 
|  | thrift IDL compiler -- download from http://thrift.apache.org/download/ | 
|  | or build from "thrift/compiler/cpp".  The IDL compiler version should | 
|  | match the thrift source distribution's version. For instance, thrift-0.9.0 | 
|  | has a different directory structure than thrift-0.8.0 and the generated | 
|  | files are not compatible. | 
|  |  | 
|  | Note: Bulding the thrift IDL compiler and library are beyond the scope | 
|  | of this article. Please refer to the Thrift documentation in the respective | 
|  | directories and online. | 
|  |  | 
|  |  | 
|  | Microsoft Windows with Visual Studio 10 | 
|  | ---------------------------------------- | 
|  | Copy the IDL compiler 'thrift.exe' to this project folder or to a location in the path. | 
|  | Run thriftme.bat to generate the interface source from the thrift files. | 
|  |  | 
|  | Open transport-sample.sln and... | 
|  | Adapt the Boost paths for the client and server projects. Right-click on each project, select | 
|  | Properties, then: | 
|  | Configuration Properties -> C/C++ -> General -> Additional Include Directories | 
|  | Configuration Properties -> Linker -> General -> Additional Include Directories | 
|  |  | 
|  | The stock path assumes that Boost is located at the same level as the thrift repo root. | 
|  |  | 
|  | Run the following in separate command prompts from the Release or Debug | 
|  | build folder: | 
|  | server.exe -np test | 
|  | client.exe -np test | 
|  |  | 
|  |  | 
|  | *NIX flavors | 
|  | ------------ | 
|  | Build the thrift cpp library. | 
|  | Build the IDL compiler and copy it to this project folder. | 
|  | Run thriftme.sh to generate the interface source from the thrift files. | 
|  | Run 'make' | 
|  |  | 
|  | Run the following in separate shells: | 
|  | server/server -np /tmp/test | 
|  | client/client -np /tmp/test |