Qore DataProvider Module Reference 3.1
Loading...
Searching...
No Matches
AbstractDataProvider.qc.dox.h
1// -*- mode: c++; indent-tabs-mode: nil -*-
3
27namespace DataProvider {
33const UpsertResultInserted = "inserted";
34
36const UpsertResultUpdated = "updated";
37
39const UpsertResultVerified = "verified";
40
42const UpsertResultUnchanged = "unchanged";
43
45const UpsertResultDeleted = "deleted";
47
49public hashdecl DataProviderOptionInfo {
52
54 *string short_desc;
55
57 string desc;
58
60 softlist<AbstractDataProviderType> type;
61
63
66 bool required = False;
67
69
72 *list<string> required_groups;
73
76
78 bool sensitive = False;
79
82
84 *softlist<hash<Util::AllowedValueInfo>> allowed_values;
85
88
90 /* In case the option type is a list, then this will provide the discrete values that can appear in the list
91 */
92 *softlist<hash<Util::AllowedValueInfo>> element_allowed_values;
93
96
98
101
103
107 *string ref_data;
108
110
115
118
121};
122
124public hashdecl DataProviderSummaryInfo {
126 string name;
127
130
132 *string short_desc;
133
135 string desc;
136
138 string type;
139
141 bool supports_read = False;
142
144 bool supports_create = False;
145
147 bool supports_update = False;
148
150 bool supports_upsert = False;
151
153 bool supports_delete = False;
154
157
159
162 bool supports_bulk_read = False;
163
165
169
171
175
177 bool supports_request = False;
178
180 bool supports_children = False;
181
184
186 bool has_record = False;
187
190
192
196
198
206
208
211
213
216
218
221
223
226
228
231
233
236
238
241
243
245 bool children_identical = False;
246};
247
249public hashdecl DataProviderMessageInfo {
251
253 string desc;
254
257};
258
268
270const MSG_None = "NONE";
271
273
277const MSG_Sync = "SYNC";
278
280
282const MSG_Async = "ASYNC";
284
291const ST_Any = 1;
292
294const ST_Value = 2;
295
297
300const ST_Field = 3;
302
305
306
308const SignatureTypeDescMap = map {$1.value: $1.key.toInt()}, SignatureTypeCodeMap.pairIterator();
309
316const ER_Search = (1 << 0);
317
319const ER_Field = (1 << 1);
320
324
326const RoleCodeMap = ...;
327
328
330const RoleDescMap = map {$1.value: $1.key.toInt()}, RoleCodeMap.pairIterator();
331
338const LC_And = (1 << 0);
339
341const LC_Or = (1 << 1);
342
344const LC_All = (LC_And | LC_Or);
346
348const LogicCodeMap = ...;
349
350
352const LogicDescMap = map {$1.value: $1.key.toInt()}, LogicCodeMap.pairIterator();
353
362
365
366
369
370
373
374
377
378
381
382
385
386
389
390
393
394
397
398
401
402
405
406
409
410
417const DET_Operator = 1;
418
420const DET_Function = 2;
422
425
426
428const ExpressionTypeDescMap = map {$1.value: $1.key.toInt()}, ExpressionTypeCodeMap.pairIterator();
429
436const DES_Generic = 1;
437
441
444
445
447const ExpressionSubtypeDescMap = map {$1.value: $1.key.toInt()}, ExpressionSubtypeCodeMap.pairIterator();
448
450public hashdecl DataProviderArgInfo {
453
455 *string short_desc;
456
458 string desc;
459
462
464 bool sensitive = False;
465
468
470 /* In case the arg type is a list, then this will provide the discrete values that can appear in the list
471 */
472 *softlist<hash<Util::AllowedValueInfo>> allowed_values;
473
476
478 /* In case the option type is a list, then this will provide the discrete values that can appear in the list
479 */
480 *softlist<hash<Util::AllowedValueInfo>> element_allowed_values;
481
484
486
489};
490
494 int type;
495
497
500
502
504 string name;
505
508
511
513
515 string desc;
516
518 string symbol;
519
521
524
526 softlist<hash<DataProviderSignatureTypeInfo>> args;
527
529 *softlist<hash<DataProviderArgInfo>> arg_info;
530
533
535 bool varargs = False;
536};
537
541 string field;
542};
543
545public hashdecl DataProviderExpression {
547 string exp;
548
550
553 softlist<auto> args;
554};
555
557public hashdecl DataProviderInfo {
559
561 string name;
562
565
567 *string short_desc;
568
570
572 *string desc;
573
575
577 string type;
578
580
582 bool supports_read = False;
583
585
587 bool supports_create = False;
588
590
592 bool supports_update = False;
593
595
597 bool supports_upsert = False;
598
600
602 bool supports_delete = False;
603
605
608
610
615 bool supports_bulk_read = False;
616
618
624
626
632
634
636 bool supports_request = False;
637
639
641 bool supports_children = False;
642
644
647
649
651 bool has_record = False;
652
654
657
659
664
666
671
673
677 bool supports_add_field = False;
678
680
685
687
692
694
698 bool supports_schema = False;
699
701
706
708
713
715
723
725
728
730
733
735
738
740
743
745
748
750
753
755
758
760
762 bool children_identical = False;
763
765
768 *string schema_type;
769
771
773 *hash<string, hash<DataProviderOptionInfo>> constructor_options;
774
776
783
785
787 *hash<string, hash<DataProviderOptionInfo>> create_options;
788
790
792 *hash<string, hash<DataProviderOptionInfo>> upsert_options;
793
795
797 *hash<string, hash<DataProviderOptionInfo>> search_options;
798
800
802 *hash<string, hash<DataProviderOptionInfo>> request_options;
803
805
809 *hash<string, hash<DataProviderOptionInfo>> child_create_options;
810
812
816 *hash<string, hash<DataProviderOptionInfo>> child_delete_options;
817
819
823 *hash<string, hash<DataProviderOptionInfo>> add_field_options;
824
826
830 *hash<string, hash<DataProviderOptionInfo>> update_field_options;
831
833
837 *hash<string, hash<DataProviderOptionInfo>> delete_field_options;
838
840
844 *hash<string, hash<DataProviderOptionInfo>> send_message_options;
845
847
851 *hash<string, hash<DataProviderExpressionInfo>> expressions;
852
854
858 *hash<string, hash<DataProviderMessageInfo>> events;
859
861
865 *hash<string, hash<DataProviderMessageInfo>> messages;
866
868
871
873
877 hash<string, hash<MapperRuntimeKeyInfo>> mapper_keys = Mapper::MapperKeyInfo;
878
880
883
885
888
890
892 *list<string> children;
893
895 *hash<auto> info;
896};
897
902
905
908
910 *string url;
911
913 *hash<auto> info;
914};
915
917class AbstractDataProvider : public Logger::LoggerWrapper, public Qore::Serializable {
918
919public:
922
923
925
930 const GenericExpressions = map {$1.key: $1.value.exp}, GenericExpressionImplementations.pairIterator();
931
933 const DataProviderSummaryInfoKeys = map $1.getName(), TypedHash::forName("DataProviderSummaryInfo").getMembers();
934
936
942
943
944protected:
946 static bool callbacks_locked = False;
947
950
952 static code cb_resolve_value;
953
954public:
955
958
959
961 constructor(LoggerInterface logger) ;
962
963
965
969 hash<auto> getInfoAsData(*bool with_type_info);
970
971
973 hash<DataProviderInfo> getInfo();
974
975
977 hash<DataProviderSummaryInfo> getSummaryInfo();
978
979
981
984
985
987
989 *string getShortDesc();
990
991
993 *string getDesc();
994
995
997
999 *hash<auto> getAdditionalInfo();
1000
1001
1003
1013 *hash<auto> createRecord(hash<auto> rec, *hash<auto> create_options);
1014
1015
1017
1024 string upsertRecord(hash<auto> rec, *hash<auto> upsert_options);
1025
1026
1028
1035 *hash<auto> searchFirstRecord(hash<DataProviderExpression> where_cond, *hash<auto> search_options);
1036
1037
1039
1044 *hash<auto> searchFirstRecord(hash<auto> where_cond, *hash<auto> search_options);
1045
1046
1048
1056 *hash<auto> searchSingleRecord(hash<DataProviderExpression> where_cond, *hash<auto> search_options);
1057
1058
1060
1066 *hash<auto> searchSingleRecord(hash<auto> where_cond, *hash<auto> search_options);
1067
1068
1070
1075
1076
1078
1086 AbstractDataProviderBulkRecordInterface getBulkRecordInterface(int block_size = 1000, *hash<auto> search_options);
1087
1088
1090
1101 AbstractDataProviderBulkRecordInterface searchRecordsBulk(int block_size = 1000, *hash<DataProviderExpression> where_cond, *hash<auto> search_options);
1102
1103
1105
1114 AbstractDataProviderBulkRecordInterface searchRecordsBulk(int block_size = 1000, *hash<auto> where_cond, *hash<auto> search_options);
1115
1116
1118
1125 AbstractDataProviderRecordIterator searchRecords(*hash<DataProviderExpression> where_cond, *hash<auto> search_options);
1126
1127
1129
1134 AbstractDataProviderRecordIterator searchRecords(*hash<auto> where_cond, *hash<auto> search_options);
1135
1136
1138
1148 AbstractDataProviderRecordIterator requestSearchRecords(auto req, *hash<DataProviderExpression> where_cond, *hash<auto> search_options);
1149
1150
1152
1160 AbstractDataProviderRecordIterator requestSearchRecords(auto req, *hash<auto> where_cond, *hash<auto> search_options);
1161
1162
1164
1175 bool updateSingleRecord(hash<auto> set, hash<DataProviderExpression> where_cond, *hash<auto> search_options);
1176
1177
1179
1188 bool updateSingleRecord(hash<auto> set, hash<auto> where_cond, *hash<auto> search_options);
1189
1190
1192
1204 int updateRecords(hash<auto> set, *hash<DataProviderExpression> where_cond, *hash<auto> search_options);
1205
1206
1208
1218 int updateRecords(hash<auto> set, *hash<auto> where_cond, *hash<auto> search_options);
1219
1220
1222
1234 int deleteRecords(*hash<DataProviderExpression> where_cond, *hash<auto> search_options);
1235
1236
1238
1248 int deleteRecords(*hash<auto> where_cond, *hash<auto> search_options);
1249
1250
1252
1260 auto doRequest(auto req, *hash<auto> request_options);
1261
1262
1264
1275 AbstractDataProvider createChildProvider(string name, hash<string, AbstractDataField> fields, *hash<auto> child_create_options);
1276
1277
1279
1287 deleteChildProvider(string name, *hash<auto> child_delete_options);
1288
1289
1291
1300 addField(AbstractDataField field, *hash<auto> field_add_options);
1301
1302
1304
1313 updateField(string name, AbstractDataField field, *hash<auto> field_update_options);
1314
1315
1317
1325 deleteField(string name, *hash<auto> field_delete_options);
1326
1327
1329
1340 sendMessage(string message_id, auto msg, *hash<auto> send_message_options);
1341
1342
1344
1351
1352
1354
1359
1360
1362
1373
1374
1376
1386 *hash<string, hash<ActionOptionInfo>> tryGetActionOptionsFromRequestTypeWithData(auto req);
1387
1388
1390
1395
1396
1398
1409
1410
1412
1416 *hash<string, AbstractDataProviderType> getErrorResponseTypes();
1417
1418
1420
1428
1429
1431
1440 hash<DataProviderMessageInfo> getEventInfo(string event_id);
1441
1442
1444
1456 hash<DataProviderMessageInfo> getEventInfoWithData(string event_id, auto req);
1457
1458
1460
1466 hash<string, hash<DataProviderMessageInfo>> getEventTypes();
1467
1468
1470
1478 *hash<string, hash<ActionOptionInfo>> tryGetActionOptionsWithData(hash<DataProviderActionInfo> action, auto req);
1479
1480
1482
1491 hash<DataProviderMessageInfo> getMessageInfo(string message_id);
1492
1493
1495
1501 hash<string, hash<DataProviderMessageInfo>> getMessageTypes();
1502
1503
1505
1512
1513
1515
1522
1523
1525
1534 auto getExampleErrorResponseData(string error_code);
1535
1536
1538
1547 auto getExampleEventData(string event_id);
1548
1549
1551
1556
1557
1559
1563 *hash<DataProviderConnectionInfo> getConnectionInfo();
1564
1565
1567
1570 *list<hash<DataProviderSummaryInfo>> getChildProviderSummaryInfo();
1571
1572
1574
1576 *list<string> getChildProviderNames();
1577
1578
1580
1589
1590
1592
1601
1602
1604
1613
1614
1616
1620
1621
1623
1632
1633
1635
1642
1643
1645
1652
1653
1655
1660
1661
1663
1668
1669
1671
1675 *hash<string, hash<MapperRuntimeKeyInfo>> getMapperRuntimeKeys();
1676
1677
1679
1683
1684
1686
1690
1691
1693
1697
1698
1700
1704
1705
1707
1711
1712
1714
1718
1719
1721
1727
1728
1730
1736
1737
1739
1745
1746
1748
1754
1755
1757
1763
1764
1766
1772
1773
1775
1781
1782
1784
1790
1791
1793
1799
1800
1802
1810 *hash<auto> getSearchExpression(*hash<auto> where_cond, *hash<auto> search_options);
1811
1812
1814
1819 *hash<string, bool> getSupportedReferenceData();
1820
1821
1823
1831 *list<hash<AllowedValueInfo>> getReferenceDataSafe(string type, *hash<auto> action_opts);
1832
1833
1835
1847 *list<hash<AllowedValueInfo>> getReferenceDataSafeEx(string type, *hash<auto> action_opts);
1848
1849
1851
1860 *list<hash<AllowedValueInfo>> getReferenceData(string type, *hash<auto> action_opts);
1861
1862
1864
1874 *list<hash<AllowedValueInfo>> getReferenceDataEx(string type, *hash<auto> action_opts);
1875
1876
1878
1884
1885
1887
1895 *list<hash<AllowedValueInfo>> getElementReferenceDataSafe(string type, *hash<auto> action_opts);
1896
1897
1899
1911 *list<hash<AllowedValueInfo>> getElementReferenceDataSafeEx(string type, *hash<auto> action_opts);
1912
1913
1915
1924 *list<hash<AllowedValueInfo>> getElementReferenceData(string type, *hash<auto> action_opts);
1925
1926
1928
1938 *list<hash<AllowedValueInfo>> getElementReferenceDataEx(string type, *hash<auto> action_opts);
1939
1940
1942
1947 *hash<string, bool> getSupportedReferenceDataValues();
1948
1949
1951
1958 auto getReferenceDataValueSafe(string type, *hash<auto> action_opts);
1959
1960
1962
1974 auto getReferenceDataValueSafeEx(string type, *hash<auto> action_opts);
1975
1976
1978
1987 auto getReferenceDataValue(string type, *hash<auto> action_opts);
1988
1989
1991
2001 auto getReferenceDataValueEx(string type, *hash<auto> action_opts);
2002
2003
2005
2014 updateConnectionObjects(object conn, object connobj);
2015
2016
2018
2026protected:
2027 *hash<string, hash<ActionOptionInfo>> tryGetActionOptionsWithDataImpl(hash<DataProviderActionInfo> action, auto req);
2028public:
2029
2030
2032
2035protected:
2036 hash<DataProviderExpression> getSimpleArgumentIntern(int role, hash<DataProviderInfo> info, hash<DataProviderExpressionInfo> expinfo, string key, auto value);
2037public:
2038
2039
2041
2046protected:
2047 hash<DataProviderExpression> getEqualityComparisonExpression(int role, hash<DataProviderInfo> info, string key, auto value);
2048public:
2049
2050
2052
2055protected:
2056 static hash<DataProviderExpressionInfo> getExpression(int role, string exp, *hash<string, hash<DataProviderExpressionInfo>> expmap);
2057public:
2058
2059
2061
2066
2068
2071 static auto evalGenericExpressionValue(hash<auto> rec, auto val);
2072 return rv;
2073 };
2074 if (val instanceof hash<DataProviderExpression>);
2075
2076 return val;
2077 };
2078
2080
2083 static auto evalGenericExpression(hash<auto> rec, hash<DataProviderExpression> exp);
2084
2086
2096 static bool setDynamicValueCallbacks(code value_needs_resolution, code resolve_value);
2097
2099
2107 static verifyExpression(int role, *hash<string, hash<DataProviderExpressionInfo>> expmap, int caps, AbstractDataProviderType expected_type, hash<DataProviderExpression> exp);
2108
2110
2118 static verifyExpression(int role, hash<DataProviderExpressionInfo> expinfo, int caps, AbstractDataProviderType expected_type, hash<DataProviderExpression> exp);
2119
2121
2127 static verifyExpressionArgValue(int role, int caps, hash<DataProviderExpressionInfo> expinfo, softlist<auto> values, int pos);
2128
2130protected:
2131 static bool checkCallbacks();
2132public:
2133
2134
2136
2138protected:
2139 *hash<auto> validateCreateOptions(*hash<auto> create_options);
2140public:
2141
2142
2144
2146protected:
2147 *hash<auto> validateUpsertOptions(*hash<auto> upsert_options);
2148public:
2149
2150
2152
2154protected:
2155 *hash<auto> validateSearchOptions(*hash<auto> search_options);
2156public:
2157
2158
2160
2162protected:
2163 *hash<auto> validateRequestOptions(*hash<auto> request_options);
2164public:
2165
2166
2168
2172protected:
2173 *hash<auto> validateChildCreateOptions(*hash<auto> child_create_options);
2174public:
2175
2176
2178
2182protected:
2183 *hash<auto> validateChildDeleteOptions(*hash<auto> child_delete_options);
2184public:
2185
2186
2188
2192protected:
2193 *hash<auto> validateFieldAddOptions(*hash<auto> field_add_options);
2194public:
2195
2196
2198
2202protected:
2203 *hash<auto> validateFieldUpdateOptions(*hash<auto> field_update_options);
2204public:
2205
2206
2208
2212protected:
2213 *hash<auto> validateFieldDeleteOptions(*hash<auto> field_delete_options);
2214public:
2215
2216
2218
2222protected:
2223 *hash<auto> validateSendMessageOptions(*hash<auto> send_message_options);
2224public:
2225
2226
2228protected:
2229 processConstructorOptions(*hash<string, hash<DataProviderOptionInfo>> option_desc, *hash<auto> options, *string required_options);
2230public:
2231
2232
2234
2247protected:
2248 *hash<auto> checkOptions(string err, *hash<string, hash<DataProviderOptionInfo>> option_desc, *hash<auto> uoptions, *string required_options);
2249public:
2250
2251
2253
2261protected:
2262 verifyRequiredOptions(string err, *hash<auto> options, string required_options);
2263public:
2264
2265
2267
2272protected:
2273 *hash<DataProviderExpression> processSearchParameters(*hash<DataProviderExpression> exp, *hash<auto> search_options);
2274public:
2275
2276
2278
2285protected:
2286 *hash<auto> processFieldValues(*hash<auto> h, *hash<auto> search_options);
2287public:
2288
2289
2291 bool searchAcceptsForeignField(string field);
2292
2293
2295
2301 *hash<string, AbstractDataField> getRecordType(*hash<auto> search_options);
2302
2303
2305
2312 *hash<string, AbstractDataField> getCreateRecordType(*hash<auto> create_options);
2313
2314
2316
2325 *hash<string, AbstractDataField> getUpdateRecordType(*hash<auto> search_options);
2326
2327
2329 *hash<string, AbstractDataField> getSoftRecordType(*hash<auto> search_options);
2330
2331
2333 *hash<string, AbstractDataField> getOrNothingRecordType(*hash<auto> search_options);
2334
2335
2337
2340 *hash<string, hash<DataProviderOptionInfo>> getSearchOptions();
2341
2342
2344
2347 *hash<string, hash<DataProviderOptionInfo>> getCreateOptions();
2348
2349
2351
2354 *hash<string, hash<DataProviderOptionInfo>> getUpsertOptions();
2355
2356
2358
2361 *hash<string, hash<DataProviderOptionInfo>> getRequestOptions();
2362
2363
2365
2371 *hash<string, hash<DataProviderOptionInfo>> getChildCreateOptions();
2372
2373
2375
2381 *hash<string, hash<DataProviderOptionInfo>> getChildDeleteOptions();
2382
2383
2385
2391 *hash<string, hash<DataProviderOptionInfo>> getFieldAddOptions();
2392
2393
2395
2401 *hash<string, hash<DataProviderOptionInfo>> getFieldUpdateOptions();
2402
2403
2405
2411 *hash<string, hash<DataProviderOptionInfo>> getFieldDeleteOptions();
2412
2413
2415
2421 *hash<string, hash<DataProviderOptionInfo>> getSendMessageOptions();
2422
2423
2425
2427 string getMessageSupport();
2428
2429
2431
2433 bool supportsRead();
2434
2435
2437
2439 bool supportsBulkRead();
2440
2441
2443
2445 bool supportsCreate();
2446
2447
2449
2451 bool supportsUpdate();
2452
2453
2455
2457 bool supportsUpsert();
2458
2459
2461
2463 bool supportsDelete();
2464
2465
2467
2469 bool supportsNativeSearch();
2470
2471
2473
2475 bool supportsBulkCreate();
2476
2477
2479
2481 bool supportsBulkUpsert();
2482
2483
2485
2487 bool supportsRequest();
2488
2489
2491
2493 bool recordRequiresSearchOptions();
2494
2495
2497
2499 bool hasRecord();
2500
2501
2503
2505 bool supportsCreateChild();
2506
2507
2509
2511 bool supportsDeleteChild();
2512
2513
2515
2517 bool supportsAddField();
2518
2519
2521
2523 bool supportsUpdateField();
2524
2525
2527
2529 bool supportsDeleteField();
2530
2531
2533
2535 bool supportsSchema();
2536
2537
2539
2541 bool supportsSearchExpressions();
2542
2543
2545
2547 bool supportsObservable();
2548
2549
2551
2553 bool supportsMessages();
2554
2555
2557
2559 *object getSchemaType();
2560
2561
2563
2565 bool supportsChildren();
2566
2567
2569
2571 bool childrenIdentical();
2572
2573
2575
2582 static registerChild(string name, code generator);
2583
2585protected:
2586 error(string err, string fmt, ...);
2587public:
2588
2589
2591
2596protected:
2597 *hash<auto> searchFirstRecordImpl(hash<auto> where_cond, *hash<auto> search_options);
2598public:
2599
2600
2602
2609protected:
2610 *hash<auto> searchSingleRecordImpl(hash<auto> where_cond, *hash<auto> search_options);
2611public:
2612
2613
2615
2619protected:
2620 *list<string> getChildProviderNamesImpl();
2621public:
2622
2623
2625
2627protected:
2628 *AbstractDataProvider getChildProviderImpl(string name);
2629public:
2630
2631
2633
2637protected:
2638 *hash<DataProviderConnectionInfo> getConnectionInfoImpl();
2639public:
2640
2641
2643
2649protected:
2650 hash<auto> generateExampleData(hash<string, AbstractDataField> fields);
2651public:
2652
2653
2655
2657protected:
2658 *hash<string, AbstractDataField> getRecordTypeImpl(*hash<auto> search_options);
2659public:
2660
2661
2663
2665protected:
2666 *hash<string, AbstractDataField> getUpdateRecordTypeImpl(*hash<auto> search_options);
2667public:
2668
2669
2671
2673protected:
2674 *hash<string, AbstractDataField> getCreateRecordTypeImpl(*hash<auto> create_options);
2675public:
2676
2677
2679
2686protected:
2687 AbstractDataProviderBulkRecordInterface searchRecordsBulkImpl(int block_size = 1000, *hash<auto> where_cond, *hash<auto> search_options);
2688public:
2689
2690
2692
2697protected:
2698 AbstractDataProviderRecordIterator searchRecordsImpl(*hash<auto> where_cond, *hash<auto> search_options);
2699public:
2700
2701
2703
2711protected:
2712 AbstractDataProviderRecordIterator requestSearchRecordsImpl(auto req, *hash<auto> where_cond, *hash<auto> search_options);
2713public:
2714
2715
2717
2725protected:
2726 *hash<auto> createRecordImpl(hash<auto> rec, *hash<auto> create_options);
2727public:
2728
2729
2731
2736protected:
2737 string upsertRecordImpl(hash<auto> rec, *hash<auto> upsert_options);
2738public:
2739
2740
2742
2746protected:
2747 bool updateSingleRecordImpl(hash<auto> set, hash<auto> where_cond, *hash<auto> search_options);
2748public:
2749
2750
2752
2758protected:
2759 int updateRecordsImpl(hash<auto> set, *hash<auto> where_cond, *hash<auto> search_options);
2760public:
2761
2762
2764
2770protected:
2771 int deleteRecordsImpl(*hash<auto> where_cond, *hash<auto> search_options);
2772public:
2773
2774
2776
2781protected:
2782 auto doRequestImpl(auto req, *hash<auto> request_options);
2783public:
2784
2785
2787
2795protected:
2796 AbstractDataProvider createChildProviderImpl(string name, hash<string, AbstractDataField> fields, *hash<auto> child_create_options);
2797public:
2798
2799
2801
2806protected:
2807 deleteChildProviderImpl(string name, *hash<auto> child_delete_options);
2808public:
2809
2810
2812
2818protected:
2819 addFieldImpl(AbstractDataField field, *hash<auto> field_add_options);
2820public:
2821
2822
2824
2830protected:
2831 updateFieldImpl(string name, AbstractDataField field, *hash<auto> field_update_options);
2832public:
2833
2834
2836
2841protected:
2842 deleteFieldImpl(string name, *hash<auto> field_delete_options);
2843public:
2844
2845
2847
2854protected:
2855 sendMessageImpl(string message_id, auto msg, *hash<auto> send_message_options);
2856public:
2857
2858
2860
2864protected:
2865 object getSchemaObjectImpl();
2866public:
2867
2868
2870
2874protected:
2875 *AbstractDataProviderType getRequestTypeImpl();
2876public:
2877
2878
2880
2890protected:
2891 *AbstractDataProviderType getRequestTypeWithDataImpl(auto req);
2892public:
2893
2894
2896
2900protected:
2901 *AbstractDataProviderType getResponseTypeImpl();
2902public:
2903
2904
2906
2916protected:
2917 *AbstractDataProviderType getResponseTypeWithDataImpl(auto req);
2918public:
2919
2920
2922
2926protected:
2927 *hash<string, AbstractDataProviderType> getErrorResponseTypesImpl();
2928public:
2929
2930
2932
2938protected:
2939 AbstractDataProviderType getErrorResponseTypeImpl(string error_code);
2940public:
2941
2942
2944
2954protected:
2955 hash<DataProviderMessageInfo> getEventInfoImpl(string event_id);
2956public:
2957
2958
2960
2971protected:
2972 hash<DataProviderMessageInfo> getEventInfoWithDataImpl(string event_id, auto req);
2973public:
2974
2975
2977
2983protected:
2984 hash<string, hash<DataProviderMessageInfo>> getEventTypesImpl();
2985public:
2986
2987
2989
2997protected:
2998 hash<DataProviderMessageInfo> getMessageInfoImpl(string message_id);
2999public:
3000
3001
3003
3009protected:
3010 hash<string, hash<DataProviderMessageInfo>> getMessageTypesImpl();
3011public:
3012
3013
3015
3017protected:
3018 throwUnimplementedException();
3019public:
3020
3021
3023
3027protected:
3028 auto getExampleRequestDataImpl();
3029public:
3030
3031
3033
3039protected:
3040 auto getExampleResponseDataImpl();
3041public:
3042
3043
3045
3054protected:
3055 auto getExampleErrorResponseDataImpl(string error_code);
3056public:
3057
3058
3060
3069protected:
3070 auto getExampleEventDataImpl(string event_id);
3071public:
3072
3073
3075
3079protected:
3080 hash<auto> getExampleRecordDataImpl();
3081public:
3082
3083
3085
3092protected:
3093 *list<hash<AllowedValueInfo>> getReferenceDataImpl(string type, *hash<auto> action_opts);
3094public:
3095
3096
3098
3105protected:
3106 *list<hash<AllowedValueInfo>> getElementReferenceDataImpl(string type, *hash<auto> action_opts);
3107public:
3108
3109
3111
3118protected:
3119 auto getReferenceDataValueImpl(string type, *hash<auto> action_opts);
3120public:
3121
3122
3124 abstract string getName();
3125
3127protected:
3128 abstract hash<DataProviderInfo> getStaticInfoImpl();
3129public:
3130}
3131}
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:917
*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:952
const GenericExpressions
Generic search operator expressions.
Definition AbstractDataProvider.qc.dox.h:930
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.
*hash< auto > searchSingleRecord(hash< auto > where_cond, *hash< auto > search_options)
Returns a single record matching the search options.
beginTransaction()
Begins a transaction with a data provider.
const DataProviderSummaryInfoKeys
A list of members names of the DataProviderSummaryInfoKeys hashdecl.
Definition AbstractDataProvider.qc.dox.h:933
*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:921
*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:941
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< 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:946
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:949
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:439
const DES_Generic
Definition AbstractDataProvider.qc.dox.h:436
const DET_Operator
Definition AbstractDataProvider.qc.dox.h:417
const DET_Function
Indicates a function expression.
Definition AbstractDataProvider.qc.dox.h:420
const MSG_None
Definition AbstractDataProvider.qc.dox.h:270
const MSG_Async
Asynchronous output type, output can happen any time.
Definition AbstractDataProvider.qc.dox.h:282
const MSG_Sync
Synchronous output type, an output message is expected after each observed event.
Definition AbstractDataProvider.qc.dox.h:277
const UpsertResultUnchanged
Indicates that the record was left unchanged.
Definition AbstractDataProvider.qc.dox.h:42
const UpsertResultDeleted
Indicates that the record was deleted.
Definition AbstractDataProvider.qc.dox.h:45
const UpsertResultInserted
Definition AbstractDataProvider.qc.dox.h:33
const UpsertResultVerified
Indicates that the record was verified as already in the target state.
Definition AbstractDataProvider.qc.dox.h:39
const UpsertResultUpdated
Indicates that the record was updated.
Definition AbstractDataProvider.qc.dox.h:36
const ER_All
Indicates an expression that can be used in all contexts.
Definition AbstractDataProvider.qc.dox.h:322
const ER_Search
Definition AbstractDataProvider.qc.dox.h:316
const ER_Field
Indicates an expression that can be used in a field.
Definition AbstractDataProvider.qc.dox.h:319
const LC_Or
Indicates that boolean expressions can be combined with OR logic.
Definition AbstractDataProvider.qc.dox.h:341
const LC_And
Definition AbstractDataProvider.qc.dox.h:338
const LC_All
Indicates that all logic capabilities are supported.
Definition AbstractDataProvider.qc.dox.h:344
const ST_Value
Indicates any literal value of the given type; i.e. not an operator or other expression.
Definition AbstractDataProvider.qc.dox.h:294
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:300
const ST_Any
Definition AbstractDataProvider.qc.dox.h:291
Qore AbstractDataField class definition.
Definition AbstractDataField.qc.dox.h:27
const DataProviderSignatureOptionalIntValueType
Data provider signature *int value type.
Definition AbstractDataProvider.qc.dox.h:388
const DataProviderSignatureStringType
Data provider signature string type.
Definition AbstractDataProvider.qc.dox.h:404
const DataProviderSignatureDateType
Data provider signature date type.
Definition AbstractDataProvider.qc.dox.h:408
const DataProviderSignatureHashValueType
Data provider signature hash value type.
Definition AbstractDataProvider.qc.dox.h:396
const ExpressionSubtypeCodeMap
Maps DataProvider expression subtype codes to descriptions.
Definition AbstractDataProvider.qc.dox.h:443
const SignatureTypeDescMap
Maps signature description values to integer codes.
Definition AbstractDataProvider.qc.dox.h:308
const SignatureTypeCodeMap
Maps signature type codes to descriptions.
Definition AbstractDataProvider.qc.dox.h:304
const DataProviderSignatureOptionalStringValueType
Data provider signature optional string value type.
Definition AbstractDataProvider.qc.dox.h:380
const LogicDescMap
Logic map from descriptions to integer codes.
Definition AbstractDataProvider.qc.dox.h:352
const DataProviderSignatureFieldType
Data provider signature field type.
Definition AbstractDataProvider.qc.dox.h:364
const ExpressionTypeDescMap
Maps DataProvider expression type descriptions to integer codes.
Definition AbstractDataProvider.qc.dox.h:428
const DataProviderSignatureBoolType
Data provider signature bool type.
Definition AbstractDataProvider.qc.dox.h:400
const DataProviderSignatureListValueType
Data provider signature list value type.
Definition AbstractDataProvider.qc.dox.h:392
const DataProviderSignatureStringValueType
Data provider signature string value type.
Definition AbstractDataProvider.qc.dox.h:376
const DataProviderSignatureAnyType
Data provider signature any type.
Definition AbstractDataProvider.qc.dox.h:368
const ExpressionSubtypeDescMap
Maps DataProvider expression subtype descriptions to integer codes.
Definition AbstractDataProvider.qc.dox.h:447
const RoleCodeMap
Role map from codes to descriptions.
Definition AbstractDataProvider.qc.dox.h:326
const LogicCodeMap
Logic map from codes to descriptions.
Definition AbstractDataProvider.qc.dox.h:348
const RoleDescMap
Role map from descriptions to codes.
Definition AbstractDataProvider.qc.dox.h:330
const DataProviderSignatureListType
Data provider signature list type.
Definition AbstractDataProvider.qc.dox.h:372
const ExpressionTypeCodeMap
Maps DataProvider expression type codes to descriptions.
Definition AbstractDataProvider.qc.dox.h:424
const DataProviderSignatureIntValueType
Data provider signature int value type.
Definition AbstractDataProvider.qc.dox.h:384
const MapperKeyInfo
Data provider expression arg info.
Definition AbstractDataProvider.qc.dox.h:450
*softlist< hash< Util::AllowedValueInfo > > allowed_values
List of allowed values (enum)
Definition AbstractDataProvider.qc.dox.h:472
*softlist< hash< Util::AllowedValueInfo > > element_allowed_values
List of allowed values for elements of list types (enum)
Definition AbstractDataProvider.qc.dox.h:480
string desc
The argument description.
Definition AbstractDataProvider.qc.dox.h:458
auto default_value
Any default value.
Definition AbstractDataProvider.qc.dox.h:461
bool sensitive
Is the argument value sensitive?
Definition AbstractDataProvider.qc.dox.h:464
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:467
*string short_desc
Argument short description in plain text.
Definition AbstractDataProvider.qc.dox.h:455
bool element_allowed_values_creatable
Does the option accept values for elements not defined in element_allowed_values too?
Definition AbstractDataProvider.qc.dox.h:483
*bool allowed_values_creatable
Does the option accept values not defined in allowed_values too?
Definition AbstractDataProvider.qc.dox.h:475
auto example_value
Any optional example value for the argument.
Definition AbstractDataProvider.qc.dox.h:488
string display_name
Argument display name.
Definition AbstractDataProvider.qc.dox.h:452
Data provider connection info.
Definition AbstractDataProvider.qc.dox.h:899
bool auto_reconnect
Is auto reconnect supported?
Definition AbstractDataProvider.qc.dox.h:907
bool connected
Is the underlying transport connected?
Definition AbstractDataProvider.qc.dox.h:901
*hash< auto > info
Additional data-provider-dependent connection information.
Definition AbstractDataProvider.qc.dox.h:913
bool reconnecting
Is a reconnect in progress?
Definition AbstractDataProvider.qc.dox.h:904
*string url
Any target URL if available.
Definition AbstractDataProvider.qc.dox.h:910
Data provider expression.
Definition AbstractDataProvider.qc.dox.h:545
string exp
Expression name.
Definition AbstractDataProvider.qc.dox.h:547
softlist< auto > args
Expression arguments.
Definition AbstractDataProvider.qc.dox.h:553
Data provider signature info.
Definition AbstractDataProvider.qc.dox.h:492
string symbol
The symbol to use when rendering expressions.
Definition AbstractDataProvider.qc.dox.h:518
string name
The technical name or internal label used for the expression.
Definition AbstractDataProvider.qc.dox.h:504
string display_name
The display name.
Definition AbstractDataProvider.qc.dox.h:507
string short_desc
The short description of the operation.
Definition AbstractDataProvider.qc.dox.h:510
bool varargs
The last argument can be repeated indefinitely.
Definition AbstractDataProvider.qc.dox.h:535
int role
The expression role code / bitfield.
Definition AbstractDataProvider.qc.dox.h:523
int type
The type of expression; see DataProvider Expression Type Codes.
Definition AbstractDataProvider.qc.dox.h:494
softlist< hash< DataProviderSignatureTypeInfo > > args
Argument types.
Definition AbstractDataProvider.qc.dox.h:526
int subtype
The expression subtype.
Definition AbstractDataProvider.qc.dox.h:499
string desc
The description of the operation.
Definition AbstractDataProvider.qc.dox.h:515
*softlist< hash< DataProviderArgInfo > > arg_info
Argument info.
Definition AbstractDataProvider.qc.dox.h:529
AbstractDataProviderType return_type
The return type.
Definition AbstractDataProvider.qc.dox.h:532
Data provider field reference.
Definition AbstractDataProvider.qc.dox.h:539
string field
The name of the field being referenced.
Definition AbstractDataProvider.qc.dox.h:541
Data provider info.
Definition AbstractDataProvider.qc.dox.h:557
string supports_messages
Output message support.
Definition AbstractDataProvider.qc.dox.h:722
bool supports_delete
Does the data provider support record deletion?
Definition AbstractDataProvider.qc.dox.h:602
*hash< string, hash< DataProviderMessageInfo > > events
hash of observable events and event types
Definition AbstractDataProvider.qc.dox.h:858
bool supports_bulk_read
Does the data provider support native / optimized bulk reads?
Definition AbstractDataProvider.qc.dox.h:615
*hash< string, hash< DataProviderOptionInfo > > add_field_options
Add field options supported by the data provider.
Definition AbstractDataProvider.qc.dox.h:823
*hash< string, hash< DataProviderMessageInfo > > messages
List of output message IDs and message types.
Definition AbstractDataProvider.qc.dox.h:865
bool supports_connections
Does the data provider support connections and connection status reporting?
Definition AbstractDataProvider.qc.dox.h:727
bool transaction_management
Does the data provider require transaction management?
Definition AbstractDataProvider.qc.dox.h:646
*hash< string, hash< DataProviderExpressionInfo > > expressions
Expressions (operators and functions) supported by the data provider.
Definition AbstractDataProvider.qc.dox.h:851
string display_name
Data provider display name.
Definition AbstractDataProvider.qc.dox.h:564
bool children_can_support_observers
Can any child data providers support the observer pattern / event API?
Definition AbstractDataProvider.qc.dox.h:747
bool supports_auto_reconnect
Does the data provider support automatic reconnection?
Definition AbstractDataProvider.qc.dox.h:732
bool supports_child_delete
Does the data provider support deleting new child providers?
Definition AbstractDataProvider.qc.dox.h:670
string type
The name of the provider type.
Definition AbstractDataProvider.qc.dox.h:577
bool supports_delete_field
Does the data provider support deleting fields?
Definition AbstractDataProvider.qc.dox.h:691
bool supports_child_create
Does the data provider support creating new child providers?
Definition AbstractDataProvider.qc.dox.h:663
*hash< string, hash< DataProviderOptionInfo > > child_delete_options
Child deletion options supported by the data provider.
Definition AbstractDataProvider.qc.dox.h:816
bool supports_native_search
Does the data provider support native record searching?
Definition AbstractDataProvider.qc.dox.h:607
*string required_constructor_options
Required constructor option combinations.
Definition AbstractDataProvider.qc.dox.h:782
bool children_identical
Are all children always of the same data provider class that support the same options?
Definition AbstractDataProvider.qc.dox.h:762
*hash< string, hash< DataProviderOptionInfo > > request_options
Request options supported by the data provider.
Definition AbstractDataProvider.qc.dox.h:802
*hash< string, hash< DataProviderOptionInfo > > search_options
Search options supported by the data provider.
Definition AbstractDataProvider.qc.dox.h:797
string name
Data provider name.
Definition AbstractDataProvider.qc.dox.h:561
bool supports_add_field
Does the data provider support adding new fields?
Definition AbstractDataProvider.qc.dox.h:677
bool children_can_support_messages
Can any child data providers support messages?
Definition AbstractDataProvider.qc.dox.h:752
*hash< auto > info
Any optional provider-specific information.
Definition AbstractDataProvider.qc.dox.h:895
bool supports_bulk_upsert
Does the data provider support native / optimized bulk upserts?
Definition AbstractDataProvider.qc.dox.h:631
*hash< string, hash< DataProviderOptionInfo > > child_create_options
Child creation options supported by the data provider.
Definition AbstractDataProvider.qc.dox.h:809
hash< string, hash< MapperRuntimeKeyInfo > > mapper_keys
A hash of mapper key information.
Definition AbstractDataProvider.qc.dox.h:877
*string disconnection_event
Disconnection event for event-based connection-capable data providers.
Definition AbstractDataProvider.qc.dox.h:887
bool supports_read
Does the data provider support reading.
Definition AbstractDataProvider.qc.dox.h:582
bool record_requires_search_options
Do we require search options to retrieve the record type?
Definition AbstractDataProvider.qc.dox.h:656
bool supports_update
Does the data provider support record updates?
Definition AbstractDataProvider.qc.dox.h:592
bool supports_search_expressions
Does this data provide support advanced search experssions?
Definition AbstractDataProvider.qc.dox.h:705
*hash< string, hash< DataProviderOptionInfo > > upsert_options
Upsert options supported by the data provider.
Definition AbstractDataProvider.qc.dox.h:792
bool supports_update_field
Does the data provider support updating existing fields?
Definition AbstractDataProvider.qc.dox.h:684
bool supports_request
Does the data provider support the request API?
Definition AbstractDataProvider.qc.dox.h:636
*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:773
*hash< string, hash< DataProviderOptionInfo > > create_options
Create options supported by the data provider.
Definition AbstractDataProvider.qc.dox.h:787
bool supports_create
Does the data provider support record creation?
Definition AbstractDataProvider.qc.dox.h:587
*string short_desc
Data provider short description in plain text.
Definition AbstractDataProvider.qc.dox.h:567
*list< string > children
A list of child data providers in this data provider.
Definition AbstractDataProvider.qc.dox.h:892
bool supports_observable
Does this data provider support the event API / observer pattern?
Definition AbstractDataProvider.qc.dox.h:712
bool supports_upsert
Does the data provider support record upserts (create or update)?
Definition AbstractDataProvider.qc.dox.h:597
bool supports_bulk_create
Does the data provider support native / optimized bulk creation?
Definition AbstractDataProvider.qc.dox.h:623
*hash< string, hash< DataProviderOptionInfo > > delete_field_options
Delete field options supported by the data provider.
Definition AbstractDataProvider.qc.dox.h:837
*hash< string, hash< DataProviderOptionInfo > > send_message_options
Send message options supported by the data provider.
Definition AbstractDataProvider.qc.dox.h:844
bool supports_children
Does the data provider support children?
Definition AbstractDataProvider.qc.dox.h:641
bool children_can_support_apis
Can any child data providers offer API services (request - response data providers)?
Definition AbstractDataProvider.qc.dox.h:737
*string connection_event
Connection event for event-based connection-capable data providers.
Definition AbstractDataProvider.qc.dox.h:882
bool children_can_support_records
Can any child data providers offer record-based providers?
Definition AbstractDataProvider.qc.dox.h:742
*hash< string, hash< DataProviderOptionInfo > > update_field_options
Update field options supported by the data provider.
Definition AbstractDataProvider.qc.dox.h:830
*string desc
A markdown description of the data provider.
Definition AbstractDataProvider.qc.dox.h:572
bool supports_schema
Does the data provider support a schema?
Definition AbstractDataProvider.qc.dox.h:698
bool children_can_support_transactions
Can any child data providers support transaction management?
Definition AbstractDataProvider.qc.dox.h:757
int search_logic_capabilities
Supported search logic capabilities.
Definition AbstractDataProvider.qc.dox.h:870
*string schema_type
Returns the schema type supported by this data provider.
Definition AbstractDataProvider.qc.dox.h:768
bool has_record
Does the data provider provide a record?
Definition AbstractDataProvider.qc.dox.h:651
Data provider message and event info.
Definition AbstractDataProvider.qc.dox.h:249
string desc
The description of the message or event.
Definition AbstractDataProvider.qc.dox.h:253
AbstractDataProviderType type
The data type of the message or event.
Definition AbstractDataProvider.qc.dox.h:256
Data provider option info.
Definition AbstractDataProvider.qc.dox.h:49
string display_name
Option display name.
Definition AbstractDataProvider.qc.dox.h:51
softlist< AbstractDataProviderType > type
The option value type or types.
Definition AbstractDataProvider.qc.dox.h:60
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:81
auto example_value
Any optional example value for the option.
Definition AbstractDataProvider.qc.dox.h:100
bool sensitive
Is the option value sensitive?
Definition AbstractDataProvider.qc.dox.h:78
auto default_value
Any default value.
Definition AbstractDataProvider.qc.dox.h:75
*softlist< hash< Util::AllowedValueInfo > > allowed_values
List of allowed values (enum)
Definition AbstractDataProvider.qc.dox.h:84
*list< string > required_groups
Is the option part of a required group?
Definition AbstractDataProvider.qc.dox.h:72
*string element_ref_data
A tag allowing element allowed values to be returned dynamically as reference data.
Definition AbstractDataProvider.qc.dox.h:114
bool allowed_values_creatable
Does the option accept values not defined in allowed_values too?
Definition AbstractDataProvider.qc.dox.h:87
*string short_desc
Option short description in plain text.
Definition AbstractDataProvider.qc.dox.h:54
string desc
The option description.
Definition AbstractDataProvider.qc.dox.h:57
*bool preselected
Should this option be preselected?
Definition AbstractDataProvider.qc.dox.h:120
*softlist< hash< Util::AllowedValueInfo > > element_allowed_values
List of allowed values for elements of list types (enum)
Definition AbstractDataProvider.qc.dox.h:92
bool element_allowed_values_creatable
Does the option accept values for elements not defined in element_allowed_values too?
Definition AbstractDataProvider.qc.dox.h:95
*string ref_data
A tag allowing allowed values to be returned dynamically as reference data.
Definition AbstractDataProvider.qc.dox.h:107
bool required
Required flag.
Definition AbstractDataProvider.qc.dox.h:66
*string default_ref_data
A tag allowing the default value for the option to be returned dynamically.
Definition AbstractDataProvider.qc.dox.h:117
Data provider signature argument info.
Definition AbstractDataProvider.qc.dox.h:355
int type_code
The signature type code.
Definition AbstractDataProvider.qc.dox.h:360
AbstractDataProviderType type
Argument types.
Definition AbstractDataProvider.qc.dox.h:357
Data provider summary info.
Definition AbstractDataProvider.qc.dox.h:124
bool supports_observable
Does this data provider support the event API / observer pattern?
Definition AbstractDataProvider.qc.dox.h:195
bool supports_bulk_upsert
Does the data provider support native / optimized bulk upserts?
Definition AbstractDataProvider.qc.dox.h:174
bool transaction_management
Does the data provider require transaction management?
Definition AbstractDataProvider.qc.dox.h:183
bool children_can_support_apis
Can any child data providers offer API services (request - response data providers)?
Definition AbstractDataProvider.qc.dox.h:220
bool supports_create
Does the data provider support record creation?
Definition AbstractDataProvider.qc.dox.h:144
*string short_desc
Data provider short description in plain text.
Definition AbstractDataProvider.qc.dox.h:132
string name
The name of the data provider.
Definition AbstractDataProvider.qc.dox.h:126
bool supports_read
Does the data provider support reading.
Definition AbstractDataProvider.qc.dox.h:141
string desc
The description of the data provider; supports markdown.
Definition AbstractDataProvider.qc.dox.h:135
bool has_record
Does the data provider provide a record?
Definition AbstractDataProvider.qc.dox.h:186
bool children_can_support_transactions
Can any child data providers support transaction management?
Definition AbstractDataProvider.qc.dox.h:240
bool children_can_support_observers
Can any child data providers support the observer pattern / event API?
Definition AbstractDataProvider.qc.dox.h:230
string display_name
Data provider display name.
Definition AbstractDataProvider.qc.dox.h:129
bool supports_upsert
Does the data provider support record upserts (create or update)?
Definition AbstractDataProvider.qc.dox.h:150
bool supports_children
Does the data provider support children?
Definition AbstractDataProvider.qc.dox.h:180
bool supports_bulk_create
Does the data provider support native / optimized bulk creation?
Definition AbstractDataProvider.qc.dox.h:168
bool supports_delete
Does the data provider support record deletion?
Definition AbstractDataProvider.qc.dox.h:153
bool supports_request
Does the data provider support the request API?
Definition AbstractDataProvider.qc.dox.h:177
bool supports_search_expressions
Does this data provide support advanced search expressions?
Definition AbstractDataProvider.qc.dox.h:189
bool children_can_support_messages
Can any child data providers support messages?
Definition AbstractDataProvider.qc.dox.h:235
bool supports_native_search
Does the data provider support native record searching?
Definition AbstractDataProvider.qc.dox.h:156
string supports_messages
Message support.
Definition AbstractDataProvider.qc.dox.h:205
bool children_identical
Are all children always of the same data provider class that support the same options?
Definition AbstractDataProvider.qc.dox.h:245
string type
The name of the provider type.
Definition AbstractDataProvider.qc.dox.h:138
bool supports_update
Does the data provider support record updates?
Definition AbstractDataProvider.qc.dox.h:147
bool supports_connections
Does the data provider support connections and connection status reporting?
Definition AbstractDataProvider.qc.dox.h:210
bool supports_bulk_read
Does the data provider support native / optimized bulk reads?
Definition AbstractDataProvider.qc.dox.h:162
bool children_can_support_records
Can any child data providers offer record-based providers?
Definition AbstractDataProvider.qc.dox.h:225
bool supports_auto_reconnect
Does the data provider support automatic reconnection?
Definition AbstractDataProvider.qc.dox.h:215