| Thrift C++ Software Library | 
 |  | 
 | License | 
 | ======= | 
 |  | 
 | Licensed to the Apache Software Foundation (ASF) under one | 
 | or more contributor license agreements. See the NOTICE file | 
 | distributed with this work for additional information | 
 | regarding copyright ownership. The ASF licenses this file | 
 | to you under the Apache License, Version 2.0 (the | 
 | "License"); you may not use this file except in compliance | 
 | with the License. You may obtain a copy of the License at | 
 |  | 
 |   http://www.apache.org/licenses/LICENSE-2.0 | 
 |  | 
 | Unless required by applicable law or agreed to in writing, | 
 | software distributed under the License is distributed on an | 
 | "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | 
 | KIND, either express or implied. See the License for the | 
 | specific language governing permissions and limitations | 
 | under the License. | 
 |  | 
 | Using Thrift with C++ | 
 | ===================== | 
 |  | 
 | You need to define an enviroment variable called THIRD_PARTY. The project | 
 | assumes that you have extracted the dependancies into their default structure | 
 | into the path defined by THIRD_PARTY. | 
 |  | 
 | e.g. $(THIRD_PARTY)/boost/boost_1_47_0/ | 
 |  | 
 | Thrift is divided into two libraries. | 
 |  | 
 | libthrift | 
 |   The core Thrift library contains all the core Thrift code. It requires | 
 |   boost shared pointers and boost thread. | 
 |  | 
 | libthriftnb | 
 |   This library contains the Thrift nonblocking server, which uses libevent. | 
 |   To link this library you will also need to link libevent. | 
 |  | 
 | Linking Against Thrift | 
 | ====================== | 
 |  | 
 | You need to link your project that uses thrift against all the thrift | 
 | dependancies; in the case of libthrift, boost and for | 
 | libthriftnb, libevent. | 
 |  | 
 | In the project properties you must also set HAVE_CONFIG_H as force include | 
 | the config header: "windows/confg.h" | 
 |  | 
 | Dependencies | 
 | ============ | 
 |  | 
 | boost shared pointers | 
 | http://www.boost.org/libs/smart_ptr/smart_ptr.htm | 
 |  | 
 | boost thread | 
 | http://www.boost.org/doc/libs/release/doc/html/thread.html | 
 |  | 
 | libevent (for libthriftnb only) | 
 | http://monkey.org/~provos/libevent/ | 
 |  | 
 | Notes on boost thread (static vs shared): | 
 | ========================================= | 
 |  | 
 | By default lib/cpp/windows/force_inc.h defines: | 
 |  | 
 | #define BOOST_ALL_NO_LIB 1 | 
 | #define BOOST_THREAD_NO_LIB 1 | 
 |  | 
 | This has for effect to have the host application linking against Thrift | 
 | to have to link with boost thread as a static library. | 
 |  | 
 | If you wanted instead to link with boost thread as a shared library, | 
 | you'll need to uncomment those two lines, and recompile. | 
 |  | 
 | Windows version compatibility | 
 | ============================= | 
 | The Thrift library targets Windows XP for broadest compatbility. A notable | 
 | difference is in the Windows-specific implementation of the socket poll | 
 | function. To target Vista, Win7 or other versions, comment out the line | 
 | #define TARGET_WIN_XP. | 
 |  | 
 | Named Pipes | 
 | =========== | 
 | - Named Pipe transport has been added in the TPipe and TPipeServer classes. | 
 |   This is currently Windows-only (see below). | 
 |  | 
 | Known issues | 
 | ============ | 
 |  | 
 | - Named pipe transport for *NIX has not been implemented. Domain sockets are | 
 |   a better choice for local IPC under non-Windows OS's. *NIX named pipes  | 
 |   only support 1:1 client-server connection. | 
 |  | 
 | TODO | 
 | ==== | 
 |  | 
 | - Port remaining classes in libthrift: | 
 |     - TSSLSocket | 
 |  | 
 | - Port test cases. (Not even started this. Run test cases in release mode?) | 
 |  | 
 | - Autolink libraries depending on debug\release build. | 
 |  | 
 | - Auto versioning. |