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()62 inline AbstractPreparation::PreparatorPtr AbstractPreparation::preparation()
63 {
64 	return _pPreparator;
65 }
66 
67 
68 } } // namespace Poco::Data
69 
70 
71 #endif // Data_AbstractPreparation_INCLUDED
72