1 // 2 // AbstractPreparation.h 3 // 4 // Library: Data 5 // Package: DataCore 6 // Module: AbstractPreparation 7 // 8 // Definition of the AbstractPreparation class. 9 // 10 // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. 11 // and Contributors. 12 // 13 // SPDX-License-Identifier: BSL-1.0 14 // 15 16 17 #ifndef Data_AbstractPreparation_INCLUDED 18 #define Data_AbstractPreparation_INCLUDED 19 20 21 #include "Poco/Data/Data.h" 22 #include "Poco/Data/AbstractPreparator.h" 23 #include "Poco/SharedPtr.h" 24 #include <cstddef> 25 26 27 namespace Poco { 28 namespace Data { 29 30 31 class Data_API AbstractPreparation 32 /// Interface for calling the appropriate AbstractPreparator method 33 { 34 public: 35 using Ptr = SharedPtr<AbstractPreparation>; 36 using PreparatorPtr = AbstractPreparator::Ptr; 37 38 AbstractPreparation(PreparatorPtr pPreparator); 39 /// Creates the AbstractPreparation. 40 41 virtual ~AbstractPreparation(); 42 /// Destroys the AbstractPreparation. 43 44 virtual void prepare() = 0; 45 /// Prepares data. 46 47 protected: 48 AbstractPreparation(); 49 AbstractPreparation(const AbstractPreparation&); 50 AbstractPreparation& operator = (const AbstractPreparation&); 51 52 PreparatorPtr preparation(); 53 /// Returns the preparation object 54 55 PreparatorPtr _pPreparator; 56 }; 57 58 59 // 60 // inlines 61 // preparation()62inline AbstractPreparation::PreparatorPtr AbstractPreparation::preparation() 63 { 64 return _pPreparator; 65 } 66 67 68 } } // namespace Poco::Data 69 70 71 #endif // Data_AbstractPreparation_INCLUDED 72