[SF 2272430] BLOB and CLOB

Renamed:
(Abstract)Preparation => (Abstract)Preparator
(Abstract)Prepare => (Abstract)Preparation
This commit is contained in:
Aleksandar Fabijanic
2008-11-24 00:38:23 +00:00
parent 161e49a6d4
commit a42e8d919b
75 changed files with 2616 additions and 2832 deletions

View File

@@ -43,7 +43,7 @@
#include "Poco/Data/Data.h"
#include "Poco/Data/Date.h"
#include "Poco/Data/Time.h"
#include "Poco/Data/BLOB.h"
#include "Poco/Data/LOB.h"
#include "Poco/DateTime.h"
#include "Poco/Any.h"
#include "Poco/Dynamic/Var.h"
@@ -266,6 +266,9 @@ public:
virtual void bind(std::size_t pos, const BLOB& val, Direction dir = PD_IN) = 0;
/// Binds a BLOB.
virtual void bind(std::size_t pos, const CLOB& val, Direction dir = PD_IN) = 0;
/// Binds a CLOB.
virtual void bind(std::size_t pos, const std::vector<BLOB>& val, Direction dir = PD_IN);
/// Binds a BLOB vector.
@@ -275,6 +278,15 @@ public:
virtual void bind(std::size_t pos, const std::list<BLOB>& val, Direction dir = PD_IN);
/// Binds a BLOB list.
virtual void bind(std::size_t pos, const std::vector<CLOB>& val, Direction dir = PD_IN);
/// Binds a CLOB vector.
virtual void bind(std::size_t pos, const std::deque<CLOB>& val, Direction dir = PD_IN);
/// Binds a CLOB deque.
virtual void bind(std::size_t pos, const std::list<CLOB>& val, Direction dir = PD_IN);
/// Binds a CLOB list.
virtual void bind(std::size_t pos, const DateTime& val, Direction dir = PD_IN) = 0;
/// Binds a DateTime.

View File

