Commit Graph

248 Commits

Author SHA1 Message Date
akwizgran
8ece8f3243 First stab at the StreamConnection state machine. Needs work. 2011-10-14 19:50:17 +01:00
akwizgran
bd91e7ebf3 Renamed a DB event. 2011-10-14 19:49:47 +01:00
akwizgran
e00e12d473 Call the listeners if a new ack might need to be sent. 2011-10-14 18:29:14 +01:00
akwizgran
d48c7b6900 Converted {Incoming,Outgoing}BatchConnection into Runnables.
Also changed the dispose() method of readers/writers/connections to
swallow any exceptions that occur, since the caller can't do anything
except log them.
2011-10-14 16:14:29 +01:00
akwizgran
55182528cf Q: What does the plugin manager do? A: It manages plugins. 2011-10-14 14:49:29 +01:00
akwizgran
d54ca67fe9 Tidied up synchronization. 2011-10-13 13:08:54 +01:00
akwizgran
aabe72bfd7 Plugin factories. 2011-10-12 17:26:05 +01:00
akwizgran
64e2d7bca9 Refactoring: shorter class names. 2011-10-12 17:25:37 +01:00
akwizgran
c5d9d9fa64 Minor concurrency cleanups. 2011-10-12 17:11:31 +01:00
akwizgran
3a07d1b882 Plugins don't need their own copies of configs and properties. 2011-10-12 16:52:39 +01:00
akwizgran
631f4e74b5 Nudge the database API in the direction of sanity. 2011-10-11 19:08:10 +01:00
akwizgran
a49a95347f Use dedicated classes for transport properties and configs. 2011-10-11 17:28:47 +01:00
akwizgran
68b82ae826 Retrieve all remote transports from the DB in a single call. 2011-10-10 22:35:46 +01:00
akwizgran
4059fbf863 Moved plugin API from transport package to plugins package and merged
transport subpackages.
2011-10-10 16:18:48 +01:00
akwizgran
125ae1b640 Always call the callback outside the plugin's lock. 2011-10-08 13:13:28 +01:00
akwizgran
50e5c51d77 Removed an unused field. 2011-10-08 12:48:07 +01:00
akwizgran
5f40015ec2 Moved callback initialisation from start() to constructor so it can be
accessed outside the lock.
2011-10-08 12:46:35 +01:00
akwizgran
a3a5ebc14f Removed unused exceptions. Also disabled output for ant tests. 2011-10-08 12:27:13 +01:00
akwizgran
4b1ffbe85b Logging for plugins. 2011-10-07 13:59:19 +01:00
akwizgran
a9b1a9123b Use discovery rather than hardcoded URLs (which don't work).
Two devices that aren't discoverable won't be able to
communicate. (Likely to affect Linux devices, since changing
discoverability requires root on Linux.)
2011-10-07 13:36:24 +01:00
akwizgran
ea6beac011 Plugin refactoring. 2011-10-07 13:17:13 +01:00
akwizgran
3364604d03 Removed unused return value. 2011-10-07 11:29:01 +01:00
akwizgran
16c9bf7079 Unit test refactoring. 2011-10-07 00:08:32 +01:00
akwizgran
8fa77b57da Bluetooth plugin (untested). 2011-10-06 19:33:12 +01:00
akwizgran
6d68fa5c4a Check whether the socket has been set to null due to a failed
re-binding.
2011-10-06 19:32:55 +01:00
akwizgran
c08f6c4d1e Merged transports' finish() and dispose() methods. 2011-10-06 19:00:33 +01:00
akwizgran
7a994114ff Synchronize access to superclass members. 2011-10-06 18:16:08 +01:00
akwizgran
42e586abc4 Merged code from FilePlugin and SocketPlugin into a superclass. 2011-10-06 18:07:58 +01:00
akwizgran
3e522c81fa Plugins should not modify their properties or configs. 2011-10-06 17:58:08 +01:00
akwizgran
8468b84c54 Reduced visibility of methods where possible. 2011-10-06 17:53:31 +01:00
akwizgran
bb9f03f1e8 Close and reopen the socket if necessary when the properties change. 2011-10-06 17:39:51 +01:00
akwizgran
5bc9baff95 Accept connections on the local socket. 2011-10-06 12:00:44 +01:00
akwizgran
1ee765a052 Resolve the address before binding. 2011-10-06 11:31:09 +01:00
akwizgran
11b571fd8f Moved locking to the superclass to simplify subclasses. 2011-10-06 09:34:15 +01:00
akwizgran
ffe10e1502 Don't call the callback after stop() has been called. 2011-10-06 09:25:50 +01:00
akwizgran
b54668c50b Renamed InvalidTransportException -> InvalidPropertiesException. 2011-10-06 09:18:13 +01:00
akwizgran
45fd4c9060 Simple TCP socket plugin (untested). 2011-10-06 09:17:22 +01:00
akwizgran
80cba1e7f7 Added finish() methods to transport readers/writers, and added a
readerFinished() callback method to FilePlugin.
2011-10-05 18:59:30 +01:00
akwizgran
3ffb56bf12 Factored ConnectionRecogniser out of transport plugins. 2011-10-05 18:48:10 +01:00
akwizgran
af41e42c6c Use an Executor to decouple the callback from the caller. 2011-10-05 17:22:21 +01:00
akwizgran
9464e29d75 Unit tests for the reader portion of RemovableDrivePlugin. 2011-10-05 16:39:20 +01:00
akwizgran
f6df333796 Changed drive monitors to use callbacks rather than blocking. 2011-10-05 16:11:18 +01:00
akwizgran
2095c2bbaa Removable drive monitors for Windows, Mac and Linux (untested). 2011-10-05 13:27:37 +02:00
akwizgran
d49ab73d81 Unit tests and bug fixes for removable drive finders. 2011-10-04 22:36:00 +01:00
akwizgran
18723a56ae Unit tests for the removable drive plugin. 2011-10-04 22:04:10 +01:00
akwizgran
f4af582592 Don't try to get the free space for a nonexistent file. 2011-10-04 21:47:38 +01:00
akwizgran
ef811ed295 Removed println. 2011-10-04 21:45:15 +01:00
akwizgran
f02e6b3f89 Removable drive finders for Windows, Mac and Linux (untested). 2011-10-04 21:04:22 +01:00
akwizgran
74ca71d9c1 Check for symlinks when deleting directories. Allow Database.open()
and close() to throw IOExceptions as well as DatabaseExceptions.
2011-10-03 18:35:18 +01:00
akwizgran
72b594d270 Type-safe transport IDs. 2011-09-30 12:52:29 +01:00