1 #include "otsdaq-core/SOAPUtilities/SOAPCommand.h"
2 #include "otsdaq-core/Macros/CoutMacros.h"
3 #include "otsdaq-core/MessageFacility/MessageFacility.h"
5 #include <xoap/SOAPElement.h>
6 #include <xoap/SOAPEnvelope.h>
7 #include <xoap/domutils.h>
14 SOAPCommand::SOAPCommand(
void) {}
17 SOAPCommand::SOAPCommand(
const xoap::MessageReference& message) { translate(message); }
20 SOAPCommand::SOAPCommand(std::string command) : command_(command) {}
22 SOAPCommand::SOAPCommand(std::string command,
SOAPParameters parameters)
23 : command_(command), parameters_(parameters)
28 SOAPCommand::SOAPCommand(std::string command,
SOAPParameter parameter)
29 : command_(command), parameters_(parameter)
34 SOAPCommand::~SOAPCommand(
void) {}
44 const std::string& SOAPCommand::getCommand(
void)
const {
return command_; }
47 const SOAPParameters& SOAPCommand::getParameters(
void)
const {
return parameters_; }
49 SOAPParameters& SOAPCommand::getParametersRef() {
return parameters_; }
52 std::string SOAPCommand::getParameterValue(std::string parameterName)
const
54 SOAPParameters::const_iterator it;
55 if((it = parameters_.find(parameterName)) != parameters_.end())
61 unsigned int SOAPCommand::getParametersSize(
void)
const {
return parameters_.size(); }
64 void SOAPCommand::translate(
const xoap::MessageReference& message)
68 xoap::SOAPElement messageCommand =
69 *(message->getSOAPPart().getEnvelope().getBody().getChildElements().begin());
70 command_ = messageCommand.getElementName().getLocalName();
71 DOMNamedNodeMap* parameters = messageCommand.getDOM()->getAttributes();
72 for(
unsigned int i = 0; i < parameters->getLength(); i++)
74 parameters_.addParameter(xoap::XMLCh2String(parameters->item(i)->getNodeName()),
75 xoap::XMLCh2String(parameters->item(i)->getNodeValue()));
80 void SOAPCommand::setCommand(std::string command) { command_ = command; }
85 parameters_ = parameters;
89 void SOAPCommand::setParameter(std::string parameterName, std::string parameterValue)
91 parameters_.addParameter(parameterName, parameterValue);
97 parameters_.addParameter(parameter.getName(), parameter.getValue());
101 bool SOAPCommand::hasParameters(
void)
const {
return (parameters_.size() != 0); }
104 bool SOAPCommand::findParameter(std::string parameterName)
const
106 return (parameters_.find(parameterName) != parameters_.end());
112 std::ostream& operator<<(std::ostream& os,
const SOAPCommand& c)
114 os <<
"Command: " << c.getCommand();
116 for(SOAPParameters::const_iterator it = (c.getParameters()).begin();
117 it != (c.getParameters()).end();
119 os <<
" Par " << p <<
" Name: " << it->first <<
" Value: " << it->second <<
",";