diff GEMBASSY-1.0.3/gsoap/extras/fault.cpp @ 0:8300eb051bea draft

Initial upload
author ktnyt
date Fri, 26 Jun 2015 05:19:29 -0400
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/GEMBASSY-1.0.3/gsoap/extras/fault.cpp	Fri Jun 26 05:19:29 2015 -0400
@@ -0,0 +1,50 @@
+/*
+	Contributed by Allan Kelly, June 17, 2002
+	Provides C++ alternatives for
+	soap_print_fault and soap_print_fault_location functions
+
+	Note: soap_stream_fault in stdsoap2.cpp provides similar functionality
+*/
+
+/******************************************************************************/
+
+SOAP_FMAC1
+void
+SOAP_FMAC2
+soap_print_fault(struct soap *soap, std::ostream& msg)
+{ if (soap->error)
+  { if (!*soap_faultcode(soap))
+      soap_set_fault(soap);
+    if (!*soap_faultstring(soap))
+      *soap_faultstring(soap) = "";
+    msg << "SOAP FAULT: "
+        << *soap_faultcode(soap) << std::endl
+        << "\"" << *soap_faultstring(soap) << "\"" << std::endl;
+    if (*soap_faultdetail(soap))
+      msg << "Detail: " << *soap_faultdetail(soap) << std::endl;
+  }
+}
+
+/******************************************************************************/
+
+SOAP_FMAC1
+void
+SOAP_FMAC2
+soap_print_fault_location(struct soap *soap, std::ostream& msg)
+{ int c;
+  if (soap->error && soap->buflen > 0)
+  { if (soap->bufidx == 0)
+      soap->bufidx = 1;
+    c = soap->buf[soap->bufidx-1];
+    soap->buf[soap->bufidx-1] = '\0';
+    if (soap->bufidx < soap->buflen)
+      msg << soap->buf << static_cast<char> (c) << std::endl
+          << "** HERE **" << std::endl << soap->buf+soap->bufidx
+          << std::endl;
+    else
+      msg << soap->buf << static_cast<char> (c) << std::endl
+          << "** HERE **" << std::endl;
+  }
+}
+
+/******************************************************************************/