File: PythonDocstring.i

package info (click to toggle)
robotraconteur 1.2.7-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 101,380 kB
  • sloc: cpp: 1,149,268; cs: 87,653; java: 58,127; python: 26,897; ansic: 356; sh: 152; makefile: 90; xml: 51
file content (1851 lines) | stat: -rw-r--r-- 87,445 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
// DataTypes Enum
%feature("docstring") DataTypes_void_t  "void or null type";
%feature("docstring") DataTypes_double_t "IEEE-754 64-bit floating point number";
%feature("docstring") DataTypes_single_t "IEEE-754 32-bit floating point number";
%feature("docstring") DataTypes_int8_t "8-bit signed integer";
%feature("docstring") DataTypes_uint8_t "8-bit unsigned integer";
%feature("docstring") DataTypes_int16_t "16-bit signed integer";
%feature("docstring") DataTypes_uint16_t "16-bit unsigned integer";
%feature("docstring") DataTypes_int32_t "32-bit signed integer";
%feature("docstring") DataTypes_uint32_t "32-bit unsigned integer";
%feature("docstring") DataTypes_int64_t "64-bit signed integer";
%feature("docstring") DataTypes_uint64_t "64-bit unsigned integer";
%feature("docstring") DataTypes_string_t "UTF-8 string";
%feature("docstring") DataTypes_cdouble_t "128-bit complex double (real,imag)";
%feature("docstring") DataTypes_csingle_t "64-bit complex float (real,imag)";
%feature("docstring") DataTypes_bool_t "8-bit boolean";
%feature("docstring") DataTypes_structure_t  "structure (nested message type)";
%feature("docstring") DataTypes_vector_t "map with int32 key (nested message type)";
%feature("docstring") DataTypes_dictionary_t "map with string key (nested message type)";
%feature("docstring") DataTypes_object_t "object type (not serializable)";
%feature("docstring") DataTypes_varvalue_t "varvalue type (not serializable)";
%feature("docstring") DataTypes_varobject_t "varobject type (not serializable)";
%feature("docstring") DataTypes_list_t "list type (nested message type)";
%feature("docstring") DataTypes_pod_t "pod type (nested message type)";
%feature("docstring") DataTypes_pod_array_t "pod array type (nested message type)";
%feature("docstring") DataTypes_pod_multidimarray_t "pod multidimarray type (nested message type)";
%feature("docstring") DataTypes_enum_t "enum type (not serializable uses int32 for messages)";
%feature("docstring") DataTypes_namedtype_t "namedtype definition (not serializable)";
%feature("docstring") DataTypes_namedarray_t "namedarray type (not serializable)";
%feature("docstring") DataTypes_namedarray_array_t "namedarray array type (nested message type)";
%feature("docstring") DataTypes_namedarray_multidimarray_t "namedarray multidimarray type (nested message type)";
%feature("docstring") DataTypes_multidimarray_t "multi-dimensional numeric array (nested message type)";

// DataTypes_ArrayTypes Enum
%feature("docstring") DataTypes_ArrayTypes_none "type is not an array";
%feature("docstring") DataTypes_ArrayTypes_array "type is a single dimensional array";
%feature("docstring") DataTypes_ArrayTypes_multidimarray "type is a multidimensional array";


// DataTypes_ContainerTypes
%feature("docstring") DataTypes_ContainerTypes_none "type does not have a container";
%feature("docstring") DataTypes_ContainerTypes_list "type has a list container";
%feature("docstring") DataTypes_ContainerTypes_map_int32 "type has a map with int32 keys container";
%feature("docstring") DataTypes_ContainerTypes_map_string "type has a map with string keys container";
%feature("docstring") DataTypes_ContainerTypes_generator "type has a generator container. Only valid for use with function generator members";

// MessageFlags
%feature("docstring") MessageFlags_ROUTING_INFO "Message contains ROUTING_INFO section";
%feature("docstring") MessageFlags_ENDPOINT_INFO "Message contains ENDPOINT_INFO section";
%feature("docstring") MessageFlags_PRIORITY "Message contains PRIORITY section";
%feature("docstring") MessageFlags_UNRELIABLE "Message is unreliable and may be dropped";
%feature("docstring") MessageFlags_META_INFO "Message contains META_INFO section";
%feature("docstring") MessageFlags_STRING_TABLE "Message contains STRING_TABLE section";
%feature("docstring") MessageFlags_MULTIPLE_ENTRIES "Message contains MULTIPLE_ENTRIES section. If unset, message contains one entry";
%feature("docstring") MessageFlags_EXTENDED "Message contains EXTENDED section";
%feature("docstring") MessageFlags_Version2Compat "Message flags for compatibility with Message Format Version 2";
%feature("docstring") MessageEntryFlags_SERVICE_PATH_STR "MessageEntry contains SERVICE_PATH_STR section";
%feature("docstring") MessageEntryFlags_SERVICE_PATH_CODE "MessageEntry contains SERVICE_PATH_CODE section";
%feature("docstring") MessageEntryFlags_MEMBER_NAME_STR "MessageEntry contains MEMBER_NAME_STR section";
%feature("docstring") MessageEntryFlags_MEMBER_NAME_CODE "MessageEntry contains MEMBER_NAME_CODE section";
%feature("docstring") MessageEntryFlags_REQUEST_ID "MessageEntry contains REQUEST_ID section";
%feature("docstring") MessageEntryFlags_ERROR "MessageEntry contains ERROR section";
%feature("docstring") MessageEntryFlags_META_INFO "MessageEntry contains META_INFO section";
%feature("docstring") MessageEntryFlags_EXTENDED "MessageEntry contains EXTENDED section";
%feature("docstring") MessageEntryFlags_Version2Compat "MessageEntry flags for compatibility with Message Format Version 2";
%feature("docstring") MessageElementFlags_ELEMENT_NAME_STR "MessageElement contains ELEMENT_NAME_STR section";
%feature("docstring") MessageElementFlags_ELEMENT_NAME_CODE "MessageElement contains ELEMENT_NAME_CODE section";
%feature("docstring") MessageElementFlags_ELEMENT_NUMBER "MessageElement contains ELEMENT_NUMBER section";
%feature("docstring") MessageElementFlags_ELEMENT_TYPE_NAME_STR "MessageElement contains ELEMENT_TYPE_NAME_STR section";
%feature("docstring") MessageElementFlags_ELEMENT_TYPE_NAME_CODE "MessageElement contains ELEMENT_TYPE_NAME_CODE section";
%feature("docstring") MessageElementFlags_META_INFO "MessageElement contains META_INFO section";
%feature("docstring") MessageElementFlags_EXTENDED "MessageElement contains EXTENDED section";
%feature("docstring") MessageElementFlags_Version2Compat "MessageElement flags for compatibility with Message Format Version 2";

// MessageEntryType Enum
%feature("docstring") MessageEntryType_Null "no-op";
%feature("docstring") MessageEntryType_StreamOp "Stream operation request (transport only)";
%feature("docstring") MessageEntryType_StreamOpRet "Stream operation response (transport only)";
%feature("docstring") MessageEntryType_StreamCheckCapability "Stream check capability request (transport only)";
%feature("docstring") MessageEntryType_StreamCheckCapabilityRet "Stream check capability response (transport only)";
%feature("docstring") MessageEntryType_GetServiceDesc "Get service definition request";
%feature("docstring") MessageEntryType_GetServiceDescRet "Get service definition response";
%feature("docstring") MessageEntryType_ObjectTypeName "Get object qualified type name request";
%feature("docstring") MessageEntryType_ObjectTypeNameRet "Get object qualified type name response";
%feature("docstring") MessageEntryType_ServiceClosed "Service closed notification packet";
%feature("docstring") MessageEntryType_ServiceClosedRet "(reserved)";
%feature("docstring") MessageEntryType_ConnectClient "Connect client request";
%feature("docstring") MessageEntryType_ConnectClientRet "Connect client response";
%feature("docstring") MessageEntryType_DisconnectClient "Disconnect client request";
%feature("docstring") MessageEntryType_DisconnectClientRet "Disconnect client response";
%feature("docstring") MessageEntryType_ConnectionTest "Ping request";
%feature("docstring") MessageEntryType_ConnectionTestRet "Pong response";
%feature("docstring") MessageEntryType_GetNodeInfo "Get node information request (NodeID and NodeName)";
%feature("docstring") MessageEntryType_GetNodeInfoRet "Get node information response";
%feature("docstring") MessageEntryType_ReconnectClient "(reserved)";
%feature("docstring") MessageEntryType_ReconnectClientRet "(reserved)";
%feature("docstring") MessageEntryType_NodeCheckCapability "Get node capability request";
%feature("docstring") MessageEntryType_NodeCheckCapabilityRet "Get node capability response";
%feature("docstring") MessageEntryType_GetServiceAttributes "Get service attributes request";
%feature("docstring") MessageEntryType_GetServiceAttributesRet "Get service attributes response";
%feature("docstring") MessageEntryType_ConnectClientCombined "Connect client combined operation request";
%feature("docstring") MessageEntryType_ConnectClientCombinedRet "Connect client combined operation response";
%feature("docstring") MessageEntryType_EndpointCheckCapability "Get endpoint capability request";
%feature("docstring") MessageEntryType_EndpointCheckCapabilityRet "Get endpoint capability response";
%feature("docstring") MessageEntryType_ServiceCheckCapabilityReq "Get service capability request";
%feature("docstring") MessageEntryType_ServiceCheckCapabilityRet "Get service capability response";
%feature("docstring") MessageEntryType_ClientKeepAliveReq "Client keep alive request";
%feature("docstring") MessageEntryType_ClientKeepAliveRet "Client keep alive response";
%feature("docstring") MessageEntryType_ClientSessionOpReq "Client session management operation request";
%feature("docstring") MessageEntryType_ClientSessionOpRet "Client session management operation response";
%feature("docstring") MessageEntryType_ServicePathReleasedReq "Service path released event notification packet";
%feature("docstring") MessageEntryType_ServicePathReleasedRet "(reserved)";
%feature("docstring") MessageEntryType_PropertyGetReq "Property member get request";
%feature("docstring") MessageEntryType_PropertyGetRes "Property member get response";
%feature("docstring") MessageEntryType_PropertySetReq "Property member set request";
%feature("docstring") MessageEntryType_PropertySetRes "Property member set response";
%feature("docstring") MessageEntryType_FunctionCallReq "Function member call request";
%feature("docstring") MessageEntryType_FunctionCallRes "Function member call response";
%feature("docstring") MessageEntryType_GeneratorNextReq "Generater next call request";
%feature("docstring") MessageEntryType_GeneratorNextRes "Generater next call response";
%feature("docstring") MessageEntryType_EventReq "Event member notification";
%feature("docstring") MessageEntryType_EventRes "(reserved)";
%feature("docstring") MessageEntryType_PipePacket "Pipe member packet";
%feature("docstring") MessageEntryType_PipePacketRet "Pipe member packet ack";
%feature("docstring") MessageEntryType_PipeConnectReq "Pipe member connect request";
%feature("docstring") MessageEntryType_PipeConnectRet "Pipe member connect response";
%feature("docstring") MessageEntryType_PipeDisconnectReq "Pipe member close request";
%feature("docstring") MessageEntryType_PipeDisconnectRet "Pipe member close response";
%feature("docstring") MessageEntryType_PipeClosed "Pipe member closed event notification packet";
%feature("docstring") MessageEntryType_PipeClosedRet "(reserved)";
%feature("docstring") MessageEntryType_CallbackCallReq "Callback member call request";
%feature("docstring") MessageEntryType_CallbackCallRet "Callback member call response";
%feature("docstring") MessageEntryType_WirePacket "Wire member value packet";
%feature("docstring") MessageEntryType_WirePacketRet "(reserved)";
%feature("docstring") MessageEntryType_WireConnectReq "Wire member connect request";
%feature("docstring") MessageEntryType_WireConnectRet "Wire member connect response";
%feature("docstring") MessageEntryType_WireDisconnectReq "Wire member close request";
%feature("docstring") MessageEntryType_WireDisconnectRet "Wire member close response";
%feature("docstring") MessageEntryType_WireClosed "Wire member closed event notification packet";
%feature("docstring") MessageEntryType_WireClosedRet "(reserved)";
%feature("docstring") MessageEntryType_MemoryRead "Memory member read request";
%feature("docstring") MessageEntryType_MemoryReadRet "Memory member read response";
%feature("docstring") MessageEntryType_MemoryWrite "Memory member write request";
%feature("docstring") MessageEntryType_MemoryWriteRet "Memory member write response";
%feature("docstring") MessageEntryType_MemoryGetParam "Memory member get param request";
%feature("docstring") MessageEntryType_MemoryGetParamRet "Memory member get param response";
%feature("docstring") MessageEntryType_WirePeekInValueReq "Wire member peek InValue request";
%feature("docstring") MessageEntryType_WirePeekInValueRet "Wire member peek InValue response";
%feature("docstring") MessageEntryType_WirePeekOutValueReq "Wire member peek OutValue request";
%feature("docstring") MessageEntryType_WirePeekOutValueRet "Wire member peek OutValue response";
%feature("docstring") MessageEntryType_WirePokeOutValueReq "Wire member poke OutValue request";
%feature("docstring") MessageEntryType_WirePokeOutValueRet "Wire member poke OutValue response";

