$darkmode
Qore DataProvider Module Reference 2.7.5
AbstractDataProviderFactory.qc.dox.h
1 // -*- mode: c++; indent-tabs-mode: nil -*-
3 
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;
58 
62  *softlist<string> api_profiles;
64  hash<DataProviderInfo> provider_info;
65 };
66 
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 };
Data provider factory class.
Definition: AbstractDataProviderFactory.qc.dox.h:68
list< hash< auto > > getExampleProviderRecordOutput(data example, *hash< auto > constructor_options)
Returns information about a data provider constructor given the example data as an argument.
AbstractDataProvider createWithTemplate(*hash< auto > template_options, *hash< auto > options)
Creates an object from the given constructor options.
hash< DataProviderFactoryInfo > getInfo()
Returns static factory information.
list< hash< auto > > getExampleProviderRecordOutput(InputStream example, *hash< auto > constructor_options)
Returns information about a data provider constructor given the example data as an argument.
AbstractDataProvider getProviderFromExample(data example, *hash< auto > constructor_options)
Returns a data provider given the example data and constructor options as arguments.
AbstractDataProvider create(*hash< auto > options)
Creates an object from the given constructor options.
string getNameImpl()
Returns the name of the data provider factory.
abstract Class getClassImpl()
Returns the class for the data provider object.
abstract hash< DataProviderInfo > getProviderInfoImpl()
Returns static provider information.
Class getClass()
Returns the class for the data provider object.
string getName()
Returns the name of the data provider factory.
abstract hash< DataProviderFactoryInfo > getInfoImpl()
Returns static factory information without provider_info.
hash< DataProviderInfo > getProviderInfo()
Returns static provider information.
AbstractDataProvider getProviderFromExampleImpl(InputStream example, *hash< auto > constructor_options)
Returns a data provider given the example data and constructor options as arguments.
AbstractDataProvider getProviderFromExample(InputStream example, *hash< auto > constructor_options)
Returns a data provider given the example data and constructor options as arguments.
list< hash< auto > > getExampleProviderRecordOutputImpl(InputStream example, *hash< auto > constructor_options)
Returns information about a data provider constructor given the example data as an argument.
error(string err, string fmt)
thrown an exception
hash< auto > getInfoAsData(*bool with_type_info)
Returns static provider information as data; no objects are returned.
The AbstractDataProvider class.
Definition: AbstractDataProvider.qc.dox.h:742
const False
const DPSP_SOAP
Definition: AbstractDataProviderFactory.qc.dox.h:38
const DPSP_REST
Definition: AbstractDataProviderFactory.qc.dox.h:34
Qore AbstractDataField class definition.
Definition: AbstractDataField.qc.dox.h:27
Data provider factory info.
Definition: AbstractDataProviderFactory.qc.dox.h:42
bool children_can_support_observers
Can any child data providers support the observer pattern / event API?
Definition: AbstractDataProviderFactory.qc.dox.h:54
bool children_can_support_messages
Can any child data providers support messages?
Definition: AbstractDataProviderFactory.qc.dox.h:56
string name
The factory name.
Definition: AbstractDataProviderFactory.qc.dox.h:44
bool children_can_support_records
Can any child data providers offer record-based providers?
Definition: AbstractDataProviderFactory.qc.dox.h:52
*softlist< string > api_profiles
Which server profiles are supported for API management (if any)?
Definition: AbstractDataProviderFactory.qc.dox.h:62
hash< DataProviderInfo > provider_info
Info about providers created from this factory (without the name and children attributes)
Definition: AbstractDataProviderFactory.qc.dox.h:64
bool children_can_support_apis
Can any child data providers offer API services (request - response data providers)?
Definition: AbstractDataProviderFactory.qc.dox.h:50
bool children_can_support_transaction_management
Can any child data providers support transaction management?
Definition: AbstractDataProviderFactory.qc.dox.h:60
string desc
The factory description.
Definition: AbstractDataProviderFactory.qc.dox.h:46
bool api_management
Does this factory create a data provider suitable for server-side API management.
Definition: AbstractDataProviderFactory.qc.dox.h:48