@@ -55,8 +55,8 @@ namespace Poco {
namespace Data {
class AbstractPrepare;
class AbstractPreparation;
class AbstractPreparator;
class Data_API AbstractExtraction: public Poco::RefCountedObject
@@ -109,8 +109,8 @@ public:
virtual bool canExtract() const;
/// Returns true. Implementations should override it for different behavior.
virtual AbstractPrepare* createPrepareObject(AbstractPreparation* pPrep, std::size_t pos) = 0;
/// Creates a Prepare object for the extracting object
virtual AbstractPreparation* createPreparation(AbstractPreparator* pPrep, std::size_t pos) = 0;
/// Creates a Preparation object for the extracting object
void setLimit(Poco::UInt32 limit);
/// Sets the limit.

View File

@@ -42,6 +42,7 @@
#include "Poco/Data/Data.h"
#include "Poco/Data/Constants.h"
#include "Poco/Data/LOB.h"
#include <vector>
#include <deque>
#include <list>
@@ -64,7 +65,6 @@ namespace Data {
class Date;
class Time;
class BLOB;
class Data_API AbstractExtractor
@@ -251,6 +251,9 @@ public:
virtual bool extract(std::size_t pos, BLOB& val) = 0;
/// Extracts a BLOB. Returns false if null was received.
virtual bool extract(std::size_t pos, CLOB& val) = 0;
/// Extracts a CLOB. Returns false if null was received.
virtual bool extract(std::size_t pos, std::vector<BLOB>& val);
/// Extracts a BLOB vector.
@@ -260,6 +263,15 @@ public:
virtual bool extract(std::size_t pos, std::list<BLOB>& val);
/// Extracts a BLOB list.
virtual bool extract(std::size_t pos, std::vector<CLOB>& val);
/// Extracts a CLOB vector.
virtual bool extract(std::size_t pos, std::deque<CLOB>& val);
/// Extracts a CLOB deque.
virtual bool extract(std::size_t pos, std::list<CLOB>& val);
/// Extracts a CLOB list.
virtual bool extract(std::size_t pos, DateTime& val) = 0;
/// Extracts a DateTime. Returns false if null was received.

View File

@@ -1,7 +1,7 @@
//
// AbstractPreparation.h
//
// $Id: //poco/Main/Data/include/Poco/Data/AbstractPreparation.h#5 $
// $Id: //poco/Main/Data/include/Poco/Data/AbstractPreparation.h#4 $
//
// Library: Data
// Package: DataCore
@@ -41,335 +41,43 @@
#include "Poco/Data/Data.h"
#include "Poco/RefCountedObject.h"
#include <vector>
#include <deque>
#include <list>
#include <cstddef>
namespace Poco {
class DateTime;
class Any;
namespace Dynamic {
class Var;
}
namespace Data {
class Date;
class Time;
class BLOB;
class AbstractPreparator;
class Data_API AbstractPreparation: public Poco::RefCountedObject
/// Interface used for database preparation where we first have to register all data types (and memory output locations)
/// before extracting data, i.e. extract works as two-pase extract: first we call prepare once, then extract n-times.
/// There are cases (bulk operations using std::vector storage) when extract is called only once.
/// The value passed to a prepare() call is not be used by the prepare, serving only as an indication of the data type
/// being prepared.
/// Implementing this interface is not mandatory for a connector. Connectors that only extract data after SQL execution
/// (e.g. SQLite) do not need this functionality at all.
class Data_API AbstractPreparation
/// Interface for calling the appropriate AbstractPreparator method
{
public:
AbstractPreparation(Poco::UInt32 length = 1u);
AbstractPreparation(AbstractPreparator* pPreparator);
/// Creates the AbstractPreparation.
virtual ~AbstractPreparation();
/// Destroys the AbstractPreparation.
virtual void prepare(std::size_t pos, Poco::Int8&) = 0;
/// Prepares an Int8.
virtual void prepare() = 0;
/// Preparations data.
virtual void prepare(std::size_t pos, std::vector<Poco::Int8>& val);
/// Prepares an Int8 vector.
protected:
AbstractPreparator* preparation();
/// Returns the preparation object
virtual void prepare(std::size_t pos, std::deque<Poco::Int8>& val);
/// Prepares an Int8 deque.
virtual void prepare(std::size_t pos, std::list<Poco::Int8>& val);
/// Prepares an Int8 list.
virtual void prepare(std::size_t pos, Poco::UInt8&) = 0;
/// Prepares an UInt8.
virtual void prepare(std::size_t pos, std::vector<Poco::UInt8>& val);
/// Prepares an UInt8 vector.
virtual void prepare(std::size_t pos, std::deque<Poco::UInt8>& val);
/// Prepares an UInt8 deque.
virtual void prepare(std::size_t pos, std::list<Poco::UInt8>& val);
/// Prepares an UInt8 list.
virtual void prepare(std::size_t pos, Poco::Int16&) = 0;
/// Prepares an Int16.
virtual void prepare(std::size_t pos, std::vector<Poco::Int16>& val);
/// Prepares an Int16 vector.
virtual void prepare(std::size_t pos, std::deque<Poco::Int16>& val);
/// Prepares an Int16 deque.
virtual void prepare(std::size_t pos, std::list<Poco::Int16>& val);
/// Prepares an Int16 list.
virtual void prepare(std::size_t pos, Poco::UInt16&) = 0;
/// Prepares an UInt16.
virtual void prepare(std::size_t pos, std::vector<Poco::UInt16>& val);
/// Prepares an UInt16 vector.
virtual void prepare(std::size_t pos, std::deque<Poco::UInt16>& val);
/// Prepares an UInt16 deque.
virtual void prepare(std::size_t pos, std::list<Poco::UInt16>& val);
/// Prepares an UInt16 list.
virtual void prepare(std::size_t pos, Poco::Int32&) = 0;
/// Prepares an Int32.
virtual void prepare(std::size_t pos, std::vector<Poco::Int32>& val);
/// Prepares an Int32 vector.
virtual void prepare(std::size_t pos, std::deque<Poco::Int32>& val);
/// Prepares an Int32 deque.
virtual void prepare(std::size_t pos, std::list<Poco::Int32>& val);
/// Prepares an Int32 list.
virtual void prepare(std::size_t pos, Poco::UInt32&) = 0;
/// Prepares an UInt32.
virtual void prepare(std::size_t pos, std::vector<Poco::UInt32>& val);
/// Prepares an UInt32 vector.
virtual void prepare(std::size_t pos, std::deque<Poco::UInt32>& val);
/// Prepares an UInt32 deque.
virtual void prepare(std::size_t pos, std::list<Poco::UInt32>& val);
/// Prepares an UInt32 list.
virtual void prepare(std::size_t pos, Poco::Int64&) = 0;
/// Prepares an Int64.
virtual void prepare(std::size_t pos, std::vector<Poco::Int64>& val);
/// Prepares an Int64 vector.
virtual void prepare(std::size_t pos, std::deque<Poco::Int64>& val);
/// Prepares an Int64 deque.
virtual void prepare(std::size_t pos, std::list<Poco::Int64>& val);
/// Prepares an Int64 list.
virtual void prepare(std::size_t pos, Poco::UInt64&) = 0;
/// Prepares an UInt64.
virtual void prepare(std::size_t pos, std::vector<Poco::UInt64>& val);
/// Prepares an UInt64 vector.
virtual void prepare(std::size_t pos, std::deque<Poco::UInt64>& val);
/// Prepares an UInt64 deque.
virtual void prepare(std::size_t pos, std::list<Poco::UInt64>& val);
/// Prepares an UInt64 list.
#ifndef POCO_LONG_IS_64_BIT
virtual void prepare(std::size_t pos, long&) = 0;
/// Prepares a long.
virtual void prepare(std::size_t pos, std::vector<long>& val);
/// Prepares a long vector.
virtual void prepare(std::size_t pos, std::deque<long>& val);
/// Prepares a long deque.
virtual void prepare(std::size_t pos, std::list<long>& val);
/// Prepares a long list.
#endif
virtual void prepare(std::size_t pos, bool&) = 0;
/// Prepares a boolean.
virtual void prepare(std::size_t pos, std::vector<bool>& val);
/// Prepares a boolean vector.
virtual void prepare(std::size_t pos, std::deque<bool>& val);
/// Prepares a boolean deque.
virtual void prepare(std::size_t pos, std::list<bool>& val);
/// Prepares a boolean list.
virtual void prepare(std::size_t pos, float&) = 0;
/// Prepares a float.
virtual void prepare(std::size_t pos, std::vector<float>& val);
/// Prepares a float vector.
virtual void prepare(std::size_t pos, std::deque<float>& val);
/// Prepares a float deque.
virtual void prepare(std::size_t pos, std::list<float>& val);
/// Prepares a float list.
virtual void prepare(std::size_t pos, double&) = 0;
/// Prepares a double.
virtual void prepare(std::size_t pos, std::vector<double>& val);
/// Prepares a double vector.
virtual void prepare(std::size_t pos, std::deque<double>& val);
/// Prepares a double deque.
virtual void prepare(std::size_t pos, std::list<double>& val);
/// Prepares a double list.
virtual void prepare(std::size_t pos, char&) = 0;
/// Prepares a single character.
virtual void prepare(std::size_t pos, std::vector<char>& val);
/// Prepares a character vector.
virtual void prepare(std::size_t pos, std::deque<char>& val);
/// Prepares a character deque.
virtual void prepare(std::size_t pos, std::list<char>& val);
/// Prepares a character list.
virtual void prepare(std::size_t pos, const std::string&) = 0;
/// Prepares a string.
virtual void prepare(std::size_t pos, const std::vector<std::string>& val);
/// Prepares a string vector.
virtual void prepare(std::size_t pos, const std::deque<std::string>& val);
/// Prepares a string deque.
virtual void prepare(std::size_t pos, const std::list<std::string>& val);
/// Prepares a string list.
virtual void prepare(std::size_t pos, const BLOB&) = 0;
/// Prepares a BLOB.
virtual void prepare(std::size_t pos, const std::vector<BLOB>& val);
/// Prepares a BLOB vector.
virtual void prepare(std::size_t pos, const std::deque<BLOB>& val);
/// Prepares a BLOB deque.
virtual void prepare(std::size_t pos, const std::list<BLOB>& val);
/// Prepares a BLOB list.
virtual void prepare(std::size_t pos, const DateTime&) = 0;
/// Prepares a DateTime.
virtual void prepare(std::size_t pos, const std::vector<DateTime>& val);
/// Prepares a DateTime vector.
virtual void prepare(std::size_t pos, const std::deque<DateTime>& val);
/// Prepares a DateTime deque.
virtual void prepare(std::size_t pos, const std::list<DateTime>& val);
/// Prepares a DateTime list.
virtual void prepare(std::size_t pos, const Date&) = 0;
/// Prepares a Date.
virtual void prepare(std::size_t pos, const std::vector<Date>& val);
/// Prepares a Date vector.
virtual void prepare(std::size_t pos, const std::deque<Date>& val);
/// Prepares a Date deque.
virtual void prepare(std::size_t pos, const std::list<Date>& val);
/// Prepares a Date list.
virtual void prepare(std::size_t pos, const Time&) = 0;
/// Prepares a Time.
virtual void prepare(std::size_t pos, const std::vector<Time>& val);
/// Prepares a Time vector.
virtual void prepare(std::size_t pos, const std::deque<Time>& val);
/// Prepares a Time deque.
virtual void prepare(std::size_t pos, const std::list<Time>& val);
/// Prepares a Time list.
virtual void prepare(std::size_t pos, const Any&) = 0;
/// Prepares an Any.
virtual void prepare(std::size_t pos, const std::vector<Any>& val);
/// Prepares an Any vector.
virtual void prepare(std::size_t pos, const std::deque<Any>& val);
/// Prepares an Any deque.
virtual void prepare(std::size_t pos, const std::list<Any>& val);
/// Prepares an Any list.
virtual void prepare(std::size_t pos, const Poco::Dynamic::Var&) = 0;
/// Prepares a Var.
virtual void prepare(std::size_t pos, const std::vector<Poco::Dynamic::Var>& val);
/// Prepares a Var vector.
virtual void prepare(std::size_t pos, const std::deque<Poco::Dynamic::Var>& val);
/// Prepares a Var deque.
virtual void prepare(std::size_t pos, const std::list<Poco::Dynamic::Var>& val);
/// Prepares a Var list.
void setLength(Poco::UInt32 length);
/// Sets the length of prepared data.
/// Needed only for data lengths greater than 1 (i.e. for
/// bulk operations).
Poco::UInt32 getLength() const;
/// Returns the length of prepared data. Defaults to 1.
/// The length is greater than one for bulk operations.
void setBulk(bool bulkPrep = true);
/// Sets bulk operation flag (always false at object creation time)
bool isBulk() const;
/// Returns bulk operation flag.
private:
Poco::UInt32 _length;
bool _bulk;
AbstractPreparator* _pPreparator;
};
///
/// inlines
///
inline void AbstractPreparation::setLength(Poco::UInt32 length)
//
// inlines
//
inline AbstractPreparator* AbstractPreparation::preparation()
{
_length = length;
}
inline Poco::UInt32 AbstractPreparation::getLength() const
{
return _length;
}
inline void AbstractPreparation::setBulk(bool bulkPrep)
{
_bulk = bulkPrep;
}
inline bool AbstractPreparation::isBulk() const
{
return _bulk;
return _pPreparator;
}

View File

@@ -0,0 +1,391 @@
//
// AbstractPreparator.h
//
// $Id: //poco/Main/Data/include/Poco/Data/AbstractPreparator.h#5 $
//
// Library: Data
// Package: DataCore
// Module: AbstractPreparator
//
// Definition of the AbstractPreparator class.
//
// Copyright (c) 2006, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// Permission is hereby granted, free of charge, to any person or organization
// obtaining a copy of the software and accompanying documentation covered by
// this license (the "Software") to use, reproduce, display, distribute,
// execute, and transmit the Software, and to prepare derivative works of the
// Software, and to permit third-parties to whom the Software is furnished to
// do so, all subject to the following:
//
// The copyright notices in the Software and this entire statement, including
// the above license grant, this restriction and the following disclaimer,
// must be included in all copies of the Software, in whole or in part, and
// all derivative works of the Software, unless such copies or derivative
// works are solely in the form of machine-executable object code generated by
// a source language processor.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
//
#ifndef Data_AbstractPreparator_INCLUDED
#define Data_AbstractPreparator_INCLUDED
#include "Poco/Data/Data.h"
#include "Poco/RefCountedObject.h"
#include "Poco/Data/LOB.h"
#include <vector>
#include <deque>
#include <list>
#include <cstddef>
namespace Poco {
class DateTime;
class Any;
namespace Dynamic {
class Var;
}
namespace Data {
class Date;
class Time;
class Data_API AbstractPreparator: public Poco::RefCountedObject
/// Interface used for database preparation where we first have to register all data types (and memory output locations)
/// before extracting data, i.e. extract works as two-pase extract: first we call prepare once, then extract n-times.
/// There are cases (bulk operations using std::vector storage) when extract is called only once.
/// The value passed to a prepare() call is not be used by the prepare, serving only as an indication of the data type
/// being prepared.
/// Implementing this interface is not mandatory for a connector. Connectors that only extract data after SQL execution
/// (e.g. SQLite) do not need this functionality at all.
{
public:
AbstractPreparator(Poco::UInt32 length = 1u);
/// Creates the AbstractPreparator.
virtual ~AbstractPreparator();
/// Destroys the AbstractPreparator.
virtual void prepare(std::size_t pos, Poco::Int8&) = 0;
/// Preparations an Int8.
virtual void prepare(std::size_t pos, std::vector<Poco::Int8>& val);
/// Preparations an Int8 vector.
virtual void prepare(std::size_t pos, std::deque<Poco::Int8>& val);
/// Preparations an Int8 deque.
virtual void prepare(std::size_t pos, std::list<Poco::Int8>& val);
/// Preparations an Int8 list.
virtual void prepare(std::size_t pos, Poco::UInt8&) = 0;
/// Preparations an UInt8.
virtual void prepare(std::size_t pos, std::vector<Poco::UInt8>& val);
/// Preparations an UInt8 vector.
virtual void prepare(std::size_t pos, std::deque<Poco::UInt8>& val);
/// Preparations an UInt8 deque.
virtual void prepare(std::size_t pos, std::list<Poco::UInt8>& val);
/// Preparations an UInt8 list.
virtual void prepare(std::size_t pos, Poco::Int16&) = 0;
/// Preparations an Int16.
virtual void prepare(std::size_t pos, std::vector<Poco::Int16>& val);
/// Preparations an Int16 vector.
virtual void prepare(std::size_t pos, std::deque<Poco::Int16>& val);
/// Preparations an Int16 deque.
virtual void prepare(std::size_t pos, std::list<Poco::Int16>& val);
/// Preparations an Int16 list.
virtual void prepare(std::size_t pos, Poco::UInt16&) = 0;
/// Preparations an UInt16.
virtual void prepare(std::size_t pos, std::vector<Poco::UInt16>& val);
/// Preparations an UInt16 vector.
virtual void prepare(std::size_t pos, std::deque<Poco::UInt16>& val);
/// Preparations an UInt16 deque.
virtual void prepare(std::size_t pos, std::list<Poco::UInt16>& val);
/// Preparations an UInt16 list.
virtual void prepare(std::size_t pos, Poco::Int32&) = 0;
/// Preparations an Int32.
virtual void prepare(std::size_t pos, std::vector<Poco::Int32>& val);
/// Preparations an Int32 vector.
virtual void prepare(std::size_t pos, std::deque<Poco::Int32>& val);
/// Preparations an Int32 deque.
virtual void prepare(std::size_t pos, std::list<Poco::Int32>& val);
/// Preparations an Int32 list.
virtual void prepare(std::size_t pos, Poco::UInt32&) = 0;
/// Preparations an UInt32.
virtual void prepare(std::size_t pos, std::vector<Poco::UInt32>& val);
/// Preparations an UInt32 vector.
virtual void prepare(std::size_t pos, std::deque<Poco::UInt32>& val);
/// Preparations an UInt32 deque.
virtual void prepare(std::size_t pos, std::list<Poco::UInt32>& val);
/// Preparations an UInt32 list.
virtual void prepare(std::size_t pos, Poco::Int64&) = 0;
/// Preparations an Int64.
virtual void prepare(std::size_t pos, std::vector<Poco::Int64>& val);
/// Preparations an Int64 vector.
virtual void prepare(std::size_t pos, std::deque<Poco::Int64>& val);
/// Preparations an Int64 deque.
virtual void prepare(std::size_t pos, std::list<Poco::Int64>& val);
/// Preparations an Int64 list.
virtual void prepare(std::size_t pos, Poco::UInt64&) = 0;
/// Preparations an UInt64.
virtual void prepare(std::size_t pos, std::vector<Poco::UInt64>& val);
/// Preparations an UInt64 vector.
virtual void prepare(std::size_t pos, std::deque<Poco::UInt64>& val);
/// Preparations an UInt64 deque.
virtual void prepare(std::size_t pos, std::list<Poco::UInt64>& val);
/// Preparations an UInt64 list.
#ifndef POCO_LONG_IS_64_BIT
virtual void prepare(std::size_t pos, long&) = 0;
/// Preparations a long.
virtual void prepare(std::size_t pos, std::vector<long>& val);
/// Preparations a long vector.
virtual void prepare(std::size_t pos, std::deque<long>& val);
/// Preparations a long deque.
virtual void prepare(std::size_t pos, std::list<long>& val);
/// Preparations a long list.
#endif
virtual void prepare(std::size_t pos, bool&) = 0;
/// Preparations a boolean.
virtual void prepare(std::size_t pos, std::vector<bool>& val);
/// Preparations a boolean vector.
virtual void prepare(std::size_t pos, std::deque<bool>& val);
/// Preparations a boolean deque.
virtual void prepare(std::size_t pos, std::list<bool>& val);
/// Preparations a boolean list.
virtual void prepare(std::size_t pos, float&) = 0;
/// Preparations a float.
virtual void prepare(std::size_t pos, std::vector<float>& val);
/// Preparations a float vector.
virtual void prepare(std::size_t pos, std::deque<float>& val);
/// Preparations a float deque.
virtual void prepare(std::size_t pos, std::list<float>& val);
/// Preparations a float list.
virtual void prepare(std::size_t pos, double&) = 0;
/// Preparations a double.
virtual void prepare(std::size_t pos, std::vector<double>& val);
/// Preparations a double vector.
virtual void prepare(std::size_t pos, std::deque<double>& val);
/// Preparations a double deque.
virtual void prepare(std::size_t pos, std::list<double>& val);
/// Preparations a double list.
virtual void prepare(std::size_t pos, char&) = 0;
/// Preparations a single character.
virtual void prepare(std::size_t pos, std::vector<char>& val);
/// Preparations a character vector.
virtual void prepare(std::size_t pos, std::deque<char>& val);
/// Preparations a character deque.
virtual void prepare(std::size_t pos, std::list<char>& val);
/// Preparations a character list.
virtual void prepare(std::size_t pos, const std::string&) = 0;
/// Preparations a string.
virtual void prepare(std::size_t pos, const std::vector<std::string>& val);
/// Preparations a string vector.
virtual void prepare(std::size_t pos, const std::deque<std::string>& val);
/// Preparations a string deque.
virtual void prepare(std::size_t pos, const std::list<std::string>& val);
/// Preparations a string list.
virtual void prepare(std::size_t pos, const BLOB&) = 0;
/// Preparations a BLOB.
virtual void prepare(std::size_t pos, const CLOB&) = 0;
/// Preparations a CLOB.
virtual void prepare(std::size_t pos, const std::vector<BLOB>& val);
/// Preparations a BLOB vector.
virtual void prepare(std::size_t pos, const std::deque<BLOB>& val);
/// Preparations a BLOB deque.
virtual void prepare(std::size_t pos, const std::list<BLOB>& val);
/// Preparations a BLOB list.
virtual void prepare(std::size_t pos, const std::vector<CLOB>& val);
/// Preparations a CLOB vector.
virtual void prepare(std::size_t pos, const std::deque<CLOB>& val);
/// Preparations a CLOB deque.
virtual void prepare(std::size_t pos, const std::list<CLOB>& val);
/// Preparations a CLOB list.
virtual void prepare(std::size_t pos, const DateTime&) = 0;
/// Preparations a DateTime.
virtual void prepare(std::size_t pos, const std::vector<DateTime>& val);
/// Preparations a DateTime vector.
virtual void prepare(std::size_t pos, const std::deque<DateTime>& val);
/// Preparations a DateTime deque.
virtual void prepare(std::size_t pos, const std::list<DateTime>& val);
/// Preparations a DateTime list.
virtual void prepare(std::size_t pos, const Date&) = 0;
/// Preparations a Date.
virtual void prepare(std::size_t pos, const std::vector<Date>& val);
/// Preparations a Date vector.
virtual void prepare(std::size_t pos, const std::deque<Date>& val);
/// Preparations a Date deque.
virtual void prepare(std::size_t pos, const std::list<Date>& val);
/// Preparations a Date list.
virtual void prepare(std::size_t pos, const Time&) = 0;
/// Preparations a Time.
virtual void prepare(std::size_t pos, const std::vector<Time>& val);
/// Preparations a Time vector.
virtual void prepare(std::size_t pos, const std::deque<Time>& val);
/// Preparations a Time deque.
virtual void prepare(std::size_t pos, const std::list<Time>& val);
/// Preparations a Time list.
virtual void prepare(std::size_t pos, const Any&) = 0;
/// Preparations an Any.
virtual void prepare(std::size_t pos, const std::vector<Any>& val);
/// Preparations an Any vector.
virtual void prepare(std::size_t pos, const std::deque<Any>& val);
/// Preparations an Any deque.
virtual void prepare(std::size_t pos, const std::list<Any>& val);
/// Preparations an Any list.
virtual void prepare(std::size_t pos, const Poco::Dynamic::Var&) = 0;
/// Preparations a Var.
virtual void prepare(std::size_t pos, const std::vector<Poco::Dynamic::Var>& val);
/// Preparations a Var vector.
virtual void prepare(std::size_t pos, const std::deque<Poco::Dynamic::Var>& val);
/// Preparations a Var deque.
virtual void prepare(std::size_t pos, const std::list<Poco::Dynamic::Var>& val);
/// Preparations a Var list.
void setLength(Poco::UInt32 length);
/// Sets the length of prepared data.
/// Needed only for data lengths greater than 1 (i.e. for
/// bulk operations).
Poco::UInt32 getLength() const;
/// Returns the length of prepared data. Defaults to 1.
/// The length is greater than one for bulk operations.
void setBulk(bool bulkPrep = true);
/// Sets bulk operation flag (always false at object creation time)
bool isBulk() const;
/// Returns bulk operation flag.
private:
Poco::UInt32 _length;
bool _bulk;
};
///
/// inlines
///
inline void AbstractPreparator::setLength(Poco::UInt32 length)
{
_length = length;
}
inline Poco::UInt32 AbstractPreparator::getLength() const
{
return _length;
}
inline void AbstractPreparator::setBulk(bool bulkPrep)
{
_bulk = bulkPrep;
}
inline bool AbstractPreparator::isBulk() const
{
return _bulk;
}
} } // namespace Poco::Data
#endif // Data_AbstractPreparator_INCLUDED

View File

@@ -1,87 +0,0 @@
//
// AbstractPrepare.h
//
// $Id: //poco/Main/Data/include/Poco/Data/AbstractPrepare.h#4 $
//
// Library: Data
// Package: DataCore
// Module: AbstractPrepare
//
// Definition of the AbstractPrepare class.
//
// Copyright (c) 2006, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// Permission is hereby granted, free of charge, to any person or organization
// obtaining a copy of the software and accompanying documentation covered by
// this license (the "Software") to use, reproduce, display, distribute,
// execute, and transmit the Software, and to prepare derivative works of the
// Software, and to permit third-parties to whom the Software is furnished to
// do so, all subject to the following:
//
// The copyright notices in the Software and this entire statement, including
// the above license grant, this restriction and the following disclaimer,
// must be included in all copies of the Software, in whole or in part, and
// all derivative works of the Software, unless such copies or derivative
// works are solely in the form of machine-executable object code generated by
// a source language processor.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
//
#ifndef Data_AbstractPrepare_INCLUDED
#define Data_AbstractPrepare_INCLUDED
#include "Poco/Data/Data.h"
#include <cstddef>
namespace Poco {
namespace Data {
class AbstractPreparation;
class Data_API AbstractPrepare
/// Interface for calling the appropriate AbstractPreparation method
{
public:
AbstractPrepare(AbstractPreparation* pPrepare);
/// Creates the AbstractPrepare.
virtual ~AbstractPrepare();
/// Destroys the AbstractPrepare.
virtual void prepare() = 0;
/// Prepares data.
protected:
AbstractPreparation* preparation();
/// Returns the preparation object
AbstractPreparation* _pPrepare;
};
//
// inlines
//
inline AbstractPreparation* AbstractPrepare::preparation()
{
return _pPrepare;
}
} } // namespace Poco::Data
#endif // Data_AbstractPrepare_INCLUDED

View File

@@ -1,284 +0,0 @@
//
// BLOB.h
//
// $Id: //poco/Main/Data/include/Poco/Data/BLOB.h#12 $
//
// Library: Data
// Package: DataCore
// Module: BLOB
//
// Definition of the BLOB class.
//
// Copyright (c) 2006, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// Permission is hereby granted, free of charge, to any person or organization
// obtaining a copy of the software and accompanying documentation covered by
// this license (the "Software") to use, reproduce, display, distribute,
// execute, and transmit the Software, and to prepare derivative works of the
// Software, and to permit third-parties to whom the Software is furnished to
// do so, all subject to the following:
//
// The copyright notices in the Software and this entire statement, including
// the above license grant, this restriction and the following disclaimer,
// must be included in all copies of the Software, in whole or in part, and
// all derivative works of the Software, unless such copies or derivative
// works are solely in the form of machine-executable object code generated by
// a source language processor.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
//
#ifndef Data_BLOB_INCLUDED
#define Data_BLOB_INCLUDED
#include "Poco/Data/Data.h"
#include "Poco/SharedPtr.h"
#include "Poco/Dynamic/VarHolder.h"
#include "Poco/Exception.h"
#include <vector>
namespace Poco {
namespace Data {
class Data_API BLOB
/// Representation of a Binary Large OBject.
///
/// A BLOB can hold arbitrary binary data.
/// The maximum size depends on the underlying database.
///
/// The BLOBInputStream and BLOBOutputStream classes provide
/// a convenient way to access the data in a BLOB.
{
public:
typedef std::vector<char>::const_iterator Iterator;
BLOB();
/// Creates an empty BLOB.
BLOB(const std::vector<char>& content);
/// Creates the BLOB, content is deep-copied.
BLOB(const char* const pContent, std::size_t size);
/// Creates the BLOB by deep-copying pContent.
BLOB(const std::string& content);
/// Creates a BLOB from a string.
BLOB(const BLOB& other);
/// Creates a BLOB by copying another one.
~BLOB();
/// Destroys the BLOB.
BLOB& operator = (const BLOB& other);
/// Assignment operator.
bool operator == (const BLOB& other) const;
/// Compares for equality BLOB by value.
bool operator != (const BLOB& other) const;
/// Compares for inequality BLOB by value.
void swap(BLOB& other);
/// Swaps the BLOB with another one.
const std::vector<char>& content() const;
/// Returns the content.
const char* rawContent() const;
/// Returns the raw content.
///
/// If the BLOB is empty, returns NULL.
void assignRaw(const char* pChar, std::size_t count);
/// Assigns raw content to internal storage.
void appendRaw(const char* pChar, std::size_t count);
/// Assigns raw content to internal storage.
void clear(bool doCompact = false);
/// Clears the content of the blob.
/// If doCompact is true, trims the excess capacity.
void compact();
/// Trims the internal storage excess capacity.
Iterator begin() const;
Iterator end() const;
std::size_t size() const;
/// Returns the size of the BLOB in bytes.
private:
Poco::SharedPtr<std::vector<char> > _pContent;
friend class BLOBStreamBuf;
};
//
// inlines
//
inline const std::vector<char>& BLOB::content() const
{
return *_pContent;
}
inline const char* BLOB::rawContent() const
{
if (_pContent->empty())
return 0;
else
return &(*_pContent)[0];
}
inline std::size_t BLOB::size() const
{
return _pContent->size();
}
inline bool BLOB::operator == (const BLOB& other) const
{
return *_pContent == *other._pContent;
}
inline bool BLOB::operator != (const BLOB& other) const
{
return *_pContent != *other._pContent;
}
inline BLOB::Iterator BLOB::begin() const
{
return _pContent->begin();
}
inline BLOB::Iterator BLOB::end() const
{
return _pContent->end();
}
inline void BLOB::assignRaw(const char* pChar, std::size_t count)
{
poco_assert_dbg (pChar);
BLOB tmp(pChar, count);
swap(tmp);
}
inline void BLOB::appendRaw(const char* pChar, std::size_t count)
{
poco_assert_dbg (pChar);
_pContent->insert(_pContent->end(), pChar, pChar+count);
}
inline void BLOB::swap(BLOB& other)
{
using std::swap;
swap(_pContent, other._pContent);
}
inline void BLOB::clear(bool doCompact)
{
_pContent->clear();
if (doCompact) compact();
}
inline void BLOB::compact()
{
std::vector<char>(*_pContent).swap(*_pContent);
}
inline void swap(BLOB& b1, BLOB& b2)
{
b1.swap(b2);
}
} } // namespace Poco::Data
namespace std
{
template<>
inline void swap<Poco::Data::BLOB>(Poco::Data::BLOB& b1,
Poco::Data::BLOB& b2)
/// Full template specalization of std:::swap for BLOB
{
b1.swap(b2);
}
}
//
// VarHolderImpl<BLOB>
//
namespace Poco {
namespace Dynamic {
template <>
class VarHolderImpl<Poco::Data::BLOB>: public VarHolder
{
public:
VarHolderImpl(const Poco::Data::BLOB& val): _val(val)
{
}
~VarHolderImpl()
{
}
const std::type_info& type() const
{
return typeid(Poco::Data::BLOB);
}
void convert(std::string& val) const
{
val.assign(_val.begin(), _val.end());
}
VarHolder* clone() const
{
return new VarHolderImpl(_val);
}
const Poco::Data::BLOB& value() const
{
return _val;
}
private:
VarHolderImpl();
Poco::Data::BLOB _val;
};
} } // namespace Poco::Dynamic
#endif // Data_BLOB_INCLUDED

View File

@@ -1,123 +0,0 @@
//
// BLOBStream.h
//
// $Id: //poco/Main/Data/include/Poco/Data/BLOBStream.h#3 $
//
// Library: Data
// Package: DataCore
// Module: BLOBStream
//
// Definition of the BLOBStream class.
//
// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// Permission is hereby granted, free of charge, to any person or organization
// obtaining a copy of the software and accompanying documentation covered by
// this license (the "Software") to use, reproduce, display, distribute,
// execute, and transmit the Software, and to prepare derivative works of the
// Software, and to permit third-parties to whom the Software is furnished to
// do so, all subject to the following:
//
// The copyright notices in the Software and this entire statement, including
// the above license grant, this restriction and the following disclaimer,
// must be included in all copies of the Software, in whole or in part, and
// all derivative works of the Software, unless such copies or derivative
// works are solely in the form of machine-executable object code generated by
// a source language processor.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
//
#ifndef Data_BLOBStream_INCLUDED
#define Data_BLOBStream_INCLUDED
#include "Poco/Foundation.h"
#include "Poco/UnbufferedStreamBuf.h"
#include "Poco/Data/BLOB.h"
#include <istream>
#include <ostream>
namespace Poco {
namespace Data {
class Data_API BLOBStreamBuf: public UnbufferedStreamBuf
/// This is the streambuf class used for reading from and writing to a BLOB.
{
public:
BLOBStreamBuf(BLOB& blob);
/// Creates BLOBStreamBuf.
~BLOBStreamBuf();
/// Destroys BLOBStreamBuf.
protected:
int_type readFromDevice();
int_type writeToDevice(char c);
private:
BLOB& _blob;
BLOB::Iterator _it;
};
class Data_API BLOBIOS: public virtual std::ios
/// The base class for BLOBInputStream and
/// BLOBOutputStream.
///
/// This class is needed to ensure the correct initialization
/// order of the stream buffer and base classes.
{
public:
BLOBIOS(BLOB& blob, openmode mode);
/// Creates the BLOBIOS with the given BLOB.
~BLOBIOS();
/// Destroys the BLOBIOS.
BLOBStreamBuf* rdbuf();
/// Returns a pointer to the internal BLOBStreamBuf.
protected:
BLOBStreamBuf _buf;
};
class Data_API BLOBOutputStream: public BLOBIOS, public std::ostream
/// An output stream for writing to a BLOB.
{
public:
BLOBOutputStream(BLOB& blob);
/// Creates the BLOBOutputStream with the given BLOB.
~BLOBOutputStream();
/// Destroys the BLOBOutputStream.
};
class Data_API BLOBInputStream: public BLOBIOS, public std::istream
/// An input stream for reading from a BLOB.
{
public:
BLOBInputStream(BLOB& blob);
/// Creates the BLOBInputStream with the given BLOB.
~BLOBInputStream();
/// Destroys the BLOBInputStream.
};
} } // namespace Poco::Data
#endif // Data_BLOBStream_INCLUDED

View File

@@ -43,7 +43,7 @@
#include "Poco/Data/Data.h"
#include "Poco/Data/AbstractExtraction.h"
#include "Poco/Data/Bulk.h"
#include "Poco/Data/Prepare.h"
#include "Poco/Data/Preparation.h"
#include <vector>
@@ -128,13 +128,13 @@ public:
{
}
AbstractPrepare* createPrepareObject(AbstractPreparation* pPrep, std::size_t col)
AbstractPreparation* createPreparation(AbstractPreparator* pPrep, std::size_t col)
{
Poco::UInt32 limit = getLimit();
if (limit != _rResult.size()) _rResult.resize(limit);
pPrep->setLength(limit);
pPrep->setBulk(true);
return new Prepare<C>(pPrep, col, _rResult);
return new Preparation<C>(pPrep, col, _rResult);
}
protected:

View File

@@ -42,7 +42,7 @@
#include "Poco/Data/Data.h"
#include "Poco/Data/AbstractExtraction.h"
#include "Poco/Data/Prepare.h"
#include "Poco/Data/Preparation.h"
#include "Poco/Data/TypeHandler.h"
#include "Poco/Data/Column.h"
#include "Poco/Data/Position.h"
@@ -130,9 +130,9 @@ public:
return !_extracted;
}
AbstractPrepare* createPrepareObject(AbstractPreparation* pPrep, std::size_t pos)
AbstractPreparation* createPreparation(AbstractPreparator* pPrep, std::size_t pos)
{
return new Prepare<T>(pPrep, pos, _rResult);
return new Preparation<T>(pPrep, pos, _rResult);
}
private:
@@ -204,9 +204,9 @@ public:
return 1u;
}
AbstractPrepare* createPrepareObject(AbstractPreparation* pPrep, std::size_t pos)
AbstractPreparation* createPreparation(AbstractPreparator* pPrep, std::size_t pos)
{
return new Prepare<T>(pPrep, pos, _default);
return new Preparation<T>(pPrep, pos, _default);
}
protected:
@@ -285,9 +285,9 @@ public:
return 1u;
}
AbstractPrepare* createPrepareObject(AbstractPreparation* pPrep, std::size_t pos)
AbstractPreparation* createPreparation(AbstractPreparator* pPrep, std::size_t pos)
{
return new Prepare<bool>(pPrep, pos, _default);
return new Preparation<bool>(pPrep, pos, _default);
}
protected:
@@ -364,9 +364,9 @@ public:
return 1u;
}
AbstractPrepare* createPrepareObject(AbstractPreparation* pPrep, std::size_t pos)
AbstractPreparation* createPreparation(AbstractPreparator* pPrep, std::size_t pos)
{
return new Prepare<T>(pPrep, pos, _default);
return new Preparation<T>(pPrep, pos, _default);
}
protected:
@@ -443,9 +443,9 @@ public:
return 1u;
}
AbstractPrepare* createPrepareObject(AbstractPreparation* pPrep, std::size_t pos)
AbstractPreparation* createPreparation(AbstractPreparator* pPrep, std::size_t pos)
{
return new Prepare<T>(pPrep, pos, _default);
return new Preparation<T>(pPrep, pos, _default);
}
protected:
@@ -576,9 +576,9 @@ public:
return 1u;
}
AbstractPrepare* createPrepareObject(AbstractPreparation* pPrep, std::size_t pos)
AbstractPreparation* createPreparation(AbstractPreparator* pPrep, std::size_t pos)
{
return new Prepare<T>(pPrep, pos, _default);
return new Preparation<T>(pPrep, pos, _default);
}
private:
@@ -635,9 +635,9 @@ public:
return 1u;
}
AbstractPrepare* createPrepareObject(AbstractPreparation* pPrep, std::size_t pos)
AbstractPreparation* createPreparation(AbstractPreparator* pPrep, std::size_t pos)
{
return new Prepare<T>(pPrep, pos, _default);
return new Preparation<T>(pPrep, pos, _default);
}
private:
@@ -694,9 +694,9 @@ public:
return 1u;
}
AbstractPrepare* createPrepareObject(AbstractPreparation* pPrep, std::size_t pos)
AbstractPreparation* createPreparation(AbstractPreparator* pPrep, std::size_t pos)
{
return new Prepare<V>(pPrep, pos, _default);
return new Preparation<V>(pPrep, pos, _default);
}
private:
@@ -753,9 +753,9 @@ public:
return 1u;
}
AbstractPrepare* createPrepareObject(AbstractPreparation* pPrep, std::size_t pos)
AbstractPreparation* createPreparation(AbstractPreparator* pPrep, std::size_t pos)
{
return new Prepare<V>(pPrep, pos, _default);
return new Preparation<V>(pPrep, pos, _default);
}
private:

