Skip to content

Commit

Permalink
to ros_comm
Browse files Browse the repository at this point in the history
  • Loading branch information
tfoote committed Oct 26, 2010
1 parent 5ac90fa commit 79bfbe8
Show file tree
Hide file tree
Showing 68 changed files with 10,148 additions and 0 deletions.
1 change: 1 addition & 0 deletions utilites/xmlrpcpp/.cvsignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
DebugReleasedoc*.ncb*.opt*.plg*.suo
Expand Down
13 changes: 13 additions & 0 deletions utilites/xmlrpcpp/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
cmake_minimum_required(VERSION 2.4.6)
include($ENV{ROS_ROOT}/core/rosbuild/rosbuild.cmake)
rosbuild_init()
rosbuild_add_library(XmlRpc src/XmlRpcClient.cpp
src/XmlRpcDispatch.cpp
src/XmlRpcServer.cpp
src/XmlRpcServerConnection.cpp
src/XmlRpcServerMethod.cpp
src/XmlRpcSocket.cpp
src/XmlRpcSource.cpp
src/XmlRpcUtil.cpp
src/XmlRpcValue.cpp)

504 changes: 504 additions & 0 deletions utilites/xmlrpcpp/COPYING

Large diffs are not rendered by default.

49 changes: 49 additions & 0 deletions utilites/xmlrpcpp/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
include $(shell rospack find mk)/cmake.mk
# # makefile written for gnu make
# CXX = g++
# SRC = ./src
# CPPFLAGS = -I$(SRC)
# DEBUG = -g
# OPTIMIZE = -O2
# GCCWARN = -Wall
# CXXFLAGS = $(DEBUG) $(GCCWARN) $(OPTIMIZE) $(INCLUDES)
#
# LIB = ./libXmlRpc.a
# SOLIB = libXmlRpc.so.1
#
# # Add your system-dependent network libs here. These are
# # only used to build the tests (your application will need them too).
# # Linux: none
# # Solaris: -lsocket -lnsl
# #SYSTEMLIBS = -lsocket -lnsl
# SYSTEMLIBS =
# LDLIBS = $(LIB) $(SYSTEMLIBS)
#
# OBJ = $(SRC)/XmlRpcClient.o $(SRC)/XmlRpcDispatch.o \
# $(SRC)/XmlRpcServer.o $(SRC)/XmlRpcServerConnection.o \
# $(SRC)/XmlRpcServerMethod.o $(SRC)/XmlRpcSocket.o $(SRC)/XmlRpcSource.o \
# $(SRC)/XmlRpcUtil.o $(SRC)/XmlRpcValue.o
#
# #all: $(LIB) tests
# # The SOLIB target does not work on OS X.
# #all: $(LIB) $(SOLIB)
# all: $(LIB)
#
# $(LIB): $(OBJ)
# $(AR) $(ARFLAGS) $(LIB) $(OBJ)
# $(SOLIB): $(OBJ)
# gcc -shared -Wl,-soname,$(SOLIB) -o $(SOLIB) $(OBJ)
#
#
# tests: $(LIB)
# cd test && $(MAKE) CXX=$(CXX) CXXFLAGS="$(CXXFLAGS)" SYSTEMLIBS="$(SYSTEMLIBS)"
#
# doc doxygen:
# cd src && doxygen Doxyfile
#
# clean:
# rm -f $(SRC)/*.o
# rm -f $(SRC)/*~
# rm -f $(LIB)
# cd test && $(MAKE) clean
#
109 changes: 109 additions & 0 deletions utilites/xmlrpcpp/README.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>XmlRpc++ Library</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta http-equiv="Content-language" content="en-US">
<meta name="author" content="Chris Morley">
<meta name="copyright" content="Copyright © 2003 by Chris Morley">
</head>
<body>
<H3>XmlRpc++ Library</H3>
<P>This is version 0.7 of XmlRpc++, an implementation of the <A HREF="http://www.xmlrpc.org">
XmlRpc protocol</A> written in C++, based upon Shilad Sen's excellent <A HREF="http://py-xmlrpc.sourceforge.net">
py-xmlrpc library</A>. XmlRpc++ is designed to make it easy to incorporate
XmlRpc client and server support into C++ applications. Or use both client and
server objects in your app for easy peer-to-peer support.
</P>
<H3>Features</H3>
<UL>
<li>
<STRONG>Easy</STRONG> &nbsp; This library is easy to incorporate into C++
applications. No other libraries are required, other than your system's socket
libraries. Simple XML parsing and HTTP support are built in.<br>
<li>
<STRONG>Fast</STRONG> &nbsp; All IO is non-blocking, so a slow client or
network will not slow down the server.<br>
<li>
<STRONG>Portable</STRONG> Written in standard C++ to the POSIX and Windows
sockets APIs. You do need a fairly recent compiler (g++ 3.1 or MSVC++ .Net or
MSVC++ 6 with the <A href="http://www.dinkumware.com/vc_fixes.html">STL patches</A>.)
</li>
<li>
<STRONG>Free</STRONG> &nbsp; This library is released under the <a href="http://www.gnu.org/">
GNU</a> <a href="http://www.gnu.org/copyleft/lesser.html">LGPL</a>.<br>
<br>
</li>
</UL>
<P>&nbsp;</P>
<h3>Changes</h3>
<UL>
<li>
Better handling of fault responses: server methods can throw an
XmlRpcException to return a fault and XmlRpcClient has a new method to
test whether the last response was a fault.</li>
<li>
Support for system.listMethods and system.methodHelp from the introspection
API.</li>
<li>
Support for system.multicall to process multiple requests in a single transaction.</li>
<li>
Fixed a problem in the XmlRpcServer destructor (it should not have been deleting the methods).</li>
<li>
The server ensures a valid result value is returned even if the method does not
set the result. The default result is an empty string.</li>
<li>
Doxygen comments in header files and a doc target in the makefile.</li>
</UL>
<P>
<P>&nbsp;</P>
<h3>Installation</h3>
<P>
There are VC++ 6 and VC++ .Net project files building on Windows. If you are
using VC++ 6, you should apply SP3 and the fixes at <A href="http://www.dinkumware.com/vc_fixes.html">
http://www.dinkumware.com/vc_fixes.html</A>. Be sure to set the appropriate
code generation switches. In particular, ensure that the runtime library
(single/multi-threaded, static library/DLL) used is the same for the XmlRpc++
code and whatever application it will be linked to.</P>
<P>
For Linux, Solaris, and other Unix-like platforms there is a GNU Makefile which
can be edited to suit your system. Specify your C++ compiler, compiler flags,
and your system's socket libraries.
</P>
<p>In the test directory there are various test programs that are built by default.
To verify that the library built correctly, you can start the HelloServer
example:<br>
<pre>HelloServer 8000
</pre>
and the HelloClient example in another terminal window:<br>
<pre>HelloClient localhost 8000
</pre>
<P>
You should see two Hello messages and a sum displayed (amongst a bunch of debug
output). You can also try the XML server validator program (eg, "Validator 80")
and then attempt to connect to it from <A href="http://validator.xmlrpc.com">http://validator.xmlrpc.com</A>
(if you have access to the internet and are not behind a firewall etc).
</P>
<H3>Author</H3>
<P><A href="mailto:[email protected]">Chris Morley</A>
</P>
<P>Although no code was re-used, the design and structure of the library is based
upon the py-xmlrpc library implementation.<BR>
The base64 decoder/encoder is by <A href="mailto:[email protected]">Konstantin
Pilipchuk</A>.</P>
<P></P>
<H3>License</H3>
<p>A full copy of the LGPL license is included in the file COPYING. The source code
is Copyright (c) 2002-2003 by Chris Morley. This library is free software; you
can redistribute it and/or modify it under the terms of the GNU Lesser General
Public License as published by the Free Software Foundation; either version 2.1
of the License, or (at your option) any later version. This library is
distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along
with this library; if not, write to the Free Software Foundation, Inc., 59
Temple Place, Suite 330, Boston, MA 02111-1307 USA
</p>
</body>
</html>
73 changes: 73 additions & 0 deletions utilites/xmlrpcpp/XmlRpc.sln
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
Microsoft Visual Studio Solution File, Format Version 7.00
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "XmlRpc", "XmlRpc.vcproj", "{C9C8B7B0-2509-4B8A-9224-9FF04297C33B}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestXml", "Test\TestXml.vcproj", "{6F0C2ADA-0341-4183-8FAA-576668F1788A}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestValues", "Test\TestValues.vcproj", "{6181BBE3-DA50-4EEE-8D52-1F4245A1D603}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "HelloClient", "Test\HelloClient.vcproj", "{F6860B2F-0F3B-445E-92F2-6DF3D36C90F0}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Validator", "Test\Validator.vcproj", "{E68AB694-4805-43EA-A96E-21B8FE285DE4}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "HelloServer", "Test\HelloServer.vcproj", "{08C4FFA8-A9E5-4EEA-9703-53C293C2F724}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FileClient", "test\FileClient.vcproj", "{C3B49855-CD45-448E-991E-3E4C9B02F465}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestBase64Client", "test\TestBase64Client.vcproj", "{1E8B725B-E898-494C-84C6-DB77EF38E6CB}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestBase64Server", "test\TestBase64Server.vcproj", "{D3107CC6-6300-47DE-B183-255B75CFE85A}"
EndProject
Global
GlobalSection(SolutionConfiguration) = preSolution
ConfigName.0 = Debug
ConfigName.1 = Release
EndGlobalSection
GlobalSection(ProjectDependencies) = postSolution
{6F0C2ADA-0341-4183-8FAA-576668F1788A}.0 = {C9C8B7B0-2509-4B8A-9224-9FF04297C33B}
{6181BBE3-DA50-4EEE-8D52-1F4245A1D603}.0 = {C9C8B7B0-2509-4B8A-9224-9FF04297C33B}
{F6860B2F-0F3B-445E-92F2-6DF3D36C90F0}.0 = {C9C8B7B0-2509-4B8A-9224-9FF04297C33B}
{08C4FFA8-A9E5-4EEA-9703-53C293C2F724}.0 = {C9C8B7B0-2509-4B8A-9224-9FF04297C33B}
EndGlobalSection
GlobalSection(ProjectConfiguration) = postSolution
{C9C8B7B0-2509-4B8A-9224-9FF04297C33B}.Debug.ActiveCfg = Debug|Win32
{C9C8B7B0-2509-4B8A-9224-9FF04297C33B}.Debug.Build.0 = Debug|Win32
{C9C8B7B0-2509-4B8A-9224-9FF04297C33B}.Release.ActiveCfg = Release|Win32
{C9C8B7B0-2509-4B8A-9224-9FF04297C33B}.Release.Build.0 = Release|Win32
{6F0C2ADA-0341-4183-8FAA-576668F1788A}.Debug.ActiveCfg = Debug|Win32
{6F0C2ADA-0341-4183-8FAA-576668F1788A}.Debug.Build.0 = Debug|Win32
{6F0C2ADA-0341-4183-8FAA-576668F1788A}.Release.ActiveCfg = Release|Win32
{6F0C2ADA-0341-4183-8FAA-576668F1788A}.Release.Build.0 = Release|Win32
{6181BBE3-DA50-4EEE-8D52-1F4245A1D603}.Debug.ActiveCfg = Debug|Win32
{6181BBE3-DA50-4EEE-8D52-1F4245A1D603}.Debug.Build.0 = Debug|Win32
{6181BBE3-DA50-4EEE-8D52-1F4245A1D603}.Release.ActiveCfg = Release|Win32
{6181BBE3-DA50-4EEE-8D52-1F4245A1D603}.Release.Build.0 = Release|Win32
{F6860B2F-0F3B-445E-92F2-6DF3D36C90F0}.Debug.ActiveCfg = Debug|Win32
{F6860B2F-0F3B-445E-92F2-6DF3D36C90F0}.Debug.Build.0 = Debug|Win32
{F6860B2F-0F3B-445E-92F2-6DF3D36C90F0}.Release.ActiveCfg = Release|Win32
{F6860B2F-0F3B-445E-92F2-6DF3D36C90F0}.Release.Build.0 = Release|Win32
{E68AB694-4805-43EA-A96E-21B8FE285DE4}.Debug.ActiveCfg = Debug|Win32
{E68AB694-4805-43EA-A96E-21B8FE285DE4}.Debug.Build.0 = Debug|Win32
{E68AB694-4805-43EA-A96E-21B8FE285DE4}.Release.ActiveCfg = Release|Win32
{E68AB694-4805-43EA-A96E-21B8FE285DE4}.Release.Build.0 = Release|Win32
{08C4FFA8-A9E5-4EEA-9703-53C293C2F724}.Debug.ActiveCfg = Debug|Win32
{08C4FFA8-A9E5-4EEA-9703-53C293C2F724}.Debug.Build.0 = Debug|Win32
{08C4FFA8-A9E5-4EEA-9703-53C293C2F724}.Release.ActiveCfg = Release|Win32
{08C4FFA8-A9E5-4EEA-9703-53C293C2F724}.Release.Build.0 = Release|Win32
{C3B49855-CD45-448E-991E-3E4C9B02F465}.Debug.ActiveCfg = Debug|Win32
{C3B49855-CD45-448E-991E-3E4C9B02F465}.Debug.Build.0 = Debug|Win32
{C3B49855-CD45-448E-991E-3E4C9B02F465}.Release.ActiveCfg = Release|Win32
{C3B49855-CD45-448E-991E-3E4C9B02F465}.Release.Build.0 = Release|Win32
{1E8B725B-E898-494C-84C6-DB77EF38E6CB}.Debug.ActiveCfg = Debug|Win32
{1E8B725B-E898-494C-84C6-DB77EF38E6CB}.Debug.Build.0 = Debug|Win32
{1E8B725B-E898-494C-84C6-DB77EF38E6CB}.Release.ActiveCfg = Release|Win32
{1E8B725B-E898-494C-84C6-DB77EF38E6CB}.Release.Build.0 = Release|Win32
{D3107CC6-6300-47DE-B183-255B75CFE85A}.Debug.ActiveCfg = Debug|Win32
{D3107CC6-6300-47DE-B183-255B75CFE85A}.Debug.Build.0 = Debug|Win32
{D3107CC6-6300-47DE-B183-255B75CFE85A}.Release.ActiveCfg = Release|Win32
{D3107CC6-6300-47DE-B183-255B75CFE85A}.Release.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
EndGlobalSection
GlobalSection(ExtensibilityAddIns) = postSolution
EndGlobalSection
EndGlobal
Loading

0 comments on commit 79bfbe8

Please sign in to comment.