//---------------------------------------------------------------------------- // // Copyright (C) 2003 Intel Corporation // // File: OpenWsmanClient.h // // Contents: A wrapper class for openweman // //---------------------------------------------------------------------------- #ifndef __SOAP_WSMAN_CLIENT_H #define __SOAP_WSMAN_CLIENT_H #include "stdsoap2.h" #include "WsmanClient.h" namespace WsmanClientNamespace { class SoapWsmanClient : public WsmanClient { private: struct soap *soap; char* username; char* password; string endpoint; // private functions // creates a soap header SOAP_ENV__Header* CreateSoapHeader(const string& resourceUri, const string& action, const NameValuePairs* selectors = NULL) const; // deallocates a soap header void DeleteSoapHeader(SOAP_ENV__Header* header) const; // pulls the items of an enumeration context void PullItems(const string &resourceUri, const string& enumerationContext, vector& items, const NameValuePairs *s = NULL) const; // checks for errors bool CheckWsmanResponse(int soapRet, soap_dom_element& response, const string& action) const; // check the enumeration response bool ResourceNotFound(soap_dom_element& enumerationRes) const; // Copy constructor is declared private SoapWsmanClient(const SoapWsmanClient& cl); // operator = is declared private SoapWsmanClient& operator =(const SoapWsmanClient& cl); public: // Construct from params. SoapWsmanClient(const char* endpoint, const char* user_name = NULL, const char* password = NULL, struct soap* inSoap = NULL); // Destructor. virtual ~SoapWsmanClient(); // Identify. virtual string Identify() const {throw exception("Function Not Supported");} /// Creates a new instance of a resource. string Create(const string &resourceUri, const string &data) const; /// Delete a resource. void Delete(const string &resourceUri, const NameValuePairs *s = NULL) const; /// Enumerate resource. void Enumerate(const string &resourceUri, vector &enumRes, const NameValuePairs *s = NULL) const; /// Retrieve a resource. string Get(const string &resourceUri, const NameValuePairs *s = NULL) const; /// Update a resource. string Put(const string &resourceUri, const string &content, const NameValuePairs *s = NULL) const; /// Invokes a method and returns the results of the method call. string Invoke(const string &resourceUri, const string &methodName, const string &content, const NameValuePairs *s = NULL) const; // Submit a subscription string Subscribe(const string &resourceUri, const SubscribeInfo &info, string &identifier) const; // Renew a subscription string Renew(const string &identifier, float expire) const; // Terminate a subscription void Unsubscribe(const string &identifier) const; // Renew a subscription virtual string Renew(const string &resourceUri, const string &identifier, float expire, const NameValuePairs *s = NULL) const {throw exception("Function Not Supported");} // Terminate a subscription virtual void Unsubscribe(const string &resourceUri, const string &identifier, const NameValuePairs *s = NULL) const {throw exception("Function Not Supported");} }; } // namespace WsmanClient #endif