Qore DataProvider Module Reference 3.2.2
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};
124
126public hashdecl DataProviderSummaryInfo {
128 string name;
129
132
134 *string short_desc;
135
137 string desc;
138
140 string type;
141
143 bool supports_read = False;
144
146 bool supports_create = False;
147
149 bool supports_update = False;
150
152 bool supports_upsert = False;
153
155 bool supports_delete = False;
156
159
161
164 bool supports_bulk_read = False;
165
167
171
173
177
179 bool supports_request = False;
180
182 bool supports_children = False;
183
186
188 bool has_record = False;
189
192
194
198
200
208
210
213
215
218
220
223
225
228
230
233
235
238
240
243
245
247 bool children_identical = False;
248};
249
251public hashdecl DataProviderMessageInfo {
253
255 string desc;
256
259};
260
270
272const MSG_None = "NONE";
273
275
279const MSG_Sync = "SYNC";
280
282
284const MSG_Async = "ASYNC";
286
293const ST_Any = 1;
294
296const ST_Value = 2;
297
299
302const ST_Field = 3;
304
307
308
310const SignatureTypeDescMap = map {$1.value: $1.key.toInt()}, SignatureTypeCodeMap.pairIterator();
311
318const ER_Search = (1 << 0);
319
321const ER_Field = (1 << 1);
322
326
328const RoleCodeMap = ...;
329
330
332const RoleDescMap = map {$1.value: $1.key.toInt()}, RoleCodeMap.pairIterator();
333
340const LC_And = (1 << 0);
341
343const LC_Or = (1 << 1);
344
346const LC_All = (LC_And | LC_Or);
348
350const LogicCodeMap = ...;
351
352
354const LogicDescMap = map {$1.value: $1.key.toInt()}, LogicCodeMap.pairIterator();
355
364
367
368
371
372
375
376
379
380
383
384
387
388
391
392
395
396
399
400
403
404
407
408
411
412
419const DET_Operator = 1;
420
422const DET_Function = 2;
424
427
428
430const ExpressionTypeDescMap = map {$1.value: $1.key.toInt()}, ExpressionTypeCodeMap.pairIterator();
431
438const DES_Generic = 1;
439
443
446
447
449const ExpressionSubtypeDescMap = map {$1.value: $1.key.toInt()}, ExpressionSubtypeCodeMap.pairIterator();
450
452public hashdecl DataProviderArgInfo {
455
457 *string short_desc;
458
460 string desc;
461
464
466 bool sensitive = False;
467
470
472 /* In case the arg type is a list, then this will provide the discrete values that can appear in the list
473 */
474 *softlist<hash<Util::AllowedValueInfo>> allowed_values;
475
478
480 /* In case the option type is a list, then this will provide the discrete values that can appear in the list
481 */
482 *softlist<hash<Util::AllowedValueInfo>> element_allowed_values;
483
486
488
491};
492
496 int type;
497
499
502
504
506 string name;
507
510
513
515
517 string desc;
518
520 string symbol;
521
523
526
528 softlist<hash<DataProviderSignatureTypeInfo>> args;
529
531 *softlist<hash<DataProviderArgInfo>> arg_info;
532
535
537 bool varargs = False;
538};
539
543 string field;
544};
545
547public hashdecl DataProviderExpression {
549 string exp;
550
552
555 softlist<auto> args;
556};
557
559public hashdecl DataProviderInfo {
561
563 string name;
564
567
569 *string short_desc;
570
572
574 *string desc;
575
577
579 string type;
580
582
584 bool supports_read = False;
585
587
589 bool supports_create = False;
590
592
594 bool supports_update = False;
595
597
599 bool supports_upsert = False;
600
602
604 bool supports_delete = False;
605
607
610
612
617 bool supports_bulk_read = False;
618
620
626
628
634
636
638 bool supports_request = False;
639
641
643 bool supports_children = False;
644
646
649
651
653 bool has_record = False;
654
656
659
661
666
668
673
675
679 bool supports_add_field = False;
680
682
687
689
694
696
700 bool supports_schema = False;
701
703
708
710
715
717
725
727
730
732
735
737
740
742
745
747
750
752
755
757
760
762
764 bool children_identical = False;
765
767
770 *string schema_type;
771
773
775 *hash<string, hash<DataProviderOptionInfo>> constructor_options;
776
778
785
787
789 *hash<string, hash<DataProviderOptionInfo>> create_options;
790
792
794 *hash<string, hash<DataProviderOptionInfo>> upsert_options;
795
797
799 *hash<string, hash<DataProviderOptionInfo>> search_options;
800
802
804 *hash<string, hash<DataProviderOptionInfo>> request_options;
805
807
811 *hash<string, hash<DataProviderOptionInfo>> child_create_options;
812
814
818 *hash<string, hash<DataProviderOptionInfo>> child_delete_options;
819
821
825 *hash<string, hash<DataProviderOptionInfo>> add_field_options;
826
828
832 *hash<string, hash<DataProviderOptionInfo>> update_field_options;
833
835
839 *hash<string, hash<DataProviderOptionInfo>> delete_field_options;
840
842
846 *hash<string, hash<DataProviderOptionInfo>> send_message_options;
847
849
853 *hash<string, hash<DataProviderExpressionInfo>> expressions;
854
856
860 *hash<string, hash<DataProviderMessageInfo>> events;
861
863
867 *hash<string, hash<DataProviderMessageInfo>> messages;
868
870
873
875
879 hash<string, hash<MapperRuntimeKeyInfo>> mapper_keys = Mapper::MapperKeyInfo;
880
882
885
887
890
892
894 *list<string> children;
895
897 *hash<auto> info;
898};
899
904
907
910
912 *string url;
913
915 *hash<auto> info;
916};
917
919class AbstractDataProvider : public Logger::LoggerWrapper, public Qore::Serializable {
920
921public:
924
925
927
932 const GenericExpressions = map {$1.key: $1.value.exp}, GenericExpressionImplementations.pairIterator();
933
935 const DataProviderSummaryInfoKeys = map $1.getName(), TypedHash::forName("DataProviderSummaryInfo").getMembers();
936
938
944
945
946protected:
948 static bool callbacks_locked = False;
949
952
954 static code cb_resolve_value;
955
956public:
957
960
961
963 constructor(LoggerInterface logger) ;
964
965
967
971 hash<auto> getInfoAsData(*bool with_type_info);
972
973
975 hash<DataProviderInfo> getInfo();
976
977
979 hash<DataProviderSummaryInfo> getSummaryInfo();
980
981
983
986
987
989
991 *string getShortDesc();
992
993
995 *string getDesc();
996
997
999
1001 *hash<auto> getAdditionalInfo();
1002
1003
1005
1015 *hash<auto> createRecord(hash<auto> rec, *hash<auto> create_options);
1016
1017
1019
1026 string upsertRecord(hash<auto> rec, *hash<auto> upsert_options);
1027
1028
1030
1037 *hash<auto> searchFirstRecord(hash<DataProviderExpression> where_cond, *hash<auto> search_options);
1038
1039
1041
1046 *hash<auto> searchFirstRecord(hash<auto> where_cond, *hash<auto> search_options);
1047
1048
1050
1058 *hash<auto> searchSingleRecord(hash<DataProviderExpression> where_cond, *hash<auto> search_options);
1059
1060
1062
1068 *hash<auto> searchSingleRecord(*hash<auto> where_cond, *hash<auto> search_options);
1069
1070
1072
1077
1078
1080
1088 AbstractDataProviderBulkRecordInterface getBulkRecordInterface(int block_size = 1000, *hash<auto> search_options);
1089
1090
1092
1103 AbstractDataProviderBulkRecordInterface searchRecordsBulk(int block_size = 1000, *hash<DataProviderExpression> where_cond, *hash<auto> search_options);
1104
1105
1107
1116 AbstractDataProviderBulkRecordInterface searchRecordsBulk(int block_size = 1000, *hash<auto> where_cond, *hash<auto> search_options);
1117
1118
1120
1127 AbstractDataProviderRecordIterator searchRecords(*hash<DataProviderExpression> where_cond, *hash<auto> search_options);
1128
1129
1131
1136 AbstractDataProviderRecordIterator searchRecords(*hash<auto> where_cond, *hash<auto> search_options);
1137
1138
1140
1150 AbstractDataProviderRecordIterator requestSearchRecords(auto req, *hash<DataProviderExpression> where_cond, *hash<auto> search_options);
1151
1152
1154
1162 AbstractDataProviderRecordIterator requestSearchRecords(auto req, *hash<auto> where_cond, *hash<auto> search_options);
1163
1164
1166
1177 bool updateSingleRecord(hash<auto> set, hash<DataProviderExpression> where_cond, *hash<auto> search_options);
1178
1179
1181
1190 bool updateSingleRecord(hash<auto> set, hash<auto> where_cond, *hash<auto> search_options);
1191
1192
1194
1206 int updateRecords(hash<auto> set, *hash<DataProviderExpression> where_cond, *hash<auto> search_options);
1207
1208
1210
1220 int updateRecords(hash<auto> set, *hash<auto> where_cond, *hash<auto> search_options);
1221
1222
1224
1236 int deleteRecords(*hash<DataProviderExpression> where_cond, *hash<auto> search_options);
1237
1238
1240
1250 int deleteRecords(*hash<auto> where_cond, *hash<auto> search_options);
1251
1252
1254
1262 auto doRequest(auto req, *hash<auto> request_options);
1263
1264
1266
1277 AbstractDataProvider createChildProvider(string name, hash<string, AbstractDataField> fields, *hash<auto> child_create_options);
1278
1279
1281
1289 deleteChildProvider(string name, *hash<auto> child_delete_options);
1290
1291
1293
1302 addField(AbstractDataField field, *hash<auto> field_add_options);
1303
1304
1306
1315 updateField(string name, AbstractDataField field, *hash<auto> field_update_options);
1316
1317
1319
1327 deleteField(string name, *hash<auto> field_delete_options);
1328
1329
1331
1342 sendMessage(string message_id, auto msg, *hash<auto> send_message_options);
1343
1344
1346
1353
1354
1356
1361
1362
1364
1375
1376
1378
1388 *hash<string, hash<ActionOptionInfo>> tryGetActionOptionsFromRequestTypeWithData(auto req);
1389
1390
1392
1397
1398
1400
1411
1412
1414
1418 *hash<string, AbstractDataProviderType> getErrorResponseTypes();
1419
1420
1422
1430
1431
1433
1442 hash<DataProviderMessageInfo> getEventInfo(string event_id);
1443
1444
1446
1458 hash<DataProviderMessageInfo> getEventInfoWithData(string event_id, auto req);
1459
1460
1462
1468 hash<string, hash<DataProviderMessageInfo>> getEventTypes();
1469
1470
1472
1480 *hash<string, hash<ActionOptionInfo>> tryGetActionOptionsWithData(hash<DataProviderActionInfo> action, auto req);
1481
1482
1484
1493 hash<DataProviderMessageInfo> getMessageInfo(string message_id);
1494
1495
1497
1503 hash<string, hash<DataProviderMessageInfo>> getMessageTypes();
1504
1505
1507
1514
1515
1517
1524
1525
1527
1536 auto getExampleErrorResponseData(string error_code);
1537
1538
1540
1549 auto getExampleEventData(string event_id);
1550
1551
1553
1558
1559
1561
1565 *hash<DataProviderConnectionInfo> getConnectionInfo();
1566
1567
1569
1572 *list<hash<DataProviderSummaryInfo>> getChildProviderSummaryInfo();
1573
1574
1576
1578 *list<string> getChildProviderNames();
1579
1580
1582
1591
1592
1594
1603
1604
1606
1615
1616
1618
1622
1623
1625
1634
1635
1637
1644
1645
1647
1654
1655
1657
1662
1663
1665
1670
1671
1673
1677 *hash<string, hash<MapperRuntimeKeyInfo>> getMapperRuntimeKeys();
1678
1679
1681
1685
1686
1688
1692
1693
1695
1699
1700
1702
1706
1707
1709
1713
1714
1716
1720
1721
1723
1729
1730
1732
1738
1739
1741
1747
1748
1750
1756
1757
1759
1765
1766
1768
1774
1775
1777
1783
1784
1786
1792
1793
1795
1801
1802
1804
1812 *hash<auto> getSearchExpression(*hash<auto> where_cond, *hash<auto> search_options);
1813
1814
1816
1821 *hash<string, bool> getSupportedReferenceData();
1822
1823
1825
1833 *list<hash<AllowedValueInfo>> getReferenceDataSafe(string type, *hash<auto> action_opts);
1834
1835
1837
1849 *list<hash<AllowedValueInfo>> getReferenceDataSafeEx(string type, *hash<auto> action_opts);
1850
1851
1853
1862 *list<hash<AllowedValueInfo>> getReferenceData(string type, *hash<auto> action_opts);
1863
1864
1866
1876 *list<hash<AllowedValueInfo>> getReferenceDataEx(string type, *hash<auto> action_opts);
1877
1878
1880
1886
1887
1889
1897 *list<hash<AllowedValueInfo>> getElementReferenceDataSafe(string type, *hash<auto> action_opts);
1898
1899
1901
1913 *list<hash<AllowedValueInfo>> getElementReferenceDataSafeEx(string type, *hash<auto> action_opts);
1914
1915
1917
1926 *list<hash<AllowedValueInfo>> getElementReferenceData(string type, *hash<auto> action_opts);
1927
1928
1930
1940 *list<hash<AllowedValueInfo>> getElementReferenceDataEx(string type, *hash<auto> action_opts);
1941
1942
1944
1949 *hash<string, bool> getSupportedReferenceDataValues();
1950
1951
1953
1960 auto getReferenceDataValueSafe(string type, *hash<auto> action_opts);
1961
1962
1964
1976 auto getReferenceDataValueSafeEx(string type, *hash<auto> action_opts);
1977
1978
1980
1989 auto getReferenceDataValue(string type, *hash<auto> action_opts);
1990
1991
1993
2003 auto getReferenceDataValueEx(string type, *hash<auto> action_opts);
2004
2005
2007
2016 updateConnectionObjects(object conn, object connobj);
2017
2018
2020
2028protected:
2029 *hash<string, hash<ActionOptionInfo>> tryGetActionOptionsWithDataImpl(hash<DataProviderActionInfo> action, auto req);
2030public:
2031
2032
2034
2037protected:
2038 hash<DataProviderExpression> getSimpleArgumentIntern(int role, hash<DataProviderInfo> info, hash<DataProviderExpressionInfo> expinfo, string key, auto value);
2039public:
2040
2041
2043
2048protected:
2049 hash<DataProviderExpression> getEqualityComparisonExpression(int role, hash<DataProviderInfo> info, string key, auto value);
2050public:
2051
2052
2054
2057protected:
2058 static hash<DataProviderExpressionInfo> getExpression(int role, string exp, *hash<string, hash<DataProviderExpressionInfo>> expmap);
2059public:
2060
2061
2063
2068
2070
2073 static auto evalGenericExpressionValue(hash<auto> rec, auto val);
2074 return rv;
2075 };
2076 if (val instanceof hash<DataProviderExpression>);
2077
2078 return val;
2079 };
2080
2082
2085 static auto evalGenericExpression(hash<auto> rec, hash<DataProviderExpression> exp);
2086
2088
2098 static bool setDynamicValueCallbacks(code value_needs_resolution, code resolve_value);
2099
2101
2109 static verifyExpression(int role, *hash<string, hash<DataProviderExpressionInfo>> expmap, int caps, AbstractDataProviderType expected_type, hash<DataProviderExpression> exp);
2110
2112
2120 static verifyExpression(int role, hash<DataProviderExpressionInfo> expinfo, int caps, AbstractDataProviderType expected_type, hash<DataProviderExpression> exp);
2121
2123
2129 static verifyExpressionArgValue(int role, int caps, hash<DataProviderExpressionInfo> expinfo, softlist<auto> values, int pos);
2130
2132protected:
2133 static bool checkCallbacks();
2134public:
2135
2136
2138
2140protected:
2141 *hash<auto> validateCreateOptions(*hash<auto> create_options);
2142public:
2143
2144
2146
2148protected:
2149 *hash<auto> validateUpsertOptions(*hash<auto> upsert_options);
2150public:
2151
2152
2154
2156protected:
2157 *hash<auto> validateSearchOptions(*hash<auto> search_options);
2158public:
2159
2160
2162
2164protected:
2165 *hash<auto> validateRequestOptions(*hash<auto> request_options);
2166public:
2167
2168
2170
2174protected:
2175 *hash<auto> validateChildCreateOptions(*hash<auto> child_create_options);
2176public:
2177
2178
2180
2184protected:
2185 *hash<auto> validateChildDeleteOptions(*hash<auto> child_delete_options);
2186public:
2187
2188
2190
2194protected:
2195 *hash<auto> validateFieldAddOptions(*hash<auto> field_add_options);
2196public:
2197
2198
2200
2204protected:
2205 *hash<auto> validateFieldUpdateOptions(*hash<auto> field_update_options);
2206public:
2207
2208
2210
2214protected:
2215 *hash<auto> validateFieldDeleteOptions(*hash<auto> field_delete_options);
2216public:
2217
2218
2220
2224protected:
2225 *hash<auto> validateSendMessageOptions(*hash<auto> send_message_options);
2226public:
2227
2228
2230protected:
2231 processConstructorOptions(*hash<string, hash<DataProviderOptionInfo>> option_desc, *hash<auto> options, *string required_options);
2232public:
2233
2234
2236
2249protected:
2250 *hash<auto> checkOptions(string err, *hash<string, hash<DataProviderOptionInfo>> option_desc, *hash<auto> uoptions, *string required_options);
2251public:
2252
2253
2255
2263protected:
2264 verifyRequiredOptions(string err, *hash<auto> options, string required_options);
2265public:
2266
2267
2269
2274protected:
2275 *hash<DataProviderExpression> processSearchParameters(*hash<DataProviderExpression> exp, *hash<auto> search_options);
2276public:
2277
2278
2280
2287protected:
2288 *hash<auto> processFieldValues(*hash<auto> h, *hash<auto> search_options);
2289public:
2290
2291
2293 bool searchAcceptsForeignField(string field);
2294
2295
2297
2303 *hash<string, AbstractDataField> getRecordType(*hash<auto> search_options);
2304
2305
2307
2314 *hash<string, AbstractDataField> getCreateRecordType(*hash<auto> create_options);
2315
2316
2318
2327 *hash<string, AbstractDataField> getUpdateRecordType(*hash<auto> search_options);
2328
2329
2331 *hash<string, AbstractDataField> getSoftRecordType(*hash<auto> search_options);
2332
2333
2335 *hash<string, AbstractDataField> getOrNothingRecordType(*hash<auto> search_options);
2336
2337
2339
2342 *hash<string, hash<DataProviderOptionInfo>> getSearchOptions();
2343
2344
2346
2349 *hash<string, hash<DataProviderOptionInfo>> getCreateOptions();
2350
2351
2353
2356 *hash<string, hash<DataProviderOptionInfo>> getUpsertOptions();
2357
2358
2360
2363 *hash<string, hash<DataProviderOptionInfo>> getRequestOptions();
2364
2365
2367
2373 *hash<string, hash<DataProviderOptionInfo>> getChildCreateOptions();
2374
2375
2377
2383 *hash<string, hash<DataProviderOptionInfo>> getChildDeleteOptions();
2384
2385
2387
2393 *hash<string, hash<DataProviderOptionInfo>> getFieldAddOptions();
2394
2395
2397
2403 *hash<string, hash<DataProviderOptionInfo>> getFieldUpdateOptions();
2404
2405
2407
2413 *hash<string, hash<DataProviderOptionInfo>> getFieldDeleteOptions();
2414
2415
2417
2423 *hash<string, hash<DataProviderOptionInfo>> getSendMessageOptions();
2424
2425
2427
2429 string getMessageSupport();
2430
2431
2433
2435 bool supportsRead();
2436
2437
2439
2441 bool supportsBulkRead();
2442
2443
2445
2447 bool supportsCreate();
2448
2449
2451
2453 bool supportsUpdate();
2454
2455
2457
2459 bool supportsUpsert();
2460
2461
2463
2465 bool supportsDelete();
2466
2467
2469
2471 bool supportsNativeSearch();
2472
2473
2475
2477 bool supportsBulkCreate();
2478
2479
2481
2483 bool supportsBulkUpsert();
2484
2485
2487
2489 bool supportsRequest();
2490
2491
2493
2495 bool recordRequiresSearchOptions();
2496
2497
2499
2501 bool hasRecord();
2502
2503
2505
2507 bool supportsCreateChild();
2508
2509
2511
2513 bool supportsDeleteChild();
2514
2515
2517
2519 bool supportsAddField();
2520
2521
2523
2525 bool supportsUpdateField();
2526
2527
2529
2531 bool supportsDeleteField();
2532
2533
2535
2537 bool supportsSchema();
2538
2539
2541
2543 bool supportsSearchExpressions();
2544
2545
2547
2549 bool supportsObservable();
2550
2551
2553
2555 bool supportsMessages();
2556
2557
2559
2561 *object getSchemaType();
2562
2563
2565
2567 bool supportsChildren();
2568
2569
2571
2573 bool childrenIdentical();
2574
2575
2577
2584 static registerChild(string name, code generator);
2585
2587protected:
2588 error(string err, string fmt, ...);
2589public:
2590
2591
2593
2598protected:
2599 *hash<auto> searchFirstRecordImpl(hash<auto> where_cond, *hash<auto> search_options);
2600public:
2601
2602
2604
2611protected:
2612 *hash<auto> searchSingleRecordImpl(*hash<auto> where_cond, *hash<auto> search_options);
2613public:
2614
2615
2617
2621protected:
2622 *list<string> getChildProviderNamesImpl();
2623public:
2624
2625
2627
2629protected:
2630 *AbstractDataProvider getChildProviderImpl(string name);
2631public:
2632
2633
2635
2639protected:
2640 *hash<DataProviderConnectionInfo> getConnectionInfoImpl();
2641public:
2642
2643
2645
2651protected:
2652 hash<auto> generateExampleData(hash<string, AbstractDataField> fields);
2653public:
2654
2655
2657
2659protected:
2660 *hash<string, AbstractDataField> getRecordTypeImpl(*hash<auto> search_options);
2661public:
2662
2663
2665
2667protected:
2668 *hash<string, AbstractDataField> getUpdateRecordTypeImpl(*hash<auto> search_options);
2669public:
2670
2671
2673
2675protected:
2676 *hash<string, AbstractDataField> getCreateRecordTypeImpl(*hash<auto> create_options);
2677public:
2678
2679
2681
2688protected:
2689 AbstractDataProviderBulkRecordInterface searchRecordsBulkImpl(int block_size = 1000, *hash<auto> where_cond, *hash<auto> search_options);
2690public:
2691
2692
2694
2699protected:
2700 AbstractDataProviderRecordIterator searchRecordsImpl(*hash<auto> where_cond, *hash<auto> search_options);
2701public:
2702
2703
2705
2713protected:
2714 AbstractDataProviderRecordIterator requestSearchRecordsImpl(auto req, *hash<auto> where_cond, *hash<auto> search_options);
2715public:
2716
2717
2719
2727protected:
2728 *hash<auto> createRecordImpl(hash<auto> rec, *hash<auto> create_options);
2729public:
2730
2731
2733
2738protected:
2739 string upsertRecordImpl(hash<auto> rec, *hash<auto> upsert_options);
2740public:
2741
2742
2744
2748protected:
2749 bool updateSingleRecordImpl(hash<auto> set, hash<auto> where_cond, *hash<auto> search_options);
2750public:
2751
2752
2754
2760protected:
2761 int updateRecordsImpl(hash<auto> set, *hash<auto> where_cond, *hash<auto> search_options);
2762public:
2763
2764
2766
2772protected:
2773 int deleteRecordsImpl(*hash<auto> where_cond, *hash<auto> search_options);
2774public:
2775
2776
2778
2783protected:
2784 auto doRequestImpl(auto req, *hash<auto> request_options);
2785public:
2786
2787
2789
2797protected:
2798 AbstractDataProvider createChildProviderImpl(string name, hash<string, AbstractDataField> fields, *hash<auto> child_create_options);
2799public:
2800
2801
2803
2808protected:
2809 deleteChildProviderImpl(string name, *hash<auto> child_delete_options);
2810public:
2811
2812
2814
2820protected:
2821 addFieldImpl(AbstractDataField field, *hash<auto> field_add_options);
2822public:
2823
2824
2826
2832protected:
2833 updateFieldImpl(string name, AbstractDataField field, *hash<auto> field_update_options);
2834public:
2835
2836
2838
2843protected:
2844 deleteFieldImpl(string name, *hash<auto> field_delete_options);
2845public:
2846
2847
2849
2856protected:
2857 sendMessageImpl(string message_id, auto msg, *hash<auto> send_message_options);
2858public:
2859
2860
2862
2866protected:
2867 object getSchemaObjectImpl();
2868public:
2869
2870
2872
2876protected:
2877 *AbstractDataProviderType getRequestTypeImpl();
2878public:
2879
2880
2882
2892protected:
2893 *AbstractDataProviderType getRequestTypeWithDataImpl(auto req);
2894public:
2895
2896
2898
2902protected:
2903 *AbstractDataProviderType getResponseTypeImpl();
2904public:
2905
2906
2908
2918protected:
2919 *AbstractDataProviderType getResponseTypeWithDataImpl(auto req);
2920public:
2921
2922
2924
2928protected:
2929 *hash<string, AbstractDataProviderType> getErrorResponseTypesImpl();
2930public:
2931
2932
2934
2940protected:
2941 AbstractDataProviderType getErrorResponseTypeImpl(string error_code);
2942public:
2943
2944
2946
2956protected:
2957 hash<DataProviderMessageInfo> getEventInfoImpl(string event_id);
2958public:
2959
2960
2962
2973protected:
2974 hash<DataProviderMessageInfo> getEventInfoWithDataImpl(string event_id, auto req);
2975public:
2976
2977
2979
2985protected:
2986 hash<string, hash<DataProviderMessageInfo>> getEventTypesImpl();
2987public:
2988
2989
2991
2999protected:
3000 hash<DataProviderMessageInfo> getMessageInfoImpl(string message_id);
3001public:
3002
3003
3005
3011protected:
3012 hash<string, hash<DataProviderMessageInfo>> getMessageTypesImpl();
3013public:
3014
3015
3017
3019protected:
3020 throwUnimplementedException();
3021public:
3022
3023
3025
3029protected:
3030 auto getExampleRequestDataImpl();
3031public:
3032
3033
3035
3041protected:
3042 auto getExampleResponseDataImpl();
3043public:
3044
3045
3047
3056protected:
3057 auto getExampleErrorResponseDataImpl(string error_code);
3058public:
3059
3060
3062
3071protected:
3072 auto getExampleEventDataImpl(string event_id);
3073public:
3074
3075
3077
3081protected:
3082 hash<auto> getExampleRecordDataImpl();
3083public:
3084
3085
3087
3094protected:
3095 *list<hash<AllowedValueInfo>> getReferenceDataImpl(string type, *hash<auto> action_opts);
3096public:
3097
3098
3100
3107protected:
3108 *list<hash<AllowedValueInfo>> getElementReferenceDataImpl(string type, *hash<auto> action_opts);
3109public:
3110
3111
3113
3120protected:
3121 auto getReferenceDataValueImpl(string type, *hash<auto> action_opts);
3122public:
3123
3124
3126 abstract string getName();
3127
3129protected:
3130 abstract hash<DataProviderInfo> getStaticInfoImpl();
3131public:
3132}
3133}
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:919
*hash< auto > searchFirstRecord(hash< DataProviderExpression > where_cond, *hash< auto > search_options)
Returns the first record matching the search options.
static code cb_resolve_value
static callback for dynamic value resolution
Definition AbstractDataProvider.qc.dox.h:954
const GenericExpressions
Generic search operator expressions.
Definition AbstractDataProvider.qc.dox.h:932
hash< DataProviderSummaryInfo > getSummaryInfo()
Return data provider summary info.
*hash< string, hash< ActionOptionInfo > > tryGetActionOptionsWithData(hash< DataProviderActionInfo > action, auto req)
Returns action options corresponding to the given option data.
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...
checkDeleteChild()
Ensures that the data provider supports deleting children.
*hash< string, hash< MapperRuntimeKeyInfo > > getMapperRuntimeKeys()
Returns custom data mapper runtime keys.
deleteChildProvider(string name, *hash< auto > child_delete_options)
Deletes a child data provider.
beginTransaction()
Begins a transaction with a data provider.
const DataProviderSummaryInfoKeys
A list of members names of the DataProviderSummaryInfoKeys hashdecl.
Definition AbstractDataProvider.qc.dox.h:935
*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.
checkUpdate()
Ensures that the data provider supports record upserts.
auto getExampleResponseData()
Returns example data for a successful request message.
AbstractDataProviderBulkOperation getBulkUpserter()
Returns a bulk upsert operation object for the data provider.
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:923
*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.
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.
const GenericRecordSearchOptions
Generic record search options; see details below.
Definition AbstractDataProvider.qc.dox.h:943
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.
auto getExampleErrorResponseData(string error_code)
Returns example data for the error message with the given error code.
AbstractDataProviderRecordIterator getRecordIterator(*hash< auto > search_options)
Returns an iterator iterating all records.
auto getExampleRequestData()
Returns example data for a request message.
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.
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< 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.
*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.
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.
*hash< string, hash< ActionOptionInfo > > tryGetActionOptionsWithDataImpl(hash< DataProviderActionInfo > action, auto req)
Returns action options corresponding to the given option data.
*hash< auto > getAdditionalInfo()
Returns additional provider-specific information.
hash< DataProviderMessageInfo > getEventInfoWithData(string event_id, auto req)
Returns the description of an observable event, if any with option data, if any.
static bool callbacks_locked
flag if callbacks are locked
Definition AbstractDataProvider.qc.dox.h:948
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.
AbstractDataProviderBulkOperation getBulkInserter()
Returns a bulk insert operation object for 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:951
object getSchemaObject()
Returns the schema supporting this data provider.
checkCreate()
Ensures that the data provider supports record creation.
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.
*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.
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.
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.
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.
*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.
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.
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.
*list< hash< AllowedValueInfo > > getElementReferenceDataSafeEx(string type, *hash< auto > action_opts)
Returns element reference data of the given kind if available.
*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:441
const DES_Generic
Definition AbstractDataProvider.qc.dox.h:438
const DET_Operator
Definition AbstractDataProvider.qc.dox.h:419
const DET_Function
Indicates a function expression.
Definition AbstractDataProvider.qc.dox.h:422
const MSG_None
Definition AbstractDataProvider.qc.dox.h:272
const MSG_Async
Asynchronous output type, output can happen any time.
Definition AbstractDataProvider.qc.dox.h:284
const MSG_Sync
Synchronous output type, an output message is expected after each observed event.
Definition AbstractDataProvider.qc.dox.h:279
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:324
const ER_Search
Definition AbstractDataProvider.qc.dox.h:318
const ER_Field
Indicates an expression that can be used in a field.
Definition AbstractDataProvider.qc.dox.h:321
const LC_Or
Indicates that boolean expressions can be combined with OR logic.
Definition AbstractDataProvider.qc.dox.h:343
const LC_And
Definition AbstractDataProvider.qc.dox.h:340
const LC_All
Indicates that all logic capabilities are supported.
Definition AbstractDataProvider.qc.dox.h:346
const ST_Value
Indicates any literal value of the given type; i.e. not an operator or other expression.
Definition AbstractDataProvider.qc.dox.h:296
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:302
const ST_Any
Definition AbstractDataProvider.qc.dox.h:293
Qore AbstractDataField class definition.
Definition AbstractDataField.qc.dox.h:27
const DataProviderSignatureOptionalIntValueType
Data provider signature *int value type.
Definition AbstractDataProvider.qc.dox.h:390
const DataProviderSignatureStringType
Data provider signature string type.
Definition AbstractDataProvider.qc.dox.h:406
const DataProviderSignatureDateType
Data provider signature date type.
Definition AbstractDataProvider.qc.dox.h:410
const DataProviderSignatureHashValueType
Data provider signature hash value type.
Definition AbstractDataProvider.qc.dox.h:398
const ExpressionSubtypeCodeMap
Maps DataProvider expression subtype codes to descriptions.
Definition AbstractDataProvider.qc.dox.h:445
const SignatureTypeDescMap
Maps signature description values to integer codes.
Definition AbstractDataProvider.qc.dox.h:310
const SignatureTypeCodeMap
Maps signature type codes to descriptions.
Definition AbstractDataProvider.qc.dox.h:306
const DataProviderSignatureOptionalStringValueType
Data provider signature optional string value type.
Definition AbstractDataProvider.qc.dox.h:382
const LogicDescMap
Logic map from descriptions to integer codes.
Definition AbstractDataProvider.qc.dox.h:354
const DataProviderSignatureFieldType
Data provider signature field type.
Definition AbstractDataProvider.qc.dox.h:366
const ExpressionTypeDescMap
Maps DataProvider expression type descriptions to integer codes.
Definition AbstractDataProvider.qc.dox.h:430
const DataProviderSignatureBoolType
Data provider signature bool type.
Definition AbstractDataProvider.qc.dox.h:402
const DataProviderSignatureListValueType
Data provider signature list value type.
Definition AbstractDataProvider.qc.dox.h:394
const DataProviderSignatureStringValueType
Data provider signature string value type.
Definition AbstractDataProvider.qc.dox.h:378
const DataProviderSignatureAnyType
Data provider signature any type.
Definition AbstractDataProvider.qc.dox.h:370
const ExpressionSubtypeDescMap
Maps DataProvider expression subtype descriptions to integer codes.
Definition AbstractDataProvider.qc.dox.h:449
const RoleCodeMap
Role map from codes to descriptions.
Definition AbstractDataProvider.qc.dox.h:328
const LogicCodeMap
Logic map from codes to descriptions.
Definition AbstractDataProvider.qc.dox.h:350
const RoleDescMap
Role map from descriptions to codes.
Definition AbstractDataProvider.qc.dox.h:332
const DataProviderSignatureListType
Data provider signature list type.
Definition AbstractDataProvider.qc.dox.h:374
const ExpressionTypeCodeMap
Maps DataProvider expression type codes to descriptions.
Definition AbstractDataProvider.qc.dox.h:426
const DataProviderSignatureIntValueType
Data provider signature int value type.
Definition AbstractDataProvider.qc.dox.h:386
const MapperKeyInfo
Data provider expression arg info.
Definition AbstractDataProvider.qc.dox.h:452
*softlist< hash< Util::AllowedValueInfo > > allowed_values
List of allowed values (enum)
Definition AbstractDataProvider.qc.dox.h:474
*softlist< hash< Util::AllowedValueInfo > > element_allowed_values
List of allowed values for elements of list types (enum)
Definition AbstractDataProvider.qc.dox.h:482
string desc
The argument description.
Definition AbstractDataProvider.qc.dox.h:460
auto default_value
Any default value.
Definition AbstractDataProvider.qc.dox.h:463
bool sensitive
Is the argument value sensitive?
Definition AbstractDataProvider.qc.dox.h:466
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:469
*string short_desc
Argument short description in plain text.
Definition AbstractDataProvider.qc.dox.h:457
bool element_allowed_values_creatable
Does the option accept values for elements not defined in element_allowed_values too?
Definition AbstractDataProvider.qc.dox.h:485
*bool allowed_values_creatable
Does the option accept values not defined in allowed_values too?
Definition AbstractDataProvider.qc.dox.h:477
auto example_value
Any optional example value for the argument.
Definition AbstractDataProvider.qc.dox.h:490
string display_name
Argument display name.
Definition AbstractDataProvider.qc.dox.h:454
Data provider connection info.
Definition AbstractDataProvider.qc.dox.h:901
bool auto_reconnect
Is auto reconnect supported?
Definition AbstractDataProvider.qc.dox.h:909
bool connected
Is the underlying transport connected?
Definition AbstractDataProvider.qc.dox.h:903
*hash< auto > info
Additional data-provider-dependent connection information.
Definition AbstractDataProvider.qc.dox.h:915
bool reconnecting
Is a reconnect in progress?
Definition AbstractDataProvider.qc.dox.h:906
*string url
Any target URL if available.
Definition AbstractDataProvider.qc.dox.h:912
Data provider expression.
Definition AbstractDataProvider.qc.dox.h:547
string exp
Expression name.
Definition AbstractDataProvider.qc.dox.h:549
softlist< auto > args
Expression arguments.
Definition AbstractDataProvider.qc.dox.h:555
Data provider signature info.
Definition AbstractDataProvider.qc.dox.h:494
string symbol
The symbol to use when rendering expressions.
Definition AbstractDataProvider.qc.dox.h:520
string name
The technical name or internal label used for the expression.
Definition AbstractDataProvider.qc.dox.h:506
string display_name
The display name.
Definition AbstractDataProvider.qc.dox.h:509
string short_desc
The short description of the operation.
Definition AbstractDataProvider.qc.dox.h:512
bool varargs
The last argument can be repeated indefinitely.
Definition AbstractDataProvider.qc.dox.h:537
int role
The expression role code / bitfield.
Definition AbstractDataProvider.qc.dox.h:525
int type
The type of expression; see DataProvider Expression Type Codes.
Definition AbstractDataProvider.qc.dox.h:496
softlist< hash< DataProviderSignatureTypeInfo > > args
Argument types.
Definition AbstractDataProvider.qc.dox.h:528
int subtype
The expression subtype.
Definition AbstractDataProvider.qc.dox.h:501
string desc
The description of the operation.
Definition AbstractDataProvider.qc.dox.h:517
*softlist< hash< DataProviderArgInfo > > arg_info
Argument info.
Definition AbstractDataProvider.qc.dox.h:531
AbstractDataProviderType return_type
The return type.
Definition AbstractDataProvider.qc.dox.h:534
Data provider field reference.
Definition AbstractDataProvider.qc.dox.h:541
string field
The name of the field being referenced.
Definition AbstractDataProvider.qc.dox.h:543
Data provider info.
Definition AbstractDataProvider.qc.dox.h:559
string supports_messages
Output message support.
Definition AbstractDataProvider.qc.dox.h:724
bool supports_delete
Does the data provider support record deletion?
Definition AbstractDataProvider.qc.dox.h:604
*hash< string, hash< DataProviderMessageInfo > > events
hash of observable events and event types
Definition AbstractDataProvider.qc.dox.h:860
bool supports_bulk_read
Does the data provider support native / optimized bulk reads?
Definition AbstractDataProvider.qc.dox.h:617
*hash< string, hash< DataProviderOptionInfo > > add_field_options
Add field options supported by the data provider.
Definition AbstractDataProvider.qc.dox.h:825
*hash< string, hash< DataProviderMessageInfo > > messages
List of output message IDs and message types.
Definition AbstractDataProvider.qc.dox.h:867
bool supports_connections
Does the data provider support connections and connection status reporting?
Definition AbstractDataProvider.qc.dox.h:729
bool transaction_management
Does the data provider require transaction management?
Definition AbstractDataProvider.qc.dox.h:648
*hash< string, hash< DataProviderExpressionInfo > > expressions
Expressions (operators and functions) supported by the data provider.
Definition AbstractDataProvider.qc.dox.h:853
string display_name
Data provider display name.
Definition AbstractDataProvider.qc.dox.h:566
bool children_can_support_observers
Can any child data providers support the observer pattern / event API?
Definition AbstractDataProvider.qc.dox.h:749
bool supports_auto_reconnect
Does the data provider support automatic reconnection?
Definition AbstractDataProvider.qc.dox.h:734
bool supports_child_delete
Does the data provider support deleting new child providers?
Definition AbstractDataProvider.qc.dox.h:672
string type
The name of the provider type.
Definition AbstractDataProvider.qc.dox.h:579
bool supports_delete_field
Does the data provider support deleting fields?
Definition AbstractDataProvider.qc.dox.h:693
bool supports_child_create
Does the data provider support creating new child providers?
Definition AbstractDataProvider.qc.dox.h:665
*hash< string, hash< DataProviderOptionInfo > > child_delete_options
Child deletion options supported by the data provider.
Definition AbstractDataProvider.qc.dox.h:818
bool supports_native_search
Does the data provider support native record searching?
Definition AbstractDataProvider.qc.dox.h:609
*string required_constructor_options
Required constructor option combinations.
Definition AbstractDataProvider.qc.dox.h:784
bool children_identical
Are all children always of the same data provider class that support the same options?
Definition AbstractDataProvider.qc.dox.h:764
*hash< string, hash< DataProviderOptionInfo > > request_options
Request options supported by the data provider.
Definition AbstractDataProvider.qc.dox.h:804
*hash< string, hash< DataProviderOptionInfo > > search_options
Search options supported by the data provider.
Definition AbstractDataProvider.qc.dox.h:799
string name
Data provider name.
Definition AbstractDataProvider.qc.dox.h:563
bool supports_add_field
Does the data provider support adding new fields?
Definition AbstractDataProvider.qc.dox.h:679
bool children_can_support_messages
Can any child data providers support messages?
Definition AbstractDataProvider.qc.dox.h:754
*hash< auto > info
Any optional provider-specific information.
Definition AbstractDataProvider.qc.dox.h:897
bool supports_bulk_upsert
Does the data provider support native / optimized bulk upserts?
Definition AbstractDataProvider.qc.dox.h:633
*hash< string, hash< DataProviderOptionInfo > > child_create_options
Child creation options supported by the data provider.
Definition AbstractDataProvider.qc.dox.h:811
hash< string, hash< MapperRuntimeKeyInfo > > mapper_keys
A hash of mapper key information.
Definition AbstractDataProvider.qc.dox.h:879
*string disconnection_event
Disconnection event for event-based connection-capable data providers.
Definition AbstractDataProvider.qc.dox.h:889
bool supports_read
Does the data provider support reading.
Definition AbstractDataProvider.qc.dox.h:584
bool record_requires_search_options
Do we require search options to retrieve the record type?
Definition AbstractDataProvider.qc.dox.h:658
bool supports_update
Does the data provider support record updates?
Definition AbstractDataProvider.qc.dox.h:594
bool supports_search_expressions
Does this data provide support advanced search experssions?
Definition AbstractDataProvider.qc.dox.h:707
*hash< string, hash< DataProviderOptionInfo > > upsert_options
Upsert options supported by the data provider.
Definition AbstractDataProvider.qc.dox.h:794
bool supports_update_field
Does the data provider support updating existing fields?
Definition AbstractDataProvider.qc.dox.h:686
bool supports_request
Does the data provider support the request API?
Definition AbstractDataProvider.qc.dox.h:638
*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:775
*hash< string, hash< DataProviderOptionInfo > > create_options
Create options supported by the data provider.
Definition AbstractDataProvider.qc.dox.h:789
bool supports_create
Does the data provider support record creation?
Definition AbstractDataProvider.qc.dox.h:589
*string short_desc
Data provider short description in plain text.
Definition AbstractDataProvider.qc.dox.h:569
*list< string > children
A list of child data providers in this data provider.
Definition AbstractDataProvider.qc.dox.h:894
bool supports_observable
Does this data provider support the event API / observer pattern?
Definition AbstractDataProvider.qc.dox.h:714
bool supports_upsert
Does the data provider support record upserts (create or update)?
Definition AbstractDataProvider.qc.dox.h:599
bool supports_bulk_create
Does the data provider support native / optimized bulk creation?
Definition AbstractDataProvider.qc.dox.h:625
*hash< string, hash< DataProviderOptionInfo > > delete_field_options
Delete field options supported by the data provider.
Definition AbstractDataProvider.qc.dox.h:839
*hash< string, hash< DataProviderOptionInfo > > send_message_options
Send message options supported by the data provider.
Definition AbstractDataProvider.qc.dox.h:846
bool supports_children
Does the data provider support children?
Definition AbstractDataProvider.qc.dox.h:643
bool children_can_support_apis
Can any child data providers offer API services (request - response data providers)?
Definition AbstractDataProvider.qc.dox.h:739
*string connection_event
Connection event for event-based connection-capable data providers.
Definition AbstractDataProvider.qc.dox.h:884
bool children_can_support_records
Can any child data providers offer record-based providers?
Definition AbstractDataProvider.qc.dox.h:744
*hash< string, hash< DataProviderOptionInfo > > update_field_options
Update field options supported by the data provider.
Definition AbstractDataProvider.qc.dox.h:832
*string desc
A markdown description of the data provider.
Definition AbstractDataProvider.qc.dox.h:574
bool supports_schema
Does the data provider support a schema?
Definition AbstractDataProvider.qc.dox.h:700
bool children_can_support_transactions
Can any child data providers support transaction management?
Definition AbstractDataProvider.qc.dox.h:759
int search_logic_capabilities
Supported search logic capabilities.
Definition AbstractDataProvider.qc.dox.h:872
*string schema_type
Returns the schema type supported by this data provider.
Definition AbstractDataProvider.qc.dox.h:770
bool has_record
Does the data provider provide a record?
Definition AbstractDataProvider.qc.dox.h:653
Data provider message and event info.
Definition AbstractDataProvider.qc.dox.h:251
string desc
The description of the message or event.
Definition AbstractDataProvider.qc.dox.h:255
AbstractDataProviderType type
The data type of the message or event.
Definition AbstractDataProvider.qc.dox.h:258
Data provider option info.
Definition AbstractDataProvider.qc.dox.h:48
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:357
int type_code
The signature type code.
Definition AbstractDataProvider.qc.dox.h:362
AbstractDataProviderType type
Argument types.
Definition AbstractDataProvider.qc.dox.h:359
Data provider summary info.
Definition AbstractDataProvider.qc.dox.h:126
bool supports_observable
Does this data provider support the event API / observer pattern?
Definition AbstractDataProvider.qc.dox.h:197
bool supports_bulk_upsert
Does the data provider support native / optimized bulk upserts?
Definition AbstractDataProvider.qc.dox.h:176
bool transaction_management
Does the data provider require transaction management?
Definition AbstractDataProvider.qc.dox.h:185
bool children_can_support_apis
Can any child data providers offer API services (request - response data providers)?
Definition AbstractDataProvider.qc.dox.h:222
bool supports_create
Does the data provider support record creation?
Definition AbstractDataProvider.qc.dox.h:146
*string short_desc
Data provider short description in plain text.
Definition AbstractDataProvider.qc.dox.h:134
string name
The name of the data provider.
Definition AbstractDataProvider.qc.dox.h:128
bool supports_read
Does the data provider support reading.
Definition AbstractDataProvider.qc.dox.h:143
string desc
The description of the data provider; supports markdown.
Definition AbstractDataProvider.qc.dox.h:137
bool has_record
Does the data provider provide a record?
Definition AbstractDataProvider.qc.dox.h:188
bool children_can_support_transactions
Can any child data providers support transaction management?
Definition AbstractDataProvider.qc.dox.h:242
bool children_can_support_observers
Can any child data providers support the observer pattern / event API?
Definition AbstractDataProvider.qc.dox.h:232
string display_name
Data provider display name.
Definition AbstractDataProvider.qc.dox.h:131
bool supports_upsert
Does the data provider support record upserts (create or update)?
Definition AbstractDataProvider.qc.dox.h:152
bool supports_children
Does the data provider support children?
Definition AbstractDataProvider.qc.dox.h:182
bool supports_bulk_create
Does the data provider support native / optimized bulk creation?
Definition AbstractDataProvider.qc.dox.h:170
bool supports_delete
Does the data provider support record deletion?
Definition AbstractDataProvider.qc.dox.h:155
bool supports_request
Does the data provider support the request API?
Definition AbstractDataProvider.qc.dox.h:179
bool supports_search_expressions
Does this data provide support advanced search expressions?
Definition AbstractDataProvider.qc.dox.h:191
bool children_can_support_messages
Can any child data providers support messages?
Definition AbstractDataProvider.qc.dox.h:237
bool supports_native_search
Does the data provider support native record searching?
Definition AbstractDataProvider.qc.dox.h:158
string supports_messages
Message support.
Definition AbstractDataProvider.qc.dox.h:207
bool children_identical
Are all children always of the same data provider class that support the same options?
Definition AbstractDataProvider.qc.dox.h:247
string type
The name of the provider type.
Definition AbstractDataProvider.qc.dox.h:140
bool supports_update
Does the data provider support record updates?
Definition AbstractDataProvider.qc.dox.h:149
bool supports_connections
Does the data provider support connections and connection status reporting?
Definition AbstractDataProvider.qc.dox.h:212
bool supports_bulk_read
Does the data provider support native / optimized bulk reads?
Definition AbstractDataProvider.qc.dox.h:164
bool children_can_support_records
Can any child data providers offer record-based providers?
Definition AbstractDataProvider.qc.dox.h:227
bool supports_auto_reconnect
Does the data provider support automatic reconnection?
Definition AbstractDataProvider.qc.dox.h:217