View File

@@ -67,6 +67,7 @@ public:
FDT_DOUBLE,
FDT_STRING,
FDT_BLOB,
FDT_CLOB,
FDT_DATE,
FDT_TIME,
FDT_TIMESTAMP,

View File

@@ -1,13 +1,13 @@
//
// Prepare.h
// Preparation.h
//
// $Id: //poco/Main/Data/include/Poco/Data/Prepare.h#8 $
// $Id: //poco/Main/Data/include/Poco/Data/Preparation.h#8 $
//
// Library: Data
// Package: DataCore
// Module: Prepare
// Module: Preparation
//
// Definition of the Prepare class.
// Definition of the Preparation class.
//
// Copyright (c) 2006, Applied Informatics Software Engineering GmbH.
// and Contributors.
@@ -36,12 +36,12 @@
//
#ifndef Data_Prepare_INCLUDED
#define Data_Prepare_INCLUDED
#ifndef Data_Preparation_INCLUDED
#define Data_Preparation_INCLUDED
#include "Poco/Data/Data.h"
#include "Poco/Data/AbstractPrepare.h"
#include "Poco/Data/AbstractPreparation.h"
#include "Poco/Data/TypeHandler.h"
#include <cstddef>
#include <vector>
@@ -52,25 +52,25 @@ namespace Data {
template<typename T>
class Prepare: public AbstractPrepare
/// Class for calling the appropriate AbstractPreparation method.
class Preparation: public AbstractPreparation
/// Class for calling the appropriate AbstractPreparator method.
{
public:
Prepare(AbstractPreparation* pPrepare, std::size_t pos, T& val):
AbstractPrepare(pPrepare),
Preparation(AbstractPreparator* pPreparator, std::size_t pos, T& val):
AbstractPreparation(pPreparator),
_pos(pos),
_val(val)
/// Creates the Prepare.
/// Creates the Preparation.
{
}
~Prepare()
/// Destroys the Prepare.
~Preparation()
/// Destroys the Preparation.
{
}
void prepare()
/// Prepares data.
/// Preparations data.
{
TypeHandler<T>::prepare(_pos, _val, preparation());
}
@@ -82,27 +82,27 @@ private:
template<typename T>
class Prepare<std::vector<T> >: public AbstractPrepare
/// Prepare specialization for std::vector.
class Preparation<std::vector<T> >: public AbstractPreparation
/// Preparation specialization for std::vector.
/// This specialization is needed for bulk operations to enforce
/// the whole vector preparation, rather than only individual contained values.
{
public:
Prepare(AbstractPreparation* pPrepare, std::size_t pos, std::vector<T>& val = std::vector<T>()):
AbstractPrepare(pPrepare),
Preparation(AbstractPreparator* pPreparator, std::size_t pos, std::vector<T>& val = std::vector<T>()):
AbstractPreparation(pPreparator),
_pos(pos),
_val(val)
/// Creates the Prepare.
/// Creates the Preparation.
{
}
~Prepare()
/// Destroys the Prepare.
~Preparation()
/// Destroys the Preparation.
{
}
void prepare()
/// Prepares data.
/// Preparations data.
{
TypeHandler<std::vector<T> >::prepare(_pos, _val, preparation());
}
@@ -114,27 +114,27 @@ private:
template<typename T>
class Prepare<std::deque<T> >: public AbstractPrepare
/// Prepare specialization for std::deque.
class Preparation<std::deque<T> >: public AbstractPreparation
/// Preparation specialization for std::deque.
/// This specialization is needed for bulk operations to enforce
/// the whole deque preparation, rather than only individual contained values.
{
public:
Prepare(AbstractPreparation* pPrepare, std::size_t pos, std::deque<T>& val = std::deque<T>()):
AbstractPrepare(pPrepare),
Preparation(AbstractPreparator* pPreparator, std::size_t pos, std::deque<T>& val = std::deque<T>()):
AbstractPreparation(pPreparator),
_pos(pos),
_val(val)
/// Creates the Prepare.
/// Creates the Preparation.
{
}
~Prepare()
/// Destroys the Prepare.
~Preparation()
/// Destroys the Preparation.
{
}
void prepare()
/// Prepares data.
/// Preparations data.
{
TypeHandler<std::deque<T> >::prepare(_pos, _val, preparation());
}
@@ -146,27 +146,27 @@ private:
template<typename T>
class Prepare<std::list<T> >: public AbstractPrepare
/// Prepare specialization for std::list.
class Preparation<std::list<T> >: public AbstractPreparation
/// Preparation specialization for std::list.
/// This specialization is needed for bulk operations to enforce
/// the whole list preparation, rather than only individual contained values.
{
public:
Prepare(AbstractPreparation* pPrepare, std::size_t pos, std::list<T>& val = std::list<T>()):
AbstractPrepare(pPrepare),
Preparation(AbstractPreparator* pPreparator, std::size_t pos, std::list<T>& val = std::list<T>()):
AbstractPreparation(pPreparator),
_pos(pos),
_val(val)
/// Creates the Prepare.
/// Creates the Preparation.
{
}
~Prepare()
/// Destroys the Prepare.
~Preparation()
/// Destroys the Preparation.
{
}
void prepare()
/// Prepares data.
/// Preparations data.
{
TypeHandler<std::list<T> >::prepare(_pos, _val, preparation());
}
@@ -180,4 +180,4 @@ private:
} } // namespace Poco::Data
#endif // Data_Prepare_INCLUDED
#endif // Data_Preparation_INCLUDED

View File

@@ -45,7 +45,7 @@
#include "Poco/Data/BulkExtraction.h"
#include "Poco/Data/Statement.h"
#include "Poco/Data/RowIterator.h"
#include "Poco/Data/BLOB.h"
#include "Poco/Data/LOB.h"
#include "Poco/String.h"
#include "Poco/Dynamic/Var.h"
#include "Poco/Exception.h"
@@ -173,18 +173,18 @@ public:
{
case STORAGE_VECTOR:
{
typedef std::vector<T> C;
typedef typename std::vector<T> C;
return column<C>(col).value(row);
}
case STORAGE_LIST:
{
typedef std::list<T> C;
typedef typename std::list<T> C;
return column<C>(col).value(row);
}
case STORAGE_DEQUE:
case STORAGE_UNKNOWN:
{
typedef std::deque<T> C;
typedef typename std::deque<T> C;
return column<C>(col).value(row);
}
default:
@@ -203,18 +203,18 @@ public:
{
case STORAGE_VECTOR:
{
typedef std::vector<T> C;
typedef typename std::vector<T> C;
return column<C>(name).value(row);
}
case STORAGE_LIST:
{
typedef std::list<T> C;
typedef typename std::list<T> C;
return column<C>(name).value(row);
}
case STORAGE_DEQUE:
case STORAGE_UNKNOWN:
{
typedef std::deque<T> C;
typedef typename std::deque<T> C;
return column<C>(name).value(row);
}
default:

View File

@@ -43,7 +43,7 @@
#include "Poco/Data/Data.h"
#include "Poco/Data/AbstractBinder.h"
#include "Poco/Data/AbstractExtractor.h"
#include "Poco/Data/AbstractPreparation.h"
#include "Poco/Data/AbstractPreparator.h"
#include "Poco/Data/Nullable.h"
#include "Poco/Tuple.h"
#include "Poco/AutoPtr.h"
@@ -103,13 +103,13 @@ class TypeHandler: public AbstractTypeHandler
/// TypeHandler<int>::bind(pos++, obj.getAge(), pBinder);
/// }
///
/// static void prepare(std::size_t pos, const Person& obj, AbstractPreparation* pPrepare)
/// static void prepare(std::size_t pos, const Person& obj, AbstractPreparator* pPreparator)
/// {
/// // the table is defined as Person (LastName VARCHAR(30), FirstName VARCHAR, Age INTEGER(3))
/// poco_assert_dbg (pPrepare != 0);
/// TypeHandler<std::string>::prepare(pos++, obj.getLastName(), pPrepare);
/// TypeHandler<std::string>::prepare(pos++, obj.getFirstName(), pPrepare);
/// TypeHandler<int>::prepare(pos++, obj.getAge(), pPrepare);
/// poco_assert_dbg (pPreparator != 0);
/// TypeHandler<std::string>::prepare(pos++, obj.getLastName(), pPreparator);
/// TypeHandler<std::string>::prepare(pos++, obj.getFirstName(), pPreparator);
/// TypeHandler<int>::prepare(pos++, obj.getAge(), pPreparator);
/// }
///
/// static void extract(std::size_t pos, Person& obj, const Person& defVal, AbstractExtractor* pExt)
@@ -151,10 +151,10 @@ public:
if (!pExt->extract(pos, obj)) obj = defVal;
}
static void prepare(std::size_t pos, T& obj, AbstractPreparation* pPrepare)
static void prepare(std::size_t pos, T& obj, AbstractPreparator* pPreparator)
{
poco_assert_dbg (pPrepare != 0);
pPrepare->prepare(pos, obj);
poco_assert_dbg (pPreparator != 0);
pPreparator->prepare(pos, obj);
}
private:
@@ -186,10 +186,10 @@ public:
obj.assign(obj.size(), defVal);
}
static void prepare(std::size_t pos, std::deque<T>& obj, AbstractPreparation* pPrepare)
static void prepare(std::size_t pos, std::deque<T>& obj, AbstractPreparator* pPreparator)
{
poco_assert_dbg (pPrepare != 0);
pPrepare->prepare(pos, obj);
poco_assert_dbg (pPreparator != 0);
pPreparator->prepare(pos, obj);
}
private:
@@ -221,10 +221,10 @@ public:
obj.assign(obj.size(), defVal);
}
static void prepare(std::size_t pos, std::vector<T>& obj, AbstractPreparation* pPrepare)
static void prepare(std::size_t pos, std::vector<T>& obj, AbstractPreparator* pPreparator)
{
poco_assert_dbg (pPrepare != 0);
pPrepare->prepare(pos, obj);
poco_assert_dbg (pPreparator != 0);
pPreparator->prepare(pos, obj);
}
private:
@@ -256,10 +256,10 @@ public:
obj.assign(obj.size(), defVal);
}
static void prepare(std::size_t pos, std::list<T>& obj, AbstractPreparation* pPrepare)
static void prepare(std::size_t pos, std::list<T>& obj, AbstractPreparator* pPreparator)
{
poco_assert_dbg (pPrepare != 0);
pPrepare->prepare(pos, obj);
poco_assert_dbg (pPreparator != 0);
pPreparator->prepare(pos, obj);
}
private:
@@ -286,16 +286,16 @@ public:
}
}
static void prepare(std::size_t pos, Nullable<T>& obj, AbstractPreparation* pPrepare)
static void prepare(std::size_t pos, Nullable<T>& obj, AbstractPreparator* pPreparator)
{
poco_assert_dbg (pPrepare != 0);
poco_assert_dbg (pPreparator != 0);
if (obj.isNull())
{
pPrepare->prepare(pos++, (Poco::Any&)Poco::Data::Keywords::null);
pPreparator->prepare(pos++, (Poco::Any&)Poco::Data::Keywords::null);
}
else
{
pPrepare->prepare(pos++, (T&)obj.getValue());
pPreparator->prepare(pos++, (T&)obj.getValue());
}
}
@@ -382,29 +382,29 @@ public:
TypeHandler<T19>::bind(pos++, tuple.template get<19>(), pBinder, dir);
}
static void prepare(std::size_t pos, TupleRef tuple, AbstractPreparation* pPrepare)
static void prepare(std::size_t pos, TupleRef tuple, AbstractPreparator* pPreparator)
{
poco_assert (pPrepare != 0);
TypeHandler<T0>::prepare(pos++, tuple.template get<0>(), pPrepare);
TypeHandler<T1>::prepare(pos++, tuple.template get<1>(), pPrepare);
TypeHandler<T2>::prepare(pos++, tuple.template get<2>(), pPrepare);
TypeHandler<T3>::prepare(pos++, tuple.template get<3>(), pPrepare);
TypeHandler<T4>::prepare(pos++, tuple.template get<4>(), pPrepare);
TypeHandler<T5>::prepare(pos++, tuple.template get<5>(), pPrepare);
TypeHandler<T6>::prepare(pos++, tuple.template get<6>(), pPrepare);
TypeHandler<T7>::prepare(pos++, tuple.template get<7>(), pPrepare);
TypeHandler<T8>::prepare(pos++, tuple.template get<8>(), pPrepare);
TypeHandler<T9>::prepare(pos++, tuple.template get<9>(), pPrepare);
TypeHandler<T10>::prepare(pos++, tuple.template get<10>(), pPrepare);
TypeHandler<T11>::prepare(pos++, tuple.template get<11>(), pPrepare);
TypeHandler<T12>::prepare(pos++, tuple.template get<12>(), pPrepare);
TypeHandler<T13>::prepare(pos++, tuple.template get<13>(), pPrepare);
TypeHandler<T14>::prepare(pos++, tuple.template get<14>(), pPrepare);
TypeHandler<T15>::prepare(pos++, tuple.template get<15>(), pPrepare);
TypeHandler<T16>::prepare(pos++, tuple.template get<16>(), pPrepare);
TypeHandler<T17>::prepare(pos++, tuple.template get<17>(), pPrepare);
TypeHandler<T18>::prepare(pos++, tuple.template get<18>(), pPrepare);
TypeHandler<T19>::prepare(pos++, tuple.template get<19>(), pPrepare);
poco_assert (pPreparator != 0);
TypeHandler<T0>::prepare(pos++, tuple.template get<0>(), pPreparator);
TypeHandler<T1>::prepare(pos++, tuple.template get<1>(), pPreparator);
TypeHandler<T2>::prepare(pos++, tuple.template get<2>(), pPreparator);
TypeHandler<T3>::prepare(pos++, tuple.template get<3>(), pPreparator);
TypeHandler<T4>::prepare(pos++, tuple.template get<4>(), pPreparator);
TypeHandler<T5>::prepare(pos++, tuple.template get<5>(), pPreparator);
TypeHandler<T6>::prepare(pos++, tuple.template get<6>(), pPreparator);
TypeHandler<T7>::prepare(pos++, tuple.template get<7>(), pPreparator);
TypeHandler<T8>::prepare(pos++, tuple.template get<8>(), pPreparator);
TypeHandler<T9>::prepare(pos++, tuple.template get<9>(), pPreparator);
TypeHandler<T10>::prepare(pos++, tuple.template get<10>(), pPreparator);
TypeHandler<T11>::prepare(pos++, tuple.template get<11>(), pPreparator);
TypeHandler<T12>::prepare(pos++, tuple.template get<12>(), pPreparator);
TypeHandler<T13>::prepare(pos++, tuple.template get<13>(), pPreparator);
TypeHandler<T14>::prepare(pos++, tuple.template get<14>(), pPreparator);
TypeHandler<T15>::prepare(pos++, tuple.template get<15>(), pPreparator);
TypeHandler<T16>::prepare(pos++, tuple.template get<16>(), pPreparator);
TypeHandler<T17>::prepare(pos++, tuple.template get<17>(), pPreparator);
TypeHandler<T18>::prepare(pos++, tuple.template get<18>(), pPreparator);
TypeHandler<T19>::prepare(pos++, tuple.template get<19>(), pPreparator);
}
static std::size_t size()
@@ -492,28 +492,28 @@ public:
TypeHandler<T18>::bind(pos++, tuple.template get<18>(), pBinder, dir);
}
static void prepare(std::size_t pos, TupleRef tuple, AbstractPreparation* pPrepare)
static void prepare(std::size_t pos, TupleRef tuple, AbstractPreparator* pPreparator)
{
poco_assert (pPrepare != 0);
TypeHandler<T0>::prepare(pos++, tuple.template get<0>(), pPrepare);
TypeHandler<T1>::prepare(pos++, tuple.template get<1>(), pPrepare);
TypeHandler<T2>::prepare(pos++, tuple.template get<2>(), pPrepare);
TypeHandler<T3>::prepare(pos++, tuple.template get<3>(), pPrepare);
TypeHandler<T4>::prepare(pos++, tuple.template get<4>(), pPrepare);
TypeHandler<T5>::prepare(pos++, tuple.template get<5>(), pPrepare);
TypeHandler<T6>::prepare(pos++, tuple.template get<6>(), pPrepare);
TypeHandler<T7>::prepare(pos++, tuple.template get<7>(), pPrepare);
TypeHandler<T8>::prepare(pos++, tuple.template get<8>(), pPrepare);
TypeHandler<T9>::prepare(pos++, tuple.template get<9>(), pPrepare);
TypeHandler<T10>::prepare(pos++, tuple.template get<10>(), pPrepare);
TypeHandler<T11>::prepare(pos++, tuple.template get<11>(), pPrepare);
TypeHandler<T12>::prepare(pos++, tuple.template get<12>(), pPrepare);
TypeHandler<T13>::prepare(pos++, tuple.template get<13>(), pPrepare);
TypeHandler<T14>::prepare(pos++, tuple.template get<14>(), pPrepare);
TypeHandler<T15>::prepare(pos++, tuple.template get<15>(), pPrepare);
TypeHandler<T16>::prepare(pos++, tuple.template get<16>(), pPrepare);
TypeHandler<T17>::prepare(pos++, tuple.template get<17>(), pPrepare);
TypeHandler<T18>::prepare(pos++, tuple.template get<18>(), pPrepare);
poco_assert (pPreparator != 0);
TypeHandler<T0>::prepare(pos++, tuple.template get<0>(), pPreparator);
TypeHandler<T1>::prepare(pos++, tuple.template get<1>(), pPreparator);
TypeHandler<T2>::prepare(pos++, tuple.template get<2>(), pPreparator);
TypeHandler<T3>::prepare(pos++, tuple.template get<3>(), pPreparator);
TypeHandler<T4>::prepare(pos++, tuple.template get<4>(), pPreparator);
TypeHandler<T5>::prepare(pos++, tuple.template get<5>(), pPreparator);
TypeHandler<T6>::prepare(pos++, tuple.template get<6>(), pPreparator);
TypeHandler<T7>::prepare(pos++, tuple.template get<7>(), pPreparator);
TypeHandler<T8>::prepare(pos++, tuple.template get<8>(), pPreparator);
TypeHandler<T9>::prepare(pos++, tuple.template get<9>(), pPreparator);
TypeHandler<T10>::prepare(pos++, tuple.template get<10>(), pPreparator);
TypeHandler<T11>::prepare(pos++, tuple.template get<11>(), pPreparator);
TypeHandler<T12>::prepare(pos++, tuple.template get<12>(), pPreparator);
TypeHandler<T13>::prepare(pos++, tuple.template get<13>(), pPreparator);
TypeHandler<T14>::prepare(pos++, tuple.template get<14>(), pPreparator);
TypeHandler<T15>::prepare(pos++, tuple.template get<15>(), pPreparator);
TypeHandler<T16>::prepare(pos++, tuple.template get<16>(), pPreparator);
TypeHandler<T17>::prepare(pos++, tuple.template get<17>(), pPreparator);
TypeHandler<T18>::prepare(pos++, tuple.template get<18>(), pPreparator);
}
static std::size_t size()
@@ -598,27 +598,27 @@ public:
TypeHandler<T17>::bind(pos++, tuple.template get<17>(), pBinder, dir);
}
static void prepare(std::size_t pos, TupleRef tuple, AbstractPreparation* pPrepare)
static void prepare(std::size_t pos, TupleRef tuple, AbstractPreparator* pPreparator)
{
poco_assert (pPrepare != 0);
TypeHandler<T0>::prepare(pos++, tuple.template get<0>(), pPrepare);
TypeHandler<T1>::prepare(pos++, tuple.template get<1>(), pPrepare);
TypeHandler<T2>::prepare(pos++, tuple.template get<2>(), pPrepare);
TypeHandler<T3>::prepare(pos++, tuple.template get<3>(), pPrepare);
TypeHandler<T4>::prepare(pos++, tuple.template get<4>(), pPrepare);
TypeHandler<T5>::prepare(pos++, tuple.template get<5>(), pPrepare);
TypeHandler<T6>::prepare(pos++, tuple.template get<6>(), pPrepare);
TypeHandler<T7>::prepare(pos++, tuple.template get<7>(), pPrepare);
TypeHandler<T8>::prepare(pos++, tuple.template get<8>(), pPrepare);
TypeHandler<T9>::prepare(pos++, tuple.template get<9>(), pPrepare);
TypeHandler<T10>::prepare(pos++, tuple.template get<10>(), pPrepare);
TypeHandler<T11>::prepare(pos++, tuple.template get<11>(), pPrepare);
TypeHandler<T12>::prepare(pos++, tuple.template get<12>(), pPrepare);
TypeHandler<T13>::prepare(pos++, tuple.template get<13>(), pPrepare);
TypeHandler<T14>::prepare(pos++, tuple.template get<14>(), pPrepare);
TypeHandler<T15>::prepare(pos++, tuple.template get<15>(), pPrepare);
TypeHandler<T16>::prepare(pos++, tuple.template get<16>(), pPrepare);
TypeHandler<T17>::prepare(pos++, tuple.template get<17>(), pPrepare);
poco_assert (pPreparator != 0);
TypeHandler<T0>::prepare(pos++, tuple.template get<0>(), pPreparator);
TypeHandler<T1>::prepare(pos++, tuple.template get<1>(), pPreparator);
TypeHandler<T2>::prepare(pos++, tuple.template get<2>(), pPreparator);
TypeHandler<T3>::prepare(pos++, tuple.template get<3>(), pPreparator);
TypeHandler<T4>::prepare(pos++, tuple.template get<4>(), pPreparator);
TypeHandler<T5>::prepare(pos++, tuple.template get<5>(), pPreparator);
TypeHandler<T6>::prepare(pos++, tuple.template get<6>(), pPreparator);
TypeHandler<T7>::prepare(pos++, tuple.template get<7>(), pPreparator);
TypeHandler<T8>::prepare(pos++, tuple.template get<8>(), pPreparator);
TypeHandler<T9>::prepare(pos++, tuple.template get<9>(), pPreparator);
TypeHandler<T10>::prepare(pos++, tuple.template get<10>(), pPreparator);
TypeHandler<T11>::prepare(pos++, tuple.template get<11>(), pPreparator);
TypeHandler<T12>::prepare(pos++, tuple.template get<12>(), pPreparator);
TypeHandler<T13>::prepare(pos++, tuple.template get<13>(), pPreparator);
TypeHandler<T14>::prepare(pos++, tuple.template get<14>(), pPreparator);
TypeHandler<T15>::prepare(pos++, tuple.template get<15>(), pPreparator);
TypeHandler<T16>::prepare(pos++, tuple.template get<16>(), pPreparator);
TypeHandler<T17>::prepare(pos++, tuple.template get<17>(), pPreparator);
}
static std::size_t size()
@@ -700,26 +700,26 @@ public:
TypeHandler<T16>::bind(pos++, tuple.template get<16>(), pBinder, dir);
}
static void prepare(std::size_t pos, TupleRef tuple, AbstractPreparation* pPrepare)
static void prepare(std::size_t pos, TupleRef tuple, AbstractPreparator* pPreparator)
{
poco_assert (pPrepare != 0);
TypeHandler<T0>::prepare(pos++, tuple.template get<0>(), pPrepare);
TypeHandler<T1>::prepare(pos++, tuple.template get<1>(), pPrepare);
TypeHandler<T2>::prepare(pos++, tuple.template get<2>(), pPrepare);
TypeHandler<T3>::prepare(pos++, tuple.template get<3>(), pPrepare);
TypeHandler<T4>::prepare(pos++, tuple.template get<4>(), pPrepare);
TypeHandler<T5>::prepare(pos++, tuple.template get<5>(), pPrepare);
TypeHandler<T6>::prepare(pos++, tuple.template get<6>(), pPrepare);
TypeHandler<T7>::prepare(pos++, tuple.template get<7>(), pPrepare);
TypeHandler<T8>::prepare(pos++, tuple.template get<8>(), pPrepare);
TypeHandler<T9>::prepare(pos++, tuple.template get<9>(), pPrepare);
TypeHandler<T10>::prepare(pos++, tuple.template get<10>(), pPrepare);
TypeHandler<T11>::prepare(pos++, tuple.template get<11>(), pPrepare);
TypeHandler<T12>::prepare(pos++, tuple.template get<12>(), pPrepare);
TypeHandler<T13>::prepare(pos++, tuple.template get<13>(), pPrepare);
TypeHandler<T14>::prepare(pos++, tuple.template get<14>(), pPrepare);
TypeHandler<T15>::prepare(pos++, tuple.template get<15>(), pPrepare);
TypeHandler<T16>::prepare(pos++, tuple.template get<16>(), pPrepare);
poco_assert (pPreparator != 0);
TypeHandler<T0>::prepare(pos++, tuple.template get<0>(), pPreparator);
TypeHandler<T1>::prepare(pos++, tuple.template get<1>(), pPreparator);
TypeHandler<T2>::prepare(pos++, tuple.template get<2>(), pPreparator);
TypeHandler<T3>::prepare(pos++, tuple.template get<3>(), pPreparator);
TypeHandler<T4>::prepare(pos++, tuple.template get<4>(), pPreparator);
TypeHandler<T5>::prepare(pos++, tuple.template get<5>(), pPreparator);
TypeHandler<T6>::prepare(pos++, tuple.template get<6>(), pPreparator);
TypeHandler<T7>::prepare(pos++, tuple.template get<7>(), pPreparator);
TypeHandler<T8>::prepare(pos++, tuple.template get<8>(), pPreparator);
TypeHandler<T9>::prepare(pos++, tuple.template get<9>(), pPreparator);
TypeHandler<T10>::prepare(pos++, tuple.template get<10>(), pPreparator);
TypeHandler<T11>::prepare(pos++, tuple.template get<11>(), pPreparator);
TypeHandler<T12>::prepare(pos++, tuple.template get<12>(), pPreparator);
TypeHandler<T13>::prepare(pos++, tuple.template get<13>(), pPreparator);
TypeHandler<T14>::prepare(pos++, tuple.template get<14>(), pPreparator);
TypeHandler<T15>::prepare(pos++, tuple.template get<15>(), pPreparator);
TypeHandler<T16>::prepare(pos++, tuple.template get<16>(), pPreparator);
}
static std::size_t size()
@@ -798,25 +798,25 @@ public:
TypeHandler<T15>::bind(pos++, tuple.template get<15>(), pBinder, dir);
}
static void prepare(std::size_t pos, TupleRef tuple, AbstractPreparation* pPrepare)
static void prepare(std::size_t pos, TupleRef tuple, AbstractPreparator* pPreparator)
{
poco_assert (pPrepare != 0);
TypeHandler<T0>::prepare(pos++, tuple.template get<0>(), pPrepare);
TypeHandler<T1>::prepare(pos++, tuple.template get<1>(), pPrepare);
TypeHandler<T2>::prepare(pos++, tuple.template get<2>(), pPrepare);
TypeHandler<T3>::prepare(pos++, tuple.template get<3>(), pPrepare);
TypeHandler<T4>::prepare(pos++, tuple.template get<4>(), pPrepare);
TypeHandler<T5>::prepare(pos++, tuple.template get<5>(), pPrepare);
TypeHandler<T6>::prepare(pos++, tuple.template get<6>(), pPrepare);
TypeHandler<T7>::prepare(pos++, tuple.template get<7>(), pPrepare);
TypeHandler<T8>::prepare(pos++, tuple.template get<8>(), pPrepare);
TypeHandler<T9>::prepare(pos++, tuple.template get<9>(), pPrepare);
TypeHandler<T10>::prepare(pos++, tuple.template get<10>(), pPrepare);
TypeHandler<T11>::prepare(pos++, tuple.template get<11>(), pPrepare);
TypeHandler<T12>::prepare(pos++, tuple.template get<12>(), pPrepare);
TypeHandler<T13>::prepare(pos++, tuple.template get<13>(), pPrepare);
TypeHandler<T14>::prepare(pos++, tuple.template get<14>(), pPrepare);
TypeHandler<T15>::prepare(pos++, tuple.template get<15>(), pPrepare);
poco_assert (pPreparator != 0);
TypeHandler<T0>::prepare(pos++, tuple.template get<0>(), pPreparator);
TypeHandler<T1>::prepare(pos++, tuple.template get<1>(), pPreparator);
TypeHandler<T2>::prepare(pos++, tuple.template get<2>(), pPreparator);
TypeHandler<T3>::prepare(pos++, tuple.template get<3>(), pPreparator);
TypeHandler<T4>::prepare(pos++, tuple.template get<4>(), pPreparator);
TypeHandler<T5>::prepare(pos++, tuple.template get<5>(), pPreparator);
TypeHandler<T6>::prepare(pos++, tuple.template get<6>(), pPreparator);
TypeHandler<T7>::prepare(pos++, tuple.template get<7>(), pPreparator);
TypeHandler<T8>::prepare(pos++, tuple.template get<8>(), pPreparator);
TypeHandler<T9>::prepare(pos++, tuple.template get<9>(), pPreparator);
TypeHandler<T10>::prepare(pos++, tuple.template get<10>(), pPreparator);
TypeHandler<T11>::prepare(pos++, tuple.template get<11>(), pPreparator);
TypeHandler<T12>::prepare(pos++, tuple.template get<12>(), pPreparator);
TypeHandler<T13>::prepare(pos++, tuple.template get<13>(), pPreparator);
TypeHandler<T14>::prepare(pos++, tuple.template get<14>(), pPreparator);
TypeHandler<T15>::prepare(pos++, tuple.template get<15>(), pPreparator);
}
static std::size_t size()
@@ -892,24 +892,24 @@ public:
TypeHandler<T14>::bind(pos++, tuple.template get<14>(), pBinder, dir);
}
static void prepare(std::size_t pos, TupleRef tuple, AbstractPreparation* pPrepare)
static void prepare(std::size_t pos, TupleRef tuple, AbstractPreparator* pPreparator)
{
poco_assert (pPrepare != 0);
TypeHandler<T0>::prepare(pos++, tuple.template get<0>(), pPrepare);
TypeHandler<T1>::prepare(pos++, tuple.template get<1>(), pPrepare);
TypeHandler<T2>::prepare(pos++, tuple.template get<2>(), pPrepare);
TypeHandler<T3>::prepare(pos++, tuple.template get<3>(), pPrepare);
TypeHandler<T4>::prepare(pos++, tuple.template get<4>(), pPrepare);
TypeHandler<T5>::prepare(pos++, tuple.template get<5>(), pPrepare);
TypeHandler<T6>::prepare(pos++, tuple.template get<6>(), pPrepare);
TypeHandler<T7>::prepare(pos++, tuple.template get<7>(), pPrepare);
TypeHandler<T8>::prepare(pos++, tuple.template get<8>(), pPrepare);
TypeHandler<T9>::prepare(pos++, tuple.template get<9>(), pPrepare);
TypeHandler<T10>::prepare(pos++, tuple.template get<10>(), pPrepare);
TypeHandler<T11>::prepare(pos++, tuple.template get<11>(), pPrepare);
TypeHandler<T12>::prepare(pos++, tuple.template get<12>(), pPrepare);
TypeHandler<T13>::prepare(pos++, tuple.template get<13>(), pPrepare);
TypeHandler<T14>::prepare(pos++, tuple.template get<14>(), pPrepare);
poco_assert (pPreparator != 0);
TypeHandler<T0>::prepare(pos++, tuple.template get<0>(), pPreparator);
TypeHandler<T1>::prepare(pos++, tuple.template get<1>(), pPreparator);
TypeHandler<T2>::prepare(pos++, tuple.template get<2>(), pPreparator);
TypeHandler<T3>::prepare(pos++, tuple.template get<3>(), pPreparator);
TypeHandler<T4>::prepare(pos++, tuple.template get<4>(), pPreparator);
TypeHandler<T5>::prepare(pos++, tuple.template get<5>(), pPreparator);
TypeHandler<T6>::prepare(pos++, tuple.template get<6>(), pPreparator);
TypeHandler<T7>::prepare(pos++, tuple.template get<7>(), pPreparator);
TypeHandler<T8>::prepare(pos++, tuple.template get<8>(), pPreparator);
TypeHandler<T9>::prepare(pos++, tuple.template get<9>(), pPreparator);
TypeHandler<T10>::prepare(pos++, tuple.template get<10>(), pPreparator);
TypeHandler<T11>::prepare(pos++, tuple.template get<11>(), pPreparator);
TypeHandler<T12>::prepare(pos++, tuple.template get<12>(), pPreparator);
TypeHandler<T13>::prepare(pos++, tuple.template get<13>(), pPreparator);
TypeHandler<T14>::prepare(pos++, tuple.template get<14>(), pPreparator);
}
static std::size_t size()
@@ -982,23 +982,23 @@ public:
TypeHandler<T13>::bind(pos++, tuple.template get<13>(), pBinder, dir);
}
static void prepare(std::size_t pos, TupleRef tuple, AbstractPreparation* pPrepare)
static void prepare(std::size_t pos, TupleRef tuple, AbstractPreparator* pPreparator)
{
poco_assert (pPrepare != 0);
TypeHandler<T0>::prepare(pos++, tuple.template get<0>(), pPrepare);
TypeHandler<T1>::prepare(pos++, tuple.template get<1>(), pPrepare);
TypeHandler<T2>::prepare(pos++, tuple.template get<2>(), pPrepare);
TypeHandler<T3>::prepare(pos++, tuple.template get<3>(), pPrepare);
TypeHandler<T4>::prepare(pos++, tuple.template get<4>(), pPrepare);
TypeHandler<T5>::prepare(pos++, tuple.template get<5>(), pPrepare);
TypeHandler<T6>::prepare(pos++, tuple.template get<6>(), pPrepare);
TypeHandler<T7>::prepare(pos++, tuple.template get<7>(), pPrepare);
TypeHandler<T8>::prepare(pos++, tuple.template get<8>(), pPrepare);
TypeHandler<T9>::prepare(pos++, tuple.template get<9>(), pPrepare);
TypeHandler<T10>::prepare(pos++, tuple.template get<10>(), pPrepare);
TypeHandler<T11>::prepare(pos++, tuple.template get<11>(), pPrepare);
TypeHandler<T12>::prepare(pos++, tuple.template get<12>(), pPrepare);
TypeHandler<T13>::prepare(pos++, tuple.template get<13>(), pPrepare);
poco_assert (pPreparator != 0);
TypeHandler<T0>::prepare(pos++, tuple.template get<0>(), pPreparator);
TypeHandler<T1>::prepare(pos++, tuple.template get<1>(), pPreparator);
TypeHandler<T2>::prepare(pos++, tuple.template get<2>(), pPreparator);
TypeHandler<T3>::prepare(pos++, tuple.template get<3>(), pPreparator);
TypeHandler<T4>::prepare(pos++, tuple.template get<4>(), pPreparator);
TypeHandler<T5>::prepare(pos++, tuple.template get<5>(), pPreparator);
TypeHandler<T6>::prepare(pos++, tuple.template get<6>(), pPreparator);
TypeHandler<T7>::prepare(pos++, tuple.template get<7>(), pPreparator);
TypeHandler<T8>::prepare(pos++, tuple.template get<8>(), pPreparator);
TypeHandler<T9>::prepare(pos++, tuple.template get<9>(), pPreparator);
TypeHandler<T10>::prepare(pos++, tuple.template get<10>(), pPreparator);
TypeHandler<T11>::prepare(pos++, tuple.template get<11>(), pPreparator);
TypeHandler<T12>::prepare(pos++, tuple.template get<12>(), pPreparator);
TypeHandler<T13>::prepare(pos++, tuple.template get<13>(), pPreparator);
}
static std::size_t size()
@@ -1068,22 +1068,22 @@ public:
TypeHandler<T12>::bind(pos++, tuple.template get<12>(), pBinder, dir);
}
static void prepare(std::size_t pos, TupleRef tuple, AbstractPreparation* pPrepare)
static void prepare(std::size_t pos, TupleRef tuple, AbstractPreparator* pPreparator)
{
poco_assert (pPrepare != 0);
TypeHandler<T0>::prepare(pos++, tuple.template get<0>(), pPrepare);
TypeHandler<T1>::prepare(pos++, tuple.template get<1>(), pPrepare);
TypeHandler<T2>::prepare(pos++, tuple.template get<2>(), pPrepare);
TypeHandler<T3>::prepare(pos++, tuple.template get<3>(), pPrepare);
TypeHandler<T4>::prepare(pos++, tuple.template get<4>(), pPrepare);
TypeHandler<T5>::prepare(pos++, tuple.template get<5>(), pPrepare);
TypeHandler<T6>::prepare(pos++, tuple.template get<6>(), pPrepare);
TypeHandler<T7>::prepare(pos++, tuple.template get<7>(), pPrepare);
TypeHandler<T8>::prepare(pos++, tuple.template get<8>(), pPrepare);
TypeHandler<T9>::prepare(pos++, tuple.template get<9>(), pPrepare);
TypeHandler<T10>::prepare(pos++, tuple.template get<10>(), pPrepare);
TypeHandler<T11>::prepare(pos++, tuple.template get<11>(), pPrepare);
TypeHandler<T12>::prepare(pos++, tuple.template get<12>(), pPrepare);
poco_assert (pPreparator != 0);
TypeHandler<T0>::prepare(pos++, tuple.template get<0>(), pPreparator);
TypeHandler<T1>::prepare(pos++, tuple.template get<1>(), pPreparator);
TypeHandler<T2>::prepare(pos++, tuple.template get<2>(), pPreparator);
TypeHandler<T3>::prepare(pos++, tuple.template get<3>(), pPreparator);
TypeHandler<T4>::prepare(pos++, tuple.template get<4>(), pPreparator);
TypeHandler<T5>::prepare(pos++, tuple.template get<5>(), pPreparator);
TypeHandler<T6>::prepare(pos++, tuple.template get<6>(), pPreparator);
TypeHandler<T7>::prepare(pos++, tuple.template get<7>(), pPreparator);
TypeHandler<T8>::prepare(pos++, tuple.template get<8>(), pPreparator);
TypeHandler<T9>::prepare(pos++, tuple.template get<9>(), pPreparator);
TypeHandler<T10>::prepare(pos++, tuple.template get<10>(), pPreparator);
TypeHandler<T11>::prepare(pos++, tuple.template get<11>(), pPreparator);
TypeHandler<T12>::prepare(pos++, tuple.template get<12>(), pPreparator);
}
static std::size_t size()
@@ -1150,21 +1150,21 @@ public:
TypeHandler<T11>::bind(pos++, tuple.template get<11>(), pBinder, dir);
}
static void prepare(std::size_t pos, TupleRef tuple, AbstractPreparation* pPrepare)
static void prepare(std::size_t pos, TupleRef tuple, AbstractPreparator* pPreparator)
{
poco_assert (pPrepare != 0);
TypeHandler<T0>::prepare(pos++, tuple.template get<0>(), pPrepare);
TypeHandler<T1>::prepare(pos++, tuple.template get<1>(), pPrepare);
TypeHandler<T2>::prepare(pos++, tuple.template get<2>(), pPrepare);
TypeHandler<T3>::prepare(pos++, tuple.template get<3>(), pPrepare);
TypeHandler<T4>::prepare(pos++, tuple.template get<4>(), pPrepare);
TypeHandler<T5>::prepare(pos++, tuple.template get<5>(), pPrepare);
TypeHandler<T6>::prepare(pos++, tuple.template get<6>(), pPrepare);
TypeHandler<T7>::prepare(pos++, tuple.template get<7>(), pPrepare);
TypeHandler<T8>::prepare(pos++, tuple.template get<8>(), pPrepare);
TypeHandler<T9>::prepare(pos++, tuple.template get<9>(), pPrepare);
TypeHandler<T10>::prepare(pos++, tuple.template get<10>(), pPrepare);
TypeHandler<T11>::prepare(pos++, tuple.template get<11>(), pPrepare);
poco_assert (pPreparator != 0);
TypeHandler<T0>::prepare(pos++, tuple.template get<0>(), pPreparator);
TypeHandler<T1>::prepare(pos++, tuple.template get<1>(), pPreparator);
TypeHandler<T2>::prepare(pos++, tuple.template get<2>(), pPreparator);
TypeHandler<T3>::prepare(pos++, tuple.template get<3>(), pPreparator);
TypeHandler<T4>::prepare(pos++, tuple.template get<4>(), pPreparator);
TypeHandler<T5>::prepare(pos++, tuple.template get<5>(), pPreparator);
TypeHandler<T6>::prepare(pos++, tuple.template get<6>(), pPreparator);
TypeHandler<T7>::prepare(pos++, tuple.template get<7>(), pPreparator);
TypeHandler<T8>::prepare(pos++, tuple.template get<8>(), pPreparator);
TypeHandler<T9>::prepare(pos++, tuple.template get<9>(), pPreparator);
TypeHandler<T10>::prepare(pos++, tuple.template get<10>(), pPreparator);
TypeHandler<T11>::prepare(pos++, tuple.template get<11>(), pPreparator);
}
static std::size_t size()
@@ -1228,20 +1228,20 @@ public:
TypeHandler<T10>::bind(pos++, tuple.template get<10>(), pBinder, dir);
}
static void prepare(std::size_t pos, TupleRef tuple, AbstractPreparation* pPrepare)
static void prepare(std::size_t pos, TupleRef tuple, AbstractPreparator* pPreparator)
{
poco_assert (pPrepare != 0);
TypeHandler<T0>::prepare(pos++, tuple.template get<0>(), pPrepare);
TypeHandler<T1>::prepare(pos++, tuple.template get<1>(), pPrepare);
TypeHandler<T2>::prepare(pos++, tuple.template get<2>(), pPrepare);
TypeHandler<T3>::prepare(pos++, tuple.template get<3>(), pPrepare);
TypeHandler<T4>::prepare(pos++, tuple.template get<4>(), pPrepare);
TypeHandler<T5>::prepare(pos++, tuple.template get<5>(), pPrepare);
TypeHandler<T6>::prepare(pos++, tuple.template get<6>(), pPrepare);
TypeHandler<T7>::prepare(pos++, tuple.template get<7>(), pPrepare);
TypeHandler<T8>::prepare(pos++, tuple.template get<8>(), pPrepare);
TypeHandler<T9>::prepare(pos++, tuple.template get<9>(), pPrepare);
TypeHandler<T10>::prepare(pos++, tuple.template get<10>(), pPrepare);
poco_assert (pPreparator != 0);
TypeHandler<T0>::prepare(pos++, tuple.template get<0>(), pPreparator);
TypeHandler<T1>::prepare(pos++, tuple.template get<1>(), pPreparator);
TypeHandler<T2>::prepare(pos++, tuple.template get<2>(), pPreparator);
TypeHandler<T3>::prepare(pos++, tuple.template get<3>(), pPreparator);
TypeHandler<T4>::prepare(pos++, tuple.template get<4>(), pPreparator);
TypeHandler<T5>::prepare(pos++, tuple.template get<5>(), pPreparator);
TypeHandler<T6>::prepare(pos++, tuple.template get<6>(), pPreparator);
TypeHandler<T7>::prepare(pos++, tuple.template get<7>(), pPreparator);
TypeHandler<T8>::prepare(pos++, tuple.template get<8>(), pPreparator);
TypeHandler<T9>::prepare(pos++, tuple.template get<9>(), pPreparator);
TypeHandler<T10>::prepare(pos++, tuple.template get<10>(), pPreparator);
}
static std::size_t size()
@@ -1293,19 +1293,19 @@ public:
TypeHandler<T9>::bind(pos++, tuple.template get<9>(), pBinder, dir);
}
static void prepare(std::size_t pos, TupleRef tuple, AbstractPreparation* pPrepare)
static void prepare(std::size_t pos, TupleRef tuple, AbstractPreparator* pPreparator)
{
poco_assert (pPrepare != 0);
TypeHandler<T0>::prepare(pos++, tuple.template get<0>(), pPrepare);
TypeHandler<T1>::prepare(pos++, tuple.template get<1>(), pPrepare);
TypeHandler<T2>::prepare(pos++, tuple.template get<2>(), pPrepare);
TypeHandler<T3>::prepare(pos++, tuple.template get<3>(), pPrepare);
TypeHandler<T4>::prepare(pos++, tuple.template get<4>(), pPrepare);
TypeHandler<T5>::prepare(pos++, tuple.template get<5>(), pPrepare);
TypeHandler<T6>::prepare(pos++, tuple.template get<6>(), pPrepare);
TypeHandler<T7>::prepare(pos++, tuple.template get<7>(), pPrepare);
TypeHandler<T8>::prepare(pos++, tuple.template get<8>(), pPrepare);
TypeHandler<T9>::prepare(pos++, tuple.template get<9>(), pPrepare);
poco_assert (pPreparator != 0);
TypeHandler<T0>::prepare(pos++, tuple.template get<0>(), pPreparator);
TypeHandler<T1>::prepare(pos++, tuple.template get<1>(), pPreparator);
TypeHandler<T2>::prepare(pos++, tuple.template get<2>(), pPreparator);
TypeHandler<T3>::prepare(pos++, tuple.template get<3>(), pPreparator);
TypeHandler<T4>::prepare(pos++, tuple.template get<4>(), pPreparator);
TypeHandler<T5>::prepare(pos++, tuple.template get<5>(), pPreparator);
TypeHandler<T6>::prepare(pos++, tuple.template get<6>(), pPreparator);
TypeHandler<T7>::prepare(pos++, tuple.template get<7>(), pPreparator);
TypeHandler<T8>::prepare(pos++, tuple.template get<8>(), pPreparator);
TypeHandler<T9>::prepare(pos++, tuple.template get<9>(), pPreparator);
}
static std::size_t size()
@@ -1355,18 +1355,18 @@ public:
TypeHandler<T8>::bind(pos++, tuple.template get<8>(), pBinder, dir);
}
static void prepare(std::size_t pos, TupleRef tuple, AbstractPreparation* pPrepare)
static void prepare(std::size_t pos, TupleRef tuple, AbstractPreparator* pPreparator)
{
poco_assert (pPrepare != 0);
TypeHandler<T0>::prepare(pos++, tuple.template get<0>(), pPrepare);
TypeHandler<T1>::prepare(pos++, tuple.template get<1>(), pPrepare);
TypeHandler<T2>::prepare(pos++, tuple.template get<2>(), pPrepare);
TypeHandler<T3>::prepare(pos++, tuple.template get<3>(), pPrepare);
TypeHandler<T4>::prepare(pos++, tuple.template get<4>(), pPrepare);
TypeHandler<T5>::prepare(pos++, tuple.template get<5>(), pPrepare);
TypeHandler<T6>::prepare(pos++, tuple.template get<6>(), pPrepare);
TypeHandler<T7>::prepare(pos++, tuple.template get<7>(), pPrepare);
TypeHandler<T8>::prepare(pos++, tuple.template get<8>(), pPrepare);
poco_assert (pPreparator != 0);
TypeHandler<T0>::prepare(pos++, tuple.template get<0>(), pPreparator);
TypeHandler<T1>::prepare(pos++, tuple.template get<1>(), pPreparator);
TypeHandler<T2>::prepare(pos++, tuple.template get<2>(), pPreparator);
TypeHandler<T3>::prepare(pos++, tuple.template get<3>(), pPreparator);
TypeHandler<T4>::prepare(pos++, tuple.template get<4>(), pPreparator);
TypeHandler<T5>::prepare(pos++, tuple.template get<5>(), pPreparator);
TypeHandler<T6>::prepare(pos++, tuple.template get<6>(), pPreparator);
TypeHandler<T7>::prepare(pos++, tuple.template get<7>(), pPreparator);
TypeHandler<T8>::prepare(pos++, tuple.template get<8>(), pPreparator);
}
static std::size_t size()
@@ -1413,17 +1413,17 @@ public:
TypeHandler<T7>::bind(pos++, tuple.template get<7>(), pBinder, dir);
}
static void prepare(std::size_t pos, TupleRef tuple, AbstractPreparation* pPrepare)
static void prepare(std::size_t pos, TupleRef tuple, AbstractPreparator* pPreparator)
{
poco_assert (pPrepare != 0);
TypeHandler<T0>::prepare(pos++, tuple.template get<0>(), pPrepare);
TypeHandler<T1>::prepare(pos++, tuple.template get<1>(), pPrepare);
TypeHandler<T2>::prepare(pos++, tuple.template get<2>(), pPrepare);
TypeHandler<T3>::prepare(pos++, tuple.template get<3>(), pPrepare);
TypeHandler<T4>::prepare(pos++, tuple.template get<4>(), pPrepare);
TypeHandler<T5>::prepare(pos++, tuple.template get<5>(), pPrepare);
TypeHandler<T6>::prepare(pos++, tuple.template get<6>(), pPrepare);
TypeHandler<T7>::prepare(pos++, tuple.template get<7>(), pPrepare);
poco_assert (pPreparator != 0);
TypeHandler<T0>::prepare(pos++, tuple.template get<0>(), pPreparator);
TypeHandler<T1>::prepare(pos++, tuple.template get<1>(), pPreparator);
TypeHandler<T2>::prepare(pos++, tuple.template get<2>(), pPreparator);
TypeHandler<T3>::prepare(pos++, tuple.template get<3>(), pPreparator);
TypeHandler<T4>::prepare(pos++, tuple.template get<4>(), pPreparator);
TypeHandler<T5>::prepare(pos++, tuple.template get<5>(), pPreparator);
TypeHandler<T6>::prepare(pos++, tuple.template get<6>(), pPreparator);
TypeHandler<T7>::prepare(pos++, tuple.template get<7>(), pPreparator);
}
static std::size_t size()
@@ -1469,16 +1469,16 @@ public:
TypeHandler<T6>::bind(pos++, tuple.template get<6>(), pBinder, dir);
}
static void prepare(std::size_t pos, TupleRef tuple, AbstractPreparation* pPrepare)
static void prepare(std::size_t pos, TupleRef tuple, AbstractPreparator* pPreparator)
{
poco_assert (pPrepare != 0);
TypeHandler<T0>::prepare(pos++, tuple.template get<0>(), pPrepare);
TypeHandler<T1>::prepare(pos++, tuple.template get<1>(), pPrepare);
TypeHandler<T2>::prepare(pos++, tuple.template get<2>(), pPrepare);
TypeHandler<T3>::prepare(pos++, tuple.template get<3>(), pPrepare);
TypeHandler<T4>::prepare(pos++, tuple.template get<4>(), pPrepare);
TypeHandler<T5>::prepare(pos++, tuple.template get<5>(), pPrepare);
TypeHandler<T6>::prepare(pos++, tuple.template get<6>(), pPrepare);
poco_assert (pPreparator != 0);
TypeHandler<T0>::prepare(pos++, tuple.template get<0>(), pPreparator);
TypeHandler<T1>::prepare(pos++, tuple.template get<1>(), pPreparator);
TypeHandler<T2>::prepare(pos++, tuple.template get<2>(), pPreparator);
TypeHandler<T3>::prepare(pos++, tuple.template get<3>(), pPreparator);
TypeHandler<T4>::prepare(pos++, tuple.template get<4>(), pPreparator);
TypeHandler<T5>::prepare(pos++, tuple.template get<5>(), pPreparator);
TypeHandler<T6>::prepare(pos++, tuple.template get<6>(), pPreparator);
}
static std::size_t size()
@@ -1522,15 +1522,15 @@ public:
TypeHandler<T5>::bind(pos++, tuple.template get<5>(), pBinder, dir);
}
static void prepare(std::size_t pos, TupleRef tuple, AbstractPreparation* pPrepare)
static void prepare(std::size_t pos, TupleRef tuple, AbstractPreparator* pPreparator)
{
poco_assert (pPrepare != 0);
TypeHandler<T0>::prepare(pos++, tuple.template get<0>(), pPrepare);
TypeHandler<T1>::prepare(pos++, tuple.template get<1>(), pPrepare);
TypeHandler<T2>::prepare(pos++, tuple.template get<2>(), pPrepare);
TypeHandler<T3>::prepare(pos++, tuple.template get<3>(), pPrepare);
TypeHandler<T4>::prepare(pos++, tuple.template get<4>(), pPrepare);
TypeHandler<T5>::prepare(pos++, tuple.template get<5>(), pPrepare);
poco_assert (pPreparator != 0);
TypeHandler<T0>::prepare(pos++, tuple.template get<0>(), pPreparator);
TypeHandler<T1>::prepare(pos++, tuple.template get<1>(), pPreparator);
TypeHandler<T2>::prepare(pos++, tuple.template get<2>(), pPreparator);
TypeHandler<T3>::prepare(pos++, tuple.template get<3>(), pPreparator);
TypeHandler<T4>::prepare(pos++, tuple.template get<4>(), pPreparator);
TypeHandler<T5>::prepare(pos++, tuple.template get<5>(), pPreparator);
}
static std::size_t size()
@@ -1572,14 +1572,14 @@ public:
TypeHandler<T4>::bind(pos++, tuple.template get<4>(), pBinder, dir);
}
static void prepare(std::size_t pos, TupleRef tuple, AbstractPreparation* pPrepare)
static void prepare(std::size_t pos, TupleRef tuple, AbstractPreparator* pPreparator)
{
poco_assert (pPrepare != 0);
TypeHandler<T0>::prepare(pos++, tuple.template get<0>(), pPrepare);
TypeHandler<T1>::prepare(pos++, tuple.template get<1>(), pPrepare);
TypeHandler<T2>::prepare(pos++, tuple.template get<2>(), pPrepare);
TypeHandler<T3>::prepare(pos++, tuple.template get<3>(), pPrepare);
TypeHandler<T4>::prepare(pos++, tuple.template get<4>(), pPrepare);
poco_assert (pPreparator != 0);
TypeHandler<T0>::prepare(pos++, tuple.template get<0>(), pPreparator);
TypeHandler<T1>::prepare(pos++, tuple.template get<1>(), pPreparator);
TypeHandler<T2>::prepare(pos++, tuple.template get<2>(), pPreparator);
TypeHandler<T3>::prepare(pos++, tuple.template get<3>(), pPreparator);
TypeHandler<T4>::prepare(pos++, tuple.template get<4>(), pPreparator);
}
static std::size_t size()
@@ -1619,13 +1619,13 @@ public:
TypeHandler<T3>::bind(pos++, tuple.template get<3>(), pBinder, dir);
}
static void prepare(std::size_t pos, TupleRef tuple, AbstractPreparation* pPrepare)
static void prepare(std::size_t pos, TupleRef tuple, AbstractPreparator* pPreparator)
{
poco_assert (pPrepare != 0);
TypeHandler<T0>::prepare(pos++, tuple.template get<0>(), pPrepare);
TypeHandler<T1>::prepare(pos++, tuple.template get<1>(), pPrepare);
TypeHandler<T2>::prepare(pos++, tuple.template get<2>(), pPrepare);
TypeHandler<T3>::prepare(pos++, tuple.template get<3>(), pPrepare);
poco_assert (pPreparator != 0);
TypeHandler<T0>::prepare(pos++, tuple.template get<0>(), pPreparator);
TypeHandler<T1>::prepare(pos++, tuple.template get<1>(), pPreparator);
TypeHandler<T2>::prepare(pos++, tuple.template get<2>(), pPreparator);
TypeHandler<T3>::prepare(pos++, tuple.template get<3>(), pPreparator);
}
static std::size_t size()
@@ -1663,12 +1663,12 @@ public:
TypeHandler<T2>::bind(pos++, tuple.template get<2>(), pBinder, dir);
}
static void prepare(std::size_t pos, TupleRef tuple, AbstractPreparation* pPrepare)
static void prepare(std::size_t pos, TupleRef tuple, AbstractPreparator* pPreparator)
{
poco_assert (pPrepare != 0);
TypeHandler<T0>::prepare(pos++, tuple.template get<0>(), pPrepare);
TypeHandler<T1>::prepare(pos++, tuple.template get<1>(), pPrepare);
TypeHandler<T2>::prepare(pos++, tuple.template get<2>(), pPrepare);
poco_assert (pPreparator != 0);
TypeHandler<T0>::prepare(pos++, tuple.template get<0>(), pPreparator);
TypeHandler<T1>::prepare(pos++, tuple.template get<1>(), pPreparator);
TypeHandler<T2>::prepare(pos++, tuple.template get<2>(), pPreparator);
}
static std::size_t size()
@@ -1704,11 +1704,11 @@ public:
TypeHandler<T1>::bind(pos++, tuple.template get<1>(), pBinder, dir);
}
static void prepare(std::size_t pos, TupleRef tuple, AbstractPreparation* pPrepare)
static void prepare(std::size_t pos, TupleRef tuple, AbstractPreparator* pPreparator)
{
poco_assert (pPrepare != 0);
TypeHandler<T0>::prepare(pos++, tuple.template get<0>(), pPrepare);
TypeHandler<T1>::prepare(pos++, tuple.template get<1>(), pPrepare);
poco_assert (pPreparator != 0);
TypeHandler<T0>::prepare(pos++, tuple.template get<0>(), pPreparator);
TypeHandler<T1>::prepare(pos++, tuple.template get<1>(), pPreparator);
}
static std::size_t size()
@@ -1742,10 +1742,10 @@ public:
TypeHandler<T0>::bind(pos++, tuple.template get<0>(), pBinder, dir);
}
static void prepare(std::size_t pos, TupleRef tuple, AbstractPreparation* pPrepare)
static void prepare(std::size_t pos, TupleRef tuple, AbstractPreparator* pPreparator)
{
poco_assert (pPrepare != 0);
TypeHandler<T0>::prepare(pos++, tuple.template get<0>(), pPrepare);
poco_assert (pPreparator != 0);
TypeHandler<T0>::prepare(pos++, tuple.template get<0>(), pPreparator);
}
static std::size_t size()
@@ -1790,11 +1790,11 @@ public:
TypeHandler<V>::extract(pos, obj.second, defVal.second, pExt);
}
static void prepare(std::size_t pos, std::pair<K, V>& obj, AbstractPreparation* pPrepare)
static void prepare(std::size_t pos, std::pair<K, V>& obj, AbstractPreparator* pPreparator)
{
TypeHandler<K>::prepare(pos, obj.first, pPrepare);
TypeHandler<K>::prepare(pos, obj.first, pPreparator);
pos += TypeHandler<K>::size();
TypeHandler<V>::prepare(pos, obj.second, pPrepare);
TypeHandler<V>::prepare(pos, obj.second, pPreparator);
}
private:
@@ -1830,12 +1830,12 @@ public:
TypeHandler<T>::extract(pos, *obj, *obj, pExt);
}
static void prepare(std::size_t pos, Poco::AutoPtr<T>& obj, AbstractPreparation* pPrepare)
static void prepare(std::size_t pos, Poco::AutoPtr<T>& obj, AbstractPreparator* pPreparator)
{
poco_assert_dbg (pPrepare != 0);
poco_assert_dbg (pPreparator != 0);
if (!obj)
obj = new T();
TypeHandler<T>::prepare(pos, *obj, pPrepare);
TypeHandler<T>::prepare(pos, *obj, pPreparator);
}
private:
@@ -1872,12 +1872,12 @@ public:
TypeHandler<T>::extract(pos, *obj, *obj, pExt);
}
static void prepare(std::size_t pos, Poco::SharedPtr<T>& obj, AbstractPreparation* pPrepare)
static void prepare(std::size_t pos, Poco::SharedPtr<T>& obj, AbstractPreparator* pPreparator)
{
poco_assert_dbg (pPrepare != 0);
poco_assert_dbg (pPreparator != 0);
if (!obj)
obj = new T();
TypeHandler<T>::prepare(pos, *obj, pPrepare);
TypeHandler<T>::prepare(pos, *obj, pPreparator);
}
private: