diff options
Diffstat (limited to 'p2pvr/daemon/sqlSelectDeserializer.h')
-rw-r--r-- | p2pvr/daemon/sqlSelectDeserializer.h | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/p2pvr/daemon/sqlSelectDeserializer.h b/p2pvr/daemon/sqlSelectDeserializer.h new file mode 100644 index 0000000..0c32811 --- /dev/null +++ b/p2pvr/daemon/sqlSelectDeserializer.h @@ -0,0 +1,28 @@ +#ifndef P2PVR_SQL_DESERIALIZER_H +#define P2PVR_SQL_DESERIALIZER_H + +#include <slicer/serializer.h> +#include <selectcommand.h> + +class NoRowsReturned : public std::exception { }; + +class SqlSelectDeserializer : public Slicer::Deserializer { + public: + SqlSelectDeserializer(DB::SelectCommand &, IceUtil::Optional<std::string> typeIdCol = IceUtil::Optional<std::string>()); + + virtual void Deserialize(Slicer::ModelPartPtr) override; + + protected: + void DeserializeSimple(Slicer::ModelPartPtr); + void DeserializeObject(Slicer::ModelPartPtr); + void DeserializeSequence(Slicer::ModelPartPtr); + void DeserializeRow(Slicer::ModelPartPtr); + + DB::SelectCommand & cmd; + unsigned int columnCount; + IceUtil::Optional<std::string> typeIdColName; + IceUtil::Optional<unsigned int> typeIdColIdx; +}; + +#endif + |