// MessageErrorType Enum
%feature("docstring") MessageErrorType_None "success";
%feature("docstring") MessageErrorType_ConnectionError "connection error";
%feature("docstring") MessageErrorType_ProtocolError "protocol error serializing messages";
%feature("docstring") MessageErrorType_ServiceNotFound "specified service not found";
%feature("docstring") MessageErrorType_ObjectNotFound "specified object not found";
%feature("docstring") MessageErrorType_InvalidEndpoint "specified endpoint not found";
%feature("docstring") MessageErrorType_EndpointCommunicationFatalError "communication with specified endpoint failed";
%feature("docstring") MessageErrorType_NodeNotFound "specified node not found";
%feature("docstring") MessageErrorType_ServiceError "service error";
%feature("docstring") MessageErrorType_MemberNotFound "specified member not found";
%feature("docstring") MessageErrorType_MemberFormatMismatch "message format incompatible with specified member";
%feature("docstring") MessageErrorType_DataTypeMismatch "data type did not match expected type";
%feature("docstring") MessageErrorType_DataTypeError "data type failure";
%feature("docstring") MessageErrorType_DataSerializationError "failure serializing data type";
%feature("docstring") MessageErrorType_MessageEntryNotFound "specified message entry not found";
%feature("docstring") MessageErrorType_MessageElementNotFound "specified message element not found";
%feature("docstring") MessageErrorType_UnknownError "unknown exception occurred check `error name`";
%feature("docstring") MessageErrorType_InvalidOperation "invalid operation attempted";
%feature("docstring") MessageErrorType_InvalidArgument "argument is invalid";
%feature("docstring") MessageErrorType_OperationFailed "the requested operation failed";
%feature("docstring") MessageErrorType_NullValue "invalid null value";
%feature("docstring") MessageErrorType_InternalError "internal error";
%feature("docstring") MessageErrorType_SystemResourcePermissionDenied "permission denied to a system resource";
%feature("docstring") MessageErrorType_OutOfSystemResource "system resource has been exhausted";
%feature("docstring") MessageErrorType_SystemResourceError "system resource error";
%feature("docstring") MessageErrorType_ResourceNotFound "a required resource was not found";
%feature("docstring") MessageErrorType_IOError "input/output error";
%feature("docstring") MessageErrorType_BufferLimitViolation "a buffer underrun/overrun has occurred";
%feature("docstring") MessageErrorType_ServiceDefinitionError "service definition parse or validation error";
%feature("docstring") MessageErrorType_OutOfRange "attempt to access an out of range element";
%feature("docstring") MessageErrorType_KeyNotFound "key not found";
%feature("docstring") MessageErrorType_InvalidConfiguration "invalid configuration specified";
%feature("docstring") MessageErrorType_InvalidState "invalid state";
%feature("docstring") MessageErrorType_RemoteError "error occurred on remote node";
%feature("docstring") MessageErrorType_RequestTimeout "request timed out";
%feature("docstring") MessageErrorType_ReadOnlyMember "attempt to write to a read only member";
%feature("docstring") MessageErrorType_WriteOnlyMember "attempt to read a write only member";
%feature("docstring") MessageErrorType_NotImplementedError "member not implemented";
%feature("docstring") MessageErrorType_MemberBusy "member is busy try again";
%feature("docstring") MessageErrorType_ValueNotSet "value has not been set";
%feature("docstring") MessageErrorType_AbortOperation "abort operation (generator only)";
%feature("docstring") MessageErrorType_OperationAborted "the operation has been aborted";
%feature("docstring") MessageErrorType_StopIteration "stop generator iteration (generator only)";
%feature("docstring") MessageErrorType_OperationTimeout "the operation has timed out";
%feature("docstring") MessageErrorType_OperationCancelled "the operation has been cancelled";
%feature("docstring") MessageErrorType_AuthenticationError "authentication has failed";
%feature("docstring") MessageErrorType_ObjectLockedError "the object is locked by another user or session";
%feature("docstring") MessageErrorType_PermissionDenied "permission to service object or resource denied";

// ClientServiceListenerEventType Enum
%feature("docstring") ClientServiceListenerEventType_ClientClosed "client has been closed";
%feature("docstring") ClientServiceListenerEventType_ClientConnectionTimeout "client connection has timed out";
%feature("docstring") ClientServiceListenerEventType_TransportConnectionConnected "client transport has been connected";
%feature("docstring") ClientServiceListenerEventType_TransportConnectionClosed "client transport connection has been closed or lost";
%feature("docstring") ClientServiceListenerEventType_ServicePathReleased "client has received notification that service path was released";

// ServerServiceListenerEventType Enum
%feature("docstring") ServerServiceListenerEventType_ServiceClosed "service has been closed";
%feature("docstring") ServerServiceListenerEventType_ClientConnected "client has connected";
%feature("docstring") ServerServiceListenerEventType_ClientDisconnected "client has disconnected";

// MemberDefinition_Direction Enum
%feature("docstring") MemberDefinition_Direction_both "member supports read and write";
%feature("docstring") MemberDefinition_Direction_readonly "member is readonly";
%feature("docstring") MemberDefinition_Direction_writeonly "member is writeonly";

// MemberDefinition_NoLock
%feature("docstring") MemberDefinition_NoLock_none "member cannot be accessed by other users/sessions when object is locked";
%feature("docstring") MemberDefinition_NoLock_all "member can be accessed by other users/sessions when object is locked";
%feature("docstring") MemberDefinition_NoLock_read "member can be read by other users/sessions when object is locked";

// Preprocessor constants
%feature("docstring") RR_TIMEOUT_INFINITE "Disable timeout for asynchronous operations";
%feature("docstring") RR_VALUE_LIFESPAN_INFINITE "Set wire values to have infinite lifespan and will not expire";

// TransportCapabilityCode flags
%feature("docstring") TranspartCapabilityCode_PAGE_MASK "Page mask for transport capability code";
%feature("docstring") TransportCapabilityCode_MESSAGE2_BASIC_PAGE2000000 "Message Version 2 transport capability page code";
%feature("docstring") TransportCapabilityCode_MESSAGE2_BASIC_ENABLE "Enable Message Version 2 transport capability flag";
%feature("docstring") TransportCapabilityCode_MESSAGE2_BASIC_CONNECTCOMBINED2 "Enable Message Version 2 connect combined transport capability flag";
%feature("docstring") TransportCapabilityCode_MESSAGE4_BASIC_PAGE4000000 "Message Version 4 transport capability page code";
%feature("docstring") TransportCapabilityCode_MESSAGE4_BASIC_ENABLE "Enable Message Version 4 transport capability flag";
%feature("docstring") TransportCapabilityCode_MESSAGE4_BASIC_CONNECTCOMBINED2 "Enable Message Version 4 connect combine transport capability flag";
%feature("docstring") TransportCapabilityCode_MESSAGE4_STRINGTABLE_PAGE4100000 "Message Version 4 String Table capability page code";
%feature("docstring") TransportCapabilityCode_MESSAGE4_STRINGTABLE_ENABLE "Enable Message Version 4 String Table transport capability code";
%feature("docstring") TransportCapabilityCode_MESSAGE4_STRINGTABLE_MESSAGE_LOCAL2 "Enable Message Version 4 local String Table capability code";
%feature("docstring") TransportCapabilityCode_MESSAGE4_STRINGTABLE_STANDARD_TABLE4 "Enable Message Version 4 standard String Table capability code";

// RobotRaconteur_LogLevel Enum
%feature("docstring") RobotRaconteur_LogLevel_Trace "`trace` log level";
%feature("docstring") RobotRaconteur_LogLevel_Debug "`debug` log level";
%feature("docstring") RobotRaconteur_LogLevel_Info "`info` log level";
%feature("docstring") RobotRaconteur_LogLevel_Warning "`warning` log level";
%feature("docstring") RobotRaconteur_LogLevel_Error "`error` log level";
%feature("docstring") RobotRaconteur_LogLevel_Fatal "`fatal` log level";
%feature("docstring") RobotRaconteur_LogLevel_Disable "`disabled` log level";

// RobotRaconteur_LogComponent Enum
%feature("docstring") RobotRaconteur_LogComponent_Default "default component";
%feature("docstring") RobotRaconteur_LogComponent_Node "Robot Raconteur Node component";
%feature("docstring") RobotRaconteur_LogComponent_Transport "tranport component";
%feature("docstring") RobotRaconteur_LogComponent_Message "message or message serialization component";
%feature("docstring") RobotRaconteur_LogComponent_Client "client component";
%feature("docstring") RobotRaconteur_LogComponent_Service "service component";
%feature("docstring") RobotRaconteur_LogComponent_Member "member component";
%feature("docstring") RobotRaconteur_LogComponent_Pack "data message packing component";
%feature("docstring") RobotRaconteur_LogComponent_Unpack "data message unpacking component";
%feature("docstring") RobotRaconteur_LogComponent_ServiceDefinition "service definition parser component";
%feature("docstring") RobotRaconteur_LogComponent_Discovery "node/service discovery component";
%feature("docstring") RobotRaconteur_LogComponent_Subscription "subscription component";
%feature("docstring") RobotRaconteur_LogComponent_NodeSetup "node setup component";
%feature("docstring") RobotRaconteur_LogComponent_Utility "utility component";
%feature("docstring") RobotRaconteur_LogComponent_RobDefLib "service definition standard library component (external)";
%feature("docstring") RobotRaconteur_LogComponent_User "user component (external)";
%feature("docstring") RobotRaconteur_LogComponent_UserClient "user client component (external)";
%feature("docstring") RobotRaconteur_LogComponent_UserService "user service component (external)";
%feature("docstring") RobotRaconteur_LogComponent_ThirdParty "third party library component (external)";


// RobotRaconteurNode
%feature("docstring") RobotRaconteur::RobotRaconteurNode """
The central node implementation

RobotRaconteurNode implements the current Robot Raconteur instance
and acts as the central switchpoint for the instance. The user
registers types, connects clients, registers services, and
registers transports through this class.

If the current program only needs one instance of RobotRaconteurNode,
the singleton can be used. The singleton is accessed using:

RobotRaconteurNode.s

The singleton node is typically aliased to ``RRN`` for shorthand.

If

.. code-block:: python

   from RobotRaconteur.Client import *

is used, then ``RRN`` is automatically imported. If not used, the following
is typically used:

.. code-block:: python

   import RobotRaconteur as RR
   RRN = RobotRaconteur.s

"""

%feature("docstring") RobotRaconteur::RobotRaconteurNode::__init__() """
Construct a new Robot Raconteur node.
"""

%feature("docstring") RobotRaconteur::RobotRaconteurNode::Init(size_t thread_count=20) """Initialize the node. Called automatically for ``RRN``

This function must be called to initialize background tasks before
using the node. It is called automatically by the
singleton accessors, so the user only needs to call this function
when not using the singleton. If a custom thread pool is being
used, the thread pool factory must be specified before
calling init.

:param thread_count: The initial number of threads in the thread pool (default 20)
:type thread_count: int
"""

%feature("docstring") RobotRaconteur::RobotRaconteurNode::RegisterTransport(const boost::shared_ptr<Transport>& transport) """

Register a transport for use by the node

:param transport: The transport to register
:type transport: RobotRaconteur.Transport
:return: The transport internal id
:rtype: int

"""

%feature("docstring") RobotRaconteur::RobotRaconteurNode::SelectRemoteNodeURL(const std::vector<std::string>& urls) """

Select the \"best\" URL from a std::vector of candidates

Service discovery will often return a list of candidate URLs to
use to connect to a node. This function uses heuristics to select
the \"best\" URL to use. The selection criteria ranks URLs in roughly
the following order, lower number being better:

1. \"rr+intra\" for IntraTransport
2. \"rr+local\" for LocalTransport
3. \"rr+pci\" or \"rr+usb\" for HardwareTransport
4. \"rrs+tcp://127.0.0.1\" for secure TcpTransport loopback
5. \"rrs+tcp://[::1]\" for secure TcpTransport IPv6 loopback
6. \"rrs+tcp://localhost\" for secure TcpTransport loopback
7. \"rrs+tcp://[fe80\" for secure TcpTransport link-local IPv6
8. \"rrs+tcp://\" for any secure TcpTransport
9. \"rr+tcp://127.0.0.1\" for TcpTransport loopback
10. \"rr+tcp://[::1]\" for TcpTransport IPv6 loopback
11. \"rr+tcp://localhost\" for TcpTransport loopback
12. \"rr+tcp://[fe80\" for TcpTransport link-local IPv6
13. \"rr+tcp://\" for any TcpTransport

:param urls: The candidate URLs
:type urls: List[str]
:return: The \"best\" URL out of the candidates
:rtype: str
"""

%feature("docstring") RobotRaconteur::RobotRaconteurNode::UnregisterServiceType(const std::string& type) """

Unregister a previously registered service type

This function is not recommended as the results can be unpredictable

:param type: The service type to unregister
:type type: str
"""

%feature("docstring") RobotRaconteur::RobotRaconteurNode::IsServiceTypeRegistered(const std::string& type) """

Test if a service type has been registered

:param type: The name of the service type to check
:type type: str
:rtype: bool
"""

%feature("docstring") RobotRaconteur::RobotRaconteurNode::CloseService(const std::string& sname) """

Closes a previously registered service

Services are automatically closed by Shutdown, so this function
is rarely used.

:param sname: The name of the service to close
:type sname: str
"""

%feature("docstring") RobotRaconteur::RobotRaconteurNode::Sleep(const boost::posix_time::time_duration& duration) """

Sleeps for a specified duration

Normally will sleep based on the system clock, but in certain
circumstances will use simulation time

:param duration: Duration to sleep in seconds
:type duration: float
"""

%feature("docstring") RobotRaconteur::RobotRaconteurNode::CreateRate(double frequency) """

Create a Rate object

Rate is used to stabilize periodic loops to a specified frequency

This function will normally return a WallRate instance

:param frequency: Frequency of loop in Hz
:type frequency: float
:return: The new Rate object
:rtype: RobotRaconteur.Rate
"""

%feature("docstring") RobotRaconteur::RobotRaconteurNode::CreateAutoResetEvent() """
Create an AutoResetEvent object

Normally the AutoResetEvent will use the system clock for timeouts,
but in certain circumstances will use simulation time

:return: The new AutoResetEvent object
:rtype: RobotRaconteur.AutoResetEvent
"""

%feature("docstring") RobotRaconteur::RobotRaconteurNode::CompareLogLevel(RobotRaconteur_LogLevel log_level) """

Test if the specified log level would be accepted

:param log_level: Log level to test
:type log_level: int
:return: True if the log would be accepted, False if it would be ignored
:rtype: bool
"""

%feature("docstring") RobotRaconteur::RobotRaconteurNode::LogMessage(RobotRaconteur_LogLevel level, const std::string& message) """

Log a simple message using the current node

The record will be sent to the configured log handler,
or sent to std::cerr if none is configured

If the level of the message is below the current log level
for the node, the record will be ignored

"""

%feature("docstring") RobotRaconteur::RobotRaconteurNode::LogRecord(const RRLogRecord& record) """

Log a record to the node.

The record will be sent to the configured log handler,
or sent to std::cerr if none is configured

If the level of the message is below the current log level
for the node, it will be ignored

:param record: The record to log
:type record: RRLogRecord
"""

%feature("docstring") RobotRaconteur::RobotRaconteurNode::GetLogLevel() """

Get the current log level for the node

Default level is \"info\"

:return: The current log level
:rtype: int
"""

%feature("docstring") RobotRaconteur::RobotRaconteurNode::SetLogLevel(RobotRaconteur_LogLevel level) """

Set the log level for the node

Set RobotRaconteur.RobotRaconteur_LogLevel_Disable to disable logging

:param level: The desired log level
:type level: int
"""

%feature("docstring") RobotRaconteur::RobotRaconteurNode::SetLogLevelFromString(const std::string& level) """

Set the log level for the node from a string

Must be one of the following values: DISABLE, FATAL, ERROR, WARNING, INFO, DEBUG, TRACE

Defaults to WARNING

:param level: The desired log level
:type level: str
:return: The log level
:rtype: int
"""

%feature("docstring") RobotRaconteur::RobotRaconteurNode::SetLogLevelFromEnvVariable(const std::string& env_variable_name = "ROBOTRACONTEUR_LOG_LEVEL") """

Set the log level for the node from specified environmental variable

Retrieves the specified environmental variable and sets the log level based
on one of the following values: DISABLE, FATAL, ERROR, WARNING, INFO, DEBUG, TRACE

If an invalid value or the variable does not exist, the log level is left unchanged.

:param env_variable_name: The environmental variable to use. Defaults to
 ``ROBOTRACONTEUR_LOG_LEVEL``
:type env_variable_name: str
:return: The log level
:rtype: int
"""

%feature("docstring") RobotRaconteur::RobotRaconteurNode::GetLogRecordHandler() """

Get the currently configured log record handler

If None, records are sent to ``stdout``

:return: The log record handler
:rtype: LogRecordHandler
"""

%feature("docstring") RobotRaconteur::RobotRaconteurNode::SetLogRecordHandler(const boost::shared_ptr<RobotRaconteur::LogRecordHandler>& handler) """

Set the handler for log records

If handler is NULL, records are sent to std::cerr

:param handler: The log record handler function
:type handler: RobotRaconteur.LogRecordHandler
"""

%feature("docstring") RobotRaconteur::RobotRaconteurNode::CheckConnection(uint32_t client) """

Check that the TransportConnection associated with an endpoint
is connected

Raises `RobotRaconteur.ConnectionException` or other exception if connection is invalid.

:param endpoint: The LocalEndpoint identifier to check
:type endpoint: int
"""

