Qore DataProvider Module Reference 3.3.0
Loading...
Searching...
No Matches
AbstractDataProvider.qc.dox.h
1// -*- mode: c++; indent-tabs-mode: nil -*-
3
26namespace DataProvider {
32const UpsertResultInserted = "inserted";
33
35const UpsertResultUpdated = "updated";
36
38const UpsertResultVerified = "verified";
39
41const UpsertResultUnchanged = "unchanged";
42
44const UpsertResultDeleted = "deleted";
46
48public hashdecl DataProviderOptionInfo {
51
53 *string short_desc;
54
56 string desc;
57
59 softlist<AbstractDataProviderType> type;
60
62
65 bool required = False;
66
68
71 *softlist<string> required_groups;
72
74 *softlist<string> exclusive_with;
75
78
80 bool sensitive = False;
81
84
86 *softlist<hash<Util::AllowedValueInfo>> allowed_values;
87
90
92 /* In case the option type is a list, then this will provide the discrete values that can appear in the list
93 */
94 *softlist<hash<Util::AllowedValueInfo>> element_allowed_values;
95
98
100
103
105
109 *string ref_data;
110
112
117
120
123
125 *hash<auto> metadata;
126};
127
129public hashdecl DataProviderSummaryInfo {
131 string name;
132
135
137 *string short_desc;
138
140 string desc;
141
143 string type;
144
146 bool supports_read = False;
147
149 bool supports_create = False;
150
152 bool supports_update = False;
153
155 bool supports_upsert = False;
156
158 bool supports_delete = False;
159
162
164
167 bool supports_bulk_read = False;
168
170
174
176
180
182 bool supports_request = False;
183
185 bool supports_children = False;
186
189
191 bool has_record = False;
192
195
197
201
203
211
213
216
218
221
223
226
228
231
233
236
238
241
243
246
248
250 bool children_identical = False;
251};
252
254public hashdecl DataProviderMessageInfo {
256
258 string desc;
259
262};
263
273
275const MSG_None = "NONE";
276
278
282const MSG_Sync = "SYNC";
283
285
287const MSG_Async = "ASYNC";
289
296const ST_Any = 1;
297
299const ST_Value = 2;
300
302
305const ST_Field = 3;
307
310
311
313const SignatureTypeDescMap = map {$1.value: $1.key.toInt()}, SignatureTypeCodeMap.pairIterator();
314
321const ER_Search = (1 << 0);
322
324const ER_Field = (1 << 1);
325
329
331const RoleCodeMap = ...;
332
333
335const RoleDescMap = map {$1.value: $1.key.toInt()}, RoleCodeMap.pairIterator();
336
343const LC_And = (1 << 0);
344
346const LC_Or = (1 << 1);
347
349const LC_All = (LC_And | LC_Or);
351
353const LogicCodeMap = ...;
354
355
357const LogicDescMap = map {$1.value: $1.key.toInt()}, LogicCodeMap.pairIterator();
358
367
370
371
374
375
378
379
382
383
386
387
390
391
394
395
398
399
402
403
406
407
410
411
414
415
418
419
426const DET_Operator = 1;
427
429const DET_Function = 2;
431
434
435
437const ExpressionTypeDescMap = map {$1.value: $1.key.toInt()}, ExpressionTypeCodeMap.pairIterator();
438
445const DES_Generic = 1;
446
450
453
454
456const ExpressionSubtypeDescMap = map {$1.value: $1.key.toInt()}, ExpressionSubtypeCodeMap.pairIterator();
457
459public hashdecl DataProviderArgInfo {
462
464 *string short_desc;
465
467 string desc;
468
471
473 bool sensitive = False;
474
477
479 /* In case the arg type is a list, then this will provide the discrete values that can appear in the list
480 */
481 *softlist<hash<Util::AllowedValueInfo>> allowed_values;
482
485
487 /* In case the option type is a list, then this will provide the discrete values that can appear in the list
488 */
489 *softlist<hash<Util::AllowedValueInfo>> element_allowed_values;
490
493
495
498};
499
503 int type;
504
506
509
511
513 string name;
514
517
520
522
524 string desc;
525
527 string symbol;
528
530
533
535
542
544 softlist<hash<DataProviderSignatureTypeInfo>> args;
545
547 *softlist<hash<DataProviderArgInfo>> arg_info;
548
551
553 bool varargs = False;
554
556
571
573
580};
581
585 string field;
586};
587
589public hashdecl DataProviderExpression {
591 string exp;
592
594
597 softlist<auto> args;
598};
599
601public hashdecl DataProviderInfo {
603
605 string name;
606
609
611 *string short_desc;
612
614
616 *string desc;
617
619
621 string type;
622
624
626 bool supports_read = False;
627
629
631 bool supports_create = False;
632
634
636 bool supports_update = False;
637
639
641 bool supports_upsert = False;
642
644
646 bool supports_delete = False;
647
649
652
654
659 bool supports_bulk_read = False;
660
662
668
670
676
678
680 bool supports_request = False;
681
683
685 bool supports_children = False;
686
688
691
693
695 bool has_record = False;
696
698
701
703
708
710
715
717
721 bool supports_add_field = False;
722
724
729
731
736
738
742 bool supports_schema = False;
743
745
750
752
757
759
767
769
772
774
777
779
782
784
787
789
792
794
797
799
802
804
806 bool children_identical = False;
807
809
812 *string schema_type;
813
815
817 *hash<string, hash<DataProviderOptionInfo>> constructor_options;
818
820
827
829
831 *hash<string, hash<DataProviderOptionInfo>> create_options;
832
834
836 *hash<string, hash<DataProviderOptionInfo>> upsert_options;
837
839
841 *hash<string, hash<DataProviderOptionInfo>> search_options;
842
844
846 *hash<string, hash<DataProviderOptionInfo>> request_options;
847
849
853 *hash<string, hash<DataProviderOptionInfo>> child_create_options;
854
856
860 *hash<string, hash<DataProviderOptionInfo>> child_delete_options;
861
863
867 *hash<string, hash<DataProviderOptionInfo>> add_field_options;
868
870
874 *hash<string, hash<DataProviderOptionInfo>> update_field_options;
875
877
881 *hash<string, hash<DataProviderOptionInfo>> delete_field_options;
882
884
888 *hash<string, hash<DataProviderOptionInfo>> send_message_options;
889
891
895 *hash<string, hash<DataProviderExpressionInfo>> expressions;
896
898
902 *hash<string, hash<DataProviderMessageInfo>> events;
903
905
909 *hash<string, hash<DataProviderMessageInfo>> messages;
910
912
915
917
921 hash<string, hash<MapperRuntimeKeyInfo>> mapper_keys = Mapper::MapperKeyInfo;
922
924
927
929
932
934
936 *list<string> children;
937
939 *hash<auto> info;
940};
941
946
949
952
954 *string url;
955
957 *hash<auto> info;
958};
959
962
963
965class AbstractDataProvider : public Logger::LoggerWrapper, public Qore::Serializable {
966
967public:
970
971
973
978 const GenericExpressions = map {$1.key: $1.value.exp}, GenericExpressionImplementations.pairIterator();
979
981 const DataProviderSummaryInfoKeys = map $1.getName(), TypedHash::forName("DataProviderSummaryInfo").getMembers();
982
985
986
988
999
1000
1001protected:
1003 static bool callbacks_locked = False;
1004
1007
1009 static code cb_resolve_value;
1010
1011public:
1012
1015
1016
1018 constructor(LoggerInterface logger) ;
1019
1020
1022
1026 hash<auto> getInfoAsData(*bool with_type_info);
1027
1028
1030 hash<DataProviderInfo> getInfo();
1031
1032
1034 hash<DataProviderSummaryInfo> getSummaryInfo();
1035
1036
1038
1041
1042
1044
1046 *string getShortDesc();
1047
1048
1050 *string getDesc();
1051
1052
1054
1056 *hash<auto> getAdditionalInfo();
1057
1058
1060
1071 *hash<auto> createRecordFromOptions(*hash<auto> options);
1072
1073
1075
1085 *hash<auto> createRecord(hash<auto> rec, *hash<auto> create_options);
1086
1087
1089
1099 *hash<auto> createRecordsBulkFromOptions(*hash<auto> options);
1100
1101
1103
1113 *hash<auto> createRecordsBulk(hash<auto> recs, *hash<auto> create_options);
1114
1115
1117
1128 *hash<auto> createRecordsBulk(AbstractDataProviderBulkRecordInterface stream, *hash<auto> create_options);
1129
1130
1132
1140 string upsertRecordWithOptions(*hash<auto> options);
1141
1142
1144
1151 string upsertRecord(hash<auto> rec, *hash<auto> upsert_options);
1152
1153
1155
1164 *list<string> upsertRecordsBulkWithOptions(*hash<auto> options);
1165
1166
1168
1177 *list<string> upsertRecordsBulk(hash<auto> recs, *hash<auto> upsert_options);
1178
1179
1181
1191 *list<string> upsertRecordsBulk(AbstractDataProviderBulkRecordInterface stream, *hash<auto> upsert_options);
1192
1193
1195
1202 *hash<auto> searchFirstRecordWithOptions(*hash<auto> options);
1203
1204
1206
1214 *hash<auto> searchFirstRecord(hash<DataProviderExpression> where_cond, *hash<auto> search_options);
1215
1216
1218
1224 *hash<auto> searchFirstRecord(hash<auto> where_cond, *hash<auto> search_options);
1225
1226
1228
1236 *hash<auto> searchSingleRecordWithOptions(*hash<auto> options);
1237
1238
1240
1249 *hash<auto> searchSingleRecord(hash<DataProviderExpression> where_cond, *hash<auto> search_options);
1250
1251
1253
1260 *hash<auto> searchSingleRecord(*hash<auto> where_cond, *hash<auto> search_options);
1261
1262
1264
1269
1270
1272
1280 AbstractDataProviderBulkRecordInterface getBulkRecordInterface(int block_size = 1000, *hash<auto> search_options);
1281
1282
1284
1294
1295
1297
1308 AbstractDataProviderBulkRecordInterface searchRecordsBulk(int block_size = 1000, *hash<DataProviderExpression> where_cond, *hash<auto> search_options);
1309
1310
1312
1321 AbstractDataProviderBulkRecordInterface searchRecordsBulk(int block_size = 1000, *hash<auto> where_cond, *hash<auto> search_options);
1322
1323
1325
1332
1333
1335
1342 AbstractDataProviderRecordIterator searchRecords(*hash<DataProviderExpression> where_cond, *hash<auto> search_options);
1343
1344
1346
1351 AbstractDataProviderRecordIterator searchRecords(*hash<auto> where_cond, *hash<auto> search_options);
1352
1353
1355
1365 AbstractDataProviderRecordIterator requestSearchRecords(auto req, *hash<DataProviderExpression> where_cond, *hash<auto> search_options);
1366
1367
1369
1377 AbstractDataProviderRecordIterator requestSearchRecords(auto req, *hash<auto> where_cond, *hash<auto> search_options);
1378
1379
1381
1390 bool updateSingleRecordWithOptions(*hash<auto> options);
1391
1392
1394
1405 bool updateSingleRecord(hash<auto> set, hash<DataProviderExpression> where_cond, *hash<auto> search_options);
1406
1407
1409
1418 bool updateSingleRecord(hash<auto> set, hash<auto> where_cond, *hash<auto> search_options);
1419
1420
1422
1431 int updateRecordsWithOptions(*hash<auto> options);
1432
1433
1435
1447 int updateRecords(hash<auto> set, *hash<DataProviderExpression> where_cond, *hash<auto> search_options);
1448
1449
1451
1461 int updateRecords(hash<auto> set, *hash<auto> where_cond, *hash<auto> search_options);
1462
1463
1465
1473 int deleteRecordsWithOptions(*hash<auto> options);
1474
1475
1477
1489 int deleteRecords(*hash<DataProviderExpression> where_cond, *hash<auto> search_options);
1490
1491
1493
1503 int deleteRecords(*hash<auto> where_cond, *hash<auto> search_options);
1504
1505
1507
1515 auto doRequest(auto req, *hash<auto> request_options);
1516
1517
1519
1530 AbstractDataProvider createChildProvider(string name, hash<string, AbstractDataField> fields, *hash<auto> child_create_options);
1531
1532
1534
1542 deleteChildProvider(string name, *hash<auto> child_delete_options);
1543
1544
1546
1555 addField(AbstractDataField field, *hash<auto> field_add_options);
1556
1557
1559
1568 updateField(string name, AbstractDataField field, *hash<auto> field_update_options);
1569
1570
1572
1580 deleteField(string name, *hash<auto> field_delete_options);
1581
1582
1584
1595 sendMessage(string message_id, auto msg, *hash<auto> send_message_options);
1596
1597
1599
1606
1607
1609
1614
1615
1617
1628
1629
1631
1642
1643
1645
1655 *hash<string, hash<ActionOptionInfo>> tryGetActionOptionsFromRequestTypeWithData(auto req);
1656
1657
1659
1664
1665
1667
1678
1679
1681
1692
1693
1695
1699 *hash<string, AbstractDataProviderType> getErrorResponseTypes();
1700
1701
1703
1711
1712
1714
1723 hash<DataProviderMessageInfo> getEventInfo(string event_id);
1724
1725
1727
1739 hash<DataProviderMessageInfo> getEventInfoWithOptions(string event_id, *hash<auto> options);
1740
1741
1743
1749 hash<string, hash<DataProviderMessageInfo>> getEventTypes();
1750
1751
1753
1759 hash<string, hash<DataProviderMessageInfo>> getEventTypesWithOptions(*hash<auto> options);
1760
1761
1763
1771 *hash<string, hash<ActionOptionInfo>> tryGetActionOptionsWithOptions(hash<DataProviderActionInfo> action, *hash<auto> options);
1772
1773
1775
1784 hash<DataProviderMessageInfo> getMessageInfo(string message_id);
1785
1786
1788
1794 hash<string, hash<DataProviderMessageInfo>> getMessageTypes();
1795
1796
1798
1806 hash<string, hash<DataProviderMessageInfo>> getMessageTypesWithOptions(*hash<auto> options);
1807
1808
1810
1817
1818
1820
1827
1828
1830
1839 auto getExampleErrorResponseData(string error_code);
1840
1841
1843
1852 auto getExampleEventData(string event_id);
1853
1854
1856
1861
1862
1864
1868 *hash<DataProviderConnectionInfo> getConnectionInfo();
1869
1870
1872
1875 *list<hash<DataProviderSummaryInfo>> getChildProviderSummaryInfo();
1876
1877
1879
1881 *list<string> getChildProviderNames();
1882
1883
1885
1894
1895
1897
1906
1907
1909
1918
1919
1921
1925
1926
1928
1937
1938
1940
1947
1948
1950
1957
1958
1960
1967
1968
1970
1978
1979
1981
1989
1990
1992
1996 *hash<string, hash<MapperRuntimeKeyInfo>> getMapperRuntimeKeys();
1997
1998
2000
2004
2005
2007
2011
2012
2014
2018
2019
2021
2025
2026
2028
2032
2033
2035
2039
2040
2042
2048
2049
2051
2057
2058
2060
2066
2067
2069
2075
2076
2078
2084
2085
2087
2093
2094
2096
2102
2103
2105
2111
2112
2114
2120
2121
2123
2131 *hash<auto> getSearchExpression(*hash<auto> where_cond, *hash<auto> search_options);
2132
2133
2135
2140 *hash<string, bool> getSupportedReferenceData();
2141
2142
2144
2152 *list<hash<AllowedValueInfo>> getReferenceDataSafe(string type, *hash<auto> action_opts);
2153
2154
2156
2168 *list<hash<AllowedValueInfo>> getReferenceDataSafeEx(string type, *hash<auto> action_opts);
2169
2170
2172
2181 *list<hash<AllowedValueInfo>> getReferenceData(string type, *hash<auto> action_opts);
2182
2183
2185
2195 *list<hash<AllowedValueInfo>> getReferenceDataEx(string type, *hash<auto> action_opts);
2196
2197
2199
2205
2206
2208
2216 *list<hash<AllowedValueInfo>> getElementReferenceDataSafe(string type, *hash<auto> action_opts);
2217
2218
2220
2232 *list<hash<AllowedValueInfo>> getElementReferenceDataSafeEx(string type, *hash<auto> action_opts);
2233
2234
2236
2245 *list<hash<AllowedValueInfo>> getElementReferenceData(string type, *hash<auto> action_opts);
2246
2247
2249
2259 *list<hash<AllowedValueInfo>> getElementReferenceDataEx(string type, *hash<auto> action_opts);
2260
2261
2263
2268 *hash<string, bool> getSupportedReferenceDataValues();
2269
2270
2272
2279 auto getReferenceDataValueSafe(string type, *hash<auto> action_opts);
2280
2281
2283
2295 auto getReferenceDataValueSafeEx(string type, *hash<auto> action_opts);
2296
2297
2299
2308 auto getReferenceDataValue(string type, *hash<auto> action_opts);
2309
2310
2312
2322 auto getReferenceDataValueEx(string type, *hash<auto> action_opts);
2323
2324
2326
2335 updateConnectionObjects(object conn, object connobj);
2336
2337
2339
2346protected:
2347 *hash<auto> createRecordsBulkIntern(hash<auto> recs, *hash<auto> create_options);
2348public:
2349
2350
2352protected:
2353 *hash<string, hash<ActionOptionInfo>> getSearchOptionsAsActionOptions();
2354public:
2355
2356
2358protected:
2359 *hash<string, hash<ActionOptionInfo>> getOptionsAsActionOptions( *hash<string, hash<DataProviderOptionInfo>> options);
2360public:
2361
2362
2364
2372protected:
2373 *hash<string, hash<ActionOptionInfo>> tryGetActionOptionsForEventWithOptionsImpl( hash<DataProviderActionInfo> action, *hash<auto> options);
2374public:
2375
2376
2378
2386protected:
2387 *hash<string, hash<ActionOptionInfo>> tryGetActionOptionsForRequestWithOptionsImpl( hash<DataProviderActionInfo> action, *hash<auto> options);
2388public:
2389
2390
2392
2400protected:
2401 *hash<string, hash<ActionOptionInfo>> tryGetActionOptionsForMessageWithOptionsImpl( hash<DataProviderActionInfo> action, *hash<auto> options);
2402public:
2403
2404
2406
2414protected:
2415 *hash<string, hash<ActionOptionInfo>> tryGetActionOptionsForSearchWithOptionsImpl( hash<DataProviderActionInfo> action, *hash<auto> options);
2416public:
2417
2418
2420
2428protected:
2429 *hash<string, hash<ActionOptionInfo>> tryGetActionOptionsForCreateWithOptionsImpl( hash<DataProviderActionInfo> action, *hash<auto> options);
2430public:
2431
2432
2434
2442protected:
2443 *hash<string, hash<ActionOptionInfo>> tryGetActionOptionsForUpsertWithOptionsImpl( hash<DataProviderActionInfo> action, *hash<auto> options);
2444public:
2445
2446
2448
2456protected:
2457 *hash<string, hash<ActionOptionInfo>> tryGetActionOptionsForUpdateWithOptionsImpl( hash<DataProviderActionInfo> action, *hash<auto> options);
2458public:
2459
2460
2462
2470protected:
2471 *hash<string, hash<ActionOptionInfo>> tryGetActionOptionsForDeleteWithOptionsImpl( hash<DataProviderActionInfo> action, *hash<auto> options);
2472public:
2473
2474
2476
2484protected:
2485 *hash<string, hash<ActionOptionInfo>> tryGetActionOptionsWithOptionsImpl( hash<DataProviderActionInfo> action, *hash<auto> options);
2486public:
2487
2488
2490
2493protected:
2494 hash<DataProviderExpression> getSimpleArgumentIntern(int role, hash<DataProviderInfo> info, hash<DataProviderExpressionInfo> expinfo, string key, auto value);
2495public:
2496
2497
2499
2504protected:
2505 hash<DataProviderExpression> getEqualityComparisonExpression(int role, hash<DataProviderInfo> info, string key, auto value);
2506public:
2507
2508
2510
2513protected:
2514 static hash<DataProviderExpressionInfo> getExpression(int role, string exp, *hash<string, hash<DataProviderExpressionInfo>> expmap);
2515public:
2516
2517
2519
2524
2526
2529 static auto evalGenericExpressionValue(hash<auto> rec, auto val);
2530 return rv;
2531 };
2532 if (val instanceof hash<DataProviderExpression>);
2533
2534 return val;
2535 };
2536
2538
2541 static auto evalGenericExpression(hash<auto> rec, hash<DataProviderExpression> exp);
2542
2544
2554 static bool setDynamicValueCallbacks(code value_needs_resolution, code resolve_value);
2555
2557
2565 static verifyExpression(int role, *hash<string, hash<DataProviderExpressionInfo>> expmap, int caps, AbstractDataProviderType expected_type, hash<DataProviderExpression> exp);
2566
2568
2576 static verifyExpression(int role, hash<DataProviderExpressionInfo> expinfo, int caps, AbstractDataProviderType expected_type, hash<DataProviderExpression> exp);
2577
2579
2585 static verifyExpressionArgValue(int role, int caps, hash<DataProviderExpressionInfo> expinfo, softlist<auto> values, int pos);
2586
2588protected:
2589 static bool checkCallbacks();
2590public:
2591
2592
2594
2596protected:
2597 *hash<auto> validateCreateOptions(*hash<auto> create_options);
2598public:
2599
2600
2602
2604protected:
2605 *hash<auto> validateUpsertOptions(*hash<auto> upsert_options);
2606public:
2607
2608
2610
2612protected:
2613 *hash<auto> validateSearchOptions(*hash<auto> search_options);
2614public:
2615
2616
2618
2620protected:
2621 *hash<auto> validateRequestOptions(*hash<auto> request_options);
2622public:
2623
2624
2626
2630protected:
2631 *hash<auto> validateChildCreateOptions(*hash<auto> child_create_options);
2632public:
2633
2634
2636
2640protected:
2641 *hash<auto> validateChildDeleteOptions(*hash<auto> child_delete_options);
2642public:
2643
2644
2646
2650protected:
2651 *hash<auto> validateFieldAddOptions(*hash<auto> field_add_options);
2652public:
2653
2654
2656
2660protected:
2661 *hash<auto> validateFieldUpdateOptions(*hash<auto> field_update_options);
2662public:
2663
2664
2666
2670protected:
2671 *hash<auto> validateFieldDeleteOptions(*hash<auto> field_delete_options);
2672public:
2673
2674
2676
2680protected:
2681 *hash<auto> validateSendMessageOptions(*hash<auto> send_message_options);
2682public:
2683
2684
2686protected:
2687 processConstructorOptions(*hash<string, hash<DataProviderOptionInfo>> option_desc, *hash<auto> options, *string required_options);
2688public:
2689
2690
2692
2705protected:
2706 *hash<auto> checkOptions(string err, *hash<string, hash<DataProviderOptionInfo>> option_desc, *hash<auto> uoptions, *string required_options);
2707public:
2708
2709
2711
2719protected:
2720 verifyRequiredOptions(string err, *hash<auto> options, string required_options);
2721public:
2722
2723
2725
2730protected:
2731 *hash<DataProviderExpression> processSearchParameters(*hash<DataProviderExpression> exp, *hash<auto> search_options);
2732public:
2733
2734
2736
2743protected:
2744 *hash<auto> processFieldValues(*hash<auto> h, *hash<auto> search_options);
2745public:
2746
2747
2749 bool searchAcceptsForeignField(string field);
2750
2751
2753
2759 *hash<string, AbstractDataField> getRecordType(*hash<auto> search_options);
2760
2761
2763
2770 *hash<string, AbstractDataField> getCreateRecordType(*hash<auto> create_options);
2771
2772
2774
2783 *hash<string, AbstractDataField> getUpdateRecordType(*hash<auto> search_options);
2784
2785
2787 *hash<string, AbstractDataField> getSoftRecordType(*hash<auto> search_options);
2788
2789
2791 *hash<string, AbstractDataField> getOrNothingRecordType(*hash<auto> search_options);
2792
2793
2795
2804 *hash<string, AbstractDataField> getRecordTypeWithOptions(*hash<auto> options, *hash<auto> search_options);
2805
2806
2808
2816 *hash<string, AbstractDataField> getCreateRecordTypeWithOptions(*hash<auto> options, *hash<auto> create_options);
2817
2818
2820
2830 *hash<string, AbstractDataField> getUpdateRecordTypeWithOptions(*hash<auto> options, *hash<auto> search_options);
2831
2832
2834 *hash<string, AbstractDataField> getSoftRecordTypeWithOptions(*hash<auto> options, *hash<auto> search_options);
2835
2836
2838 *hash<string, AbstractDataField> getOrNothingRecordTypeWithOptions(*hash<auto> options, *hash<auto> search_options);
2839
2840
2842
2845 *hash<string, hash<DataProviderOptionInfo>> getSearchOptions();
2846
2847
2849
2852 *hash<string, hash<DataProviderOptionInfo>> getCreateOptions();
2853
2854
2856
2859 *hash<string, hash<DataProviderOptionInfo>> getUpsertOptions();
2860
2861
2863
2866 *hash<string, hash<DataProviderOptionInfo>> getRequestOptions();
2867
2868
2870
2876 *hash<string, hash<DataProviderOptionInfo>> getChildCreateOptions();
2877
2878
2880
2886 *hash<string, hash<DataProviderOptionInfo>> getChildDeleteOptions();
2887
2888
2890
2896 *hash<string, hash<DataProviderOptionInfo>> getFieldAddOptions();
2897
2898
2900
2906 *hash<string, hash<DataProviderOptionInfo>> getFieldUpdateOptions();
2907
2908
2910
2916 *hash<string, hash<DataProviderOptionInfo>> getFieldDeleteOptions();
2917
2918
2920
2926 *hash<string, hash<DataProviderOptionInfo>> getSendMessageOptions();
2927
2928
2930
2932 string getMessageSupport();
2933
2934
2936
2938 bool supportsRead();
2939
2940
2942
2944 bool supportsBulkRead();
2945
2946
2948
2950 bool supportsCreate();
2951
2952
2954
2956 bool supportsUpdate();
2957
2958
2960
2962 bool supportsUpsert();
2963
2964
2966
2968 bool supportsDelete();
2969
2970
2972
2974 bool supportsNativeSearch();
2975
2976
2978
2980 bool supportsBulkCreate();
2981
2982
2984
2986 bool supportsBulkUpsert();
2987
2988
2990
2992 bool supportsRequest();
2993
2994
2996
2998 bool recordRequiresSearchOptions();
2999
3000
3002
3004 bool hasRecord();
3005
3006
3008
3010 bool supportsCreateChild();
3011
3012
3014
3016 bool supportsDeleteChild();
3017
3018
3020
3022 bool supportsAddField();
3023
3024
3026
3028 bool supportsUpdateField();
3029
3030
3032
3034 bool supportsDeleteField();
3035
3036
3038
3040 bool supportsSchema();
3041
3042
3044
3046 bool supportsSearchExpressions();
3047
3048
3050
3052 bool supportsObservable();
3053
3054
3056
3058 bool supportsMessages();
3059
3060
3062
3064 *object getSchemaType();
3065
3066
3068
3070 bool supportsChildren();
3071
3072
3074
3076 bool childrenIdentical();
3077
3078
3080
3087 static registerChild(string name, code generator);
3088
3090protected:
3091 error(string err, string fmt, ...);
3092public:
3093
3094
3096
3101protected:
3102 *hash<auto> searchFirstRecordImpl(hash<auto> where_cond, *hash<auto> search_options);
3103public:
3104
3105
3107
3114protected:
3115 *hash<auto> searchSingleRecordImpl(*hash<auto> where_cond, *hash<auto> search_options);
3116public:
3117
3118
3120
3124protected:
3125 *list<string> getChildProviderNamesImpl();
3126public:
3127
3128
3130
3132protected:
3133 *AbstractDataProvider getChildProviderImpl(string name);
3134public:
3135
3136
3138
3142protected:
3143 *hash<DataProviderConnectionInfo> getConnectionInfoImpl();
3144public:
3145
3146
3148
3154protected:
3155 hash<auto> generateExampleData(hash<string, AbstractDataField> fields);
3156public:
3157
3158
3160
3162protected:
3163 *hash<string, AbstractDataField> getRecordTypeImpl(*hash<auto> search_options);
3164public:
3165
3166
3168
3170protected:
3171 *hash<string, AbstractDataField> getUpdateRecordTypeImpl(*hash<auto> search_options);
3172public:
3173
3174
3176
3178protected:
3179 *hash<string, AbstractDataField> getCreateRecordTypeImpl(*hash<auto> create_options);
3180public:
3181
3182
3184
3193protected:
3194 *hash<string, AbstractDataField> getRecordTypeWithOptionsImpl(*hash<auto> options, *hash<auto> search_options);
3195public:
3196
3197
3199
3207protected:
3208 *hash<string, AbstractDataField> getCreateRecordTypeWithOptionsImpl(*hash<auto> options, *hash<auto> create_options);
3209public:
3210
3211
3213
3223protected:
3224 *hash<string, AbstractDataField> getUpdateRecordTypeWithOptionsImpl(*hash<auto> options, *hash<auto> search_options);
3225public:
3226
3227
3229
3236protected:
3237 AbstractDataProviderBulkRecordInterface searchRecordsBulkImpl(int block_size = 1000, *hash<auto> where_cond, *hash<auto> search_options);
3238public:
3239
3240
3242
3247protected:
3248 AbstractDataProviderRecordIterator searchRecordsImpl(*hash<auto> where_cond, *hash<auto> search_options);
3249public:
3250
3251
3253
3261protected:
3262 AbstractDataProviderRecordIterator requestSearchRecordsImpl(auto req, *hash<auto> where_cond, *hash<auto> search_options);
3263public:
3264
3265
3267
3272protected:
3273 *hash<auto> createRecordImpl(hash<auto> rec, *hash<auto> create_options);
3274public:
3275
3276
3278
3285protected:
3286 *hash<auto> createRecordsBulkImpl(hash<auto> recs, *hash<auto> create_options);
3287public:
3288
3289
3291
3296protected:
3297 string upsertRecordImpl(hash<auto> rec, *hash<auto> upsert_options);
3298public:
3299
3300
3302
3309protected:
3310 *list<string> upsertRecordsBulkImpl(hash<auto> recs, *hash<auto> upsert_options);
3311public:
3312
3313
3315
3319protected:
3320 bool updateSingleRecordImpl(hash<auto> set, hash<auto> where_cond, *hash<auto> search_options);
3321public:
3322
3323
3325
3331protected:
3332 int updateRecordsImpl(hash<auto> set, *hash<auto> where_cond, *hash<auto> search_options);
3333public:
3334
3335
3337
3343protected:
3344 int deleteRecordsImpl(*hash<auto> where_cond, *hash<auto> search_options);
3345public:
3346
3347
3349
3354protected:
3355 auto doRequestImpl(auto req, *hash<auto> request_options);
3356public:
3357
3358
3360
3368protected:
3369 AbstractDataProvider createChildProviderImpl(string name, hash<string, AbstractDataField> fields, *hash<auto> child_create_options);
3370public:
3371
3372
3374
3379protected:
3380 deleteChildProviderImpl(string name, *hash<auto> child_delete_options);
3381public:
3382
3383
3385
3391protected:
3392 addFieldImpl(AbstractDataField field, *hash<auto> field_add_options);
3393public:
3394
3395
3397
3403protected:
3404 updateFieldImpl(string name, AbstractDataField field, *hash<auto> field_update_options);
3405public:
3406
3407
3409
3414protected:
3415 deleteFieldImpl(string name, *hash<auto> field_delete_options);
3416public:
3417
3418
3420
3427protected:
3428 sendMessageImpl(string message_id, auto msg, *hash<auto> send_message_options);
3429public:
3430
3431
3433
3437protected:
3438 object getSchemaObjectImpl();
3439public:
3440
3441
3443
3447protected:
3448 *AbstractDataProviderType getRequestTypeImpl();
3449public:
3450
3451
3453
3463protected:
3464 *AbstractDataProviderType getRequestTypeWithDataImpl(auto req);
3465public:
3466
3467
3469
3479protected:
3480 *AbstractDataProviderType getRequestTypeWithOptionsImpl(*hash<auto> options);
3481public:
3482
3483
3485
3489protected:
3490 *AbstractDataProviderType getResponseTypeImpl();
3491public:
3492
3493
3495
3505protected:
3506 *AbstractDataProviderType getResponseTypeWithDataImpl(auto req);
3507public:
3508
3509
3511
3521protected:
3522 *AbstractDataProviderType getResponseTypeWithOptionsImpl(hash<auto> options);
3523public:
3524
3525
3527
3531protected:
3532 *hash<string, AbstractDataProviderType> getErrorResponseTypesImpl();
3533public:
3534
3535
3537
3543protected:
3544 AbstractDataProviderType getErrorResponseTypeImpl(string error_code);
3545public:
3546
3547
3549
3559protected:
3560 hash<DataProviderMessageInfo> getEventInfoImpl(string event_id);
3561public:
3562
3563
3565
3576protected:
3577 hash<DataProviderMessageInfo> getEventInfoWithOptionsImpl(string event_id, *hash<auto> options);
3578public:
3579
3580
3582
3588protected:
3589 hash<string, hash<DataProviderMessageInfo>> getEventTypesImpl();
3590public:
3591
3592
3594
3600protected:
3601 hash<string, hash<DataProviderMessageInfo>> getEventTypesWithOptionsImpl(hash<auto> options);
3602public:
3603
3604
3606
3614protected:
3615 hash<DataProviderMessageInfo> getMessageInfoImpl(string message_id);
3616public:
3617
3618
3620
3626protected:
3627 hash<string, hash<DataProviderMessageInfo>> getMessageTypesImpl();
3628public:
3629
3630
3632
3640protected:
3641 hash<string, hash<DataProviderMessageInfo>> getMessageTypesWithOptionsImpl(hash<auto> options);
3642public:
3643
3644
3646
3648protected:
3649 throwUnimplementedException();
3650public:
3651
3652
3654
3658protected:
3659 auto getExampleRequestDataImpl();
3660public:
3661
3662
3664
3670protected:
3671 auto getExampleResponseDataImpl();
3672public:
3673
3674
3676
3685protected:
3686 auto getExampleErrorResponseDataImpl(string error_code);
3687public:
3688
3689
3691
3700protected:
3701 auto getExampleEventDataImpl(string event_id);
3702public:
3703
3704
3706
3710protected:
3711 hash<auto> getExampleRecordDataImpl();
3712public:
3713
3714
3716
3723protected:
3724 *list<hash<AllowedValueInfo>> getReferenceDataImpl(string type, *hash<auto> action_opts);
3725public:
3726
3727
3729
3736protected:
3737 *list<hash<AllowedValueInfo>> getElementReferenceDataImpl(string type, *hash<auto> action_opts);
3738public:
3739
3740
3742
3749protected:
3750 auto getReferenceDataValueImpl(string type, *hash<auto> action_opts);
3751public:
3752
3753
3755
3757protected:
3758 bool currentThreadInTransactionImpl();
3759public:
3760
3761
3763 abstract string getName();
3764
3766protected:
3767 abstract hash<DataProviderInfo> getStaticInfoImpl();
3768public:
3769}
3770}
describes a data type based on a hashdecl
Definition AbstractDataField.qc.dox.h:74
Abstract bulk data operation class.
Definition AbstractDataProviderBulkOperation.qc.dox.h:33
Defines the abstract class for data provider iterators; the destructor releases the iterator.
Definition AbstractDataProviderBulkRecordInterface.qc.dox.h:33
The AbstractDataProvider class.
Definition AbstractDataProvider.qc.dox.h:965
AbstractDataProviderBulkOperation getBulkInserter(*int block_size)
Returns a bulk insert operation object for the data provider.
*hash< auto > searchFirstRecord(hash< DataProviderExpression > where_cond, *hash< auto > search_options)
Returns the first record matching the search options.
*hash< string, hash< ActionOptionInfo > > tryGetActionOptionsForDeleteWithOptionsImpl(hash< DataProviderActionInfo > action, *hash< auto > options)
Returns action options corresponding to the given option data for a delete action.
static code cb_resolve_value
static callback for dynamic value resolution
Definition AbstractDataProvider.qc.dox.h:1009
const GenericExpressions
Generic search operator expressions.
Definition AbstractDataProvider.qc.dox.h:978
hash< DataProviderSummaryInfo > getSummaryInfo()
Return data provider summary info.
hash< DataProviderMessageInfo > getEventInfo(string event_id)
Returns the description of an observable event, if any.
*list< hash< AllowedValueInfo > > getElementReferenceDataSafe(string type, *hash< auto > action_opts)
Returns element reference data of the given kind if available; logs but ignores exceptions retrieving...
bool currentThreadInTransaction()
Returns True if the current thread is in a transaction.
checkDeleteChild()
Ensures that the data provider supports deleting children.
*hash< string, hash< MapperRuntimeKeyInfo > > getMapperRuntimeKeys()
Returns custom data mapper runtime keys.
*hash< string, hash< ActionOptionInfo > > tryGetActionOptionsForUpsertWithOptionsImpl(hash< DataProviderActionInfo > action, *hash< auto > options)
Returns action options corresponding to the given option data for an upsert action.
deleteChildProvider(string name, *hash< auto > child_delete_options)
Deletes a child data provider.
AbstractDataProviderBulkRecordInterface searchRecordsBulkWithOptions(*hash< auto > options)
Returns an iterator for zero or more records matching the search action options.
*hash< auto > createRecordsBulkIntern(hash< auto > recs, *hash< auto > create_options)
Creates the given records in the data provider.
beginTransaction()
Begins a transaction with a data provider.
*hash< auto > createRecordFromOptions(*hash< auto > options)
Creates the given record in the data provider from create action options.
const DataProviderSummaryInfoKeys
A list of members names of the DataProviderSummaryInfoKeys hashdecl.
Definition AbstractDataProvider.qc.dox.h:981
*AbstractDataProviderType getRequestType()
Returns the description of a successful request message, if any.
hash< auto > getInfoAsData(*bool with_type_info)
Returns static provider information as data; no objects are returned.
auto getReferenceDataValue(string type, *hash< auto > action_opts)
Returns a reference data value of the given kind if available.
*hash< auto > createRecordsBulk(AbstractDataProviderBulkRecordInterface stream, *hash< auto > create_options)
Creates the given records in the data provider.
checkUpdate()
Ensures that the data provider supports record upserts.
auto getExampleResponseData()
Returns example data for a successful request message.
hash< DataProviderMessageInfo > getMessageInfo(string message_id)
Returns the description of an outbound message, if any.
const GenericExpressionImplementations
Generic expression implementations for data providers without native search functionality.
Definition AbstractDataProvider.qc.dox.h:969
*string getShortDesc()
Returns the data provider short description.
*hash< auto > searchSingleRecord(hash< DataProviderExpression > where_cond, *hash< auto > search_options)
Returns a single record matching the search options.
hash< string, hash< DataProviderMessageInfo > > getEventTypes()
Returns a hash of all supported event types.
checkUpdateField()
Ensures that the data provider supports updating fields.
sendMessage(string message_id, auto msg, *hash< auto > send_message_options)
Sends a message from message-capable data providers.
*list< hash< AllowedValueInfo > > getReferenceDataEx(string type, *hash< auto > action_opts)
Returns reference data of the given kind if available.
auto getExampleEventData(string event_id)
Returns example data for the given observable event.
AbstractDataProviderBulkOperation getBulkUpserter(*int block_size)
Returns a bulk upsert operation object for the data provider.
checkObservable()
Ensures that the data provider supports observer pattern / event API.
*AbstractDataProvider getChildProvider(string name)
Returns the given child provider or NOTHING if the given child is unknown.
*hash< string, hash< ActionOptionInfo > > tryGetActionOptionsForEventWithOptionsImpl(hash< DataProviderActionInfo > action, *hash< auto > options)
Returns action options corresponding to the given option data for an event action.
const GenericRecordSearchOptions
Generic record search options; see details below.
Definition AbstractDataProvider.qc.dox.h:998
*hash< string, hash< ActionOptionInfo > > tryGetActionOptionsForUpdateWithOptionsImpl(hash< DataProviderActionInfo > action, *hash< auto > options)
Returns action options corresponding to the given option data for an update action.
auto getReferenceDataValueEx(string type, *hash< auto > action_opts)
Returns a reference data value of the given kind if available.
commit()
Commits data written to the data provider.
string getDisplayName()
Returns the data provider display name.
bool updateSingleRecord(hash< auto > set, hash< DataProviderExpression > where_cond, *hash< auto > search_options)
Updates a single record matching the search options.
bool requiresTransactionManagement()
Returns True if the data provider requires transaction management.
bool updateSingleRecordWithOptions(*hash< auto > options)
Updates a single record using update action options.
auto getExampleErrorResponseData(string error_code)
Returns example data for the error message with the given error code.
hash< string, hash< DataProviderMessageInfo > > getEventTypesWithOptions(*hash< auto > options)
Returns a hash of all supported event types in the context of the given options.
AbstractDataProviderRecordIterator getRecordIterator(*hash< auto > search_options)
Returns an iterator iterating all records.
auto getExampleRequestData()
Returns example data for a request message.
*hash< string, hash< ActionOptionInfo > > tryGetActionOptionsForRequestWithOptionsImpl(hash< DataProviderActionInfo > action, *hash< auto > options)
Returns action options corresponding to the given option data for a request action.
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.
constructor()
Creates the data provider.
*AbstractDataProviderType getResponseTypeWithOptions(*hash< auto > options)
Returns the description of a successful response message in the context of the given option data.
*hash< string, hash< ActionOptionInfo > > tryGetActionOptionsWithOptionsImpl(hash< DataProviderActionInfo > action, *hash< auto > options)
Returns action options corresponding to the given option data.
deleteField(string name, *hash< auto > field_delete_options)
Deletes an existing field.
*hash< auto > searchFirstRecord(hash< auto > where_cond, *hash< auto > search_options)
Returns the first record matching the search options.
hash< DataProviderInfo > getInfo()
Returns data provider info.
int deleteRecords(*hash< DataProviderExpression > where_cond, *hash< auto > search_options)
Deletes zero or more records.
*hash< string, hash< ActionOptionInfo > > tryGetActionOptionsWithOptions(hash< DataProviderActionInfo > action, *hash< auto > options)
Returns action options corresponding to the given option data.
hash< auto > getExampleRecordData()
Returns example data for the record type.
hash< DataProviderExpression > getEqualityComparisonExpression(int role, hash< DataProviderInfo > info, string key, auto value)
Returns an equality comparison expression.
*list< hash< AllowedValueInfo > > getElementReferenceData(string type, *hash< auto > action_opts)
Returns element reference data of the given kind if available.
*AbstractDataProviderType getRequestTypeWithOptions(*hash< auto > options)
Returns the description of a successful request message in the context of the given option data.
*hash< auto > searchSingleRecord(*hash< auto > where_cond, *hash< auto > search_options)
Returns a single record matching the search options.
hash< DataProviderExpression > getSimpleArgumentIntern(int role, hash< DataProviderInfo > info, hash< DataProviderExpressionInfo > expinfo, string key, auto value)
Returns an argument for an expression.
rollback()
Rolls back data written to the data provider.
*list< hash< AllowedValueInfo > > getReferenceData(string type, *hash< auto > action_opts)
Returns reference data of the given kind if available.
int updateRecords(hash< auto > set, *hash< DataProviderExpression > where_cond, *hash< auto > search_options)
Updates zero or more records matching the search options.
*hash< auto > createRecordsBulk(hash< auto > recs, *hash< auto > create_options)
Creates the given records in the data provider.
static auto evalGenericExpressionValue(hash< auto > rec, auto val)
Evaluates the given expression with the generic internal implementation and returns the result.
*AbstractDataProviderType getRequestTypeWithData(auto req)
Returns the description of a successful request message with call data, if any.
*list< hash< AllowedValueInfo > > getReferenceDataSafe(string type, *hash< auto > action_opts)
Returns reference data of the given kind if available; logs but ignores exceptions retrieving the dat...
*AbstractDataProviderType getResponseType()
Returns the description of a response message, if this object represents a response message.
int updateRecordsWithOptions(*hash< auto > options)
Updates zero or more records matching the update action options.
*hash< auto > getAdditionalInfo()
Returns additional provider-specific information.
hash< DataProviderMessageInfo > getEventInfoWithOptions(string event_id, *hash< auto > options)
Returns the description of an observable event, if any with option data, if any.
*hash< auto > searchFirstRecordWithOptions(*hash< auto > options)
Returns the first record matching the search action options.
*hash< auto > searchSingleRecordWithOptions(*hash< auto > options)
Returns a single record matching the search action options.
static bool callbacks_locked
flag if callbacks are locked
Definition AbstractDataProvider.qc.dox.h:1003
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.
*hash< string, hash< ActionOptionInfo > > getSearchOptionsAsActionOptions()
Returns search options as action options.
*list< string > upsertRecordsBulk(AbstractDataProviderBulkRecordInterface stream, *hash< auto > upsert_options)
Upserts the given records in the data provider.
*hash< auto > createRecord(hash< auto > rec, *hash< auto > create_options)
Creates the given record in the data provider.
static bool setDynamicValueCallbacks()
Ensures that no callbacks can be set for dynamic URI resolution.
bool updateSingleRecord(hash< auto > set, hash< auto > where_cond, *hash< auto > search_options)
Updates a single record matching the search options.
auto doRequest(auto req, *hash< auto > request_options)
Makes a request and returns the response.
*hash< string, bool > getSupportedReferenceDataValues()
Returns information on supported reference data values.
*list< hash< DataProviderSummaryInfo > > getChildProviderSummaryInfo()
Return data provider summary info.
static code cb_value_needs_resolution
static callback the returns a bool if the value needs dynamic resolution
Definition AbstractDataProvider.qc.dox.h:1006
object getSchemaObject()
Returns the schema supporting this data provider.
checkCreate()
Ensures that the data provider supports record creation.
AbstractDataProviderRecordIterator searchRecordsWithOptions(*hash< auto > options)
Returns an iterator for zero or more records matching the search action options.
auto getReferenceDataValueSafeEx(string type, *hash< auto > action_opts)
Returns reference data of the given kind if available.
*list< hash< AllowedValueInfo > > getReferenceDataSafeEx(string type, *hash< auto > action_opts)
Returns reference data of the given kind if available.
checkSchema()
Ensures that the data provider supports a schema.
checkRead()
Ensures that the data provider supports read operations.
*string getDesc()
Returns the data provider description.
*list< hash< AllowedValueInfo > > getElementReferenceDataEx(string type, *hash< auto > action_opts)
Returns element reference data of the given kind if available.
AbstractDataProviderBulkRecordInterface getBulkRecordInterface(int block_size=1000, *hash< auto > search_options)
Returns an iterator iterating all records with the bulk read API.
int updateRecords(hash< auto > set, *hash< auto > where_cond, *hash< auto > search_options)
Updates zero or more records matching the search options.
updateConnectionObjects(object conn, object connobj)
Update any connection used by the data provider.
*list< string > upsertRecordsBulkWithOptions(*hash< auto > options)
Upserts the given records in the data provider from upsert action options.
*hash< string, hash< ActionOptionInfo > > tryGetActionOptionsForSearchWithOptionsImpl(hash< DataProviderActionInfo > action, *hash< auto > options)
Returns action options corresponding to the given option data for a search action.
*hash< DataProviderConnectionInfo > getConnectionInfo()
Returns connection info if the data provider supports connections, otherwise returns NOTHING.
*hash< string, bool > getSupportedReferenceData()
Returns information on supported reference data.
*hash< string, hash< ActionOptionInfo > > tryGetActionOptionsForCreateWithOptionsImpl(hash< DataProviderActionInfo > action, *hash< auto > options)
Returns action options corresponding to the given option data for a create action.
AbstractDataProviderRecordIterator searchRecords(*hash< auto > where_cond, *hash< auto > search_options)
Returns an iterator for zero or more records matching the search options.
constructor(LoggerInterface logger)
Creates the data provider with the given Logger.
checkDelete()
Ensures that the data provider supports record deletion.
hash< string, hash< DataProviderMessageInfo > > getMessageTypes()
Returns a hash of all supported outbound messages.
static hash< DataProviderExpressionInfo > getExpression(int role, string exp, *hash< string, hash< DataProviderExpressionInfo > > expmap)
Returns an expression definition for an expression code or throws an exception.
*list< string > upsertRecordsBulk(hash< auto > recs, *hash< auto > upsert_options)
Upserts the given records in the data provider.
AbstractDataProviderType getErrorResponseType(string error_code)
Returns the type for the given error code.
checkMessages()
Ensures that the data provider supports sending messages.
AbstractDataProviderRecordIterator searchRecords(*hash< DataProviderExpression > where_cond, *hash< auto > search_options)
Returns an iterator for zero or more records matching the search options.
*hash< string, AbstractDataProviderType > getErrorResponseTypes()
Returns a hash of error responses, if any.
checkDeleteField()
Ensures that the data provider supports deleting fields.
AbstractDataProvider getChildProviderPath(string path)
Returns the given child provider from a "/" separated path string.
*hash< string, bool > getSupportedElementReferenceData()
Returns information on supported element reference data.
hash< string, hash< DataProviderMessageInfo > > getMessageTypesWithOptions(*hash< auto > options)
Returns a hash of all supported outbound messages with options.
addField(AbstractDataField field, *hash< auto > field_add_options)
Creates a new field.
AbstractDataProvider createChildProvider(string name, hash< string, AbstractDataField > fields, *hash< auto > child_create_options)
Creates a new child data provider and returns it after adding as a child.
auto getReferenceDataValueSafe(string type, *hash< auto > action_opts)
Returns a reference data value of the given kind if available; logs but ignores exceptions retrieving...
string upsertRecord(hash< auto > rec, *hash< auto > upsert_options)
Upserts the given record in the data provider.
updateField(string name, AbstractDataField field, *hash< auto > field_update_options)
Updates an existing field.
int deleteRecordsWithOptions(*hash< auto > options)
Deletes zero or more records from delete action options.
*hash< auto > getSearchExpression(*hash< auto > where_cond, *hash< auto > search_options)
Returns a search expression for a standard search hash.
checkRequest()
Ensures that the data provider supports the request API.
const RequiresResultOption
'Requires Result' option info
Definition AbstractDataProvider.qc.dox.h:984
AbstractDataProvider getChildProviderEx(string name)
Returns the given child provider or throws an exception if the given child is unknown.
checkSearchExpressions()
Ensures that the data provider supports advanced search expressions.
AbstractDataProviderRecordIterator requestSearchRecords(auto req, *hash< DataProviderExpression > where_cond, *hash< auto > search_options)
Returns an iterator for zero or more records matching the search options according to an API request.
checkAddField()
Ensures that the data provider supports adding fields.
string upsertRecordWithOptions(*hash< auto > options)
Upserts the given record in the data provider from upsert action options.
*hash< string, hash< ActionOptionInfo > > tryGetActionOptionsForMessageWithOptionsImpl(hash< DataProviderActionInfo > action, *hash< auto > options)
Returns action options corresponding to the given option data for a send message action.
checkCreateChild()
Ensures that the data provider supports creating children.
AbstractDataProviderBulkRecordInterface searchRecordsBulk(int block_size=1000, *hash< DataProviderExpression > where_cond, *hash< auto > search_options)
Returns an iterator for zero or more records matching the search options.
int deleteRecords(*hash< auto > where_cond, *hash< auto > search_options)
Deletes zero or more records.
checkUpsert()
Ensures that the data provider supports record upserts.
*list< string > getChildProviderNames()
Returns a list of child data provider names, if any.
*hash< auto > createRecordsBulkFromOptions(*hash< auto > options)
Creates the given records in the data provider from create action options.
*list< hash< AllowedValueInfo > > getElementReferenceDataSafeEx(string type, *hash< auto > action_opts)
Returns element reference data of the given kind if available.
*hash< string, hash< ActionOptionInfo > > getOptionsAsActionOptions * hash
Returns search options as action options.
Definition AbstractDataProvider.qc.dox.h:2359
*AbstractDataProviderType getResponseTypeWithData(auto req)
Returns the description of a successful response message with call data, if any.
*hash< string, hash< ActionOptionInfo > > tryGetActionOptionsFromRequestTypeWithData(auto req)
Returns action options corresponding to the request type with the given request data,...
Defines the abstract class for data provider iterators; the destructor releases the iterator.
Definition AbstractDataProviderRecordIterator.qc.dox.h:288
describes a data type
Definition AbstractDataProviderType.qc.dox.h:139
const DES_LogicOperator
Indicates a logical operator type.
Definition AbstractDataProvider.qc.dox.h:448
const DES_Generic
Definition AbstractDataProvider.qc.dox.h:445
const DET_Operator
Definition AbstractDataProvider.qc.dox.h:426
const DET_Function
Indicates a function expression.
Definition AbstractDataProvider.qc.dox.h:429
const MSG_None
Definition AbstractDataProvider.qc.dox.h:275
const MSG_Async
Asynchronous output type, output can happen any time.
Definition AbstractDataProvider.qc.dox.h:287
const MSG_Sync
Synchronous output type, an output message is expected after each observed event.
Definition AbstractDataProvider.qc.dox.h:282
const UpsertResultUnchanged
Indicates that the record was left unchanged.
Definition AbstractDataProvider.qc.dox.h:41
const UpsertResultDeleted
Indicates that the record was deleted.
Definition AbstractDataProvider.qc.dox.h:44
const UpsertResultInserted
Definition AbstractDataProvider.qc.dox.h:32
const UpsertResultVerified
Indicates that the record was verified as already in the target state.
Definition AbstractDataProvider.qc.dox.h:38
const UpsertResultUpdated
Indicates that the record was updated.
Definition AbstractDataProvider.qc.dox.h:35
const ER_All
Indicates an expression that can be used in all contexts.
Definition AbstractDataProvider.qc.dox.h:327
const ER_Search
Definition AbstractDataProvider.qc.dox.h:321
const ER_Field
Indicates an expression that can be used in a field.
Definition AbstractDataProvider.qc.dox.h:324
const LC_Or
Indicates that boolean expressions can be combined with OR logic.
Definition AbstractDataProvider.qc.dox.h:346
const LC_And
Definition AbstractDataProvider.qc.dox.h:343
const LC_All
Indicates that all logic capabilities are supported.
Definition AbstractDataProvider.qc.dox.h:349
const ST_Value
Indicates any literal value of the given type; i.e. not an operator or other expression.
Definition AbstractDataProvider.qc.dox.h:299
const ST_Field
The signature type indicates a string field name when used as an argument, and the type is the field ...
Definition AbstractDataProvider.qc.dox.h:305
const ST_Any
Definition AbstractDataProvider.qc.dox.h:296
Qore AbstractDataField class definition.
Definition AbstractDataField.qc.dox.h:27
const DataProviderSignatureOptionalIntValueType
Data provider signature *int value type.
Definition AbstractDataProvider.qc.dox.h:393
const DataProviderSignatureStringType
Data provider signature string type.
Definition AbstractDataProvider.qc.dox.h:413
const DataProviderSignatureDateType
Data provider signature date type.
Definition AbstractDataProvider.qc.dox.h:417
const DataProviderGenericExpressions
Data provider generic expression map.
Definition AbstractDataProvider.qc.dox.h:961
const DataProviderSignatureHashValueType
Data provider signature hash value type.
Definition AbstractDataProvider.qc.dox.h:401
const ExpressionSubtypeCodeMap
Maps DataProvider expression subtype codes to descriptions.
Definition AbstractDataProvider.qc.dox.h:452
const SignatureTypeDescMap
Maps signature description values to integer codes.
Definition AbstractDataProvider.qc.dox.h:313
const SignatureTypeCodeMap
Maps signature type codes to descriptions.
Definition AbstractDataProvider.qc.dox.h:309
const DataProviderSignatureOptionalStringValueType
Data provider signature optional string value type.
Definition AbstractDataProvider.qc.dox.h:385
const LogicDescMap
Logic map from descriptions to integer codes.
Definition AbstractDataProvider.qc.dox.h:357
const DataProviderSignatureFieldType
Data provider signature field type.
Definition AbstractDataProvider.qc.dox.h:369
const ExpressionTypeDescMap
Maps DataProvider expression type descriptions to integer codes.
Definition AbstractDataProvider.qc.dox.h:437
const DataProviderSignatureBoolType
Data provider signature bool type.
Definition AbstractDataProvider.qc.dox.h:405
const DataProviderSignatureListValueType
Data provider signature list value type.
Definition AbstractDataProvider.qc.dox.h:397
const DataProviderSignatureStringValueType
Data provider signature string value type.
Definition AbstractDataProvider.qc.dox.h:381
const DataProviderSignatureAnyType
Data provider signature any type.
Definition AbstractDataProvider.qc.dox.h:373
const ExpressionSubtypeDescMap
Maps DataProvider expression subtype descriptions to integer codes.
Definition AbstractDataProvider.qc.dox.h:456
const RoleCodeMap
Role map from codes to descriptions.
Definition AbstractDataProvider.qc.dox.h:331
const LogicCodeMap
Logic map from codes to descriptions.
Definition AbstractDataProvider.qc.dox.h:353
const RoleDescMap
Role map from descriptions to codes.
Definition AbstractDataProvider.qc.dox.h:335
const DataProviderSignatureListType
Data provider signature list type.
Definition AbstractDataProvider.qc.dox.h:377
const ExpressionTypeCodeMap
Maps DataProvider expression type codes to descriptions.
Definition AbstractDataProvider.qc.dox.h:433
const DataProviderSignatureIntValueType
Data provider signature int value type.
Definition AbstractDataProvider.qc.dox.h:389
const DataProviderSignatureIntType
Data provider signature int type.
Definition AbstractDataProvider.qc.dox.h:409
const MapperKeyInfo
Data provider expression arg info.
Definition AbstractDataProvider.qc.dox.h:459
*softlist< hash< Util::AllowedValueInfo > > allowed_values
List of allowed values (enum)
Definition AbstractDataProvider.qc.dox.h:481
*softlist< hash< Util::AllowedValueInfo > > element_allowed_values
List of allowed values for elements of list types (enum)
Definition AbstractDataProvider.qc.dox.h:489
string desc
The argument description.
Definition AbstractDataProvider.qc.dox.h:467
auto default_value
Any default value.
Definition AbstractDataProvider.qc.dox.h:470
bool sensitive
Is the argument value sensitive?
Definition AbstractDataProvider.qc.dox.h:473
bool multiselect
Are allowed values elements of the list's element type that indicate what values the list can have?
Definition AbstractDataProvider.qc.dox.h:476
*string short_desc
Argument short description in plain text.
Definition AbstractDataProvider.qc.dox.h:464
bool element_allowed_values_creatable
Does the option accept values for elements not defined in element_allowed_values too?
Definition AbstractDataProvider.qc.dox.h:492
*bool allowed_values_creatable
Does the option accept values not defined in allowed_values too?
Definition AbstractDataProvider.qc.dox.h:484
auto example_value
Any optional example value for the argument.
Definition AbstractDataProvider.qc.dox.h:497
string display_name
Argument display name.
Definition AbstractDataProvider.qc.dox.h:461
Data provider connection info.
Definition AbstractDataProvider.qc.dox.h:943
bool auto_reconnect
Is auto reconnect supported?
Definition AbstractDataProvider.qc.dox.h:951
bool connected
Is the underlying transport connected?
Definition AbstractDataProvider.qc.dox.h:945
*hash< auto > info
Additional data-provider-dependent connection information.
Definition AbstractDataProvider.qc.dox.h:957
bool reconnecting
Is a reconnect in progress?
Definition AbstractDataProvider.qc.dox.h:948
*string url
Any target URL if available.
Definition AbstractDataProvider.qc.dox.h:954
Data provider expression.
Definition AbstractDataProvider.qc.dox.h:589
string exp
Expression name.
Definition AbstractDataProvider.qc.dox.h:591
softlist< auto > args
Expression arguments.
Definition AbstractDataProvider.qc.dox.h:597
Data provider signature info.
Definition AbstractDataProvider.qc.dox.h:501
string symbol
The symbol to use when rendering expressions.
Definition AbstractDataProvider.qc.dox.h:527
string name
The technical name or internal label used for the expression.
Definition AbstractDataProvider.qc.dox.h:513
string display_name
The display name.
Definition AbstractDataProvider.qc.dox.h:516
*bool return_type_first_arg
Use the first argument's type as the return type.
Definition AbstractDataProvider.qc.dox.h:579
string short_desc
The short description of the operation.
Definition AbstractDataProvider.qc.dox.h:519
*list< string > return_type_arg_priority
Return type argument priority list.
Definition AbstractDataProvider.qc.dox.h:570
bool varargs
The last argument can be repeated indefinitely.
Definition AbstractDataProvider.qc.dox.h:553
int role
The expression role code / bitfield.
Definition AbstractDataProvider.qc.dox.h:532
int type
The type of expression; see DataProvider Expression Type Codes.
Definition AbstractDataProvider.qc.dox.h:503
softlist< hash< DataProviderSignatureTypeInfo > > args
Argument types.
Definition AbstractDataProvider.qc.dox.h:544
int subtype
The expression subtype.
Definition AbstractDataProvider.qc.dox.h:508
*string render_template
Any template to render the expression.
Definition AbstractDataProvider.qc.dox.h:541
string desc
The description of the operation.
Definition AbstractDataProvider.qc.dox.h:524
*softlist< hash< DataProviderArgInfo > > arg_info
Argument info.
Definition AbstractDataProvider.qc.dox.h:547
AbstractDataProviderType return_type
The return type.
Definition AbstractDataProvider.qc.dox.h:550
Data provider field reference.
Definition AbstractDataProvider.qc.dox.h:583
string field
The name of the field being referenced.
Definition AbstractDataProvider.qc.dox.h:585
Data provider info.
Definition AbstractDataProvider.qc.dox.h:601
string supports_messages
Output message support.
Definition AbstractDataProvider.qc.dox.h:766
bool supports_delete
Does the data provider support record deletion?
Definition AbstractDataProvider.qc.dox.h:646
*hash< string, hash< DataProviderMessageInfo > > events
hash of observable events and event types
Definition AbstractDataProvider.qc.dox.h:902
bool supports_bulk_read
Does the data provider support native / optimized bulk reads?
Definition AbstractDataProvider.qc.dox.h:659
*hash< string, hash< DataProviderOptionInfo > > add_field_options
Add field options supported by the data provider.
Definition AbstractDataProvider.qc.dox.h:867
*hash< string, hash< DataProviderMessageInfo > > messages
List of output message IDs and message types.
Definition AbstractDataProvider.qc.dox.h:909
bool supports_connections
Does the data provider support connections and connection status reporting?
Definition AbstractDataProvider.qc.dox.h:771
bool transaction_management
Does the data provider require transaction management?
Definition AbstractDataProvider.qc.dox.h:690
*hash< string, hash< DataProviderExpressionInfo > > expressions
Expressions (operators and functions) supported by the data provider.
Definition AbstractDataProvider.qc.dox.h:895
string display_name
Data provider display name.
Definition AbstractDataProvider.qc.dox.h:608
bool children_can_support_observers
Can any child data providers support the observer pattern / event API?
Definition AbstractDataProvider.qc.dox.h:791
bool supports_auto_reconnect
Does the data provider support automatic reconnection?
Definition AbstractDataProvider.qc.dox.h:776
bool supports_child_delete
Does the data provider support deleting new child providers?
Definition AbstractDataProvider.qc.dox.h:714
string type
The name of the provider type.
Definition AbstractDataProvider.qc.dox.h:621
bool supports_delete_field
Does the data provider support deleting fields?
Definition AbstractDataProvider.qc.dox.h:735
bool supports_child_create
Does the data provider support creating new child providers?
Definition AbstractDataProvider.qc.dox.h:707
*hash< string, hash< DataProviderOptionInfo > > child_delete_options
Child deletion options supported by the data provider.
Definition AbstractDataProvider.qc.dox.h:860
bool supports_native_search
Does the data provider support native record searching?
Definition AbstractDataProvider.qc.dox.h:651
*string required_constructor_options
Required constructor option combinations.
Definition AbstractDataProvider.qc.dox.h:826
bool children_identical
Are all children always of the same data provider class that support the same options?
Definition AbstractDataProvider.qc.dox.h:806
*hash< string, hash< DataProviderOptionInfo > > request_options
Request options supported by the data provider.
Definition AbstractDataProvider.qc.dox.h:846
*hash< string, hash< DataProviderOptionInfo > > search_options
Search options supported by the data provider.
Definition AbstractDataProvider.qc.dox.h:841
string name
Data provider name.
Definition AbstractDataProvider.qc.dox.h:605
bool supports_add_field
Does the data provider support adding new fields?
Definition AbstractDataProvider.qc.dox.h:721
bool children_can_support_messages
Can any child data providers support messages?
Definition AbstractDataProvider.qc.dox.h:796
*hash< auto > info
Any optional provider-specific information.
Definition AbstractDataProvider.qc.dox.h:939
bool supports_bulk_upsert
Does the data provider support native / optimized bulk upserts?
Definition AbstractDataProvider.qc.dox.h:675
*hash< string, hash< DataProviderOptionInfo > > child_create_options
Child creation options supported by the data provider.
Definition AbstractDataProvider.qc.dox.h:853
hash< string, hash< MapperRuntimeKeyInfo > > mapper_keys
A hash of mapper key information.
Definition AbstractDataProvider.qc.dox.h:921
*string disconnection_event
Disconnection event for event-based connection-capable data providers.
Definition AbstractDataProvider.qc.dox.h:931
bool supports_read
Does the data provider support reading.
Definition AbstractDataProvider.qc.dox.h:626
bool record_requires_search_options
Do we require search options to retrieve the record type?
Definition AbstractDataProvider.qc.dox.h:700
bool supports_update
Does the data provider support record updates?
Definition AbstractDataProvider.qc.dox.h:636
bool supports_search_expressions
Does this data provide support advanced search experssions?
Definition AbstractDataProvider.qc.dox.h:749
*hash< string, hash< DataProviderOptionInfo > > upsert_options
Upsert options supported by the data provider.
Definition AbstractDataProvider.qc.dox.h:836
bool supports_update_field
Does the data provider support updating existing fields?
Definition AbstractDataProvider.qc.dox.h:728
bool supports_request
Does the data provider support the request API?
Definition AbstractDataProvider.qc.dox.h:680
*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:817
*hash< string, hash< DataProviderOptionInfo > > create_options
Create options supported by the data provider.
Definition AbstractDataProvider.qc.dox.h:831
bool supports_create
Does the data provider support record creation?
Definition AbstractDataProvider.qc.dox.h:631
*string short_desc
Data provider short description in plain text.
Definition AbstractDataProvider.qc.dox.h:611
*list< string > children
A list of child data providers in this data provider.
Definition AbstractDataProvider.qc.dox.h:936
bool supports_observable
Does this data provider support the event API / observer pattern?
Definition AbstractDataProvider.qc.dox.h:756
bool supports_upsert
Does the data provider support record upserts (create or update)?
Definition AbstractDataProvider.qc.dox.h:641
bool supports_bulk_create
Does the data provider support native / optimized bulk creation?
Definition AbstractDataProvider.qc.dox.h:667
*hash< string, hash< DataProviderOptionInfo > > delete_field_options
Delete field options supported by the data provider.
Definition AbstractDataProvider.qc.dox.h:881
*hash< string, hash< DataProviderOptionInfo > > send_message_options
Send message options supported by the data provider.
Definition AbstractDataProvider.qc.dox.h:888
bool supports_children
Does the data provider support children?
Definition AbstractDataProvider.qc.dox.h:685
bool children_can_support_apis
Can any child data providers offer API services (request - response data providers)?
Definition AbstractDataProvider.qc.dox.h:781
*string connection_event
Connection event for event-based connection-capable data providers.
Definition AbstractDataProvider.qc.dox.h:926
bool children_can_support_records
Can any child data providers offer record-based providers?
Definition AbstractDataProvider.qc.dox.h:786
*hash< string, hash< DataProviderOptionInfo > > update_field_options
Update field options supported by the data provider.
Definition AbstractDataProvider.qc.dox.h:874
*string desc
A markdown description of the data provider.
Definition AbstractDataProvider.qc.dox.h:616
bool supports_schema
Does the data provider support a schema?
Definition AbstractDataProvider.qc.dox.h:742
bool children_can_support_transactions
Can any child data providers support transaction management?
Definition AbstractDataProvider.qc.dox.h:801
int search_logic_capabilities
Supported search logic capabilities.
Definition AbstractDataProvider.qc.dox.h:914
*string schema_type
Returns the schema type supported by this data provider.
Definition AbstractDataProvider.qc.dox.h:812
bool has_record
Does the data provider provide a record?
Definition AbstractDataProvider.qc.dox.h:695
Data provider message and event info.
Definition AbstractDataProvider.qc.dox.h:254
string desc
The description of the message or event.
Definition AbstractDataProvider.qc.dox.h:258
AbstractDataProviderType type
The data type of the message or event.
Definition AbstractDataProvider.qc.dox.h:261
Data provider option info.
Definition AbstractDataProvider.qc.dox.h:48
*hash< auto > metadata
Free-form metadata on options.
Definition AbstractDataProvider.qc.dox.h:125
string display_name
Option display name.
Definition AbstractDataProvider.qc.dox.h:50
softlist< AbstractDataProviderType > type
The option value type or types.
Definition AbstractDataProvider.qc.dox.h:59
bool multiselect
Are allowed values elements of the list's element type that indicate what values the list can have?
Definition AbstractDataProvider.qc.dox.h:83
auto example_value
Any optional example value for the option.
Definition AbstractDataProvider.qc.dox.h:102
bool sensitive
Is the option value sensitive?
Definition AbstractDataProvider.qc.dox.h:80
*softlist< string > exclusive_with
Is the option exclusive with other options?
Definition AbstractDataProvider.qc.dox.h:74
auto default_value
Any default value.
Definition AbstractDataProvider.qc.dox.h:77
*softlist< hash< Util::AllowedValueInfo > > allowed_values
List of allowed values (enum)
Definition AbstractDataProvider.qc.dox.h:86
*string element_ref_data
A tag allowing element allowed values to be returned dynamically as reference data.
Definition AbstractDataProvider.qc.dox.h:116
bool allowed_values_creatable
Does the option accept values not defined in allowed_values too?
Definition AbstractDataProvider.qc.dox.h:89
*string short_desc
Option short description in plain text.
Definition AbstractDataProvider.qc.dox.h:53
string desc
The option description.
Definition AbstractDataProvider.qc.dox.h:56
*bool preselected
Should this option be preselected?
Definition AbstractDataProvider.qc.dox.h:122
*softlist< hash< Util::AllowedValueInfo > > element_allowed_values
List of allowed values for elements of list types (enum)
Definition AbstractDataProvider.qc.dox.h:94
bool element_allowed_values_creatable
Does the option accept values for elements not defined in element_allowed_values too?
Definition AbstractDataProvider.qc.dox.h:97
*string ref_data
A tag allowing allowed values to be returned dynamically as reference data.
Definition AbstractDataProvider.qc.dox.h:109
bool required
Required flag.
Definition AbstractDataProvider.qc.dox.h:65
*string default_ref_data
A tag allowing the default value for the option to be returned dynamically.
Definition AbstractDataProvider.qc.dox.h:119
*softlist< string > required_groups
Is the option part of a required group?
Definition AbstractDataProvider.qc.dox.h:71
Data provider signature argument info.
Definition AbstractDataProvider.qc.dox.h:360
int type_code
The signature type code.
Definition AbstractDataProvider.qc.dox.h:365
AbstractDataProviderType type
Argument types.
Definition AbstractDataProvider.qc.dox.h:362
Data provider summary info.
Definition AbstractDataProvider.qc.dox.h:129
bool supports_observable
Does this data provider support the event API / observer pattern?
Definition AbstractDataProvider.qc.dox.h:200
bool supports_bulk_upsert
Does the data provider support native / optimized bulk upserts?
Definition AbstractDataProvider.qc.dox.h:179
bool transaction_management
Does the data provider require transaction management?
Definition AbstractDataProvider.qc.dox.h:188
bool children_can_support_apis
Can any child data providers offer API services (request - response data providers)?
Definition AbstractDataProvider.qc.dox.h:225
bool supports_create
Does the data provider support record creation?
Definition AbstractDataProvider.qc.dox.h:149
*string short_desc
Data provider short description in plain text.
Definition AbstractDataProvider.qc.dox.h:137
string name
The name of the data provider.
Definition AbstractDataProvider.qc.dox.h:131
bool supports_read
Does the data provider support reading.
Definition AbstractDataProvider.qc.dox.h:146
string desc
The description of the data provider; supports markdown.
Definition AbstractDataProvider.qc.dox.h:140
bool has_record
Does the data provider provide a record?
Definition AbstractDataProvider.qc.dox.h:191
bool children_can_support_transactions
Can any child data providers support transaction management?
Definition AbstractDataProvider.qc.dox.h:245
bool children_can_support_observers
Can any child data providers support the observer pattern / event API?
Definition AbstractDataProvider.qc.dox.h:235
string display_name
Data provider display name.
Definition AbstractDataProvider.qc.dox.h:134
bool supports_upsert
Does the data provider support record upserts (create or update)?
Definition AbstractDataProvider.qc.dox.h:155
bool supports_children
Does the data provider support children?
Definition AbstractDataProvider.qc.dox.h:185
bool supports_bulk_create
Does the data provider support native / optimized bulk creation?
Definition AbstractDataProvider.qc.dox.h:173
bool supports_delete
Does the data provider support record deletion?
Definition AbstractDataProvider.qc.dox.h:158
bool supports_request
Does the data provider support the request API?
Definition AbstractDataProvider.qc.dox.h:182
bool supports_search_expressions
Does this data provide support advanced search expressions?
Definition AbstractDataProvider.qc.dox.h:194
bool children_can_support_messages
Can any child data providers support messages?
Definition AbstractDataProvider.qc.dox.h:240
bool supports_native_search
Does the data provider support native record searching?
Definition AbstractDataProvider.qc.dox.h:161
string supports_messages
Message support.
Definition AbstractDataProvider.qc.dox.h:210
bool children_identical
Are all children always of the same data provider class that support the same options?
Definition AbstractDataProvider.qc.dox.h:250
string type
The name of the provider type.
Definition AbstractDataProvider.qc.dox.h:143
bool supports_update
Does the data provider support record updates?
Definition AbstractDataProvider.qc.dox.h:152
bool supports_connections
Does the data provider support connections and connection status reporting?
Definition AbstractDataProvider.qc.dox.h:215
bool supports_bulk_read
Does the data provider support native / optimized bulk reads?
Definition AbstractDataProvider.qc.dox.h:167
bool children_can_support_records
Can any child data providers offer record-based providers?
Definition AbstractDataProvider.qc.dox.h:230
bool supports_auto_reconnect
Does the data provider support automatic reconnection?
Definition AbstractDataProvider.qc.dox.h:220