Qore DataProvider Module Reference  2.4
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;
52  *softlist<string> api_profiles;
54  hash<DataProviderInfo> provider_info;
55 };
56 
59 
60 public:
61 
62 
64  AbstractDataProvider create(*hash<auto> options);
65 
66 
68  string getName();
69 
70 
72  Class getClass();
73 
74 
76 
79  hash<DataProviderFactoryInfo> getInfo();
80 
81 
83 
88  hash<auto> getInfoAsData(*bool with_type_info);
89 
90 
92 
94  hash<DataProviderInfo> getProviderInfo();
95 
96 
98 
111  AbstractDataProvider getProviderFromExample(data example, *hash<auto> constructor_options);
112 
113 
115 
128  AbstractDataProvider getProviderFromExample(InputStream example, *hash<auto> constructor_options);
129 
130 
132 
142  list<hash<auto>> getExampleProviderRecordOutput(data example, *hash<auto> constructor_options);
143 
144 
146 
156  list<hash<auto>> getExampleProviderRecordOutput(InputStream example, *hash<auto> constructor_options);
157 
158 
160 protected:
161  error(string err, string fmt);
162 public:
163 
164 
166 
182 protected:
183  AbstractDataProvider getProviderFromExampleImpl(InputStream example, *hash<auto> constructor_options);
184 public:
185 
186 
188 
201 protected:
202  list<hash<auto>> getExampleProviderRecordOutputImpl(InputStream example, *hash<auto> constructor_options);
203 public:
204 
205 
207 protected:
208  string getNameImpl();
209 public:
210 
211 
213 
215 protected:
216  abstract hash<DataProviderFactoryInfo> getInfoImpl();
217 public:
218 
220 protected:
221  abstract Class getClassImpl();
222 public:
223 
225 
227 protected:
228  abstract hash<DataProviderInfo> getProviderInfoImpl();
229 public:
230 };
231 };
Data provider factory class.
Definition: AbstractDataProviderFactory.qc.dox.h:58
list< hash< auto > > getExampleProviderRecordOutput(data example, *hash< auto > constructor_options)
Returns information about a data provider constructor given the example data as an argument.
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:586
const False
Qore AbstractDataField class definition.
Definition: AbstractDataField.qc.dox.h:27
const DPSP_SOAP
Definition: AbstractDataProviderFactory.qc.dox.h:38
const DPSP_REST
Data provider HTTP server profile.
Definition: AbstractDataProviderFactory.qc.dox.h:34
Data provider factory info.
Definition: AbstractDataProviderFactory.qc.dox.h:42
string name
The factory name.
Definition: AbstractDataProviderFactory.qc.dox.h:44
*softlist< string > api_profiles
Which server profiles are supported for API management (if any)?
Definition: AbstractDataProviderFactory.qc.dox.h:52
hash< DataProviderInfo > provider_info
Info about providers created from this factory (without the name and children attributes)
Definition: AbstractDataProviderFactory.qc.dox.h:54
bool children_can_support_apis
Can any child data providers offer API services (request - response data providers)?
Definition: AbstractDataProviderFactory.qc.dox.h:50
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