1/* 2 Contributed by Allan Kelly, June 17, 2002 3 Provides C++ alternatives for 4 soap_print_fault and soap_print_fault_location functions 5 6 Note: soap_stream_fault in stdsoap2.cpp provides similar functionality 7*/ 8 9/******************************************************************************/ 10 11SOAP_FMAC1 12void 13SOAP_FMAC2 14soap_print_fault(struct soap *soap, std::ostream& msg) 15{ if (soap->error) 16 { if (!*soap_faultcode(soap)) 17 soap_set_fault(soap); 18 if (!*soap_faultstring(soap)) 19 *soap_faultstring(soap) = ""; 20 msg << "SOAP FAULT: " 21 << *soap_faultcode(soap) << std::endl 22 << "\"" << *soap_faultstring(soap) << "\"" << std::endl; 23 if (*soap_faultdetail(soap)) 24 msg << "Detail: " << *soap_faultdetail(soap) << std::endl; 25 } 26} 27 28/******************************************************************************/ 29 30SOAP_FMAC1 31void 32SOAP_FMAC2 33soap_print_fault_location(struct soap *soap, std::ostream& msg) 34{ int c; 35 if (soap->error && soap->buflen > 0) 36 { if (soap->bufidx == 0) 37 soap->bufidx = 1; 38 c = soap->buf[soap->bufidx-1]; 39 soap->buf[soap->bufidx-1] = '\0'; 40 if (soap->bufidx < soap->buflen) 41 msg << soap->buf << static_cast<char> (c) << std::endl 42 << "** HERE **" << std::endl << soap->buf+soap->bufidx 43 << std::endl; 44 else 45 msg << soap->buf << static_cast<char> (c) << std::endl 46 << "** HERE **" << std::endl; 47 } 48} 49 50/******************************************************************************/ 51