The Data library has been available since the 1.2 release. For the 1.5.0 release, a few things have been changed in an incompatible way that requires changes to existing code.
Keywords (use, into, limit, etc) now reside in Poco::Data::Keywords namespace.
Internally, (Abstract)Binder, Extracion nas (where applicable) Preparator are garbage collected. While old way of passing pointers to TypeHandler may still work, it is strongly recommended to pass SharedPtr to handler functions, e.g. :
template <> class TypeHandler<Person> { public:
static std::size_t size() {
return 3;
}
static void bind(std::size_t pos, const Person& person, AbstractBinder::Ptr pBinder, AbstractBinder::Direction dir) {
TypeHandler<std::string>::bind(pos++, person.name, pBinder, dir); // ...
}
static void extract(std::size_t pos, Person& person, const Person& deflt, AbstractExtractor::Ptr pExtr) {
TypeHandler<std::string>::extract(pos++, person.name, deflt.name, pExtr); // ...
}
static void prepare(std::size_t pos, const Person& person, AbstractPreparator::Ptr pPrep) {
TypeHandler<std::string>::prepare(pos++, person.name, pPrep); // ...
}
};