| Qore DataProvider Module Reference 1.2.1

AbstractDataProvider.qc.dox.h
1 // -*- mode: c++; indent-tabs-mode: nil -*-
3
25 // assume local scope for variables, do not use "$" signs
26 // require type definitions everywhere
28 // enable all warnings
29
31 namespace DataProvider {
36 const UpsertResultInserted = "inserted";
38
40 const UpsertResultUpdated = "updated";
41
43 const UpsertResultVerified = "verified";
44
46 const UpsertResultUnchanged = "unchanged";
47
49 const UpsertResultDeleted = "deleted";
51
53 public struct DataProviderOptionInfo {
55 softlist<AbstractDataProviderType> type;
56
58 bool required = False;
59
61 string desc;
62 };
63
65 public struct DataProviderInfo {
67
69 string name;
70
72
74 string type;
75
77
79 bool supports_read = False;
80
82
84 bool supports_create = False;
85
87
89 bool supports_update = False;
90
92
94 bool supports_upsert = False;
95
97
99 bool supports_delete = False;
100
102
104 bool supports_native_search = False;
105
107
112 bool supports_bulk_read = False;
113
115
120 bool supports_bulk_create = False;
121
123
128 bool supports_bulk_upsert = False;
129
131
133 bool supports_request = False;
134
136
138 bool supports_children = False;
139
141
143 bool transaction_management = False;
144
146
148 bool has_record = False;
149
151
153 bool record_requires_search_options = False;
154
156
158 *hash<string, hash<DataProviderOptionInfo>> constructor_options;
159
161
163 *hash<string, hash<DataProviderOptionInfo>> create_options;
164
166
168 *hash<string, hash<DataProviderOptionInfo>> upsert_options;
169
171
173 *hash<string, hash<DataProviderOptionInfo>> search_options;
174
176
178 *hash<string, hash<DataProviderOptionInfo>> request_options;
179
181
185 hash<string, hash<MapperRuntimeKeyInfo>> mapper_keys = Mapper::MapperKeyInfo;
186
188
190 *list<string> children;
191 };
192
194 class AbstractDataProvider {
195
196 public:
197
198 protected:
200 static bool callbacks_locked = False;
201
203 static code cb_value_needs_resolution;
204
206 static code cb_resolve_value;
207
208 public:
209
211
213 hash<auto> getInfoAsData();
214
215
217 hash<DataProviderInfo> getInfo();
218
219
221
230 *hash<auto> createRecord(hash<auto> rec, *hash<auto> create_options);
231
232
234
241 string upsertRecord(hash<auto> rec, *hash<auto> upsert_options);
242
243
245
250 *hash<auto> searchFirstRecord(hash<auto> where_cond, *hash<auto> search_options);
251
252
254
260 *hash<auto> searchSingleRecord(hash<auto> where_cond, *hash<auto> search_options);
261
262
264
268 AbstractDataProviderRecordIterator getRecordIterator(*hash<auto> search_options);
269
270
272
280 AbstractDataProviderBulkRecordInterface getBulkRecordInterface(int block_size = 1000, *hash<auto> search_options);
281
282
284
293 AbstractDataProviderBulkRecordInterface searchRecordsBulk(int block_size = 1000, *hash<auto> where_cond, *hash<auto> search_options);
294
295
297
302 AbstractDataProviderRecordIterator searchRecords(*hash<auto> where_cond, *hash<auto> search_options);
303
304
306
314 AbstractDataProviderRecordIterator requestSearchRecords(auto req, *hash<auto> where_cond, *hash<auto> search_options);
315
316
318
326 bool updateSingleRecord(hash<auto> set, hash<auto> where_cond, *hash<auto> search_options);
327
328
330
338 int updateRecords(hash<auto> set, *hash<auto> where_cond, *hash<auto> search_options);
339
340
342
350 int deleteRecords(*hash<auto> where_cond, *hash<auto> search_options);
351
352
354
362 auto doRequest(auto req, *hash<auto> request_options);
363
364
366
370 *AbstractDataProviderType getRequestType();
371
372
374
378 *AbstractDataProviderType getResponseType();
379
380
382
386 *hash<string, AbstractDataProviderType> getErrorResponseTypes();
387
388
390
397 AbstractDataProviderType getErrorResponseType(string error_code);
398
399
401
403 *list<string> getChildProviderNames();
404
405
407
413 *AbstractDataProvider getChildProvider(string name);
414
415
417
423 AbstractDataProvider getChildProviderEx(string name);
424
425
427
433 AbstractDataProvider getChildProviderPath(string path);
434
435
437
440 bool requiresTransactionManagement();
441
442
444
446 commit();
447
448
450
452 rollback();
453
454
456
460 AbstractDataProviderBulkOperation getBulkInserter();
461
462
464
468 AbstractDataProviderBulkOperation getBulkUpserter();
469
470
472
476 *hash<string, hash<MapperRuntimeKeyInfo>> getMapperRuntimeKeys();
477
478
480
483 checkRead();
484
485
487
490 checkCreate();
491
492
494
497 checkUpsert();
498
499
501
504 checkUpdate();
505
506
508
511 checkDelete();
512
513
515
518 checkRequest();
519
520
522
526 static bool setDynamicValueCallbacks();
527
529
539 static bool setDynamicValueCallbacks(code value_needs_resolution, code resolve_value);
540
542 protected:
543 static bool checkCallbacks();
544 public:
545
546
548
550 protected:
551 *hash<auto> validateCreateOptions(*hash<auto> create_options);
552 public:
553
554
556
558 protected:
559 *hash<auto> validateUpsertOptions(*hash<auto> upsert_options);
560 public:
561
562
564
566 protected:
567 *hash<auto> validateSearchOptions(*hash<auto> search_options);
568 public:
569
570
572
574 protected:
575 *hash<auto> validateRequestOptions(*hash<auto> request_options);
576 public:
577
578
580 protected:
581 processConstructorOptions(*hash<string, hash<DataProviderOptionInfo>> option_desc, *hash<auto> options);
582 public:
583
584
586 protected:
587 *hash<auto> checkOptions(string err, *hash<string, hash<DataProviderOptionInfo>> option_desc, *hash<auto> options);
588 public:
589
590
592
599 protected:
600 *hash<auto> processFieldValues(*hash<auto> h, *hash<auto> search_options);
601 public:
602
603
605 protected:
606 error(string err, string fmt);
607 public:
608
609
611
616 protected:
617 *hash<auto> searchFirstRecordImpl(hash<auto> where_cond, *hash<auto> search_options);
618 public:
619
620
622
629 protected:
630 *hash<auto> searchSingleRecordImpl(hash<auto> where_cond, *hash<auto> search_options);
631 public:
632
633
635
639 protected:
640 *list<string> getChildProviderNamesImpl();
641 public:
642
643
645
647 protected:
648 *AbstractDataProvider getChildProviderImpl(string name);
649 public:
650
651
653
659 *hash<string, AbstractDataField> getRecordType(*hash<auto> search_options);
660
661
663 *hash<string, AbstractDataField> getSoftRecordType(*hash<auto> search_options);
664
665
667 *hash<string, AbstractDataField> getOrNothingRecordType(*hash<auto> search_options);
668
669
671
674 *hash<string, hash<DataProviderOptionInfo>> getSearchOptions();
675
676
678
681 *hash<string, hash<DataProviderOptionInfo>> getCreateOptions();
682
683
685
688 *hash<string, hash<DataProviderOptionInfo>> getUpsertOptions();
689
690
692
695 *hash<string, hash<DataProviderOptionInfo>> getRequestOptions();
696
697
699
701 bool supportsRead();
702
703
705
707 bool supportsBulkRead();
708
709
711
713 bool supportsCreate();
714
715
717
719 bool supportsUpdate();
720
721
723
725 bool supportsUpsert();
726
727
729
731 bool supportsDelete();
732
733
735
737 bool supportsNativeSearch();
738
739
741
743 bool supportsBulkCreate();
744
745
747
749 bool supportsBulkUpsert();
750
751
753
755 bool supportsRequest();
756
757
759
761 bool recordRequiresSearchOptions();
762
763
765
767 bool hasRecord();
768
769
771
775 protected:
776 *hash<string, AbstractDataField> getRecordTypeImpl(*hash<auto> search_options);
777 public:
778
779
781
788 protected:
789 AbstractDataProviderBulkRecordInterface searchRecordsBulkImpl(int block_size = 1000, *hash<auto> where_cond, *hash<auto> search_options);
790 public:
791
792
794
799 protected:
800 AbstractDataProviderRecordIterator searchRecordsImpl(*hash<auto> where_cond, *hash<auto> search_options);
801 public:
802
803
805
813 protected:
814 AbstractDataProviderRecordIterator requestSearchRecordsImpl(auto req, *hash<auto> where_cond, *hash<auto> search_options);
815 public:
816
817
819
827 protected:
828 *hash<auto> createRecordImpl(hash<auto> rec, *hash<auto> create_options);
829 public:
830
831
833
838 protected:
839 string upsertRecordImpl(hash<auto> rec, *hash<auto> upsert_options);
840 public:
841
842
844
848 protected:
849 bool updateSingleRecordImpl(hash<auto> set, hash<auto> where_cond, *hash<auto> search_options);
850 public:
851
852
854
860 protected:
861 int updateRecordsImpl(hash<auto> set, hash<auto> where_cond, *hash<auto> search_options);
862 public:
863
864
866
872 protected:
873 int deleteRecordsImpl(*hash<auto> where_cond, *hash<auto> search_options);
874 public:
875
876
878
883 protected:
884 auto doRequestImpl(auto req, *hash<auto> request_options);
885 public:
886
887
889
893 protected:
894 *AbstractDataProviderType getRequestTypeImpl();
895 public:
896
897
899
903 protected:
904 *AbstractDataProviderType getResponseTypeImpl();
905 public:
906
907
909
913 protected:
914 *hash<string, AbstractDataProviderType> getErrorResponseTypesImpl();
915 public:
916
917
919
925 protected:
926 AbstractDataProviderType getErrorResponseTypeImpl(string error_code);
927 public:
928
929
931
933 protected:
934 throwUnimplementedException();
935 public:
936
937
939 abstract string getName();
940
942 protected:
943 abstract hash<DataProviderInfo> getStaticInfoImpl();
944 public:
945 };
946 };
DataProvider::DataProviderInfo::supports_update
bool supports_update
Does the data provider support record updates?
Definition: AbstractDataProvider.qc.dox.h:89
DataProvider::AbstractDataProvider::getResponseTypeImpl
*AbstractDataProviderType getResponseTypeImpl()
Returns the description of a response message, if this object represents a response message...
DataProvider::AbstractDataProvider::getInfoAsData
hash< auto > getInfoAsData()
Returns static provider information as data; no objects are returned.
DataProvider::AbstractDataProvider::searchSingleRecord
*hash< auto > searchSingleRecord(hash< auto > where_cond, *hash< auto > search_options)
Returns a single record matching the search options.
DataProvider::DataProviderInfo
Data provider info.
Definition: AbstractDataProvider.qc.dox.h:65
DataProvider::AbstractDataProvider::getRecordIterator
AbstractDataProviderRecordIterator getRecordIterator(*hash< auto > search_options)
Returns an iterator iterating all records.
DataProvider::AbstractDataProvider::error
error(string err, string fmt)
thrown an exception
DataProvider::AbstractDataProvider::getErrorResponseTypesImpl
*hash< string, AbstractDataProviderType > getErrorResponseTypesImpl()
Returns a hash of error responses, if any.
DataProvider::AbstractDataProvider::checkUpdate
checkUpdate()
Ensures that the data provider supports record upserts.
DataProvider::DataProviderInfo::supports_upsert
bool supports_upsert
Does the data provider support record upserts (create or update)?
Definition: AbstractDataProvider.qc.dox.h:94
DataProvider::AbstractDataProvider::doRequest
auto doRequest(auto req, *hash< auto > request_options)
Makes a request and returns the response.
DataProvider::AbstractDataProvider::commit
commit()
Commits data written to the data provider.
DataProvider::AbstractDataProvider::updateRecordsImpl
int updateRecordsImpl(hash< auto > set, hash< auto > where_cond, *hash< auto > search_options)
Updates zero or more records matching the search options.
DataProvider::AbstractDataProvider::deleteRecordsImpl
int deleteRecordsImpl(*hash< auto > where_cond, *hash< auto > search_options)
Deletes zero or more records.
DataProvider::AbstractDataProviderBulkOperation
Abstract bulk data operation class.
Definition: AbstractDataProviderBulkOperation.qc.dox.h:33
DataProvider::AbstractDataProvider::processConstructorOptions
processConstructorOptions(*hash< string, hash< DataProviderOptionInfo >> option_desc, *hash< auto > options)
processes options passed to the constructor
DataProvider::AbstractDataProvider::getResponseType
*AbstractDataProviderType getResponseType()
Returns the description of a response message, if this object represents a response message...
DataProvider::AbstractDataProvider::getChildProviderEx
AbstractDataProvider getChildProviderEx(string name)
Returns the given child provider or throws an exception if the given child is unknown.
DataProvider::UpsertResultUpdated
const UpsertResultUpdated
Indicates that the record was updated.
Definition: AbstractDataProvider.qc.dox.h:40
DataProvider::AbstractDataProvider::checkDelete
checkDelete()
Ensures that the data provider supports record deletion.
DataProvider::AbstractDataProvider::cb_value_needs_resolution
static code cb_value_needs_resolution
static callback the returns a bool if the value needs dynamic resolution
Definition: AbstractDataProvider.qc.dox.h:203
DataProvider::AbstractDataProvider::getCreateOptions
*hash< string, hash< DataProviderOptionInfo > > getCreateOptions()
Returns options that can be used for creating records.
DataProvider::AbstractDataProvider::getChildProviderNames
*list< string > getChildProviderNames()
Returns a list of child data provider names, if any.
DataProvider::AbstractDataProvider::supportsUpdate
bool supportsUpdate()
Returns True if the data provider supports the record update API.
DataProvider::AbstractDataProvider::setDynamicValueCallbacks
static bool setDynamicValueCallbacks()
Ensures that no callbacks can be set for dynamic URI resolution.
DataProvider::AbstractDataProvider::throwUnimplementedException
throwUnimplementedException()
Throws an INVALID-OPERATION exception.
DataProvider::AbstractDataProviderRecordIterator
Defines the abstract class for data provider iterators; the destructor releases the iterator...
Definition: AbstractDataProviderRecordIterator.qc.dox.h:33
DataProvider::AbstractDataProvider::createRecord
*hash< auto > createRecord(hash< auto > rec, *hash< auto > create_options)
Creates the given record in the data provider.
DataProvider::UpsertResultDeleted
const UpsertResultDeleted
Indicates that the record was deleted.
Definition: AbstractDataProvider.qc.dox.h:49
DataProvider::AbstractDataProvider::searchRecords
AbstractDataProviderRecordIterator searchRecords(*hash< auto > where_cond, *hash< auto > search_options)
Returns an iterator for zero or more records matching the search options.
DataProvider::AbstractDataProvider::getChildProvider
*AbstractDataProvider getChildProvider(string name)
Returns the given child provider or NOTHING if the given child is unknown.
DataProvider::AbstractDataProvider
The AbstractDataProvider class.
Definition: AbstractDataProvider.qc.dox.h:194
DataProvider::AbstractDataProvider::updateRecords
int updateRecords(hash< auto > set, *hash< auto > where_cond, *hash< auto > search_options)
Updates zero or more records matching the search options.
DataProvider::AbstractDataProvider::getRequestType
*AbstractDataProviderType getRequestType()
Returns the description of a successful request message, if any.
DataProvider::AbstractDataProvider::getUpsertOptions
*hash< string, hash< DataProviderOptionInfo > > getUpsertOptions()
Returns options that can be used for upserting records.
DataProvider::DataProviderInfo::create_options
*hash< string, hash< DataProviderOptionInfo > > create_options
Create options supported by the data provider.
Definition: AbstractDataProvider.qc.dox.h:163
DataProvider::DataProviderInfo::name
string name
Data provider name.
Definition: AbstractDataProvider.qc.dox.h:69
DataProvider::UpsertResultInserted
const UpsertResultInserted
Indicates that the record was inserted.
Definition: AbstractDataProvider.qc.dox.h:37
DataProvider::AbstractDataProvider::checkOptions
*hash< auto > checkOptions(string err, *hash< string, hash< DataProviderOptionInfo >> option_desc, *hash< auto > options)
verifies options according to the option
DataProvider::AbstractDataProvider::getOrNothingRecordType
*hash< string, AbstractDataField > getOrNothingRecordType(*hash< auto > search_options)
Returns the description of the record type with "or nothing" types, if any.
DataProvider::AbstractDataProvider::validateSearchOptions
*hash< auto > validateSearchOptions(*hash< auto > search_options)
validates search options
DataProvider::DataProviderOptionInfo::desc
string desc
The option description.
Definition: AbstractDataProvider.qc.dox.h:61
DataProvider::AbstractDataProvider::updateSingleRecord
bool updateSingleRecord(hash< auto > set, hash< auto > where_cond, *hash< auto > search_options)
Updates a single record matching the search options.
DataProvider::DataProviderInfo::constructor_options
*hash< string, hash< DataProviderOptionInfo > > constructor_options
Constructor options supported by the data provider for the constructor variant taking a hash...
Definition: AbstractDataProvider.qc.dox.h:158
DataProvider::DataProviderInfo::transaction_management
bool transaction_management
Does the data provider require transaction management?
Definition: AbstractDataProvider.qc.dox.h:143
DataProvider::AbstractDataProvider::checkUpsert
checkUpsert()
Ensures that the data provider supports record upserts.
DataProvider::AbstractDataProvider::getErrorResponseTypes
*hash< string, AbstractDataProviderType > getErrorResponseTypes()
Returns a hash of error responses, if any.
DataProvider::AbstractDataProvider::getErrorResponseTypeImpl
AbstractDataProviderType getErrorResponseTypeImpl(string error_code)
Returns the type for the given error code.
DataProvider::DataProviderInfo::supports_native_search
bool supports_native_search
Does the data provider support native record searching?
Definition: AbstractDataProvider.qc.dox.h:104
DataProvider::AbstractDataProvider::getRequestOptions
*hash< string, hash< DataProviderOptionInfo > > getRequestOptions()
Returns options that can be used for requests.
False
const False
DataProvider::AbstractDataProvider::cb_resolve_value
static code cb_resolve_value
static callback for dynamic value resolution
Definition: AbstractDataProvider.qc.dox.h:206
DataProvider::AbstractDataProvider::requiresTransactionManagement
bool requiresTransactionManagement()
Returns True if the data provider supports transaction management.
DataProvider::AbstractDataProvider::callbacks_locked
static bool callbacks_locked
flag if callbacks are locked
Definition: AbstractDataProvider.qc.dox.h:200
DataProvider::AbstractDataProvider::searchRecordsBulk
AbstractDataProviderBulkRecordInterface searchRecordsBulk(int block_size=1000, *hash< auto > where_cond, *hash< auto > search_options)
Returns an iterator for zero or more records matching the search options.
DataProvider::DataProviderInfo::has_record
bool has_record
Does the data provider provide a record?
Definition: AbstractDataProvider.qc.dox.h:148
DataProvider::AbstractDataProvider::createRecordImpl
*hash< auto > createRecordImpl(hash< auto > rec, *hash< auto > create_options)
Creates the given record to the data provider.
DataProvider::AbstractDataProvider::getRecordTypeImpl
*hash< string, AbstractDataField > getRecordTypeImpl(*hash< auto > search_options)
Returns the description of the record type, if any.
DataProvider::DataProviderInfo::request_options
*hash< string, hash< DataProviderOptionInfo > > request_options
Request options supported by the data provider.
Definition: AbstractDataProvider.qc.dox.h:178
DataProvider::UpsertResultUnchanged
const UpsertResultUnchanged
Indicates that the record was left unchanged.
Definition: AbstractDataProvider.qc.dox.h:46
DataProvider::AbstractDataProvider::requestSearchRecordsImpl
AbstractDataProviderRecordIterator requestSearchRecordsImpl(auto req, *hash< auto > where_cond, *hash< auto > search_options)
Returns an iterator for zero or more records matching the search options according to an API request...
DataProvider::DataProviderInfo::search_options
*hash< string, hash< DataProviderOptionInfo > > search_options
Search options supported by the data provider.
Definition: AbstractDataProvider.qc.dox.h:173
DataProvider::AbstractDataProvider::checkCreate
checkCreate()
Ensures that the data provider supports record creation.
DataProvider::AbstractDataProvider::getStaticInfoImpl
abstract hash< DataProviderInfo > getStaticInfoImpl()
Returns data provider static info.
DataProvider::AbstractDataProvider::searchSingleRecordImpl
*hash< auto > searchSingleRecordImpl(hash< auto > where_cond, *hash< auto > search_options)
Returns a single record matching the search options.
DataProvider::AbstractDataProvider::doRequestImpl
auto doRequestImpl(auto req, *hash< auto > request_options)
Makes a request and returns the response.
DataProvider::AbstractDataProvider::getChildProviderPath
AbstractDataProvider getChildProviderPath(string path)
Returns the given child provider from a "/" separated path string; throws an exception if any element...
DataProvider::AbstractDataProvider::supportsBulkUpsert
bool supportsBulkUpsert()
Returns True if the data provider supports bulk upserts.
DataProvider::AbstractDataProviderBulkRecordInterface
Defines the abstract class for data provider iterators; the destructor releases the iterator...
Definition: AbstractDataProviderBulkRecordInterface.qc.dox.h:33
DataProvider::AbstractDataProvider::getRequestTypeImpl
*AbstractDataProviderType getRequestTypeImpl()
Returns the description of a successful request message, if any.
DataProvider::AbstractDataProvider::getInfo
hash< DataProviderInfo > getInfo()
Returns data provider info.
DataProvider::AbstractDataProvider::checkRead
checkRead()
Ensures that the data provider supports read operations.
DataProvider::AbstractDataProvider::hasRecord
bool hasRecord()
Returns True if the data provider has a record type.
DataProvider::AbstractDataProvider::getName
abstract string getName()
Returns the data provider name.
DataProvider::AbstractDataProvider::processFieldValues
*hash< auto > processFieldValues(*hash< auto > h, *hash< auto > search_options)
processes search or set values to convert types if necessary
DataProvider::AbstractDataProvider::validateUpsertOptions
*hash< auto > validateUpsertOptions(*hash< auto > upsert_options)
validates upsert options
DataProvider::AbstractDataProvider::upsertRecord
string upsertRecord(hash< auto > rec, *hash< auto > upsert_options)
Upserts the given record in the data provider.
DataProvider::DataProviderInfo::supports_children
bool supports_children
Does the data provider support children?
Definition: AbstractDataProvider.qc.dox.h:138
DataProvider::DataProviderOptionInfo
Data provider option info.
Definition: AbstractDataProvider.qc.dox.h:53
DataProvider::DataProviderInfo::supports_read
bool supports_read
Does the data provider support reading.
Definition: AbstractDataProvider.qc.dox.h:79
DataProvider::AbstractDataProvider::searchFirstRecordImpl
*hash< auto > searchFirstRecordImpl(hash< auto > where_cond, *hash< auto > search_options)
Returns the first record matching the search options.
DataProvider::AbstractDataProvider::checkRequest
checkRequest()
Ensures that the data provider supports the request API.
DataProvider::DataProviderInfo::record_requires_search_options
bool record_requires_search_options
Do we require search options to retrieve the record type?
Definition: AbstractDataProvider.qc.dox.h:153
DataProvider::DataProviderOptionInfo::type
softlist< AbstractDataProviderType > type
The option value type or types.
Definition: AbstractDataProvider.qc.dox.h:55
DataProvider::AbstractDataProvider::supportsBulkCreate
bool supportsBulkCreate()
Returns True if the data provider supports bulk creation output.
DataProvider::AbstractDataProvider::getRecordType
*hash< string, AbstractDataField > getRecordType(*hash< auto > search_options)
Returns the description of the record type, if any.
DataProvider::DataProviderInfo::supports_bulk_create
bool supports_bulk_create
Does the data provider support native / optimized bulk creation?
Definition: AbstractDataProvider.qc.dox.h:120
DataProvider::AbstractDataProvider::recordRequiresSearchOptions
bool recordRequiresSearchOptions()
Returns True if the data provider requires search options to retrieve the record type.
DataProvider::AbstractDataProviderType
describes a data type
Definition: AbstractDataProviderType.qc.dox.h:88
DataProvider::DataProviderInfo::upsert_options
*hash< string, hash< DataProviderOptionInfo > > upsert_options
Upsert options supported by the data provider.
Definition: AbstractDataProvider.qc.dox.h:168
DataProvider::DataProviderOptionInfo::required
bool required
Required flag.
Definition: AbstractDataProvider.qc.dox.h:58
DataProvider::AbstractDataProvider::getSoftRecordType
*hash< string, AbstractDataField > getSoftRecordType(*hash< auto > search_options)
Returns the description of the record type with soft types, if any.
DataProvider::DataProviderInfo::supports_create
bool supports_create
Does the data provider support record creation?
Definition: AbstractDataProvider.qc.dox.h:84
DataProvider::AbstractDataProvider::supportsRead
bool supportsRead()
Returns True if the data provider supports reading.
hash
hash< auto > hash(object obj)
DataProvider::DataProviderInfo::supports_delete
bool supports_delete
Does the data provider support record deletion?
Definition: AbstractDataProvider.qc.dox.h:99
DataProvider::AbstractDataProvider::searchRecordsImpl
AbstractDataProviderRecordIterator searchRecordsImpl(*hash< auto > where_cond, *hash< auto > search_options)
Returns an iterator for zero or more records matching the search options.
DataProvider::AbstractDataProvider::upsertRecordImpl
string upsertRecordImpl(hash< auto > rec, *hash< auto > upsert_options)
Upserts the given record to the data provider.
DataProvider::AbstractDataProvider::getBulkInserter
AbstractDataProviderBulkOperation getBulkInserter()
Returns a bulk insert operation object for the data provider.
DataProvider::AbstractDataProvider::deleteRecords
int deleteRecords(*hash< auto > where_cond, *hash< auto > search_options)
Deletes zero or more records.
DataProvider::AbstractDataProvider::supportsRequest
bool supportsRequest()
Returns True if the data provider supports requests.
DataProvider::DataProviderInfo::supports_bulk_read
bool supports_bulk_read
Does the data provider support native / optimized bulk reads?
Definition: AbstractDataProvider.qc.dox.h:112
DataProvider::AbstractDataProvider::supportsBulkRead
bool supportsBulkRead()
Returns True if the data provider supports native bulk reading.
DataProvider::DataProviderInfo::supports_request
bool supports_request
Does the data provider support the request API?
Definition: AbstractDataProvider.qc.dox.h:133
DataProvider::AbstractDataProvider::supportsNativeSearch
bool supportsNativeSearch()
Returns True if the data provider supports the record search API natively.
DataProvider::AbstractDataProvider::getMapperRuntimeKeys
*hash< string, hash< MapperRuntimeKeyInfo > > getMapperRuntimeKeys()
Returns custom data mapper runtime keys.
DataProvider::AbstractDataProvider::supportsCreate
bool supportsCreate()
Returns True if the data provider supports the record creation API.
DataProvider::AbstractDataProvider::getBulkUpserter
AbstractDataProviderBulkOperation getBulkUpserter()
Returns a bulk upsert operation object for the data provider.
DataProvider
Qore AbstractDataField class definition.
Definition: AbstractDataField.qc.dox.h:27
DataProvider::AbstractDataProvider::getChildProviderImpl
*AbstractDataProvider getChildProviderImpl(string name)
Returns the given child provider or NOTHING if the given child is unknown.
DataProvider::AbstractDataProvider::requestSearchRecords
AbstractDataProviderRecordIterator requestSearchRecords(auto req, *hash< auto > where_cond, *hash< auto > search_options)
Returns an iterator for zero or more records matching the search options according to an API request...
DataProvider::DataProviderInfo::mapper_keys
hash< string, hash< MapperRuntimeKeyInfo > > mapper_keys
A hash of mapper key information.
Definition: AbstractDataProvider.qc.dox.h:185
DataProvider::AbstractDataProvider::supportsUpsert
bool supportsUpsert()
Returns True if the data provider supports the record upsert API.
DataProvider::AbstractDataProvider::supportsDelete
bool supportsDelete()
Returns True if the data provider supports the record deletion API.
DataProvider::AbstractDataProvider::updateSingleRecordImpl
bool updateSingleRecordImpl(hash< auto > set, hash< auto > where_cond, *hash< auto > search_options)
Updates a single record matching the search options.
DataProvider::AbstractDataProvider::searchRecordsBulkImpl
AbstractDataProviderBulkRecordInterface searchRecordsBulkImpl(int block_size=1000, *hash< auto > where_cond, *hash< auto > search_options)
Returns an iterator for zero or more records matching the search options.
DataProvider::AbstractDataProvider::getErrorResponseType
AbstractDataProviderType getErrorResponseType(string error_code)
Returns the type for the given error code.
DataProvider::DataProviderInfo::children
*list< string > children
A list of child data providers in this data provider.
Definition: AbstractDataProvider.qc.dox.h:190
DataProvider::AbstractDataProvider::getChildProviderNamesImpl
*list< string > getChildProviderNamesImpl()
Returns a list of child data provider names, if any.
DataProvider::AbstractDataProvider::getSearchOptions
*hash< string, hash< DataProviderOptionInfo > > getSearchOptions()
Returns options that can be used for searching.
DataProvider::AbstractDataProvider::validateRequestOptions
*hash< auto > validateRequestOptions(*hash< auto > request_options)
validates request options
DataProvider::DataProviderInfo::supports_bulk_upsert
bool supports_bulk_upsert
Does the data provider support native / optimized bulk upserts?
Definition: AbstractDataProvider.qc.dox.h:128
DataProvider::AbstractDataProvider::searchFirstRecord
*hash< auto > searchFirstRecord(hash< auto > where_cond, *hash< auto > search_options)
Returns the first record matching the search options.
DataProvider::DataProviderInfo::type
string type
The name of the provider type.
Definition: AbstractDataProvider.qc.dox.h:74
DataProvider::AbstractDataProvider::validateCreateOptions
*hash< auto > validateCreateOptions(*hash< auto > create_options)
validates create options
DataProvider::AbstractDataProvider::checkCallbacks
static bool checkCallbacks()
Checks if callbacks have already been set or locked.
DataProvider::AbstractDataProvider::rollback
rollback()
Rolls back data written to the data provider.
DataProvider::UpsertResultVerified
const UpsertResultVerified
Indicates that the record was verified as already in the target state.
Definition: AbstractDataProvider.qc.dox.h:43
DataProvider::AbstractDataProvider::getBulkRecordInterface
AbstractDataProviderBulkRecordInterface getBulkRecordInterface(int block_size=1000, *hash< auto > search_options)
Returns an iterator iterating all records with the bulk read API.