%feature("docstring") RobotRaconteurNodeSetupFlags_NONE "No options enabled";
%feature("docstring") RobotRaconteurNodeSetupFlags_ENABLE_NODE_DISCOVERY_LISTENING "Enable node discovery listening on all transports";
%feature("docstring") RobotRaconteurNodeSetupFlags_ENABLE_NODE_ANNOUNCE "Enable node announce on all transports";
%feature("docstring") RobotRaconteurNodeSetupFlags_ENABLE_LOCAL_TRANSPORT "Enable LocalTransport";
%feature("docstring") RobotRaconteurNodeSetupFlags_ENABLE_TCP_TRANSPORT "Enable TcpTransport";
%feature("docstring") RobotRaconteurNodeSetupFlags_ENABLE_HARDWARE_TRANSPORT "Enable HardwareTransport";
%feature("docstring") RobotRaconteurNodeSetupFlags_LOCAL_TRANSPORT_START_SERVER "Start the LocalTransport server to listen for incoming clients";
%feature("docstring") RobotRaconteurNodeSetupFlags_LOCAL_TRANSPORT_START_CLIENT "Start the LocalTransport client with specified node name";
%feature("docstring") RobotRaconteurNodeSetupFlags_TCP_TRANSPORT_START_SERVER "Start the TcpTransport server to listen for incoming clients on the specified port";
%feature("docstring") RobotRaconteurNodeSetupFlags_TCP_TRANSPORT_START_SERVER_PORT_SHARER "Start the TcpTransport server to incoming for incoming clients using the port sharer";
%feature("docstring") RobotRaconteurNodeSetupFlags_DISABLE_MESSAGE4 "Disable Message Format Version 4 on all transports";
%feature("docstring") RobotRaconteurNodeSetupFlags_DISABLE_STRINGTABLE "Disable Message Format Version 4 string table on all transports";
%feature("docstring") RobotRaconteurNodeSetupFlags_DISABLE_TIMEOUTS "Disable all timeouts (useful for debugging)";
%feature("docstring") RobotRaconteurNodeSetupFlags_LOAD_TLS_CERT "Load the TLS certificate for TcpTransport";
%feature("docstring") RobotRaconteurNodeSetupFlags_REQUIRE_TLS "Require TLS for all clients on TcpTransport";
%feature("docstring") RobotRaconteurNodeSetupFlags_LOCAL_TRANSPORT_SERVER_PUBLIC "Make LocalTransport server listen for incoming clients from all users";
%feature("docstring") RobotRaconteurNodeSetupFlags_NODENAME_OVERRIDE "Allow NodeName to be configured using command line options";
%feature("docstring") RobotRaconteurNodeSetupFlags_NODEID_OVERRIDE "Allow NodeID to be configured using command line options";
%feature("docstring") RobotRaconteurNodeSetupFlags_TCP_PORT_OVERRIDE "Allow TCP port to be configured using command line options";
%feature("docstring") RobotRaconteurNodeSetupFlags_TCP_WEBSOCKET_ORIGIN_OVERRIDE "Allow TCP WebSocket origin control to be configured using command line options";
%feature("docstring") RobotRaconteurNodeSetupFlags_ENABLE_INTRA_TRANSPORT "Enable IntraTransport";
%feature("docstring") RobotRaconteurNodeSetupFlags_INTRA_TRANSPORT_START_SERVER "Start the IntraTransport server to listen for incoming clients";
%feature("docstring") RobotRaconteurNodeSetupFlags_LOCAL_TAP_ENABLE "Enable the LocalTap debug logging system";
%feature("docstring") RobotRaconteurNodeSetupFlags_LOCAL_TAP_NAME "Allow the user to set the LocalTap name";
%feature("docstring") RobotRaconteurNodeSetupFlags_ENABLE_ALL_TRANSPORTS "Convenience flag to enable all transports";
%feature("docstring") RobotRaconteurNodeSetupFlags_CLIENT_DEFAULT "Default configuration for client nodes (See ClientNodeSetup)";
%feature("docstring") RobotRaconteurNodeSetupFlags_CLIENT_DEFAULT_ALLOWED_OVERRIDE "Default allowed overrides for client nodes (See ClientNodeSetup)";
%feature("docstring") RobotRaconteurNodeSetupFlags_SERVER_DEFAULT "Default configuration for server nodes";
%feature("docstring") RobotRaconteurNodeSetupFlags_SERVER_DEFAULT_ALLOWED_OVERRIDE "Default allowed overrides for server nodes";
%feature("docstring") RobotRaconteurNodeSetupFlags_SECURE_SERVER_DEFAULT "Default configuration for server nodes requiring TLS network transports";
%feature("docstring") RobotRaconteurNodeSetupFlags_SECURE_SERVER_DEFAULT_ALLOWED_OVERRIDE "Default allowed overrides for server nodes requiring TLS network transports";


%feature("docstring") RobotRaconteur::CommandLineConfigParser """
Command line parser for node setup classes

The CommandLineConfigParser is used to parse command line options specified
when a program is launched. These options allow for the node configuration to be
changed without recompiling the software. See \\ref command_line_options for
a table of the standard command line options.

ClientNodeSetup, ServerNodeSetup, and SecureServerNodeSetup use this class to parse
the ``sys.argv`` parameters. The RobotRaconteurNodeSetup constructors will accept
either ``sys.argv``, or will accept an initialize CommandLineConfigParser.

The CommandLineConfig() constructor takes the \"allowed override\" flags, and the option prefix.
The \"allowed override\" specifies which options can be overridden using the command line. The
prefix option allows the command line flag prefix to be changed. By default it expects
all options to begin with `--robotraconteur-` followed by the name of the option. If there are
multiple nodes, it is necessary to change the prefix to be unique for each node. For instance,
\"robotraconteur1-\" for the first node and \"robotraconteur2-\" for the second node.

Users may add additional options to the parser. Use AddStringOption(),
AddBoolOption(), or AddIntOption() to add additional options.
"""

%feature("docstring") RobotRaconteur::CommandLineConfigParser::SetDefaults(const std::string& node_name, uint16_t tcp_port, uint32_t default_flags) """
Set the default NodeName, TCP port, and flags

The command line options will be allowed to override the options
specified in allowed_overrides passed to CommandLineConfigParser().

:param node_name: The default NodeName
:type node_name str
:param tcp_port: The default TCP port
:type tcp_port: int
:param default_flags: The default flags
:type default_flags: int
"""

%feature("docstring") RobotRaconteur::CommandLineConfigParser::AddStringOption(const std::string& name, const std::string& descr) """
Add a new string option

:param name: The name of the option
:type name: str
:param descr: Description of the option
:type descr: str
"""

%feature("docstring") RobotRaconteur::CommandLineConfigParser::AddBoolOption(const std::string& name, const std::string& descr) """
Add a new bool option

:param name: The name of the option
:type name: str
:param descr: Description of the option
:type descr: str
"""

%feature("docstring") RobotRaconteur::CommandLineConfigParser::AddIntOption(const std::string& name, const std::string& descr) """
Add a new int32_t option

:param name: The name of the option
:type name: str
:param descr: Description of the option
:type descr: str
"""

%feature("docstring") RobotRaconteur::CommandLineConfigParser::ParseCommandLine(const std::vector<std::string>& args) """
Parse a specified string vector containing the options

Results are stored in the instance

:param args: The options as a string list
:type args: List[str]
"""

%feature("docstring") RobotRaconteur::CommandLineConfigParser::GetOptionOrDefaultAsString(const std::string& option) """
Get the option value as a string

Returns empty string if option not specified on command line

:param option: The name of the option
:type option: str
:return: The option value, or an empty string
:rtype: str
"""

%feature("docstring") RobotRaconteur::CommandLineConfigParser::GetOptionOrDefaultAsString(const std::string& option, const std::string& default_value) """
Get the option value as a string

Returns default_value if option not specified on command line

:param option: The name of the option
:type option: str
:param default_value: The default option value
:type default_value: str
:return: The option value, or default_value if not specified on command line
:rtype: str
"""

%feature("docstring") RobotRaconteur::CommandLineConfigParser::GetOptionOrDefaultAsBool(const std::string& option) """
Get the option value as a bool

Returns false if option not specified on command line

:param option: The name of the option
:type option: str
:return: The option value, or False
:rtype: bool
"""

%feature("docstring") RobotRaconteur::CommandLineConfigParser::GetOptionOrDefaultAsBool(const std::string& option, bool default_value) """
Get the option value as a bool

Returns default_value if option not specified on command line

:param option: The name of the option
:type option: bool
:param default_value: The default option value
:type default_value: bool
:return: The option value, or default_value if not specified on command line
:rtype: bool
"""

%feature("docstring") RobotRaconteur::CommandLineConfigParser::GetOptionOrDefaultAsInt(const std::string& option) """
Get the option value as an int

Returns -1 if option not specified on command line

:param option: The name of the option
:type option: str
:return: The option value, or -1
:rtype: int
"""

%feature("docstring") RobotRaconteur::CommandLineConfigParser::GetOptionOrDefaultAsInt(const std::string& option, int32_t default_value) """
Get the option value as an int

Returns default_value if option not specified on command line

:param option: The name of the option
:type option: str
:param default_value: The default option value
:type default_value: int
:return: The option value, or default_value if not specified on command line
:rtype: int
"""

%feature("docstring") RobotRaconteur::TimeSpec """
TimeSpec(seconds=0,nanoseconds=0)

Represents. a point in time. Used by \"wire\" members to
timestamp packets

Time is always in UTC

Time is relative to the UNIX epoch \"1970-01-01T00:00:00Z\"

:param seconds: seconds from epoch
:type seconds: int
:param nanoseconds: nanoseconds from epoch
:type nanoseconds: int
"""

%feature("docstring") RobotRaconteur::TimeSpec::seconds """
Seconds since epoch
"""

%feature("docstring") RobotRaconteur::TimeSpec::nanoseconds """
Nanoseconds from epoch. Normalized to be between 0 and 1e9-1
"""

