Mercurial > repos > ktnyt > gembassy
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; + } +} + +/******************************************************************************/