00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00012
00013 #ifndef SOAPCLIENT_H_
00014 #define SOAPCLIENT_H_
00015
00016 #include <QDomDocument>
00017 #include <QString>
00018 #include <QUrl>
00019
00020 #include "httpcomms.h"
00021 #include "upnputil.h"
00022 #include "upnpexp.h"
00023
00025 class UPNP_PUBLIC SOAPClient
00026 {
00027 public:
00028 SOAPClient(const QUrl &url,
00029 const QString &sNamespace,
00030 const QString &sControlPath);
00033 SOAPClient() {}
00034 virtual ~SOAPClient() {}
00035
00036 bool Init(const QUrl &url,
00037 const QString &sNamespace,
00038 const QString &sControlPath);
00039
00040 protected:
00041 int GetNodeValue(const QDomNode &node,
00042 const QString &sName,
00043 int nDefault) const;
00044 bool GetNodeValue(const QDomNode &node,
00045 const QString &sName,
00046 bool bDefault) const;
00047 QString GetNodeValue(const QDomNode &node,
00048 const QString &sName,
00049 const QString &sDefault) const;
00050 QString GetNodeValue(const QDomNode &node,
00051 const QString &sName,
00052 const char *sDefault) const
00053 {
00054 return GetNodeValue(node, sName, QString(sDefault));
00055 }
00056
00057 QDomNode FindNode(const QString &sName,
00058 const QDomNode &baseNode) const;
00059
00060 QDomDocument SendSOAPRequest(const QString &sMethod,
00061 QStringMap &list,
00062 int &nErrCode,
00063 QString &sErrDesc,
00064 bool bInQtThread);
00065 private:
00066 QDomNode FindNodeInternal(QStringList &sParts,
00067 const QDomNode &curNode) const;
00068 protected:
00069 QUrl m_url;
00070 QString m_sNamespace;
00071 QString m_sControlPath;
00072 };
00073
00074 #endif
00075