Main Page   Modules   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Related Pages  

dsSOAP.h

Go to the documentation of this file.
00001 #ifndef dsSOAP_h
00002 #define dsSOAP_h
00003 
00004 #ifdef HAVE_CONFIG_H
00005 # include <config.h>
00006 #endif
00007 
00008 #include <dsSmartException.h>
00009 #include <dsutil.h>
00010 #include <dsStrstream.h>
00011 
00012 #include <dsDocument.h>
00013 
00017 inline std::ostream& SOAPdata(std::ostream& os, char *name, char *value)
00018 {
00019     os << "<" << name << " xsi:type=\"xsd:string\">"  <<  value << "</" << name << ">" << std::endl;
00020     return os;
00021 }
00022 
00023 inline std::ostream& SOAPdata(std::ostream& os, char *name, long value)
00024 {
00025     os << "<" << name << " xsi:type=\"xsd:int\">"  <<  value << "</" << name << ">" << std::endl;
00026     return os;
00027 }
00028 
00029 inline std::ostream& SOAPdata(std::ostream& os, char *name, double value, int precision = 2)
00030 {
00031     os << "<" << name << " xsi:type=\"xsd:decimal\">"  << std::setiosflags(std::ios::fixed) <<  std::setprecision( precision ) << value << "</" << name << ">" << std::endl;
00032     return os;
00033 }
00034 
00035 template <class T>
00036 std::ostream& SOAPdata(std::ostream& os, char *name, T value, char *type)
00037 {
00038     os << "<" << name << " xsi:type=\"" << type << "\">"  <<  value << "</" << name << ">" << std::endl;
00039     return os;
00040 }
00041 
00042 
00047 inline dsNode *SOAPfault(dsDocument *d)
00048 {
00049     dsNodeList *lst = d->getElementsByTagName("SOAP-ENV:Fault");
00050     return ( lst->empty() ) ? 0 : lst->front();  
00051 }
00052 
00057 inline dsNode *SOAPbody(dsDocument *d)
00058 {
00059     dsNodeList *lst = d->getElementsByTagName("SOAP-ENV:Body");
00060     return ( lst->empty() ) ? 0 : lst->front();  
00061 }
00065 inline char *SOAPfaultcode(dsNode *st)
00066 {
00067   dsDocument *d = st->ownerDocument();
00068   dsNode *n, *txt;
00069   if ( (n = d->findChild("faultcode", st, dsNode::ELEMENT_NODE) ) )
00070   {
00071    if ( (txt = d->textChild(n)) )
00072              return txt->nodeValue();
00073   }
00074 
00075   return 0;
00076 }
00077 
00081 inline char *SOAPfaultstring(dsNode *st)
00082 {
00083   dsDocument *d = st->ownerDocument();
00084   dsNode *n, *txt;
00085   if ( (n = d->findChild("faultstring", st, dsNode::ELEMENT_NODE) ) )
00086   {
00087    if ( (txt = d->textChild(n)) )
00088              return txt->nodeValue();
00089   }
00090 
00091   return 0;
00092 }
00093 
00097 inline char *SOAPnodetext(dsNode *st)
00098 {
00099     dsNode *txt;
00100     dsDocument *d = st->ownerDocument();
00101  
00102     if ( (txt=d->textChild(st)) )
00103        return txt->nodeValue();
00104     return 0;
00105 }
00106 
00112 inline char *SOAPnodetext(char *name, dsNode *start)
00113 {
00114     dsDocument *d = start->ownerDocument();
00115     dsNode *n = d->findChild(name, start,  dsNode::ELEMENT_NODE);
00116     return (n) ? SOAPnodetext(n) : 0;
00117 }
00118 
00119 
00120 #endif

Generated on Mon May 16 18:26:58 2005 for libdms4 by doxygen1.3-rc2