| #ifndef CLIENT_HPP_INCLUDED |
| #define CLIENT_HPP_INCLUDED |
|
|
| #include <string> |
| #include <vector> |
| #include <memory> |
|
|
| #include <xmlrpc-c/c_util.h> |
| #include <xmlrpc-c/girerr.hpp> |
| #include <xmlrpc-c/girmem.hpp> |
| #include <xmlrpc-c/base.hpp> |
| #include <xmlrpc-c/timeout.hpp> |
| #include <xmlrpc-c/client_transport.hpp> |
|
|
| |
| |
| |
| |
| |
| |
| |
| #ifdef XMLRPC_BUILDING_CLIENTPP |
| #define XMLRPC_CLIENTPP_EXPORTED XMLRPC_DLLEXPORT |
| #else |
| #define XMLRPC_CLIENTPP_EXPORTED |
| #endif |
|
|
| namespace xmlrpc_c { |
|
|
| class XMLRPC_CLIENTPP_EXPORTED clientTransactionPtr; |
|
|
| class XMLRPC_CLIENTPP_EXPORTED clientTransaction : public girmem::autoObject { |
|
|
| friend class clientTransactionPtr; |
|
|
| public: |
| virtual void |
| finish(xmlrpc_c::rpcOutcome const& outcome) = 0; |
| |
| virtual void |
| finishErr(girerr::error const& error) = 0; |
|
|
| virtual void |
| progress(struct xmlrpc_progress_data const& progressData) const = 0; |
|
|
| protected: |
| clientTransaction(); |
| }; |
|
|
| class XMLRPC_CLIENTPP_EXPORTED clientTransactionPtr : public girmem::autoObjectPtr { |
| |
| public: |
| clientTransactionPtr(); |
|
|
| clientTransactionPtr(clientTransaction * const transP); |
|
|
| virtual ~clientTransactionPtr(); |
|
|
| virtual xmlrpc_c::clientTransaction * |
| operator->() const; |
| }; |
|
|
| class XMLRPC_CLIENTPP_EXPORTED clientPtr; |
|
|
| class XMLRPC_CLIENTPP_EXPORTED client : public girmem::autoObject { |
| |
| |
| |
| |
| |
| |
| |
| friend class clientTransactionPtr; |
|
|
| public: |
| virtual ~client(); |
|
|
| virtual void |
| call(xmlrpc_c::carriageParm * const carriageParmP, |
| std::string const& methodName, |
| xmlrpc_c::paramList const& paramList, |
| xmlrpc_c::rpcOutcome * const outcomeP) = 0; |
|
|
| virtual void |
| start(xmlrpc_c::carriageParm * const carriageParmP, |
| std::string const& methodName, |
| xmlrpc_c::paramList const& paramList, |
| xmlrpc_c::clientTransactionPtr const& tranP); |
|
|
| void |
| finishAsync(xmlrpc_c::timeout const timeout); |
| |
| virtual void |
| setInterrupt(int *); |
| }; |
|
|
| class XMLRPC_CLIENTPP_EXPORTED clientPtr : public girmem::autoObjectPtr { |
| public: |
| clientPtr(); |
|
|
| explicit clientPtr(xmlrpc_c::client * const clientP); |
|
|
| xmlrpc_c::client * |
| operator->() const; |
|
|
| xmlrpc_c::client * |
| get() const; |
| }; |
|
|
| class XMLRPC_CLIENTPP_EXPORTED serverAccessor : public girmem::autoObject { |
| |
| public: |
| serverAccessor(xmlrpc_c::clientPtr const clientP, |
| xmlrpc_c::carriageParmPtr const carriageParmP); |
|
|
| void |
| call(std::string const& methodName, |
| xmlrpc_c::paramList const& paramList, |
| xmlrpc_c::rpcOutcome * const outcomeP) const; |
|
|
| private: |
| xmlrpc_c::clientPtr const clientP; |
| xmlrpc_c::carriageParmPtr const carriageParmP; |
| }; |
|
|
| class XMLRPC_CLIENTPP_EXPORTED serverAccessorPtr : public girmem::autoObjectPtr { |
| public: |
| serverAccessorPtr(); |
|
|
| explicit |
| serverAccessorPtr(xmlrpc_c::serverAccessor * const serverAccessorP); |
|
|
| xmlrpc_c::serverAccessor * |
| operator->() const; |
|
|
| xmlrpc_c::serverAccessor * |
| get() const; |
| }; |
|
|
| class XMLRPC_CLIENTPP_EXPORTED connection { |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| public: |
| connection(xmlrpc_c::client * const clientP, |
| xmlrpc_c::carriageParm * const carriageParmP); |
|
|
| ~connection(); |
|
|
| xmlrpc_c::client * clientP; |
| xmlrpc_c::carriageParm * carriageParmP; |
| }; |
|
|
| class XMLRPC_CLIENTPP_EXPORTED client_xml : public xmlrpc_c::client { |
| |
| |
| |
| |
| public: |
| client_xml(xmlrpc_c::clientXmlTransport * const transportP); |
|
|
| client_xml(xmlrpc_c::clientXmlTransport * const transportP, |
| xmlrpc_dialect const dialect); |
|
|
| client_xml(xmlrpc_c::clientXmlTransportPtr const transportP); |
|
|
| client_xml(xmlrpc_c::clientXmlTransportPtr const transportP, |
| xmlrpc_dialect const dialect); |
|
|
| ~client_xml(); |
|
|
| void |
| call(carriageParm * const carriageParmP, |
| std::string const& methodName, |
| xmlrpc_c::paramList const& paramList, |
| xmlrpc_c::rpcOutcome * const outcomeP); |
|
|
| void |
| start(xmlrpc_c::carriageParm * const carriageParmP, |
| std::string const& methodName, |
| xmlrpc_c::paramList const& paramList, |
| xmlrpc_c::clientTransactionPtr const& tranP); |
|
|
| void |
| finishAsync(xmlrpc_c::timeout const timeout); |
|
|
| virtual void |
| setInterrupt(int * interruptP); |
|
|
| private: |
| struct client_xml_impl * implP; |
| }; |
|
|
| class XMLRPC_CLIENTPP_EXPORTED xmlTransaction_client : public xmlrpc_c::xmlTransaction { |
|
|
| public: |
| xmlTransaction_client(xmlrpc_c::clientTransactionPtr const& tranP); |
|
|
| void |
| finish(std::string const& responseXml) const; |
|
|
| void |
| finishErr(girerr::error const& error) const; |
|
|
| void |
| progress(xmlrpc_progress_data const& progressData) const; |
|
|
| private: |
| xmlrpc_c::clientTransactionPtr const tranP; |
| }; |
|
|
| class XMLRPC_CLIENTPP_EXPORTED xmlTransaction_clientPtr : public xmlTransactionPtr { |
| public: |
| xmlTransaction_clientPtr(); |
| |
| xmlTransaction_clientPtr(xmlrpc_c::clientTransactionPtr const& tranP); |
|
|
| xmlrpc_c::xmlTransaction_client * |
| operator->() const; |
| }; |
|
|
| class rpcPtr; |
|
|
| class XMLRPC_CLIENTPP_EXPORTED rpc : public clientTransaction { |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| friend class xmlrpc_c::rpcPtr; |
|
|
| public: |
| void |
| call(xmlrpc_c::client * const clientP, |
| xmlrpc_c::carriageParm * const carriageParmP); |
|
|
| void |
| call(xmlrpc_c::connection const& connection); |
|
|
| void |
| start(xmlrpc_c::client * const clientP, |
| xmlrpc_c::carriageParm * const carriageParmP); |
| |
| void |
| start(xmlrpc_c::connection const& connection); |
| |
| void |
| finish(xmlrpc_c::rpcOutcome const& outcome); |
|
|
| void |
| finishErr(girerr::error const& error); |
|
|
| virtual void |
| notifyComplete(); |
|
|
| virtual void |
| progress(struct xmlrpc_progress_data const& progressData) const; |
|
|
| bool |
| isFinished() const; |
|
|
| bool |
| isSuccessful() const; |
|
|
| xmlrpc_c::value |
| getResult() const; |
|
|
| xmlrpc_c::fault |
| getFault() const; |
|
|
| rpc(std::string const methodName, |
| xmlrpc_c::paramList const& paramList); |
|
|
| virtual ~rpc(); |
|
|
| private: |
| struct rpc_impl * implP; |
| }; |
|
|
| class XMLRPC_CLIENTPP_EXPORTED rpcPtr : public clientTransactionPtr { |
| public: |
| rpcPtr(); |
|
|
| explicit rpcPtr(xmlrpc_c::rpc * const rpcP); |
|
|
| rpcPtr(std::string const methodName, |
| xmlrpc_c::paramList const& paramList); |
|
|
| xmlrpc_c::rpc * |
| operator->() const; |
| }; |
|
|
| } |
| #endif |
|
|