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
|
2013-04-14 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKMethod.h
* Source/DKMethod.m
* Source/DKPropertyMethod.m:
A few warning fixes.
* configure.ac:
Test for -Wno-deprecated-declarations
* configure:
Regenerate.
2013-04-13 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKNotificationCenter.m
* Source/DKObjectPathNode.m
* Source/DKPortNameServer.m
* Source/DKProxy.m
* Tests/TestDKArgument.m:
Backport bugfixes from r33826.
* Source/DKProperty.m
* Source/DKPropertyMethod.m:
Backport bugfixes from r33885.
* Source/DKArgument.m: Backport bugfixes from r33943.
* Source/DKNotificationCenter.m
* SOurce/DKProxy.m:
Backport r33946 (fixes a memory leak).
Backport bugfixes from trunk.
2013-04-12 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKArgument.m
* Source/DKNotificationCenter.m:
Backport r35592: Deal with clang warning about casting SEL to
uintptr_t.
* Documentation/announce.0.1.1.texi: Draft release announcement.
* GNustep.preamble: Bump version.
2013-04-12 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKEndpoint.m: Backport r35789: Replace incorrect
NSDebugMLog with NSDebugFLog. Reported by Philippe Roussell.
2011-12-20 Niels Grewe <niels.grewe@halbordnung.de>
* configure.ac: When selecting an Objective-C compiler, prefer the
value of $CC if $OBJC is not set. Also, if the user does not specify
a specific compiler and clang is installed, default to using clang.
* config.make.in: Update for new compiler selection.
* configure: Regenerate.
2011-05-17 Andreas Schik <andreas.schick@web.de>
* Source/DKNotificationCenter.m: Fix off-by-one error when
computing the interface from a notification name.
2011-04-29 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKNotificationCenter.m: Fix incorrect return statement.
2011-04-15 Niels Grewe <niels.grewe@halbordnung.de>
* Tests/TestDKArgument.m: Fix word-size issues.
* Documentation/install.texi: Bump required gnustep-base
version to 1.22.0.
* INSTALL: Regenerate.
2011-04-11 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKEndpointManager.m: Use pseudo interfaces instead of
@class declarations for private classes that need to be
initialized before starting the worker thread. This makes clang
happy.
* Source/DKArgument.m: Remove extraneous parantheses.
* Source/DKInterface.m: Fix a bug that caused property
getters/setters to be registered twice.
Clang compatibility and bugfixes by Sebastian Reitenbach.
2011-03-13 Niels Grewe <niels.grewe@halbordnung.de>
* Source/GNUmakefile: Remove redundant fixup for atomic
operations linkage errors on 32bit intel platforms.
2011-02-28 Niels Grewe <niels.grewe@halbordnung.de>
* configure.ac: Import a lot of autoconf stuff to detect whether
we need to link libgcc for atomic operations.
* config.make.in: Add flags for atomic operations.
* aclocal.m4
* configure:
Regenerate
* m4/*
* config.guess
* config.sub
* ltmain.sh
* libtool
* install-sh:
Add libtool/autconf related file.
Fixes to link libgcc for atomic operations when needed.
2011-02-28 Niels Grewe <niels.grewe@halbordnung.de>
* Source/GNUmakefile: Attempt to fix linkage errors for 32bit
intel platforms.
2011-02-27 Niels Grewe <niels.grewe@halbordnung.de>
* Documentation/DBusKit.gsdoc: Documentation improvement.
* Headers/DKProxy.h
* Source/DKProxy.m:
Document bus-state notifications. Turn strings for notification
names into globals.
* Source/DKEndpointManager.m: Move thread starting code to the
correct place.
2011-02-22 Niels Grewe <niels.grewe@halbordnung.de>
* Documentation/announce.0.1.texi: Add draft release
announcement for 0.1.
* Documentation/GNUmakefile: Add rules for ANNOUNCE
* GNUmakefile.preamble
* Source/GNUmakefile:
Move version number to the top level.
2011-02-22 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKProxy.m: Fixed bug with method cache generation in
the single-threaded case.
2011-02-22 Niels Grewe <niels.grewe@halbordnung.de>
* GNUmakefile: Add packaging metadata.
2011-02-22 Niels Grewe <niels.grewe@halbordnung.de>
* Documentation/UsingDBus.texi: Document failure recovery
procedures.
2011-02-22 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKEndpoint.m: Fix over-release bug where we didn't take
into account the fact that libdbus also takes ownership for the
context objects.
* Source/DKProxy.m: Let DKDBus objects trigger the state sync
between DKNotificationCenter and the D-Bus connection.
* Source/DKNotificationCenter.m: Correctly replace the endpoint
after reconnect. Implement state sync with the new D-Bus
connection.
Finish implementing reconnection logic for bus objects and
notification centers.
2011-02-21 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKEndpointManager.m: Fix the method that fills the ring
buffer to actually do the expected thing in single-threaded mode.
Previously, it would directly execute the request even if it was
requested not to wait, causing unexpected reentrancy for some
things. Also factor out the code that implements fallback to
NSInvocation into a separate method.
* Source/DKPort.m: Use libdbus macro for interface name.
* Source/DKEndpoint.m: Actually remove DKWatchers from the
runloop when thy are deallocated.
* Source/DKProxy.m: Refactor -_disconnected: a bit. Override
-methodSignatureForSelector: for DKDBus in order to play nice
with notification center that does need to call private methods
on DKDBus.
* Source/DKNotificationCenter.m: Fix signal handling to take
into account situations where no sender object is present.
org.freedesktop.DBus.Local.Disconnected is an example.
* Tests/TestDKProxy.m: Be more generous when waiting for threads
to terminate.
Bugfixes to get connection recovery to work. It will now work
exactly once because the notification center does not yet update
the new D-Bus connection to match its local state.
2011-02-19 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKProxy+Private.h: Expose methods necessary for
connection recovery to sibling classes.
* Source/DKProxy.m: Make DKDBus reconstruct the port when
recovery was successful.
* Source/DKEndpointManager.h: Remove faulted connection table.
* Source/DKEndpointManager.m: Implement endpoint recovery. Remove
faulted connection table.
Implement recovery of D-Bus connections for the bus objects.
2011-02-19 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKArgument.m: Fix a bug where the field index for
structure was not properly incremented in deserialization.
2011-02-19 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKArgument.m: Fix a bug where deserializing an empty
array would erroneously trigger an assertion failure.
2011-02-19 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKArgument.m: Be more verbose when failing assertions.
2011-02-18 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKEndpointManager.h
* Source/DKEndpointManager.m:
Update prototype of method for scheduling endpoint recovery.
Recovery will not yet be attempted, though.
* Headers/DKProxy.h: Add ivar to flag disconnected bus objects.
* Source/DKProxy.m: Start implementing disconnection handling
for the bus objects. Also untangle DKDBus and
DKNotificationCenter by overriding a few methods in DKDBus not
to call into the notification center and by using a special
DKPort subclass.
* Source/DKProxy+Private.h: Expose a few more private methods to
the sibling classes.
* Source/DKPort.m: Invalidate ports on disconnection from the
bus. Factor out notification registration into a separate
method.
* Source/DKInterface.h
* Source/DKInterface.m:
Support changes to allow postponing signal registration for bus
objects.
* Source/DKNonAutoInvalidatingPort.h
* Source/DKNonAutoInvalidatingPort.m:
Add subclass that does not rely on a working notification
center. Only used by DKDBus instance.
* Source/DKNotificationCenter.m: Untangle dependencies between
DKDBus and DKNotificationCenter. DKDBus does no longer require
the notification center, hence DKNotificationCenter is now
responsible for registering signal definitions from the bus
objects and making them watch for the disconnection signal.
* Source/GNUmakefile: Add new module.
Start working on recovery of the bus objects after disconnection
from the bus. Also sanitize the dependencies of
DKNotificationCenter and DKDBus.
2011-02-16 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKEndpointManager.m
* Source/DKPortNameServer.m:
Add -dealloc methods to the singletons for completeness.
* Source/DKPortNameServer.m: Actually initialize the (yet
unused) tables.
2011-02-16 Niels Grewe <niels.grewe@halbordnung.de>
* configure.ac: Fix sel_getType_np check.
* configure: Regenerate.
2011-02-16 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKPortNameServer.m
* Headers/DKPortNameServer.h:
Add stub implementation of a port name server.
2011-02-16 Niels Grewe <niels.grewe@halbordnung.de>
Add missing files.
2011-02-15 Niels Grewe <niels.grewe@halbordnung.de>
Merge DBusKit-ThreadRewrite branch. DBusKit now offloads all
interactions with libdbus to a separate thread and uses
DKEndpointManager as a gateway to do so. The new behaviour is
disabled by default and can be enabled by calling [DKPort
enableWorkerThread].
This also contains various improvements and fixes bugs that
were exposed by the new behaviour.
2011-01-10 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKArgument.m: Be explicit about the buffer type for
object path arguments when generating standins.
2011-01-10 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKArgument.h
* Source/DKArgument.m:
Add specialised deserialisation method for proxy-standins.
* Source/DKObjectPathNode.h
* Source/DKObjectPathNode.m:
Add DKProxyStandin class to be used by the notification
center while generating notifications.
* Source/DKSignal.m: Deserialise DBUS_OBJECT_PATH as a standin,
not as a proxy.
* Source/DKEndpoint.m: Simplify -addTimeout: callback method.
* Source/DKProxy.m: Generate method cache for the bus objects on
init time. (The methods will be used internally anyways.)
* Source/DKNotificationCenter.m: Avoid reentrancy when handling
signals by a) making sure the bus objects are already available
when initialising the notification center and b) using a
DKProxyStandin when checking whether the signal should be
handled and scheduling delivery of the notification on the run
loop. Also fix a stupid va_arg bug.
Attempt to fix reentrancy problems in DKNotificationCenter.
Previously, handling a D-Bus signal could trigger the generation
of DKProxies. Those would in turn would call back into libdbus
code where things would get locked up. (Problem originally
reported by Philippe Roussel.)
2011-01-03 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKProxy.m
* Source/DKIntrospectionParserDelegate.m:
Tweak compatibility with different XML parser versions in
gnustep-base.
* Documentation/readme.texi: Fix typo.
* README: Regenerate.
2010-12-10 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKPort.m: Fix crash in -isEqual: when the receiver is
being compared with a NSPort subclass other than DKPort
(reported by Philippe Roussel).
2010-10-26 Niels Grewe <niels.grewe@halbordnung.de>
* Tests/TestDKMethodCall.m
* Tests/TestDKArgument.m:
Fix memory leaks in the test suite.
2010-10-19 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKPort.m: Implement automatic invalidation of ports
when the remote disappears from the bus. Applications should
watch for NSPortDidBecomeInvalidNotification to catch this
situation.
2010-09-22 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKEndpoint.m: Add -isEqual: and -hash implementations
to DKEndpoint. Improve thread-safety of DKRunLoopContext.
* Source/DKPort.m: Add -isEqual: and -hash implementations.
Remove -_proxyAtPath:, which is superfluous with recent
changes to the DKProxy API.
* Source/DKProxy.m
* Source/DKProxy+Private.h:
Add accessor method for the port and check proxy scopes by means
of port equality.
* Source/NSConnection+DBus.m: Remove use of -[DKPort
_proxyAthPath:].
* Tests/TestDKProxy.m: Improve logging for failure in threaded
test.
Follow-up changes for DKProxy API change, based on suggestions
by Fred Kiefer.
2010-09-19 Niels Grewe <niels.grewe@halbordnung.de>
* ChangLog: Adjust formating.
* Tools/dk_make_protocol.m: Point to the correct license file.
2010-09-19 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKProxy.h
* Source/DKProxy.m:
Adjust to use DKPort.
* Source/DKArgument.m
* Source/DKNotificationCenter.m
* Source/DKObjectPathNode.m
* Source/DKPort.m:
Fixup for changes in DKProxy.
Make DKProxy use a DKPort instead of a DKEndpoint/service name
pair. This is the level of abstraction that will be used by
DKPortNameServer to handle connection invalidation etc.
Note: This breaks binary compatibility for DKPort subclasses
with the fragile ABI.
2010-09-12 Niels Grewe <niels.grewe@halbordnung.de>
* Documentation/Introduction.texi
* Documentation/UsingDBus.texi:
Documentation fixes.
2010-09-12 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKInterface.m: Include property methods in protocol
declarations (no Objective-C 2 style "@property()"-stuff yet)
* Documentation/UsingDBus.texi: Document property support.
2010-09-12 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKMethodCall.m: Fix to respect the semantics of
dbus_message_iter_init().
2010-09-12 Phillipe Rouselle
* Source/DKMethod.m
* Source/DKArgument.m
* Source/DKMethodCall.m
* Source/DKProxy.m
* Source/DKPropertyMethod.m:
Include string.h
With the last modifications to base and libobjc2, each string
function would generate a warning.
2010-09-12 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKInterface.h
* Source/DKInterface.m:
Add -installProperties method.
* Source/DKIntrospectionParserDelegate.m: Enable parsing
properties.
* Source/DKProperty.h: Fix typo and rename method.
* Source/DKProperty.m: Implement -copyWithZone:
* Source/DKPropertyMethod.m: Fix selector string for setters.
* Source/DKProxy.m: Trigger generation of property methods
Enabled property support. Getters are already working, setters
not so much.
2010-09-12 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKIntrospectionParserDelegate.m: Fix (benign) dead store.
* Source/DKArgument.m
* Source/DKEndpoint.m
* Source/DKProxy.m
* Source/DKSignal:
Fix memory leaks.
Fix bugs found by the clang static analyzer.
2010-09-11 Niels Grewe <niels.grewe@halbordnung.de>
* GNUmakefile: Add DKProperty.m and DKPropertyMethod.m to the
build.
* Source/DKArgument.h: Tiny documentation clarification.
* Source/DKMethod.h: Expose some methods needed by the
subclasses.
* Source/DKMethod.m: Introduce a slightly more flexible way of
comparing D-Bus and Obj-C method signatures.
* Source/DKProperty.h: Remove redundant attribute field.
* Source/DKProperty.m: Implement DKProperty to hold
introspection data about properties.
* Source/DKPropertyMethod.h: Complete header.
* Source/DKPropertyMethod.m: Slight cleanup for the accessor,
implement the mutator method.
Even more work on properties.
2010-09-11 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKArgument.m: Fix typo. Protect against potential
memory leak when unmarshalling a variant type argument raises an
exception.
* Source/DKProperty.h: Changes to the class layout, added some
method declarations.
* Source/DKPropertyMethod.h
* Source/DKPropertyMethod.m:
Began stubbing out support for property accessor methods.
Further work on properties. (Not yet connected to the build)
2010-09-11 Niels Grewe <niels.grewe@halbordnung.de>
* Documentation/GNUmakefile: Fix copy-and-paste error.
2010-09-11 Niels Grewe <niels.grewe@halbordnung.de>
* ChangeLog: Generate from `svn log'.
* Source/DKSignal.h: Documentation fix.
* Source/DKProperty.h: Add header.
Begin conceptualizing property support. Add ChangeLog.
2010-09-10 Richard Frith-Macdonald <rfm@gnu.org>
* GNUmakefile: warn if gnustep-make not found
2010-09-09 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKProxy.m: Fix bug reported by Philippe Roussel. (Note to self:
Unit tests are only useful if you actually run them…)
2010-09-05 Niels Grewe <niels.grewe@halbordnung.de>
* Tests/GNUmakefile
* Tests/GNUmakefile.postamble
* Tests/TestDKArgument.m
* Tests/TestDKMethodCall.m
* Tests/TestDKPort.m
* Tests/TestDKProxy.m:
Fix compilation of testcases if DBusKit is not yet installed.
2010-08-23 Niels Grewe <niels.grewe@halbordnung.de>
* Tools/GNUmakefile.postamble: Fix build by creating link to the header
dir. (reported by Philippe Roussel).
* Documentation/GNUmakefile.postamble: Fix removal of documentation on
`make uninstall'.
2010-08-20 Niels Grewe <niels.grewe@halbordnung.de>
* GNUmakefile: Only build documentation if makeinfo and texi2pdf are
available.
* Source/DKNotificationCenter.m: Fix bug that caused a sanity check to
be skipped.
2010-08-18 Niels Grewe <niels.grewe@halbordnung.de>
* Documentation/install.texi: Mention the nonstrict flag.
* INSTALL: Regenerate.
2010-08-18 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKArgument.m: Fix cast
2010-08-17 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKNotificationCenter.m: Improve documentation for
-[DKObservable matchesUserInfo:], simplified generation of observables
by the notification center.
2010-08-16 Niels Grewe <niels.grewe@halbordnung.de>
* COPYING: Add LGPL.
* GNUmakefile: Add documentation to the build.
* GNUmakefile.preamble: Add version variable.
* Documentation/GNUmakefile
* Documentation/GNUmakefile.postamble
* Documentation/readme.texi
* Documentation/install.texi
* Documentation/DBusKit.gsdoc:
Build README and INSTALL as well as reference documentation.
* Headers/DKProxy.h
* Headers/DKPort.h
* Headers/DNotificationCenter.h:
Mark ivars as private. Minor documentation improvements.
* README
* INSTALL:
Regenerate.
Improvements to the documentation.
2010-08-16 Niels Grewe <niels.grewe@halbordnung.de>
* Examples/Apertium/ApertiumUtilityPanel.h,
* Examples/Apertium/ApertiumUtilityPanel.m:
Add files missing from last commit.
2010-08-16 Niels Grewe <niels.grewe@halbordnung.de>
* Examples/Apertium/ApertiumController.m
* Examples/Apertium/GNUmakefile
* Examples/Apertium/LanguagePanel.gorm/data.classes
* Examples/Apertium/LanguagePanel.gorm/objects.gorm:
Make language selection panel an utility window.
2010-08-16 Niels Grewe <niels.grewe@halbordnung.de>
* Headers/DKNotificationCenter.h: Clarify removal semantics for
observations.
2010-08-16 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKNotificationCenter.m: More consistent implementation of
adding/removing observers.
2010-08-16 Niels Grewe <niels.grewe@halbordnung.de>
* Headers/DKNotificationCenter.h
* Source/DKNotificationCenter.m:
Simplify removal of observations.
2010-08-15 Niels Grewe <niels.grewe@halbordnung.de>
* Documentation/Introduction.texi
* Documentation/UsingDBus.texi:
Orthographical corrections.
2010-08-15 Niels Grewe <niels.grewe@halbordnung.de>
* Documentation/DBusKit.texi: Reorder menu.
2010-08-15 Niels Grewe <niels.grewe@halbordnung.de>
* Documentation/DBusKit.texi
* Documentation/ExposingObjects.texi
* Documentation/Introduction.texi
* Documentation/UsingDBus.texi:
Further work on the manual.
2010-08-14 Niels Grewe <niels.grewe@halbordnung.de>
* Documentation
* Documentation/DBusKit.texi,
* Documentation/GNUmakefile
* Documentation/Introduction.texi
* Documentation/fdl-1.3.texi:
Begun writing a guide on how to use D-Bus with GNUstep:
2010-08-14 Niels Grewe <niels.grewe@halbordnung.de>
* Tools/COPYING
* Tools/dk_make_protocol.m:
Add license.
2010-08-14 Niels Grewe <niels.grewe@halbordnung.de>
* GNUMakefile
* Tools/GNUmakefile
* Tools/dk_make_protocol.m:
Add primitive tool to generate protocol declarations from .interface
files.
* Source/DKInterface.m: Small tweak to the generation of protocol
declarations.
2010-08-13 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKInterface.m
* Source/DKPort.m
* Source/DKProxy.m:
A few more documentation improvements.
2010-08-13 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKArgument.h
* Source/DKArgument.m
* Source/DKEndpoint.m
* Source/DKInterface.h
* Source/DKIntrospectionNode.h
* Source/DKIntrospectionParserDelegate.h
* Source/DKMessage.h
* Source/DKMethod.h
* Source/DKObjectPathNode.h
* Source/DKObjectPathNode.m
* Source/DKSignal.h:
Documentation improvements.
2010-08-13 Niels Grewe <niels.grewe@halbordnung.de>
* Headers/DBusKit.h: Add DKNotificationCenter.h
* Source/DKProxy.m: Use correct path to the bus object.
* Source/DKNotificationCenter.m: Observe name changes so that sender
rules for observables stay up to date.
2010-08-13 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKNotificationCenter.m: Improve documentation. Fix removal
of signal-match from D-Bus.
2010-08-13 Niels Grewe <niels.grewe@halbordnung.de>
* Headers/DKProxy.h: Small documentation improvement.
* Headers/DKNotificationCenter.h: Documented DKNotificationCenter. Added
ivar.
* Source/DKProxy.m: Override -respondsToSelector:. Protect generation of
the method cache so that a remote error doesn't leave the object in an
unusable state.
* Source/DKEndpoint.m: Fix DKWakeUp(). (Previously, it would create
unwanted reentrancy.)
* Source/DKNotificationCenter.m: Primitive support for observing D-Bus
signals.
Preliminary support for D-Bus signals. Documentation
improvements.
2010-08-12 Niels Grewe <niels.grewe@halbordnung.de>
* Headers/DKProxy.h
* Source/DKProxy.m
* Source/DKInterface.[hm]:
Remove dispatch table from DKProxy and let DKInterface generate it
instead.
* Source/DKInterface.[hm]: Fix memory leak. Rename -methodForSelector:
to -DBusMethodForSelector:. Also move registration of signals here.
* Source/DKMethod.m: Generate smarter method declarations.
* Source/DKIntrospectionParserDelegate.m: Return nil from -leaf instead
of NSNull. Improve handling signals.
* Source/DKSignal.[hm]: Implement generation of userInfo dictionaries
for notifications from received signals.
* Source/DKMethodCall.m: Small indentation fix.
* Headers/DKNotificationCenter.h
* Source/DKNotificationCenter.m:
Bugfixes. Continue implementing generation of notifications from
signals.
* Tests/TestDKMethodCall.m
* Tests/TestDkMethod.m:
Use new method name.
A few bugfixes and improvements suggested by Fred Kiefer.
Continued work on D-Bus signals.
2010-08-09 Niels Grewe <niels.grewe@halbordnung.de>
* Headers/DKNotificationCenter.h
* Source/DKNotificationCenter.m:
Implement method to add match rules for signals.
2010-08-09 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKEndpoint.m: Remove workaround for some libdbus oddity I was
experiencing earlier.
2010-08-09 Niels Grewe <niels.grewe@halbordnung.de>
* Headers/DKProxy.h
* Source/DKProxy.m:
API refinements for DKDBus.
* Headers/DKPort.h
* Source/DKPort.m
* Tests/TestDKProxy.m:
Finish replacing subclasses with equivalent initializers. Adopt
test case.
2010-08-09 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKArgument.m: Mark some functions as inlineable.
* Source/DKEndpoint.[hm]: Carry over information about the new
endpoint when an old one is being reused. Fix bug in
-initWithConnectionTo: where the new connection never got assigned.
Rearrange method order. Improve documentation a bit.
2010-08-09 Niels Grewe <niels.grewe@halbordnung.de>
* Headers/DKNotificationCenter.h
* Source/DKNotificationCenter.m:
Move rule generation into DKObservable helper-class.
2010-08-08 Niels Grewe <niels.grewe@halbordnung.de>
* Headers/DKNotificationCenter.h
* Source/DKNotificationCenter.m:
Remove struct nonsense in favour of real objects.
2010-08-08 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKSignal.[hm]: Make DKSignal useful.
* Header/DKNotificationCenter.h: Add notificationNames ivar.
* Source/DKNotificationCenter.m: Implement registration of signals and
notification names.
* DKIntrospectionParserDelegate.m: Parse signals and trigger their
registration with the appropriate notification center.
* Tests/TestDKProxy.m: Fix test for errors returned by remote objects.
2010-08-07 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKMethodCall.m: Clarify exception name.
2010-08-07 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKNotificationCenter.m: Add methods to generate rules for
matching D-Bus signals.
2010-08-07 Niels Grewe <niels.grewe@halbordnung.de>
* Headers/DKProxy.h
* Source/DKProxy.m:
Add DKDBus subclass for getting shared proxies to the
org.freedesktop.DBus services on their respective busses.
* Source/DKProxy.m
* Source/DKProxy+Private.h:
Implement -_uniqueName to get the unique name of a service from the bus.
* Headers/DKPort.h: Add "don't know" member value to the bus type
enumeration.
* Source/DKPort.m: Use DKDBus instead of -getBusObject magic.
* Source/DKEndpoint.[hm]: Implement -DBusBusType to get the type of bus
an endpoint is connected to.
* Source/DKInterface.[hm]: Add some more methods for signals/properties.
* Headers/DKNotificationCenter.h
* Source/DKNotificationCenter.m
* Source/GNUmakefile:
Add very much work-in-progress notification center class for managing
D-Bus signals.
2010-08-07 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKArgument.m
* Source/DKInterface.m
* Source/DKIntrospectionNode.m
* Source/DKMethod.m
* Source/DKSignal.m
* Source/DKObjectPathNode.m:
Fix various issues in -copyWithZone:.
* Source/DKInterface.[hm]: Begin adding plumbing for signals/properties.
* Source/DKIntrospectionNode.[hm]: Add -annotations method to get the
annotation dictionary for a node.
* Tests/TestDKMethod.m: Fix the copy test to use the correct selector.
Fix NSCopying for DKIntrospectionNode and subclasses.
2010-08-07 Niels Grewe <niels.grewe@halbordnung.de>
* Tests/TestDKMethod.m: Add test for copying parts of the introspection
graph (fails at the moment).
2010-08-05 Niels Grewe <niels.grewe@halbordnung.de>
* Headers/DKPort.h
* Source/DKPort.m:
Add DKDBusBusType enumeration and related initializer.
* Source/DKArgument.m
* Source/DKInterface.m
* Source/DKIntrospectionNode.[hm]
* Source/DKMethod.m
* Source/DKObjectPathNode.m
* Source/DKSignal.m:
Adopt NSCopying for DKIntrospectionNode and subclasses.
* Source/NSConnection+DBus.m: Add further integration methods (commented
out until DKPortNameServer can be committed).
2010-07-31 Niels Grewe <niels.grewe@halbordnung.de>
* Headers/DKProxy.h
* Source/DKProxy.m:
Add an explicit NSCondition and a state variable to make synchronisation
more robust (and readable).
* Tests/TestDKProxy.m: Adopt to changed code and add test for calling
methods from multiple threads.
Thread safety improvements.
2010-07-30 Niels Grewe <niels.grewe@halbordnung.de>
* Source/AsyncBehavior.h
* Source/DKProxy.m:
Disable asnychronous generation of the method cache again (it doesn't
seem to be working reliably).
2010-07-30 Niels Grewe <niels.grewe@halbordnung.de>
* Source/AsyncBehavior.h: Bugfix.
* Source/DKEndpoint.[hm]: Support watchers and timers on multiple
run-loops.
* Source/DKProxy.m: Allow D-Bus methods to be called from multiple
threads. Also enable asynchronous generation of the method cache.
2010-07-30 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKProxy.m: Attempt to clarify the code path for method lookup.
2010-07-29 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKProxy.m: Rename -_methodForSelector:block: to
-_methodForSelector:waitForCache:.
* Source/DKArgument.m: Add cast that might be needed.
2010-07-29 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKInterface.m: Really fix the initializer this time.
* Source/DKIntrospectionParserDelegate.m: Smarter handling of the root
node.
* Source/DKArgument.m
* Source/DKMethodCall.m
* Source/DKProxy.m
* Source/DKProxy+Private.m:
Move some more methods that are often used by the internal classes into
DKProxy+Private.h.
* Source/DKObjectPathNode.h
* Source/DKObjectPathNode.m:
Implement retrieval of a proxy for a DKObjectPathNode.
More cleanup and minor improvements.
2010-07-28 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKIntrospectionParserDelegate.m
* Source/DKMethod.[hm]
* Source/DKSignal.[hm]:
Simplify (or remove) method and signal initalizer to not require
the interface name. Remove _DKMethodIntrospect.
* Source/DKProxy.m
* Source/DKProxy+Private.h:
Implement _DKInterfaceIntrospectable to replace _DKMethodIntrospect.
* Source/DKInterface.m: Normalize selectors before table
lookups/updates.
* Tests/TestDKMethod.m
* Tests/TestDKMethodCall.m:
Adapt test cases to use _DKInterfaceIntrospectable.
Refactor the global introspection method into a global introspection
interface to allow simpler initializers for DKMethod and DKSignal.
2010-07-28 Niels Grewe <niels.grewe@halbordnung.de>
* Headers/DKProxy.h
* Source/GNUmakefile
* Source/DKObjectPathNode.[hm]
* Source/DKProxy.m
* Source/DKProxy+Private.h:
Add DKObjectPathNode class and protocol (handles object trees and
interfaces). Implement DKObjectPathNode protocol in DKProxy and expose
it via DKProxy+Private.h.
* Source/DKArgument.m
* Source/DKIntrospectionNode.m
* Source/DKMethod.m
* Source/DKMethodCall.m
* Source/DKOutgoingProxy.h
* Source/DKPort.m
* Source/DKProxy.m
* Source/NSConnection+DBus.m:
Include new DKProxy+Private.h instead of the public header.
* Source/DKMethod.[hm]
* Source/DKInterface.[hm]
* Source/DKIntrospectionParserDelegate.m
* Tests/TestDKMethod.m:
Rename initializers of DKMethod and DKInterface to follow the naming
scheme of the superclass more closely.
* Source/DKIntrospectionParserDelegate.[hm]: Use the parent to store the
introspection tree and not the parser delegate.
Clean up the generation of the introspection data so that the parser
delegate doesn't need to keep the generated tree around. Also be more
consistent about naming initializers in subclasses of
DKIntrospectionNode.
2010-07-28 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKEndpoint.m: Prevent libdbus from calling _exit() when
the bus goes away.
2010-07-27 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKInterface.m
* Source/DKIntrospectionNode.[hm]
* Source/DKMethod.m:
Remove parser delegate methods and ivars.
* Source/DKSignal.[hm]
* Source/GNUmakefile:
Add stub for handling signals.
* Source/DKIntrospectionParserDelegate.[hm]: Consolidate XML parsing and
keep a stack for the XML tree.
Refactor introspection handling so that the generation of the
introspection graph happens entirely from within
DKIntrospectionParserDelegate.
2010-07-21 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKProxy.m: Only refer to D-Bus methods by their untyped
selector IDs.
2010-07-21 Niels Grewe <niels.grewe@halbordnung.de>
* Examples/Apertium/ApertiumInfo.m
* Examples/Apertium/ApertiumTranslator.m
* Tests/TestDKPort.m
* Tests/TestDKProxy.m:
Fix memory leaks generated by the fact that I copy and paste too much
without thinking.
2010-07-21 Niels Grewe <niels.grewe@halbordnung.de>
* Headers/NSConnection+DBus.h
* Source/NSConnection+DBus.m:
Add -proxyAtPath: method to obtain proxies for non-root objects of a
D-Bus service.
* Source/GNUmakefile: Add NSConnection+DBus.[hm] to build.
* Source/DKPort.m: Rearrange so that proxy generation is separated from
encoding the proxy for use in NSConnection.
* Headers/DBusKit.h: Add DKProxy.h and NSConnection+DBus.h.
* Tests/TestDKProxy.m: Test for fetching proxies to non-root objects.
2010-07-20 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKEndpoint.m: Improve error reporting.
2010-07-20 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKPort.m: Make DKPort check whether the requested remote
is available on the bus.
2010-07-19 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKProxy.m: Use sel_get_type() instead of accessing a
selector's type field directly.
2010-07-19 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKPort.m: Move from NSLog() to NSDebugMLog()
* Source/DKProxy.[mh]: Move from NSLog() to NSDebugMLog(). Implement
-setPrimaryDBusInterface:.
2010-07-19 Niels Grewe <niels.grewe@halbordnung.de>
* Examples/Apertium/ApertiumInfo.m: Check whether making calls to
the org.apertium.info object on D-Bus raises an exception. Also more
checking when generating the localized language string for the UI.
2010-07-18 Niels Grewe <niels.grewe@halbordnung.de>
* Examples/Apertium/ApertiumInfo.m: Strip whitespace from mode strings.
* Examples/Apertium/ApertiumServer.m: Properly handle exceptions from
the D-Bus side.
2010-07-18 Niels Grewe <niels.grewe@halbordnung.de>
* Examples, Examples/Apertium
* Examples/Apertium/ApertiumController.h
* Examples/Apertium/ApertiumController.m
* Examples/Apertium/ApertiumInfo.h
* Examples/Apertium/ApertiumInfo.m
* Examples/Apertium/ApertiumInfo.plist
* Examples/Apertium/ApertiumServer.h
* Examples/Apertium/ApertiumServer.m
* Examples/Apertium/ApertiumTranslator.h
* Examples/Apertium/ApertiumTranslator.m
* Examples/Apertium/COPYING
* Examples/Apertium/GNUmakefile
* Examples/Apertium/LanguagePanel.gorm
* Examples/Apertium/LanguagePanel.gorm/data.classes
* Examples/Apertium/LanguagePanel.gorm/data.info
* Examples/Apertium/LanguagePanel.gorm/objects.gorm
* Examples/Apertium/SourceLanguagePopup.h
* Examples/Apertium/SourceLanguagePopup.m
* Examples/Apertium/main.m:
Commit a little example demonstrating what is possible with DBusKit. The
Apertium.service hooks into the Apertium machine translation system via
D-Bus and exposes it as a service. You can thus use the translator from
within any GNUstep application. The DBusKit-specific portions are
contained in ApertiumTranslator.m and ApertiumInfo.m.
2010-07-18 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKEndpoint.m: Turn NSLog() calls into NSDebugMLog().
Fix a bug where timers were not tracked, causing them to not be
invalidated properly (they would sometimes fire after the target object
disappeared).
2010-07-17 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKArgument.m: Guard against nil values as arguments. Fix bug in
* marshalling variant type arguments.
2010-07-16 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKArgument.m: Fix bug where strings would be messed up
because of an improper cast.
2010-07-16 Niels Grewe <niels.grewe@halbordnung.de>
* Tests/GNUmakefile: Keep gnustep-make from installing the
testsuite.
2010-07-16 Niels Grewe <niels.grewe@halbordnung.de>
* Tests/TestDKProxy.m: Add test case for methods that contain boxed
and non-boxed arguments.
2010-07-16 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKMethod.[hm]: Be more flexible about boxing. Decide
whether argument should or shouldn't be boxed based on the
related invocation.
* Source/DKMethodCall.[hm]
* Source/DKProxy.m
* Tests/TestDKMethodCall.m
* Tests/TestDKProxy.m:
Remove references to the old argument types which did statically
decide on a boxing scheme.
* Headers/DKProxy.h: Remove unused ivar.
Make better use of D-Bus and Objective-C introspection data to
decide on the fly whether an argument to a D-Bus method should
be boxed in an Objective-C object or not.
2010-07-16 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKInterface.[hm]:
Add -methods to return the array of all methods in the interface.
* Source/DKIntrospectionNode.[hm]: Add -setParent: method that is
needed to reparent nodes from the parser delegate to the proxy
that is using them.
* Source/DKIntrospectionParserDelegate.[hm]: Add class to hold
the constructed introspection graph.
* Source/DKMethod.m: Remove call to DKProxy's _installMethod:...
method.
* Source/DKProxy.m: Remove parser delegate methods and reorganise
the code so that DKProxy itself is responsible for installing
the methods found by introspection.
* Source/GNUmakefile: Add DKIntrospectionParserDelegate.m to the
build.
Separate parsing of introspection data from DKProxy, which is now
also responsible for installing methods.
2010-07-16 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKIntrospectionNode.m
* Source/DKProxy.m:
Simplify -proxyParent method.
2010-07-14 Niels Grewe <niels.grewe@halbordnung.de>
* GNUmakefile
* GNUmakefile.postamble
* Source/GNUmakefile
* Source/GNUmakefile.postamble
* Source/Tests
* Tests
* Tests/GNUmakefile
* Tests/GNUmakefile.postamble
* Tests/TestDKArgument.m
* Tests/TestDKMethod.m
* Tests/TestDKMethodCall.m
* Tests/TestDKPort.m
* Tests/TestDKProxy.m:
Reorganise the project so that the tests are built as a separate
subproject and linked against the framework.
2010-07-13 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKInterface.m: Remove erratic parentheses around protocol
names.
2010-07-13 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKArgument.m
* Source/DKMethod.m
* Source/DKMethodCall.m:
Replace side-effect ridden NSAsserts.
2010-07-12 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKProxy.m: Make proper use of selector types to
generate the method signature so that methods can be called
unmangled without boxing the arguments.
* Source/Tests/TestDKProxy.m: Implement test for unboxed method
calls.
2010-07-12 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKProxy.m: Some bugfixes. Implement handling mangled
selectors.
* Source/Tests/TestDKProxy.m: Test sending unboxed method calls
with mangled selectors.
2010-07-12 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKMethodCall.m: Fix statement order and typo.
* Source/Tests/TestDKProxy.m: Test for returning errors from
D-Bus.
2010-07-12 Niels Grewe <niels.grewe@halbordnung.de>
* Headers/DKProxy.h: Add needed ivars.
* Source/AsyncBehavior.h: Minor addition.
* Source/DKArgument.[mh]: Remove -proxyParent method (now in
superclass)
* Source/DKInterface.h: Declare -mangledName.
* Source/DKInterface.m: Implement selector/method-map and XML
parser delegate methods.
* Source/DKIntrospectionNode.[mh]: Move -proxyParent method here.
Handle annotations.
* Source/DKMethod.[hm]: Implement -selectorString method to
generate selector names. Also add XML parser delegate methods.
* Source/DKMethodCall.m: Fix bug where an D-Bus error was used
unitialized.
* Source/DKProxy.m: Remove async stuff (pretty superfluous right
now). Fix various bugs in selector resolution and implement
building the method cache.
* Source/Tests/TestDKProxy.m: Add tests for new functionality.
Implement the remaining bits of basic proxy functionality.
Arbitrary D-Bus methods can now be called when their arguments
are boxed as Objective-C types. Calling methods without boxing
to come.
2010-07-04 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKArgument.m: Fix -isDictionary method for array
arguments.
2010-07-04 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKArgument.m: Remove isa-swizzling in favour of creating
the correct objects in the initalizers.
2010-07-03 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKArgument.m: Remove
incorrect -release (spotted by Fred Kiefer).
* Source/Tests/TestDKMethodCall.m
* Source/Tests/TestDKArgument.m:
Small test improvements.
2010-07-02 Niels Grewe <niels.grewe@halbordnung.de>
* Source/AsyncBehavior.h: Add macros to do stuff asynchronously
if possible.
* Source/DKInterface.[hm]: Remove superfluous -parent method.
* Source/DKMethod.m: Some more modularisation. Add comparison
method. Calculate offsets and sizes for signatures correctly.
* Headers/DKProxy.h: Add instance variables.
* Source/DKProxy.[hm]: Implement -forwardInvocation: and triggers
to generate the method cache (actual generation of the cache
still missing).
* Source/Tests/TestDKProxy.m: Add test for calling Introspect()
via the built-in _DKMethodIntrospect.
* Source/Tests/TestDKArgument.m: Minor rearrangement.
Made dispatching D-Bus method calls work via -forwardInvocation:.
As of yet, you can only call -Introspect (this is needed to obtain the
introspection data used to build the actual method cache).
2010-06-28 Niels Grewe <niels.grewe@halbordnung.de>
* configure.ac: Fix autoconf test for location of runtime.h
* configure: Regenerate
2010-06-26 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKEndpoint.[hm]: Turn DKRunLoopContext into an instance
variable. Some features need access to the run loop and run loop
mode information.
* Source/DKMethodCall.[hm]: Add implementation of synchronous
method calls and stubbed out support for asynchronous calls.
* Source/GNUmakefile: Add new modules.
* Source/Tests/TestDKMethodCall.m: Add test for introspection
method call.
2010-06-26 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKMethod.h: Fixed missing include.
2010-06-26 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKMethod.h: Add (un-)marshalling methods to the header.
2010-06-26 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKEndpoint.[mh]:
Add accessor method for the DBusConnection on libdbus-level.
* Source/GNUmakefile
* Source/DKMessage.[mh]:
Add primitive class for sending message to D-Bus.
2010-06-26 Niels Grewe <niels.grewe@halbordnung.de>
* Source/Tests/TestDKArgument.m: Add test for fallback-to-struct
feature when encoding dictionaries to variant types.
2010-06-26 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKArgument.m, Source/Tests/TestDKArgument.m: Fix
generation of signatures for objects that are passed as variant
type arguments. Some test-cases for this.
2010-06-24 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKArgument.[mh]: Implement marshalling of variant
types. Also add the ability to customize the unboxing of
objects.
* Source/DKEndpoint.m
* Source/DKMethod.m
* Source/DKPort.m:
Compile fixes for clang.
* Source/DKOutgoingProxy.[mh]
* Source/GNUmakefile:
Add stub implementation for outgoing proxies.
* Source/DKProxy.m: Add method to distinguish outgoing and
incoming proxies.
* Source/Tests/TestDKProxy.m: Fix runtime.h include.
* Source/Tests/TestDKArgument.m: Add test for custom unboxing
methods.
* Source/config.h.in
* config.make.in
* configure.ac
* GNUmakefile.postamble:
Update configure script and paraphernalia to check for advanced
runtime features.
* configure: Regenerate
Finish implementation of (un-)marshalling values between
NSInvocation and D-Bus messages. More flexible scheme for
unboxing values. Various smaller fixes.
2010-06-21 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKArgument.m: Implement unmarshalling D-Bus variant types.
2010-06-21 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKArgument.m: (Un-)marshalling of D-Bus structs.
2010-06-21 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKArgument.m: Finish (un-)marshalling of dictionaries.
2010-06-20 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKArgument.m: Implement unmarshalling of D-Bus
dictionaries.
2010-06-20 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKArgument.m: WIP (un-)marshalling of complex types.
2010-06-18 Niels Grewe <niels.grewe@halbordnung.de>
* Source/GNUmakefile
Source/DKInterface.[hm]:
Add WIP representation of D-Bus interfaces.
* Source/DKIntrospectionNode.[mh]: Basic XML parser delegate
methods.
* Source/DKMethod.m: Remove superflous method signature code.
* Source/DKMethod.m
* Source/DKArgument.m
* Source/DKArgument.h:
Work on marshalling/unmarshalling between NSInvocation and D-Bus
messages.
2010-06-15 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKMethod.h, Source/DKMethod.m: Remove leftover duplicate
code.
2010-06-15 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKArgument.h
* Source/DKArgument.m
* Source/DKIntrospectionNode.h
* Source/DKIntrospectionNode.m
* Source/DKMethod.h
* Source/DKMethod.m
* Source/GNUmakefile,
* Source/Tests/TestDKMethod.m:
Factor common code out into DKIntrospectionNode and make
DKArgument and DKMethod use it.
2010-06-14 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKMethod.h, Source/DKMethod.m: Also use
org.freedesktop.DBus.Method.NoReply annotation to mark the
method as oneway.
2010-06-14 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKMethod.h
* Source/DKMethod.m,
Source/Tests/TestDKMethod.m:
Make DKMethod generate method declarations.
2010-06-14 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKProxy.m
* Source/GNUmakefile
* Source/Tests/TestDKProxy.m:
Work on method name unmangling. Now partially working, still ugly
as hell.
2010-06-11 Niels Grewe <niels.grewe@halbordnung.de>
* Source/Tests/TestDKMethod.m
* Source/Tests/TestDKArgument.m:
Tests for assignments in the initializers.
* Source/DKProxy.m
* Headers/DKProxy.h:
-hasSameScopeAs: method to test whether two proxies fall into
the scope of one and the same D-Bus service.
* Source/DKArgument.h: Expose a few accessors.
* Source/DKArgument.m: Fix bug in the name assignment. Implement
-name method.
Let the proxy do the scope checking.
* Source/DKMethod.m: Shuffle a few statements around for more
natural ordering.
* configure.ac: Leave a TODO about needing to fix the configure
script ugliness.
* config.make.in: Another attempt to get linking done properly.
Many improvement suggested by Fred Kiefer.
2010-06-11 Niels Grewe <niels.grewe@halbordnung.de>
* Headers/DKProxy.h
* Source/DKProxy.m
* config.make.in:
Fix failure to link against libdbus (reported by Fred Kiefer).
Initial work on method-name mangling.
2010-06-11 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKArgument.m: short is apparently always 16bit.
2010-06-11 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKArgument.m: Fix unboxing of doubles.
* Source/Tests/TestDKArgument.m: Add test cases for unboxing.
2010-06-11 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKArgument.h
* Source/DKArgument.m
* Source/DKProxy.m:
Implement unboxing of simple types. Fix boxing of 64bit values.
2010-06-11 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKArgument.m
* Source/DKProxy.m
* Source/GNUmakefile,
* Source/GNUmakefile.postamble
* Source/Tests/TestDKArgument.m,
* Source/Tests/TestDKPort.m:
Add a few more tests and some dummy methods.
2010-06-10 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKArgument.h
* Source/DKArgument.m
* Source/DKProxy.m,
* Source/Tests/TestDKArgument.m:
Boxing of simple types with associated test-coverage.
2010-06-10 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKArgument.h
* Source/DKArgument.m
* Source/DKMethod.h
* Source/DKMethod.m
* Source/GNUmakefile
* Source/Tests/TestDKMethod.m:
Add initial implementation of DKMethod to encapsulate D-Bus
method information.
2010-06-09 Niels Grewe <niels.grewe@halbordnung.de>
* Source/GNUmakefile
* Source/GNUmakefile.postamble:
Provide link to public headers when compiling the tests.
2010-06-09 Niels Grewe <niels.grewe@halbordnung.de>
* GNUmakefile: autorun ukrun for tests.
* configure.ac
* config.make.in
* Source/GNUmakefile:
Check for and use -Wdeclaration-after-statement
* Source/DKArgument.m
* Source/DKPort.m:
Fix C99isms.
* Source/Tests/TestDKArgument.m: Separate unit tests from source.
Properly include local headers.
2010-06-08 Niels Grewe <niels.grewe@halbordnung.de>
* GNUmakefile
* Source/DKArgument.h
* Source/DKArgument.m
* Source/GNUmakefile
* Source/TestDKArgument.m:
Fix DKArgument problems. Add test cases for DKArgument (requires
UnitKit).
2010-06-07 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKArgument.h
* Source/DKArgument.m:
Support generating D-Bus type signatures from DKArgument trees.
2010-06-07 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKArgument.h
* Source/DKArgument.m:
Made DKArgument collect all subtypes of an argument from a D-Bus
message. Totally untested, though.
2010-06-07 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKArgument.m: Place -release call properly. Thanks to Fred
Kiefer for pointing that out.
2010-06-07 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKArgument.h
* Source/DKArgument.m
* Source/DKEndpoint.m,
* Source/GNUmakefile:
WIP representation of D-Bus argument information.
2010-05-31 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKPort.m: Simpify DKPort a bit.
2010-05-31 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKProxy.m: Actually, -[NSProxy dealloc] can be called.
Pointed out by Fred Kiefer; no idea why I thought that wasn't
possible…
2010-05-30 Niels Grewe <niels.grewe@halbordnung.de>
* GNUmakefile
* Headers/DKProxy.h
* Source/DKEndpoint.h
* Source/DKEndpoint.m
* Source/DKPort.m
* Source/DKProxy.m
* Source/GNUmakefile:
Add a dummy proxy class. Finish implementation of the
NSConnection integration for ROOTPROXY_REQUEST messages:
Connections to D-Bus can now return their own proxies.
2010-05-27 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKPort.m: Call self instead of super for DKPort subclass
initializers.
2010-05-26 Niels Grewe <niels.grewe@halbordnung.de>
* Source/DKEndpoint.m: Fixes a bug where returning an pre-existing
DKEndpoint would result in a teardown of the D-Bus connection.
Also work around some libdbus strangeness that needs further
investigation.
* Source/DKPort.m: Slightly more expressive designated
initializer. Begin stubbing out integration into NSConnection.
* Headers/DKPort.h: Add initializer.
2010-05-10 Niels Grewe <niels.grewe@halbordnung.de>
* GNUmakefile.postamble
* Headers/config.h.in
* aclocal.m4
* configure
* configure.ac:
Add configure script and paraphernalia (but make still
regenerates config.make on distclean).
* Source/DKPort: Simple initializers for DKPort.
2010-05-09 Niels Grewe <niels.grewe@halbordnung.de>
* .
* GNUmakefile
* GNUmakefile.postamble
* Headers
* Headers/DBusKit.h
* Headers/DKPort.h
* Headers/config.h.in
* Source
* Source/DKEndpoint.h
* Source/DKEndpoint.m
* Source/DKPort.m
* Source/GNUmakefile
* config.make.in
* configure.ac:
Import code in preparation for GSoC.
|