Roshan Pius | 4e2ea81 | 2015-09-23 14:46:15 -0700 | [diff] [blame] | 1 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> |
| 2 | <html> |
| 3 | <head> |
| 4 | <title>XmlRpc++ Library</title> |
| 5 | <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> |
| 6 | <meta http-equiv="Content-language" content="en-US"> |
| 7 | <meta name="author" content="Chris Morley"> |
| 8 | <meta name="copyright" content="Copyright © 2003 by Chris Morley"> |
| 9 | </head> |
| 10 | <body> |
| 11 | <H3>XmlRpc++ Library</H3> |
| 12 | <P>This is version 0.7 of XmlRpc++, an implementation of the <A HREF="http://www.xmlrpc.org"> |
| 13 | XmlRpc protocol</A> written in C++, based upon Shilad Sen's excellent <A HREF="http://py-xmlrpc.sourceforge.net"> |
| 14 | py-xmlrpc library</A>. XmlRpc++ is designed to make it easy to incorporate |
| 15 | XmlRpc client and server support into C++ applications. Or use both client and |
| 16 | server objects in your app for easy peer-to-peer support. |
| 17 | </P> |
| 18 | <H3>Features</H3> |
| 19 | <UL> |
| 20 | <li> |
| 21 | <STRONG>Easy</STRONG> This library is easy to incorporate into C++ |
| 22 | applications. No other libraries are required, other than your system's socket |
| 23 | libraries. Simple XML parsing and HTTP support are built in.<br> |
| 24 | <li> |
| 25 | <STRONG>Fast</STRONG> All IO is non-blocking, so a slow client or |
| 26 | network will not slow down the server.<br> |
| 27 | <li> |
| 28 | <STRONG>Portable</STRONG> Written in standard C++ to the POSIX and Windows |
| 29 | sockets APIs. You do need a fairly recent compiler (g++ 3.1 or MSVC++ .Net or |
| 30 | MSVC++ 6 with the <A href="http://www.dinkumware.com/vc_fixes.html">STL patches</A>.) |
| 31 | </li> |
| 32 | <li> |
| 33 | <STRONG>Free</STRONG> This library is released under the <a href="http://www.gnu.org/"> |
| 34 | GNU</a> <a href="http://www.gnu.org/copyleft/lesser.html">LGPL</a>.<br> |
| 35 | <br> |
| 36 | </li> |
| 37 | </UL> |
| 38 | <P> </P> |
| 39 | <h3>Changes</h3> |
| 40 | <UL> |
| 41 | <li> |
| 42 | Better handling of fault responses: server methods can throw an |
| 43 | XmlRpcException to return a fault and XmlRpcClient has a new method to |
| 44 | test whether the last response was a fault.</li> |
| 45 | <li> |
| 46 | Support for system.listMethods and system.methodHelp from the introspection |
| 47 | API.</li> |
| 48 | <li> |
| 49 | Support for system.multicall to process multiple requests in a single transaction.</li> |
| 50 | <li> |
| 51 | Fixed a problem in the XmlRpcServer destructor (it should not have been deleting the methods).</li> |
| 52 | <li> |
| 53 | The server ensures a valid result value is returned even if the method does not |
| 54 | set the result. The default result is an empty string.</li> |
| 55 | <li> |
| 56 | Doxygen comments in header files and a doc target in the makefile.</li> |
| 57 | </UL> |
| 58 | <P> |
| 59 | <P> </P> |
| 60 | <h3>Installation</h3> |
| 61 | <P> |
| 62 | There are VC++ 6 and VC++ .Net project files building on Windows. If you are |
| 63 | using VC++ 6, you should apply SP3 and the fixes at <A href="http://www.dinkumware.com/vc_fixes.html"> |
| 64 | http://www.dinkumware.com/vc_fixes.html</A>. Be sure to set the appropriate |
| 65 | code generation switches. In particular, ensure that the runtime library |
| 66 | (single/multi-threaded, static library/DLL) used is the same for the XmlRpc++ |
| 67 | code and whatever application it will be linked to.</P> |
| 68 | <P> |
| 69 | For Linux, Solaris, and other Unix-like platforms there is a GNU Makefile which |
| 70 | can be edited to suit your system. Specify your C++ compiler, compiler flags, |
| 71 | and your system's socket libraries. |
| 72 | </P> |
| 73 | <p>In the test directory there are various test programs that are built by default. |
| 74 | To verify that the library built correctly, you can start the HelloServer |
| 75 | example:<br> |
| 76 | <pre>HelloServer 8000 |
| 77 | </pre> |
| 78 | and the HelloClient example in another terminal window:<br> |
| 79 | <pre>HelloClient localhost 8000 |
| 80 | </pre> |
| 81 | <P> |
| 82 | You should see two Hello messages and a sum displayed (amongst a bunch of debug |
| 83 | output). You can also try the XML server validator program (eg, "Validator 80") |
| 84 | and then attempt to connect to it from <A href="http://validator.xmlrpc.com">http://validator.xmlrpc.com</A> |
| 85 | (if you have access to the internet and are not behind a firewall etc). |
| 86 | </P> |
| 87 | <H3>Author</H3> |
| 88 | <P><A href="mailto:cmorley@users.sourceforge.net">Chris Morley</A> |
| 89 | </P> |
| 90 | <P>Although no code was re-used, the design and structure of the library is based |
| 91 | upon the py-xmlrpc library implementation.<BR> |
| 92 | The base64 decoder/encoder is by <A href="mailto:lostd@ukr.net">Konstantin |
| 93 | Pilipchuk</A>.</P> |
| 94 | <P></P> |
| 95 | <H3>License</H3> |
| 96 | <p>A full copy of the LGPL license is included in the file COPYING. The source code |
| 97 | is Copyright (c) 2002-2003 by Chris Morley. This library is free software; you |
| 98 | can redistribute it and/or modify it under the terms of the GNU Lesser General |
| 99 | Public License as published by the Free Software Foundation; either version 2.1 |
| 100 | of the License, or (at your option) any later version. This library is |
| 101 | distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; |
| 102 | without even the implied warranty of MERCHANTABILITY or FITNESS FOR A |
| 103 | PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. |
| 104 | You should have received a copy of the GNU Lesser General Public License along |
| 105 | with this library; if not, write to the Free Software Foundation, Inc., 59 |
| 106 | Temple Place, Suite 330, Boston, MA 02111-1307 USA |
| 107 | </p> |
| 108 | </body> |
| 109 | </html> |