%feature("docstring") RobotRaconteur::TimeSpec::operator == (const TimeSpec &t2) """equality comparison"""
%feature("docstring") RobotRaconteur::TimeSpec::operator != (const TimeSpec &t2) """inequality comparison"""
%feature("docstring") RobotRaconteur::TimeSpec::operator - (const TimeSpec &t2) """subtraction operator"""
%feature("docstring") RobotRaconteur::TimeSpec::operator + (const TimeSpec &t2) """addition operator"""
%feature("docstring") RobotRaconteur::TimeSpec::operator > (const TimeSpec &t2) """greater-than comparison"""
%feature("docstring") RobotRaconteur::TimeSpec::operator >= (const TimeSpec &t2) """greater-than-or-equal comparison"""
%feature("docstring") RobotRaconteur::TimeSpec::operator < (const TimeSpec &t2) """less-then comparison"""
%feature("docstring") RobotRaconteur::TimeSpec::operator <= (const TimeSpec &t2) """less-than-or-equal comparison"""

%feature("docstring") RobotRaconteur::TimeSpec::cleanup_nanosecs() """normalize nanoseconds to be within 0 and 1e9-1"""


%feature("docstring") RobotRaconteur::HardwareTransport """
Transport for USB, Bluetooth, and PCIe hardware devices

**WARNING: THE HARDWARE TRANSPORT IS EXPERIMENTAL!**

The HardwareTransport is disabled by default by the node setup classes.
Use ``--robotraconteur-hardware-enable=true`` option to enable.

It is recommended that ClientNodeSetup, ServerNodeSetup, or SecureServerNodeSetup
be used to construct this class.

See \\ref robotraconteur_url for more information on URLs.

Contact Wason Technology, LLC for more information on the hardware
transport.

The use of RobotRaconteurNodeSetup and subclasses is recommended to construct
transports.

The transport must be registered with the node using
RobotRaconteurNode.RegisterTransport() after construction if node
setup is not used.

:param node: (optional) The node that will use the transport. Default is the singleton node
:type node: RobotRaconteur.RobotRaconteurNode
"""

%feature("docstring") RobotRaconteur::HardwareTransport::Close() """
Close the transport. Done automatically by node shutdown.
"""

%feature("docstring") RobotRaconteur::IntraTransport """
Transport for intra-process communication

It is recommended that ClientNodeSetup, ServerNodeSetup, or SecureServerNodeSetup
be used to construct this class.

See \\ref robotraconteur_url for more information on URLs.

The IntraTransport implements transport connections between nodes running
within the same process. This is often true for simulation environments, where
there may be multiple simulated devices running within the simulation. The
IntraTransport uses a singleton to keep track of the different nodes running
in the same process, and to form connections. The singleton also implements
discovery updates.

The use of RobotRaconteurNodeSetup and subclasses is recommended to construct
transports.

The transport must be registered with the node using
RobotRaconteurNode.RegisterTransport() after construction if node
setup is not used.

:param node: (optional) The node that will use the transport. Default is the singleton node
:type node: RobotRaconteur.RobotRaconteurNode
"""

%feature("docstring") RobotRaconteur::IntraTransport::Close() """
Close the transport. Done automatically by node shutdown.
"""

%feature("docstring") RobotRaconteur::IntraTransport::StartServer() """Start the server to listen for incoming client connections"""
%feature("docstring") RobotRaconteur::IntraTransport::StartClient() """Start the transport as a client"""


%feature("docstring") RobotRaconteur::LocalTransport """
Transport for communication between processes using UNIX domain sockets

It is recommended that ClientNodeSetup, ServerNodeSetup, or SecureServerNodeSetup
be used to construct this class.

See \\ref robotraconteur_url for more information on URLs.

The LocalTransport implements transport connections between processes running on the
same host operating system using UNIX domain sockets. UNIX domain sockets are similar
to standard networking sockets, but are used when both peers are on the same machine
instead of connected through a network. This provides faster operation and greater
security, since the kernel simply passes data between the processes. UNIX domain
sockets work using Information Node (inode) files, which are special files on
the standard filesystem. Servers \"listen\" on a specified inode, and clients
use the inode as the address to connect. The LocalTransport uses UNIX sockets
in `SOCK_STREAM` mode. This provides a reliable stream transport connection similar
to TCP, but with significantly improved performance due the lower overhead.

UNIX domain sockets were added to Windows 10 with the 1803 update. Robot Raconteur
switch to UNIX domain sockets for the LocalTransport on Windows in version 0.9.2.
Previous versions used Named Pipes, but these were inferior to UNIX sockets. The
LocalTransport will not function on versions of Windows prior to Windows 10 1803 update
due to the lack of support for UNIX sockets. A warning will be issued to the log if
the transport is not available, and all connection attempts will fail. All other
transports will continue to operate normally.

The LocalTransport stores inode and node information files in the filesystem at various
operator system dependent locations. See the Robot Raconteur Standards documents
for details on where these files are stored.

Discovery is implemented using file watchers. The file watchens must be activated
using the node setup flags, or by calling EnableNodeDiscoveryListening().
After being initialized the file watchers operate automatically.

The LocalTransport can be used to dynamically assign NodeIDs to nodes based on a NodeName.
StartServerAsNodeName() and StartClientAsNodeName() take a NodeName that will identify the
node to clients, and manage a system-local NodeID corresponding to that NodeName. The
generated NodeIDs are stored on the local filesystem. If LocalTransport finds a corresponding
NodeID on the filesystem, it will load and use that NodeID. If it does not, a new random NodeID
is automatically generated.

The server can be started in \"public\" or \"private\" mode. Private servers store their inode and
information in a location only the account owner can access, while \"public\" servers are
placed in a location that all users with the appropriate permissions can access. By default,
public LocalTransport servers are assigned to the \"robotraconteur\" group. Clients that belong to the
\"robotraconteur\" group will be able to connect to these public servers.

The use of RobotRaconteurNodeSetup and subclasses is recommended to construct
transports.

The transport must be registered with the node using
RobotRaconteurNode.RegisterTransport() after construction if node
setup is not used.

:param node: (optional) The node that will use the transport. Default is the singleton node
:type node: RobotRaconteur.RobotRaconteurNode
"""

%feature("docstring") RobotRaconteur::LocalTransport::Close() """
Close the transport. Done automatically by node shutdown.
"""

%feature("docstring") RobotRaconteur::LocalTransport::IsLocalTransportSupported() """
Check if the LocalTransport is supported on the current
operating system.

Windows versions before Windows 10 1803 do not support the LocalTransport
due to lack of UNIX sockets. All other transports will continue to operate
normally.

All versions of Linux and Mac OSX support the LocalTransport

LocalTransport on Android and iOS is not officially supported

:return: True LocalTransport is supported, otherwise False
:rtype: bool
"""

%feature("docstring") RobotRaconteur::LocalTransport::StartClientAsNodeName(const std::string& name) """
Initialize the LocalTransport by assigning a NodeID based on NodeName

Assigns the specified name to be the NodeName of the node, and manages
a corresponding NodeID. See LocalTransport for more information.

Throws NodeNameAlreadyInUse if another node is using name

:param name: The node name
:type name: str
"""
%feature("docstring") RobotRaconteur::LocalTransport::StartServerAsNodeName(const std::string& name) """
StartServerAsNodeName(name, public_ = False)

Start the server using the specified NodeName and assigns a NodeID

The LocalTransport will listen on a UNIX domain socket for incoming clients,
using information files and inodes on the local filesystem. Clients
can locate the node using the NodeID and/or NodeName. The NodeName is assigned
to the node, and the transport manages a corresponding NodeID. See
LocalTransport for more information.

Throws NodeNameAlreadyInUse if another node is using name

Throws NodeIDAlreadyInUse if another node is using the managed
NodeID

:param name: The NodeName
:type name: str
:param public_: If True, other users can access the server. If False, only
  the account owner can access the server.
:type public_: bool
"""
%feature("docstring") RobotRaconteur::LocalTransport::StartServerAsNodeID(const NodeID& nodeid) """
StartServerAsNodeId(name, public_ = False)

The LocalTransport will listen on a UNIX domain socket for incoming clients,
using information files and inodes on the local filesystem. This function
leaves the NodeName blank, so clients must use NodeID to identify the node.

Throws NodeIDAlreadyInUse if another node is using nodeid

:param nodeid: The NodeID
:type nodeid: RobotRaconteur.NodeID
:param public_: If True, other users can access the server. If False, only
 the account owner can access the server.
:type public_: bool
"""

%feature("docstring") RobotRaconteur::TcpTransport """
Transport for Transport Control Protocol Internet Protocol (TCP/IP) networks

It is recommended that ClientNodeSetup, ServerNodeSetup, or SecureServerNodeSetup
be used to construct this class.

See \\ref robotraconteur_url for more information on URLs.

The TcpTransport implements transport connections over TCP/IP networks. TCP/IP is the
most common protocol used for Internet and Local Area Network (LAN) communication, including
Ethernet and WiFi connections. The Transport Control Protocol (TCP) is a reliable stream
protocol that establishes connections between devices using IP address and port pairs.
Each adapter has an assigned address, and applications create connections on different ports.
TcpTransport listens to the port specified in StartServer(), and the client uses
a URL containing the IP address and port of the listening transport. The TcpTransport
uses the established connection to pass messages between nodes.

The IP protocol is available in two major versions, IPv4 and IPv6. The most common
is IPv4, and its 32 bit address is typically written as four numbers,
ie 172.17.12.174. IPv4 has a number of critical limitations, the greatest being
its 2^32 address limit (approximately 4 billion). This is a problem when there are
tens of billions of internet connected devices already present. IPv6 introduces a 128
bit address space, which allows for approximately 3.4x10^38 possible addresses. The major
advantage for Robot Raconteur is the introduction of \"link-local\" addresses. These addresses
begin with \"FE80::\" and finish with an \"EUI-64\" address, which is tied to the MAC address
of the adaptor. IPv4 addresses need to be assigned to devices locally, and have a tendency
to change. IPv6 addresses are permanently assigned to the adapter itself, meaning that
network configuration for LAN communication is essentially automatic. Robot Raconteur
will prefer IPv6 connections when possible for this reason.

The TcpTransport is capable of using \"raw\" streams that implement the Robot Raconteur
message protocols, or to use HTTP WebSockets. HTTP WebSockets allow Robot Raconteur
to communicate seamlessly with browsers and HTTP servers without requiring
additional plugins. WebSockets provide additional security using \"origins\". See
AddWebSocketAllowedOrigin() for more information.

The TcpTransport supports TLS encryption using certificates. See \\ref tls_security for
more information on TLS. The TcpTransport supports four modes of TLS encryption:

======= ============================================ ===========
Scheme  Description                                  Direction
======= ============================================ ===========
rrs+tcp \"Raw\" protocol with TLS                      Both
rr+wss  Websocket over HTTPS                         Client Only
rrs+ws  Websocket with RobotRaconteur TLS over HTTP  Both
rrs+wss Websocket with RobotRaconteur TLS over HTTPS Client Only
======= ============================================ ===========

The different combinations of TLS and HTTPS for websockets are used for different scenarios.
Robot Raconteur Core can initiate HTTPS connections, but cannot accept them. Accepting
HTTPS connections requires a certificate issued by an authority like GoDaddy or Digicert,
and is typically used with an HTTP server running RobotRaconteurWeb.

TLS certificates for Robot Raconteur nodes are issued by Wason Technology, LLC using
a root certificate that is \"burned in\" to Robot Raconteur Core. All devices running
Robot Raconteur will support this certificate chain.

Discovery for the TcpTransport is accomplished using User Defined Protocol (UDP) multicast
and/or broadcast packets. Broadcast packets are sent to all connected devices, while
multicast is sent to devices that have registered to receive them. Unlike TCP, the packets
sent to broadcast or multicast are sent to the entire network. This allows for devices
to find each other on the network.

For IPv4, the broadcast address 255.255.255.255 on port 48653
is used for discovery. By default, IPv4 is disabled in favor of IPv6. IPv6 uses the multicast
following multicast addresses:

========== ========== ===== ========
Address    Scope      Port  Default?
========== ========== ===== ========
FF01::BA86 Node-Local 48653 Disabled
FF02::BA86 Link-Local 48653 Enabled
FF05::BA86 Site-Local 48653 Disabled
========== ========== ===== ========

By default, discovery will only occur on the link-local IPv6 scope. This will
find nodes on the local subnet, but will not attempt to pass through any routers.

The use of RobotRaconteurNodeSetup and subclasses is recommended to construct
transports.

The transport must be registered with the node using
RobotRaconteurNode.RegisterTransport() after construction if node
setup is not used.

:param node: (optional) The node that will use the transport. Default is the singleton node
:type node: RobotRaconteur.RobotRaconteurNode
"""

