| Qore DataProvider Module Reference 3.2.2

Loading...
Searching...
No Matches
AbstractDataProviderFactory.qc.dox.h
1// -*- mode: c++; indent-tabs-mode: nil -*-
3
24
26 namespace DataProvider {
32
34 const DPSP_REST = "rest";
35
38 const DPSP_SOAP = "soap";
40
42 public struct DataProviderFactoryInfo {
44 string name;
46 string desc;
48 bool api_management = False;
50 bool children_can_support_apis = False;
52 bool children_can_support_records = False;
54 bool children_can_support_observers = False;
56 bool children_can_support_messages = False;
58
60 bool children_can_support_transaction_management = False;
62 *softlist<string> api_profiles;
64 hash<DataProviderInfo> provider_info;
65};
66
68 class AbstractDataProviderFactory {
69
70 public:
71
72
74 AbstractDataProvider create(*hash<auto> options);
75
76
78 AbstractDataProvider createWithTemplate(*hash<auto> template_options, *hash<auto> options);
79
80
82 string getName();
83
84
86 Class getClass();
87
88
90
93 hash<DataProviderFactoryInfo> getInfo();
94
95
97
102 hash<auto> getInfoAsData(*bool with_type_info);
103
104
106
108 hash<DataProviderInfo> getProviderInfo();
109
110
112
125 AbstractDataProvider getProviderFromExample(data example, *hash<auto> constructor_options);
126
127
129
142 AbstractDataProvider getProviderFromExample(InputStream example, *hash<auto> constructor_options);
143
144
146
156 list<hash<auto>> getExampleProviderRecordOutput(data example, *hash<auto> constructor_options);
157
158
160
170 list<hash<auto>> getExampleProviderRecordOutput(InputStream example, *hash<auto> constructor_options);
171
172
174 protected:
175 error(string err, string fmt, ...);
176 public:
177
178
180
196 protected:
197 AbstractDataProvider getProviderFromExampleImpl(InputStream example, *hash<auto> constructor_options);
198 public:
199
200
202
215 protected:
216 list<hash<auto>> getExampleProviderRecordOutputImpl(InputStream example, *hash<auto> constructor_options);
217 public:
218
219
221 protected:
222 string getNameImpl();
223 public:
224
225
227
229 protected:
230 abstract hash<DataProviderFactoryInfo> getInfoImpl();
231 public:
232
234 protected:
235 abstract Class getClassImpl();
236 public:
237
239
241 protected:
242 abstract hash<DataProviderInfo> getProviderInfoImpl();
243 public:
244};
245};
DataProvider::AbstractDataProviderFactory
Data provider factory class.
Definition AbstractDataProviderFactory.qc.dox.h:68
DataProvider::AbstractDataProviderFactory::createWithTemplate
AbstractDataProvider createWithTemplate(*hash< auto > template_options, *hash< auto > options)
Creates an object from the given constructor options.
DataProvider::AbstractDataProviderFactory::getExampleProviderRecordOutputImpl
list< hash< auto > > getExampleProviderRecordOutputImpl(InputStream example, *hash< auto > constructor_options)
Returns information about a data provider constructor given the example data as an argument.
DataProvider::AbstractDataProviderFactory::getInfoAsData
hash< auto > getInfoAsData(*bool with_type_info)
Returns static provider information as data; no objects are returned.
DataProvider::AbstractDataProviderFactory::getProviderFromExample
AbstractDataProvider getProviderFromExample(data example, *hash< auto > constructor_options)
Returns a data provider given the example data and constructor options as arguments.
DataProvider::AbstractDataProviderFactory::getProviderInfoImpl
abstract hash< DataProviderInfo > getProviderInfoImpl()
Returns static provider information.
DataProvider::AbstractDataProviderFactory::create
AbstractDataProvider create(*hash< auto > options)
Creates an object from the given constructor options.
DataProvider::AbstractDataProviderFactory::error
error(string err, string fmt,...)
thrown an exception
DataProvider::AbstractDataProviderFactory::getExampleProviderRecordOutput
list< hash< auto > > getExampleProviderRecordOutput(InputStream example, *hash< auto > constructor_options)
Returns information about a data provider constructor given the example data as an argument.
DataProvider::AbstractDataProviderFactory::getNameImpl
string getNameImpl()
Returns the name of the data provider factory.
DataProvider::AbstractDataProviderFactory::getClassImpl
abstract Class getClassImpl()
Returns the class for the data provider object.
DataProvider::AbstractDataProviderFactory::getClass
Class getClass()
Returns the class for the data provider object.
DataProvider::AbstractDataProviderFactory::getInfo
hash< DataProviderFactoryInfo > getInfo()
Returns static factory information.
DataProvider::AbstractDataProviderFactory::getInfoImpl
abstract hash< DataProviderFactoryInfo > getInfoImpl()
Returns static factory information without provider_info.
DataProvider::AbstractDataProviderFactory::getName
string getName()
Returns the name of the data provider factory.
DataProvider::AbstractDataProviderFactory::getExampleProviderRecordOutput
list< hash< auto > > getExampleProviderRecordOutput(data example, *hash< auto > constructor_options)
Returns information about a data provider constructor given the example data as an argument.
DataProvider::AbstractDataProviderFactory::getProviderInfo
hash< DataProviderInfo > getProviderInfo()
Returns static provider information.
DataProvider::AbstractDataProviderFactory::getProviderFromExampleImpl
AbstractDataProvider getProviderFromExampleImpl(InputStream example, *hash< auto > constructor_options)
Returns a data provider given the example data and constructor options as arguments.
DataProvider::AbstractDataProviderFactory::getProviderFromExample
AbstractDataProvider getProviderFromExample(InputStream example, *hash< auto > constructor_options)
Returns a data provider given the example data and constructor options as arguments.
DataProvider::AbstractDataProvider
The AbstractDataProvider class.
Definition AbstractDataProvider.qc.dox.h:919
DataProvider::DPSP_SOAP
const DPSP_SOAP
Definition AbstractDataProviderFactory.qc.dox.h:38
DataProvider::DPSP_REST
const DPSP_REST
Definition AbstractDataProviderFactory.qc.dox.h:34
DataProvider
Qore AbstractDataField class definition.
Definition AbstractDataField.qc.dox.h:27
DataProvider::DataProviderFactoryInfo
Data provider factory info.
Definition AbstractDataProviderFactory.qc.dox.h:42
DataProvider::DataProviderFactoryInfo::children_can_support_observers
bool children_can_support_observers
Can any child data providers support the observer pattern / event API?
Definition AbstractDataProviderFactory.qc.dox.h:54
DataProvider::DataProviderFactoryInfo::children_can_support_messages
bool children_can_support_messages
Can any child data providers support messages?
Definition AbstractDataProviderFactory.qc.dox.h:56
DataProvider::DataProviderFactoryInfo::name
string name
The factory name.
Definition AbstractDataProviderFactory.qc.dox.h:44
DataProvider::DataProviderFactoryInfo::children_can_support_records
bool children_can_support_records
Can any child data providers offer record-based providers?
Definition AbstractDataProviderFactory.qc.dox.h:52
DataProvider::DataProviderFactoryInfo::api_profiles
*softlist< string > api_profiles
Which server profiles are supported for API management (if any)?
Definition AbstractDataProviderFactory.qc.dox.h:62
DataProvider::DataProviderFactoryInfo::provider_info
hash< DataProviderInfo > provider_info
Info about providers created from this factory (without the name and children attributes)
Definition AbstractDataProviderFactory.qc.dox.h:64
DataProvider::DataProviderFactoryInfo::children_can_support_apis
bool children_can_support_apis
Can any child data providers offer API services (request - response data providers)?
Definition AbstractDataProviderFactory.qc.dox.h:50
DataProvider::DataProviderFactoryInfo::children_can_support_transaction_management
bool children_can_support_transaction_management
Can any child data providers support transaction management?
Definition AbstractDataProviderFactory.qc.dox.h:60
DataProvider::DataProviderFactoryInfo::desc
string desc
The factory description.
Definition AbstractDataProviderFactory.qc.dox.h:46
DataProvider::DataProviderFactoryInfo::api_management
bool api_management
Does this factory create a data provider suitable for server-side API management.
Definition AbstractDataProviderFactory.qc.dox.h:48