Library: UPnP/SOAP
Package: SOAP
Header: Poco/UPnP/SOAP/Deserializer.h
The Deserializer for the UPnP SOAP Transport.
This class can deserialize SOAP requests and responses, as well as XML schema based complex types.
Internally, the Deserializer builds a DOM document from the XML read from the stream. While this is not the most performant way to parse XML, it allows for handling messages that do not fully conform to their specification (such as containing additional elements, or elements arriving in wrong order). This is a frequent case in UPnP networks.
For maximum interoperability with misbehaving UPnP SOAP implementations, the Deserializer ignores the XML namespace of all elements it processes.
Direct Base Classes: Poco::RemotingNG::Deserializer
All Base Classes: Poco::RemotingNG::Deserializer, Poco::RemotingNG::SerializerBase
Member Functions: deserialize, deserializeMessageBegin, deserializeMessageEnd, deserializeNullableBegin, deserializeNullableEnd, deserializeSequenceBegin, deserializeSequenceEnd, deserializeStructBegin, deserializeStructEnd, findMessage, resetImpl, setupImpl
Inherited Functions: clearProperties, deserialize, deserializeMessageBegin, deserializeMessageEnd, deserializeNullableBegin, deserializeNullableEnd, deserializeSequenceBegin, deserializeSequenceEnd, deserializeStructBegin, deserializeStructEnd, findMessage, getProperty, hasProperty, popProperty, pushAttribute, pushProperty, reset, resetImpl, setup, setupImpl
Deserializer();
Creates a Deserializer.
~Deserializer();
Destroys the Deserializer.
bool deserialize(
const std::string & name,
bool isMandatory,
Poco::Int8 & value
);
bool deserialize(
const std::string & name,
bool isMandatory,
Poco::UInt8 & value
);
bool deserialize(
const std::string & name,
bool isMandatory,
Poco::Int16 & value
);
bool deserialize(
const std::string & name,
bool isMandatory,
Poco::UInt16 & value
);
bool deserialize(
const std::string & name,
bool isMandatory,
Poco::Int32 & value
);
bool deserialize(
const std::string & name,
bool isMandatory,
Poco::UInt32 & value
);
bool deserialize(
const std::string & name,
bool isMandatory,
long & value
);
bool deserialize(
const std::string & name,
bool isMandatory,
unsigned long & value
);
bool deserialize(
const std::string & name,
bool isMandatory,
float & value
);
bool deserialize(
const std::string & name,
bool isMandatory,
double & value
);
bool deserialize(
const std::string & name,
bool isMandatory,
bool & value
);
bool deserialize(
const std::string & name,
bool isMandatory,
char & value
);
bool deserialize(
const std::string & name,
bool isMandatory,
std::string & value
);
bool deserialize(
const std::string & name,
bool isMandatory,
std::vector < char > & value
);
void deserializeMessageBegin(
const std::string & name,
Poco::RemotingNG::SerializerBase::MessageType type
);
void deserializeMessageEnd(
const std::string & name,
Poco::RemotingNG::SerializerBase::MessageType type
);
bool deserializeNullableBegin(
const std::string & name,
bool isMandatory,
bool & isNull
);
void deserializeNullableEnd(
const std::string & name
);
bool deserializeSequenceBegin(
const std::string & name,
bool isMandatory,
Poco::UInt32 & sizeHint
);
void deserializeSequenceEnd(
const std::string & name
);
bool deserializeStructBegin(
const std::string & name,
bool isMandatory
);
void deserializeStructEnd(
const std::string & name
);
Poco::RemotingNG::SerializerBase::MessageType findMessage(
std::string & name
);
void resetImpl();
void setupImpl(
std::istream & istr
);