![]() |
zeep::http::soap_controller — class that helps with handling SOAP requests
// In header: <zeep/http/soap-controller.hpp> class soap_controller : public { public: // member classes/structs/unions template<typename Callback, > struct mount_point { }; template<typename ControllerType, typename Result, Args> struct mount_point<> : public { // types typedef ; typedef ; typedef ; // construct/copy/destruct (, soap_controller *, ); template< Names> (, soap_controller *, , ); // public member functions (xml::element > &, ); template< I> (xml::element > &, , ); template< I> xml::element (xml::element > &, ); (xml::element &, reply &, ); template<typename ResultType, typename ArgsTuple, = > (, reply &, ); template<typename ResultType, typename ArgsTuple, = > (, reply &, ); template< I> (xml::element &, ); template<typename T> (xml::deserializer &, ); (, , xml::element &, xml::element *); // public data members static N; m_callback; m_names; xml::element m_responseType; xml::element, m_parameterTypes; }; struct mount_point_base { // construct/copy/destruct (); ~(); // public member functions (xml::element &, reply &, ) = ; (xml::element > &, ) = ; // public data members m_action; }; // construct/copy/destruct (, ); ~(); // public member functions (); (); template<typename Callback, ArgNames> (, , ); xml::element (); (request &, reply &); };
This controller will handle SOAP requests automatically handing the packing and unpacking of XML envelopes.
To use this, create a subclass and add some methods that should be exposed. Then map these methods on a path that optionally contains parameter values.
See the chapter on SOAP controllers in the documention for more information.
soap_controller
public member functions( location);Set the external address at which this service is visible.
( service);Set the service name.
template<typename Callback, ArgNames> ( actionName, callback, names);map a SOAP action to callback using names for mapping the arguments
The method in callback should be a method of the derived class having as many arguments as the number of specified names.
xml::element ();Create a WSDL based on the registered actions.
(request & req, reply & reply);Handle the SOAP request.