%feature("docstring") RobotRaconteur::TcpTransport::Close() """
Close the transport. Done automatically by node shutdown.
"""

%feature("docstring") RobotRaconteur::TcpTransport::EnableNodeDiscoveryListening(uint32_t flags=(IPNodeDiscoveryFlags_LINK_LOCAL)) """
Enable node discovery listening

By default enables listining on IPv6 link-local scope

See IPNodeDiscoveryFlags constants

:param flags: The flags specifying the scope
:type flags: int
"""

%feature("docstring") RobotRaconteur::TcpTransport::DisableNodeDiscoveryListening() """
Disable node discovery listening
"""

%feature("docstring") RobotRaconteur::TcpTransport::EnableNodeAnnounce(uint32_t flags=IPNodeDiscoveryFlags_LINK_LOCAL) """
Enable node discovery announce

By default enables announce on IPv6 link-local scope

See IPNodeDiscoveryFlags constants

:param flags: The flags specifying the scope
:type flags: int
"""
%feature("docstring") RobotRaconteur::TcpTransport::DisableNodeAnnounce() """
Disable node discovery announce
"""

%feature("docstring") RobotRaconteur::TimerEvent """
Timer event structure

Contains information about the state of the timer. Passed to the
callback on invocation.
"""

%feature("docstring") RobotRaconteur::TimerEvent::stopped """
True if timer has been stopped

:rtype: bool
"""

%feature("docstring") RobotRaconteur::TimerEvent::last_expected """
The last expected callback invocation time

:rtype: datetime.datetime
"""

%feature("docstring") RobotRaconteur::TimerEvent::last_real """
The real last callback invocation time

:rtype: datetime.datetime
"""

%feature("docstring") RobotRaconteur::TimerEvent::current_expected """
The current expected invocation time

:rtype: datetime.datetime
"""

%feature("docstring") RobotRaconteur::TimerEvent::current_real """
The current invocation time

:rtype: datetime.datetime
"""

%feature("docstring") RobotRaconteur::Timer """

A timer to invoke a callback

Timers invoke a callback at a specified rate. The timer
can either be one-short, or repeating.

Use RobotRaconteurNode.CreateTimer() to create timers.
"""

%feature("docstring") RobotRaconteur::Timer::Start() """
Start the timer

Must be called after RobotRaconteurNode.CreateTimer()
"""

%feature("docstring") RobotRaconteur::Timer::Stop() """
Stop the timer
"""

%feature("docstring") RobotRaconteur::Timer::TryStop() """
Stop the timer without throwing an exception if the timer is not running
"""

%feature("docstring") RobotRaconteur::Timer::GetPeriod() """
Get the period of the timer in seconds

:rtype: float
"""

%feature("docstring") RobotRaconteur::Timer::SetPeriod(const boost::posix_time::time_duration& period) """
Set the period of the timer in seconds

:param period: Period in seconds
:type period: float
"""

%feature("docstring") RobotRaconteur::Timer::IsRunning() """
Get if the timer is running

:rtype: bool
"""

%feature("docstring") RobotRaconteur::Rate """
Rate to stabilize a loop

Rate is used to stabilize the period of a loop. Use
RobotRaconteur.CreateRate() to create rates.
"""

%feature("docstring") RobotRaconteur::Rate::Sleep() """
Sleep the calling thread until the current loop period expires
"""

%feature("docstring") RobotRaconteur::AutoResetEvent """
Synchronization event for thread synchronization. Resets automatically after
being triggered

Construct using RobotRaconteurNode.CreateAutoResetEvent()
"""

%feature("docstring") RobotRaconteur::AutoResetEvent::Set() """
Set the event, releasing waiting threads
"""

%feature("docstring") RobotRaconteur::AutoResetEvent::Reset() """
Reset the event
"""

%feature("docstring") RobotRaconteur::AutoResetEvent::WaitOne(int32_t timeout) """
WaitOne(timeout=0)

Block the current thread until Set() is called, or timeout
expires

Timeout is based on the RobotRaconteurNode time provider

:param timeout: The timeout in seconds
:type timeout: float
:return: True if event was set, False if not
:rtype: bool
"""


%feature("docstring") RobotRaconteur::NodeID """
NodeID(Union[None,str,numpy.ndarray])

NodeID UUID storage and generation

Robot Raconteur uses NodeID and NodeName to uniquely identify a node.
NodeID is a UUID (Universally Unique ID), while NodeName is a string. The
NodeID is expected to be unique, while the NodeName is set by the user
and may not be unique. The NodeID class represents the UUID NodeID.

A UUID is a 128-bit randomly generated number that is statistically guaranteed
to be unique to a very high probability. NodeID uses the Boost.UUID library
to generate, manage, and store the UUID.

The UUID can be loaded from a string, bytes, or generated randomly at runtime.
It can be converted to a string.

The LocalTransport and ServerNodeSetup classes will automatically assign
a NodeID to a node when the local transport is started with a specified node name.
The generated NodeID is stored on the local system, and is associated with the node name.
It will be loaded when a node is started with the same NodeName.

NodeID with all zeros is considered \"any\" node.
"""

%feature("docstring") RobotRaconteur::NodeID::ToString() """
Convert the NodeID UUID to string with \"B\" format

Convert the UUID string to 8-4-4-4-12 \"B\" format (with brackets)

{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}

:return: The string
:rtype: str
"""

%feature("docstring") RobotRaconteur::NodeID::NewUniqueID() """
Generate a new random NodeID UUID

Returned UUID is statistically guaranteed to be unique

:return: NodeID The newly generated UUID
:rtype: RobotRaconteur.NodeID
"""

%feature("docstring") RobotRaconteur::NodeID::operator == (const NodeID &id2) """
Test if NodeID is equal
"""

%feature("docstring") RobotRaconteur::NodeID::operator != (const NodeID &id2) """
Test if NodeID is not equal
"""

%feature("docstring") RobotRaconteur::NodeID::IsAnyNode() """
Is the NodeID UUID all zeros

The all zero UUID respresents \"any\" node, or an unset NodeID

:return: True The NodeID UUID is all zeros, representing any node, False The NodeID UUID is not all zeros
:rtype: bool
"""

%feature("docstring") RobotRaconteur::NodeID::GetAny() """
Get the \"any\" NodeId

:return: The \"any\" NodeID
:rtype: RobotRaconteur.NodeID
"""

%feature("docstring") RobotRaconteur::NodeID::ToByteArray() """
Convert the NodeID UUID to bytes

:return: The UUID as bytes
:rtype: bytearray
"""

%feature("docstring") RobotRaconteur::NodeID::FromByteArray(const char bytes[16]) """
Returns a new NodeID from bytes

:param bytes: The bytes
:type bytes: bytearray
:return: The new NodeID instance with the specified UUID
:rtype: RobotRaconteur.NodeID
"""

%feature("docstring") RobotRaconteur::ServerContext """
ServerContext()

Context for services registered in a node for use by clients

Services are registered using the RobotRaconteurNode.RegisterService() family of functions.
The ServerContext manages the services, and dispatches requests and packets to the appropriate
service object members. Services may expose more than one object. The root object is specified
when the service is registered. Other objects are specified through ObjRef members. A name
for the service is also specified when the service is registered. This name forms the root
of the service path namespace. Other objects in the service have a unique service path
based on the ObjRef used to access the object.

Services may handle multiple connected clients concurrently. Each client is assigned
a ServerEndpoint. The ServerEndpoint is unique to the client connection,
and interacts with ServerContext to complete requests and dispatch packets. When
the service needs to address a specific client, the ServerEndpoint or the
ServerEndpoint.GetCurrentEndpoint() is used. (ServerEndpoint.GetCurrentEndpoint() returns the
int local client ID.)

Service attributes are a varvalue{string} types dictionary that is made available to
clients during service discovery. These attributes are used to help clients determine
which service should be selected for use. Because the attributes are passed to the clients
as part of the discovery process, they should be as concise as possible, and should
not use user defined types. Use ServerContext.SetAttributes() to set the service attributes
after registering the service.

Security for the service is specified using a ServiceSecurityPolicy instance. This policy
is specified by passing as a parameter to RobotRaconteurNode.RegisterService(), or passing
the policy to the constructor.

ServerContext implements authentication and object locking.
Server side functions are exposed by ServerContext for authentication, object locking,
and client management.

Clients using dynamic typing such as Python and MATLAB will only pull service types
explicitly imported by the root object and objref objects that have been requested. Clients
will not pull service types of user-defined named types if that service type is not explicitly
imported. This can be problematic if new `struct`, `pod`, and/or `namedarray` types are introduced
that do not have corresponding objects. Extra imports is used to specify extra service definitions
the client should pull. Use ServerContext.AddExtraImport(), ServerContext.RemoveExtraImport(),
and ServerContext.GetExtraImports() to manage the extra imports passed to the client.
"""

