00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef INC_MI32_SOAP_H
00019 #define INC_MI32_SOAP_H
00020
00021
00022 #ifndef INC_MI32_XML_H
00023 #include <mi32/xml.h>
00024 #endif
00025
00026 #ifndef INC_MI32_HTTPCLIENT_H
00027 #include <mi32/httpclient.h>
00028 #endif
00029
00030
00031 namespace SOAP {
00032
00035 class VALUES {
00036 public:
00037 enum TYPE {
00038 TYPE_String,
00039 TYPE_Double,
00040 TYPE_Integer,
00041 TYPE_Bool,
00042 TYPE_XML
00043 };
00044
00045 VALUES();
00046
00047
00048
00049
00050
00051 VALUES(const HTTPMESSAGE& message);
00052
00053 ~VALUES();
00054
00055 void Clear();
00056
00059 bool GetValue(const char* name, MISTRING& value) const;
00060
00063 bool GetValue(const char* name, STRUTF8& value) const;
00064
00067 bool GetValue(const char* name, double& value) const;
00068
00071 bool GetValue(const char* name, INT32& value) const;
00072
00075 bool GetValue(const char* name, UINT32& value) const;
00076
00079 bool GetValue(const char* name, bool& value) const;
00080
00085 XMLNODE* GetValue (const char* name) const;
00086
00088 bool HasValue (const char* name) const;
00089
00091 void SetValue(const char* name, const MISTRING& value);
00092
00094 void SetValue(const char* name, const STRUTF8& value);
00095
00097 void SetValue(const char* name, double value);
00098
00100 void SetValue(const char* name, INT32 value);
00101
00103 void SetValue(const char* name, UINT32 value);
00104
00106 void SetValue(const char* name, bool value);
00107
00113 void SetValue (
00114 const char* name,
00115 XMLNODE* node
00116 );
00117
00119 XMLNODE* GetXMLNode (
00120 ) const;
00121
00123 void SetXMLNode (
00124 XMLNODE* node
00125 );
00126
00127 private:
00128
00129 VALUES (
00130 XMLNODE* node
00131 );
00132
00133 XMLNODE *m_node;
00134 XMLDOC *m_doc;
00135
00136 friend class METHOD;
00137 friend class HANDLER;
00138 };
00139
00140
00142 class OBJECT {
00143 public:
00145 OBJECT();
00146
00149 OBJECT (
00150 HTTPCLIENT* client,
00151 const char* ObjectClass
00152 );
00153
00154 virtual ~OBJECT();
00155
00162 ERRVALUE Allocate (
00163 );
00164
00166 void Attach (
00167 HTTPCLIENT* client,
00168 const char* ObjectClass
00169 );
00170
00172 ERRVALUE CallMethod (
00173 const char* name,
00174 const VALUES* parms = 0,
00175 VALUES* ret = 0
00176 );
00177
00178 void Free (
00179 );
00180
00181
00182
00183
00184 const char* GetObjectID (
00185 ) const;
00186
00187 protected:
00188
00189 HTTPCLIENT* GetClient(
00190 ) const;
00191
00192 private:
00193 STRUTF8 m_id;
00194 STRUTF8 m_ObjClass;
00195 HTTPCLIENT* m_client;
00196
00197 };
00198
00199 }
00200
00201 #endif // INC_MI32_SOAP_H
00202