Home | History | Annotate | Download | only in xmlrpcpp
      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> &nbsp; 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> &nbsp; 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> &nbsp; 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>&nbsp;</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>&nbsp;</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 (a] 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 (a] 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>
    110