%feature("docstring") RobotRaconteur::ServerContext::GetCurrentServicePath() """
Get the current object service path

Returns the service path of the current object during a request or
packet event.
This is a thread-specific value and only
valid during the initial request or packet event invocation.

:return: The current object service path
:rtype: str
"""

%feature("docstring") RobotRaconteur::ServerContext::GetCurrentServerContext() """
Get the current ServerContext

Returns the current server context during a request or packet event.
This is a thread-specific value and only
valid during the initial request or packet event invocation.

:return: The current server context
:rtype: RobotRaconteur.ServerContext
"""

%feature("docstring") RobotRaconteur::ServerContext::KickUser(const std::string& username) """
Kicks a user with the specified username

User must be authenticated.

:param username: The username to kick
:type username: str
"""

%feature("docstring") RobotRaconteur::ServerContext::RequestObjectLock(const std::string& servicepath, const std::string& username) """
Request an object lock on servicepath for user username

This function handles incoming client requests, but may also be used
by the service directly

:param servicepath: The service path to lock
:type servicepath: str
:param username: The name of the user owning the lock
:type username: str
"""

%feature("docstring") RobotRaconteur::ServerContext::RequestClientObjectLock(const std::string& servicepath, const std::string& username, uint32_t endpoint) """
Request a client lock on servicepath for a specific client connection

This function handles incoming client requests, but may also be used
by the service directly. Client object locks lock for a specific client connection,
while client locks lock for a specific user. The specific client connection is
specified using endpoint.

:param servicepath: The service path to lock
:type servicepath: str
:param username: The name of the user owning the lock
:type username: str
:param endpoint: The client endpoint ID of the client owning the lock
:type int:
"""

%feature("docstring") RobotRaconteur::ServerContext::ReleaseObjectLock(const std::string& servicepath, const std::string& username, bool override_) """
Release a client lock on servicepath

This function handles incoming client requests, but may also be used
by the service directly. Client locks can be released by the user that
created them if override_ is false, or by any user if override_ is true.

The override_ parameter is set to true for client requests if the client has
the \"objectlockoverride\" permission.

:param servicepath: The service path to release lock
:type str:
:param username: The username requesting the lock release
:type username:
:param override_: If False, only the creating username can release the lock. If True,
 any username can release the lock
:type override_: bool
"""

%feature("docstring") RobotRaconteur::ServerContext::GetObjectLockUsername(const std::string& servicepath) """
Get the name of the user that has locked the specified service path

:param servicepath: The service path
:type servicepath: str
:return: The user owning the lock, or empty servicepath is not locked
:rtype: str
"""

%feature("docstring") RobotRaconteur::ServerContext::GetNode() """
Get the Node

:rtype: RobotRaconteur.RobotRaconteurNode
"""

%feature("docstring") RobotRaconteur::ServerContext::GetExtraImports() """
Get the current list of extra service definition imports

:return: The list of extra imports
:rtype: List[str]
"""

%feature("docstring") RobotRaconteur::ServerContext::AddExtraImport(const std::string& import_) """
Add an extra service definition import

Clients using dynamic typing will not automatically pull service definitions unless
imported by the root object or an objref. If new \"struct\", \"po\", or \"namedarray\" types
are introduced in a new service definition type without a corresponding object, an error will
occur. Use AddExtraImport() to add the name of the new service definition to add it to the
list of service definitions the client will pull.

Service definition must have been registered using RobotRaconteurNode::RegisterServiceType()

:param import_: The name of the service definition
:type import_: str
"""

%feature("docstring") RobotRaconteur::ServerContext::RemoveExtraImport(const std::string& import_) """
Removes an extra import service definition registered with AddExtraImport()

See AddExtraImport()

:param import_: The name of the service definition
:type import_: str
:return: True The service definition was removed, False The service definition was not found in the extra imports vector
:rtype: bool
"""

%feature("docstring") RobotRaconteur::ServerContext::GetCandidateConnectionURLs() """
Get the candidate connection URLs for this service. The candidate connection URLs are
the URLs that can be used to connect to the service. The correct URL to use depends on the
transport being used to connect to the service, and the network configuration of the client and service.

:return: The candidate connection URLs
:rtype: List[str]
"""

%feature("docstring") RobotRaconteur::ServerContext::PrintCandidateConnectionURLs() """
Print the candidate connection URLs for this service. See GetCandidateConnectionURLs() for more information.

"""

%feature("docstring") RobotRaconteur::ServerContext::LogCandidateConnectionURLs(RobotRaconteur_LogLevel level = RobotRaconteur_LogLevel_Info) """
Log the candidate connection URLs for this service. See GetCandidateConnectionURLs() for more information.

:param level: The log level to use. Defaults to RobotRaconteur.LogLevel_Info
:type level: RobotRaconteur.LogLevel
"""

%feature("docstring") RobotRaconteur::ServerEndpoint """
ServerEndpoint()

Server endpoint representing a client connection

Robot Raconteur creates endpoint pairs between a client and service. For clients, this endpoint
is a ClientContext. For services, the endpoint becomes a ServerEndpoint. ServerEndpoints are used
to address a specific client connected to a service, since services may have multiple clients
connected concurrently. ServerEndpoints also provide client authentication information.

Use ServerEndpoint.GetCurrentEndpoint() to retrieve the int32
current endpoint ID. Use ServerEndpoint.GetCurrentAuthenticatedUser() to retrieve
the current user authentication information.
"""

%feature("docstring") RobotRaconteur::ServerEndpoint::GetCurrentEndpoint() """
Returns the current server endpoint

Returns the current server endpoint during a request or packet event.
This is a thread-specific value and only valid during the initial
request or packet event invocation.

Throws InvalidOperationException if not during a request or packet event

:return: The current server endpoint id
:rtype: int
"""

%feature("docstring") RobotRaconteur::ServerEndpoint::GetCurrentAuthenticatedUser() """
Returns the current authenticated user

Users that have been authenticated have a corresponding
AuthenticatedUser object associated with the ServerEndpoint.
GetCurrentAuthenticatedUser() returns the AuthenticatedUser
associated with the current ServerEndpoint during a request
or packet event. This is a thread-specific value and only valid during
the initial request or packet event invocation.

Throws PermissionDeniedException or AuthenticationException
if there is no AuthenticatedUser set in the current thread.

:return: The AuthenticatedUser
:rtype: RobotRaconteur.AuthenticatedUser
"""

%feature("docstring") RobotRaconteur::AuthenticatedUser """
AuthenticatedUser()

Class representing an authenticated user

Use ServerEndpoint.GetCurrentAuthenticatedUser() to retrieve the
authenticated user making a request

See \\ref security for more information.
"""

%feature("docstring") RobotRaconteur::ServiceSecurityPolicy """
Security policy for Robot Raconteur service

The security policy sets an authenticator, and a set of policies. PasswordFileUserAuthenticator is
an example of an authenticator. The valid options for Policies are as follows:

+------------------+-----------------+-----------------+-----------------+
| Policy name      | Possible Values | Default         | Description     |
+==================+=================+=================+=================+
| requirevaliduser | true,false      | false           | Set to \"true\"   |
|                  |                 |                 | to require a    |
|                  |                 |                 | user be         |
|                  |                 |                 | authenticated   |
|                  |                 |                 | before          |
|                  |                 |                 | accessing       |
|                  |                 |                 | service         |
+------------------+-----------------+-----------------+-----------------+
| allowobjectlock  | true,false      | false           | If \"true\" allow |
|                  |                 |                 | users to        |
|                  |                 |                 | request object  |
|                  |                 |                 | locks.          |
|                  |                 |                 | r               |
|                  |                 |                 | requirevaliduser |
|                  |                 |                 | most also be    |
|                  |                 |                 | \"true\"          |
+------------------+-----------------+-----------------+-----------------+

The security policy is passed as a parameter to RobotRaconteurNode.RegisterService().

See \\ref security for more information.

:param Authenticator: The user authenticator
:type Authenticator: RobotRaconteur.Authenticator
:param Policies: The security policies
:type Policies: Dict[str,str]
"""

%feature("docstring") RobotRaconteur::UserAuthenticator """
NativeUserAuthenticator()

Base class for user authenticators

Used with ServiceSecurityPolicy to secure services

Override AuthenticateUser to implement different types
of user authenticators.

"""

%feature("docstring") RobotRaconteur::PasswordFileUserAuthenticator """
Simple authenticator using a list of username, password hash, and privileges stored in a file or string

The password user authenticator expects a string containing a list of users,
one per line. Each line contains the username, password as md5 hash, and privileges, separated by white spaces.
An example of authentication string contents:

.. code-block::

   user1 79e262a81dd19d40ae008f74eb59edce objectlock
   user2 309825a0951b3cf1f25e27b61cee8243 objectlock
   superuser1 11e5dfc68422e697563a4253ba360615 objectlock,objectlockoverride


The password is md5 hashed. This hash can be generated using the ``--md5passwordhash`` command in the \"RobotRaconteurGen\" utility.
The privileges are comma separated. Valid privileges are as follows:

================== =====================================================
Privilege Name     Description
================== =====================================================
objectlock         Allow user to lock objects
objectlockoverride Allow user to unlock object locks made by other users
================== =====================================================

:param data: The file text
:type data: str
"""

%feature("docstring") RobotRaconteur::RRLogRecord """
Robot Raconteur log record

Records information about a logging event

See \\ref logging for more information.
"""

