1 #include "otsdaq-core/SOAPUtilities/SOAPCommand.h"
2 #include "otsdaq-core/MessageFacility/MessageFacility.h"
3 #include "otsdaq-core/Macros/CoutHeaderMacros.h"
5 #include <xoap/SOAPElement.h>
6 #include <xoap/SOAPEnvelope.h>
7 #include <xoap/domutils.h>
14 SOAPCommand::SOAPCommand (
void)
18 SOAPCommand::SOAPCommand (
const xoap::MessageReference& message)
24 SOAPCommand::SOAPCommand (std::string command) :
29 SOAPCommand::SOAPCommand (std::string command,
SOAPParameters parameters) :
31 parameters_ (parameters)
35 SOAPCommand::SOAPCommand (std::string command,
SOAPParameter parameter) :
37 parameters_ (parameter)
41 SOAPCommand::~SOAPCommand(
void)
52 const std::string& SOAPCommand::getCommand(
void)
const
69 std::string SOAPCommand::getParameterValue(std::string parameterName)
const
71 SOAPParameters::const_iterator it;
72 if((it=parameters_.find(parameterName)) != parameters_.end())
78 unsigned int SOAPCommand::getParametersSize(
void)
const
80 return parameters_.size();
84 void SOAPCommand::translate(
const xoap::MessageReference& message)
87 xoap::SOAPElement messageCommand = *(message->getSOAPPart().getEnvelope().getBody().getChildElements().begin());
88 command_ = messageCommand.getElementName().getLocalName();
89 DOMNamedNodeMap* parameters = messageCommand.getDOM()->getAttributes();
90 for(
unsigned int i=0; i<parameters->getLength(); i++)
93 parameters_.addParameter(xoap::XMLCh2String(parameters->item(i)->getNodeName()), xoap::XMLCh2String(parameters->item(i)->getNodeValue()));
98 void SOAPCommand::setCommand(std::string command)
106 parameters_ = parameters;
110 void SOAPCommand::setParameter(std::string parameterName, std::string parameterValue)
112 parameters_.addParameter(parameterName, parameterValue);
116 void SOAPCommand::setParameter(
const SOAPParameter parameter)
118 parameters_.addParameter(parameter.getName(), parameter.getValue());
122 bool SOAPCommand::hasParameters(
void)
const
124 return (parameters_.size() != 0);
128 bool SOAPCommand::findParameter(std::string parameterName)
const
130 return (parameters_.find(parameterName) != parameters_.end());
136 std::ostream& operator<<(std::ostream& os,
const SOAPCommand& c)
138 os <<
"Command: " << c.getCommand();
140 for(SOAPParameters::const_iterator it=(c.getParameters()).begin(); it!=(c.getParameters()).end(); it++)
141 os <<
" Par " << p <<
" Name: " << it->first <<
" Value: " << it->second <<
",";