Qore DataProvider Module Reference  2.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;
56  *softlist<string> api_profiles;
58  hash<DataProviderInfo> provider_info;
59 };
60 
63 
64 public:
65 
66 
68  AbstractDataProvider create(*hash<auto> options);
69 
70 
72  string getName();
73 
74 
76  Class getClass();
77 
78 
80 
83  hash<DataProviderFactoryInfo> getInfo();
84 
85 
87 
92  hash<auto> getInfoAsData(*bool with_type_info);
93 
94 
96 
98  hash<DataProviderInfo> getProviderInfo();
99 
100 
102 
115  AbstractDataProvider getProviderFromExample(data example, *hash<auto> constructor_options);
116 
117 
119 
132  AbstractDataProvider getProviderFromExample(InputStream example, *hash<auto> constructor_options);
133 
134 
136 
146  list<hash<auto>> getExampleProviderRecordOutput(data example, *hash<auto> constructor_options);
147 
148 
150 
160  list<hash<auto>> getExampleProviderRecordOutput(InputStream example, *hash<auto> constructor_options);
161 
162 
164 protected:
165  error(string err, string fmt);
166 public:
167 
168 
170 
186 protected:
187  AbstractDataProvider getProviderFromExampleImpl(InputStream example, *hash<auto> constructor_options);
188 public:
189 
190 
192 
205 protected:
206  list<hash<auto>> getExampleProviderRecordOutputImpl(InputStream example, *hash<auto> constructor_options);
207 public:
208 
209 
211 protected:
212  string getNameImpl();
213 public:
214 
215 
217 
219 protected:
220  abstract hash<DataProviderFactoryInfo> getInfoImpl();
221 public:
222 
224 protected:
225  abstract Class getClassImpl();
226 public:
227 
229 
231 protected:
232  abstract hash<DataProviderInfo> getProviderInfoImpl();
233 public:
234 };
235 };
Data provider factory class.
Definition: AbstractDataProviderFactory.qc.dox.h:62
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:707
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
bool children_can_support_observers
Can any child data providers support the observer pattern / event API?
Definition: AbstractDataProviderFactory.qc.dox.h:54
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:56
hash< DataProviderInfo > provider_info
Info about providers created from this factory (without the name and children attributes)
Definition: AbstractDataProviderFactory.qc.dox.h:58
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