// SOAPBuildersInteropHandler.cpp: implementation of the SOAPBuildersInteropHandler class.
//
//////////////////////////////////////////////////////////////////////
#include "SOAPBuildersInteropHandler.h"
#include "interopstruct.h"
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
void
SOAPBuildersInteropHandler::RegisterMiscellaneous()
{
DispatchMethod("echoBase64", interop_namespace,
&SOAPBuildersInteropHandler::echoBase64);
DispatchMethod("echoSimpleTypesAsStruct", interop_namespace,
&SOAPBuildersInteropHandler::echoSimpleTypesAsStruct);
DispatchMethod("echoStructAsSimpleTypes", interop_namespace,
&SOAPBuildersInteropHandler::echoStructAsSimpleTypes);
DispatchMethod("echoNestedStruct", interop_namespace,
&SOAPBuildersInteropHandler::echoNestedStruct);
DispatchMethod("echoHexBinary", interop_namespace,
&SOAPBuildersInteropHandler::echoHexBinary);
DispatchMethod("echoMap", interop_namespace,
&SOAPBuildersInteropHandler::echoMap);
}
void
SOAPBuildersInteropHandler::echoBase64(const SOAPMethod& req, SOAPMethod& resp)
{
SOAPArray<char> val;
SOAPBase64 base64(val);
req.GetParameter("inputBase64") >> base64;
resp.AddParameter("return") << base64;
}
void
SOAPBuildersInteropHandler::echoHexBinary(const SOAPMethod& req, SOAPMethod& resp)
{
SOAPArray<char> val;
SOAPHex hex(val);
req.GetParameter("inputHexBinary") >> hex;
resp.AddParameter("return") << hex;
}
void
SOAPBuildersInteropHandler::echoStructAsSimpleTypes(const SOAPMethod& req, SOAPMethod& resp)
{
SOAPStruct val;
req.GetParameter("inputStruct") >> val;
resp.AddParameter("outputString") << val.varString;
resp.AddParameter("outputInteger") << val.varInt;
resp.AddParameter("outputFloat") << val.varFloat;
}
void
SOAPBuildersInteropHandler::echoSimpleTypesAsStruct(const SOAPMethod& req, SOAPMethod& resp)
{
SOAPStruct val;
req.GetParameter("inputString") >> val.varString;
req.GetParameter("inputInteger") >> val.varInt;
req.GetParameter("inputFloat") >> val.varFloat;
resp.AddParameter("return") << val;
}
void
SOAPBuildersInteropHandler::echoNestedStruct(const SOAPMethod& req, SOAPMethod& resp)
{
SOAPStructStruct val;
req.GetParameter("inputStruct") >> val;
resp.AddParameter("return") << val;
}
BEGIN_EASYSOAP_NAMESPACE
template<>
class SOAPTypeTraits< SOAPHashMap<SOAPString, int> > : public SOAPMapTypeTraits
{
};
END_EASYSOAP_NAMESPACE
void
SOAPBuildersInteropHandler::echoMap(const SOAPMethod& req, SOAPMethod& resp)
{
SOAPHashMap<SOAPString, int> val;
req.GetParameter((size_t)0) >> val;
resp.AddParameter("return") << val;
}
syntax highlighted by Code2HTML, v. 0.9.1