%feature("docstring") RobotRaconteur::RRLogRecord::Level """(int) The log level """
%feature("docstring") RobotRaconteur::RRLogRecord::Component """(int) The source component"""
%feature("docstring") RobotRaconteur::RRLogRecord::ComponentName """(str) The source component name"""
%feature("docstring") RobotRaconteur::RRLogRecord::ComponentObjectID """(str) The source component object ID"""
%feature("docstring") RobotRaconteur::RRLogRecord::Endpoint """(int) The source endpoint"""
%feature("docstring") RobotRaconteur::RRLogRecord::ServicePath """(str) The service path of the source object"""
%feature("docstring") RobotRaconteur::RRLogRecord::Member """(str) The source member"""
%feature("docstring") RobotRaconteur::RRLogRecord::Message """(str) Human readable log message"""
%feature("docstring") RobotRaconteur::RRLogRecord::Time """(datetime.datetime) Time of logging event"""
%feature("docstring") RobotRaconteur::RRLogRecord::SourceFile """(str) The sourcecode filename"""
%feature("docstring") RobotRaconteur::RRLogRecord::SourceLine """(int) The line within the sourcecode file"""
%feature("docstring") RobotRaconteur::RRLogRecord::ThreadID """(str) The source thread"""
%feature("docstring") RobotRaconteur::RRLogRecord::FiberID """(str) The source coroutine fiber"""
%feature("docstring") RobotRaconteur::RRLogRecord::Node """(str) The source node"""

%feature("docstring") RobotRaconteur::LogRecordHandler """
LogRecordHandler()

Base class of log record handler

By default, RobotRaconteurNode will print log records to ``stderr``. Use
RobotRaconteur.RobotRaconteurNode.SetLogRecordHandler() to specify a LogRecordHandler
to accept log records instead of printing them to the terminal.

See \\ref logging for more information.
"""

%feature("docstring") RobotRaconteur::FileLogRecordHandler """
Log record handler that saves to a file

See \\ref logging for more information.
"""

%feature("docstring") RobotRaconteur::FileLogRecordHandler::OpenFile(const std::string& filename, bool append = true) """
Open a file to store log records

:param filename: The filename
:type filename: str
:param append: If True, log messages are appended. If False, the file is truncated when opened
:type append: bool
"""

%feature("docstring") RobotRaconteur::BroadcastDownsampler """
Downsampler to manage rate of packets sent to client

PipeBroadcaster and WireBroadcaster by default sends packets to all clients when
a pipe packet is sent or the wire value is changed. The updates typically happen
within a sensor or control loop, with the rate set by the specific device producing
the updates. Some clients may require less frequent data, and may run in to bandwidth
or processing issues if the data is sent at the full update rate. The BroadcastDownsampler
is used to implement broadcaster predicates that will drop packets.
Clients specify how many packets they want dropped between each packet sent. For instance,
a downsample of 0 means that no packets are dropped. A downsample of 1 will drop every other
packet. A downsample of two will drop 2 packets between sending 1 packet, etc. The
downsample level for each client is set using SetClientDownsample(). This should be
made available to the client using a property member.

PipeBroadcaster and WireBroadcaster must be added to the downsampler
using AddPipeBroadcaster() and AddWireBroadcaster(), respectively.
It is recommended that these functions be called within
the RRServiceObjectInit(context,servicepath) function that is called
by the node when a service object is initialized.

BeginStep() and EndStep() must be called for each iteration of the
broadcasting loop. Use BroadcastDownsamplerStep for automatic
management in the loop.

See com.robotraconteur.isoch.IsochDevice for the standard use
of downsampling.
"""

%feature("docstring") RobotRaconteur::BroadcastDownsampler::GetClientDownsample(uint32_t ep) """
Get the downsample for the specified client

:param ep: The endpoint ID of the client
:type ep: int
:return: The downsample
:rtype: int
"""

%feature("docstring") RobotRaconteur::BroadcastDownsampler::SetClientDownsample(uint32_t ep, uint32_t downsample) """
Set the downsample for the specified client

:param ep: The endpoint ID of the client
:type ep: int
:param downsample: The desired downsample
:type downsample: int
"""

%feature("docstring") RobotRaconteur::BroadcastDownsampler::BeginStep() """
Begin the update loop step

Use BroadcastDownsamplerStep for automatic stepping
"""

%feature("docstring") RobotRaconteur::BroadcastDownsampler::EndStep() """
End the update loop step

Use BroadcastDownsamplerStep for automatic stepping
"""
%feature("docstring") ServiceSubscriptionFilterAttributeGroupOperation_OR "OR operation"
%feature("docstring") ServiceSubscriptionFilterAttributeGroupOperation_AND "AND operation"
%feature("docstring") ServiceSubscriptionFilterAttributeGroupOperation_NOR "NOR operation. Also used for NOT"
%feature("docstring") ServiceSubscriptionFilterAttributeGroupOperation_NAND "NAND operation"

%feature("docstring") RobotRaconteur::ServiceSubscriptionFilterAttribute """
ServiceSubscriptionFilterAttribute()

Subscription filter attribute for use with ServiceSubscriptionFilter
"""

%feature("docstring") RobotRaconteur::ServiceSubscriptionFilterAttribute::Name """(str) The attribute name. Empty for no name"""
%feature("docstring") RobotRaconteur::ServiceSubscriptionFilterAttribute::Value """(str) The string value for the attribute"""

%feature("docstring") RobotRaconteur::CreateServiceSubscriptionFilterAttributeRegex(const std::string& regex_value) """

Create a ServiceSubscriptionFilterAttribute from a regex string

:param regex_value: The regex string
:type regex_value: str
:return: The ServiceSubscriptionFilterAttribute
:rtype: RobotRaconteur.ServiceSubscriptionFilterAttribute
"""

%feature("docstring") RobotRaconteur::ServiceSubscriptionFilterAttributeGroup """
ServiceSubscriptionFilterAttributeGroup()

Subscription filter attribute group for use with ServiceSubscriptionFilter

Used to combine multiple ServiceSubscriptionFilterAttribute objects for comparison using
AND, OR, NOR, or NAND logic. Other groups can be nested, to allow for complex comparisons.
"""

%feature("docstring") RobotRaconteur::ServiceSubscriptionFilterAttributeGroup::Operation """(RobotRaconteur.ServiceSubscriptionFilterAttributeGroupOperation) The operation to use to combine the attributes"""
%feature("docstring") RobotRaconteur::ServiceSubscriptionFilterAttributeGroup::Attributes """(list) The list of attributes in the group"""
%feature("docstring") RobotRaconteur::ServiceSubscriptionFilterAttributeGroup::Groups """(list) The nested groups in the group"""
%feature("docstring") RobotRaconteur::ServiceSubscriptionFilterAttributeGroup::SplitStringAttribute """(bool) True if string attributes will be split into a list with delimiter (default ',')"""
%feature("docstring") RobotRaconteur::ServiceSubscriptionFilterAttributeGroup::SplitStringDelimiter """(str) The delimiter to use for splitting string attributes (default ',')"""

%feature("docstring") RobotRaconteur::BrowserWebSocketTransport """
   Transport for creating client connections inside a web browser using WebSockets

   Robot Raconteur can be compiled to run inside a web browser using Emscripten and WebAssembly (WASM).
   While inside a web browser, the only connection method currently available to connection to
   a Robot Raconteur service is using WebSockets. The BrowserWebSocketTransport class implements
   the WebSocket transport for the web browser. Currently only the client side is implemented.

   See \\ref robotraconteur_url for more information on URLs.

   Currently the url connections schemes ``rr+ws``, ``rr+wss`` and ``rr+tcp`` are supported.
   ``rr+tcp`` are treated as ``rr+ws`` connections.

   The BrowserWebSocketTransport is automatically registered when the ``RobotRaconteur.Client``
   module is used. If the ``RobotRaconteur.Client`` module is not used, the
   BrowserWebSocketTransport must be manually registered with the node using
   RobotRaconteurNode.RegisterTransport(). NodeSetup is not currently
   available in the web browser.

   Note that for services to accept a WebSocket connection, the service must
   have the WebSocket \"origin\" configured correctly. The origin is the base
   URL of the web page that is hosting the web page that is connecting to the
   service. For example, if the web page is hosted at ``https://example.com/application/index.html``,
   the origin would be ``https://example.com``. For localhost, the origin is ``http://localhost:8080``,
   where 8080 is the port the web page is hosted on. The origin can be configured
   using the function TcpTransport.AddWebSocketAllowedOrigin(), or using
   the ``--robotraconteur-tcp-ws-add-origin`` command line option if a node setup class is used.
   If a local file is used to host the web page, the origin is ``null`` and no origin
   checking is performed.

   See TcpTransport.AddWebSocketAllowedOrigin() for more information on configuring
   the WebSocket origin and the default origins that are automatically configured.

   :param node: (optional) The node that will use the transport. Default is the singleton node
   :type node: RobotRaconteur.RobotRaconteurNode
"""

%feature("docstring") RobotRaconteur::ServicePathSegment """
Service path segment containing a name and an optional index
"""

%feature("docstring") RobotRaconteur::ServicePathSegment::name """The name of the segment"""

%feature("docstring") RobotRaconteur::ServicePathSegment::index """The index of the segment"""

%feature("docstring") RobotRaconteur::ServicePathSegment::ServicePathSegment() """
Construct a new ServicePathSegment
"""

%feature("docstring") RobotRaconteur::ServicePathSegment::ServicePathSegment(const std::string& name) """
Construct a new ServicePathSegment with a name

:param name: The name of the segment
:type name: str
"""

%feature("docstring") RobotRaconteur::ServicePathSegment::ServicePathSegment(const std::string& name, const std::string& index) """
Construct a new ServicePathSegment with a name and an index

:param name: The name of the segment
:type name: str
:param index: The index of the segment
:type index: str
"""

%feature("docstring") RobotRaconteur::EncodeServicePathIndex(const std::string& index) """
Encode a service path index for use in a Robot Raconteur service path

:param index: The index to encode
:type index: str
:return: The encoded index
:rtype: str
"""

%feature("docstring") RobotRaconteur::DecodeServicePathIndex(const std::string& index) """
Decode a service path index from a Robot Raconteur service path

:param index: The index to decode
:type index: str
:return: The decoded index
:rtype: str
"""

%feature("docstring") RobotRaconteur::ParseServicePath(const std::string& path) """
Split a service path into segments

:param path: The path to split
:type path: str
:return: The segments of the path
:rtype: List[RobotRaconteur.ServicePathSegment]
"""

%feature("docstring") RobotRaconteur::BuildServicePath(const std::vector<RobotRaconteur::ServicePathSegment>& segments) """
Join service path segments into a path

:param segments: The segments to join
:type segments: List[RobotRaconteur.ServicePathSegment]
:return: The joined path
:rtype: str
"""