Qore DataProvider Module Reference  2.7
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  *softlist<string> api_profiles;
60  hash<DataProviderInfo> provider_info;
61 };
62 
65 
66 public:
67 
68 
70  AbstractDataProvider create(*hash<auto> options);
71 
72 
74  string getName();
75 
76 
78  Class getClass();
79 
80 
82 
85  hash<DataProviderFactoryInfo> getInfo();
86 
87 
89 
94  hash<auto> getInfoAsData(*bool with_type_info);
95 
96 
98 
100  hash<DataProviderInfo> getProviderInfo();
101 
102 
104 
117  AbstractDataProvider getProviderFromExample(data example, *hash<auto> constructor_options);
118 
119 
121 
134  AbstractDataProvider getProviderFromExample(InputStream example, *hash<auto> constructor_options);
135 
136 
138 
148  list<hash<auto>> getExampleProviderRecordOutput(data example, *hash<auto> constructor_options);
149 
150 
152 
162  list<hash<auto>> getExampleProviderRecordOutput(InputStream example, *hash<auto> constructor_options);
163 
164 
166 protected:
167  error(string err, string fmt);
168 public:
169 
170 
172 
188 protected:
189  AbstractDataProvider getProviderFromExampleImpl(InputStream example, *hash<auto> constructor_options);
190 public:
191 
192 
194 
207 protected:
208  list<hash<auto>> getExampleProviderRecordOutputImpl(InputStream example, *hash<auto> constructor_options);
209 public:
210 
211 
213 protected:
214  string getNameImpl();
215 public:
216 
217 
219 
221 protected:
222  abstract hash<DataProviderFactoryInfo> getInfoImpl();
223 public:
224 
226 protected:
227  abstract Class getClassImpl();
228 public:
229 
231 
233 protected:
234  abstract hash<DataProviderInfo> getProviderInfoImpl();
235 public:
236 };
237 };
Data provider factory class.
Definition: AbstractDataProviderFactory.qc.dox.h:64
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:732
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
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:58
hash< DataProviderInfo > provider_info
Info about providers created from this factory (without the name and children attributes)
Definition: AbstractDataProviderFactory.qc.dox.h:60
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