ulxr_responseparse_base.cpp

Go to the documentation of this file.
00001 /***************************************************************************
00002             ulxr_responseparse_base.cpp  -  parse rpc method response
00003                              -------------------
00004     begin                : Fri Jan 09 2004
00005     copyright            : (C) 2002-2007 by Ewald Arnold
00006     email                : ulxmlrpcpp@ewald-arnold.de
00007 
00008     $Id: ulxr_responseparse_base.cpp 940 2006-12-30 18:22:05Z ewald-arnold $
00009 
00010  ***************************************************************************/
00011 
00012 /**************************************************************************
00013  *
00014  * This program is free software; you can redistribute it and/or modify
00015  * it under the terms of the GNU Lesser General Public License as
00016  * published by the Free Software Foundation; either version 2 of the License,
00017  * or (at your option) any later version.
00018  *
00019  * This program is distributed in the hope that it will be useful,
00020  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00021  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00022  * GNU General Public License for more details.
00023  *
00024  * You should have received a copy of the GNU Lesser General Public License
00025  * along with this program; if not, write to the Free Software
00026  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
00027  *
00028  ***************************************************************************/
00029 
00030 #define ULXR_NEED_EXPORTS
00031 #include <ulxmlrpcpp/ulxmlrpcpp.h>  // always first header
00032 
00033 #include <ulxmlrpcpp/ulxr_responseparse_base.h>
00034 
00035 
00036 namespace ulxr {
00037 
00038 
00039 ULXR_API_IMPL0 MethodResponseParserBase::~MethodResponseParserBase()
00040 {
00041 }
00042 
00043 
00044 ULXR_API_IMPL(MethodResponse) MethodResponseParserBase::getMethodResponse()
00045 {
00046   if (method_value.isStruct() )
00047   {
00048      Struct st = method_value;
00049      if (   st.size() == 2
00050          && st.hasMember(ULXR_PCHAR("faultCode"))
00051          && st.hasMember(ULXR_PCHAR("faultString")) )
00052      {
00053        Integer iv = st.getMember(ULXR_PCHAR("faultCode"));
00054        RpcString sv = st.getMember(ULXR_PCHAR("faultString"));
00055        return MethodResponse(iv.getInteger(), sv.getString());
00056      }
00057     else
00058       return MethodResponse(method_value);
00059   }
00060   else
00061     return MethodResponse(method_value);
00062 }
00063 
00064 
00065 }  // namespace ulxr

Generated on Sun Aug 19 20:08:57 2007 for ulxmlrpcpp by  doxygen 1.5.1