File Information
Library: UPnP/SOAP
Package: SOAP
Header: Poco/UPnP/SOAP/Deserializer.h
Description
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.
Inheritance
Direct Base Classes: Poco::RemotingNG::Deserializer
All Base Classes: Poco::RemotingNG::Deserializer, Poco::RemotingNG::SerializerBase
Member Summary
Member Functions: deserialize, deserializeMessageBegin, deserializeMessageEnd, deserializeNullableBegin, deserializeNullableEnd, deserializeSequenceBegin, deserializeSequenceEnd, deserializeStructBegin, deserializeStructEnd, findMessage, resetImpl, setupImpl
Inherited Functions: clearProperties, deserialize, deserializeMessageBegin, deserializeMessageEnd, deserializeNullableBegin, deserializeNullableEnd, deserializeOptionalBegin, deserializeOptionalEnd, deserializeSequenceBegin, deserializeSequenceEnd, deserializeStructBegin, deserializeStructEnd, findMessage, getProperty, hasProperty, popProperty, pushAttribute, pushProperty, reset, resetImpl, setup, setupImpl
Constructors
Deserializer
Deserializer();
Creates a Deserializer.
Destructor
~Deserializer
~Deserializer();
Destroys the Deserializer.
Member Functions
deserialize
bool deserialize(
const std::string & name,
bool isMandatory,
Poco::Int8 & value
);
deserialize
bool deserialize(
const std::string & name,
bool isMandatory,
Poco::UInt8 & value
);
deserialize
bool deserialize(
const std::string & name,
bool isMandatory,
Poco::Int16 & value
);
deserialize
bool deserialize(
const std::string & name,
bool isMandatory,
Poco::UInt16 & value
);
deserialize
bool deserialize(
const std::string & name,
bool isMandatory,
Poco::Int32 & value
);
deserialize
bool deserialize(
const std::string & name,
bool isMandatory,
Poco::UInt32 & value
);
deserialize
bool deserialize(
const std::string & name,
bool isMandatory,
long & value
);
deserialize
bool deserialize(
const std::string & name,
bool isMandatory,
unsigned long & value
);
deserialize
bool deserialize(
const std::string & name,
bool isMandatory,
Poco::Int64 & value
);
deserialize
bool deserialize(
const std::string & name,
bool isMandatory,
Poco::UInt64 & value
);
deserialize
bool deserialize(
const std::string & name,
bool isMandatory,
float & value
);
deserialize
bool deserialize(
const std::string & name,
bool isMandatory,
double & value
);
deserialize
bool deserialize(
const std::string & name,
bool isMandatory,
bool & value
);
deserialize
bool deserialize(
const std::string & name,
bool isMandatory,
char & value
);
deserialize
bool deserialize(
const std::string & name,
bool isMandatory,
std::string & value
);
deserialize
bool deserialize(
const std::string & name,
bool isMandatory,
std::vector < char > & value
);
deserializeMessageBegin
void deserializeMessageBegin(
const std::string & name,
Poco::RemotingNG::SerializerBase::MessageType type
);
deserializeMessageEnd
void deserializeMessageEnd(
const std::string & name,
Poco::RemotingNG::SerializerBase::MessageType type
);
deserializeNullableBegin
bool deserializeNullableBegin(
const std::string & name,
bool isMandatory,
bool & isNull
);
deserializeNullableEnd
void deserializeNullableEnd(
const std::string & name
);
deserializeSequenceBegin
bool deserializeSequenceBegin(
const std::string & name,
bool isMandatory,
Poco::UInt32 & sizeHint
);
deserializeSequenceEnd
void deserializeSequenceEnd(
const std::string & name
);
deserializeStructBegin
bool deserializeStructBegin(
const std::string & name,
bool isMandatory
);
deserializeStructEnd
void deserializeStructEnd(
const std::string & name
);
findMessage
Poco::RemotingNG::SerializerBase::MessageType findMessage(
std::string & name
);
resetImpl
void resetImpl();
setupImpl
void setupImpl(
std::istream & istr
);