X-Git-Url: http://git.nikiroo.be/?p=nikiroo-utils.git;a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Ffanfix%2Flibrary%2FRemoteLibrary.java;h=9fa8c66190174bd1a92536b995d181a16bc8744a;hp=65be7b1759e4893b2412f2c74cc00c0b3a95a2a7;hb=f433d15308b70e23280a65cef8c54002a7a971ce;hpb=e4e740f55b13b48f849e44c8f9a7ef5b746835c1 diff --git a/src/be/nikiroo/fanfix/library/RemoteLibrary.java b/src/be/nikiroo/fanfix/library/RemoteLibrary.java index 65be7b1..9fa8c66 100644 --- a/src/be/nikiroo/fanfix/library/RemoteLibrary.java +++ b/src/be/nikiroo/fanfix/library/RemoteLibrary.java @@ -21,6 +21,8 @@ import be.nikiroo.utils.serial.server.ConnectActionClientObject; * This {@link BasicLibrary} will access a remote server to list the available * stories, and download the ones you try to load to the local directory * specified in the configuration. + *

+ * This remote library uses a custom fanfix:// protocol. * * @author niki */ @@ -35,8 +37,8 @@ public class RemoteLibrary extends BasicLibrary { } @Override - public Object send(Object data) throws IOException, - NoSuchFieldException, NoSuchMethodException, + public Object send(Object data) + throws IOException, NoSuchFieldException, NoSuchMethodException, ClassNotFoundException { Object rep = super.send(data); if (rep instanceof RemoteLibraryException) { @@ -113,20 +115,26 @@ public class RemoteLibrary extends BasicLibrary { this.subkey = ""; } + if (host.startsWith("fanfix://")) { + host = host.substring("fanfix://".length()); + } + this.host = host; this.port = port; } @Override public String getLibraryName() { - return (rw ? "[READ-ONLY] " : "") + host + ":" + port; + return (rw ? "[READ-ONLY] " : "") + "fanfix://" + host + ":" + port; } @Override public Status getStatus() { - Instance.getInstance().getTraceHandler().trace("Getting remote lib status..."); + Instance.getInstance().getTraceHandler() + .trace("Getting remote lib status..."); Status status = getStatusDo(); - Instance.getInstance().getTraceHandler().trace("Remote lib status: " + status); + Instance.getInstance().getTraceHandler() + .trace("Remote lib status: " + status); return status; } @@ -180,8 +188,8 @@ public class RemoteLibrary extends BasicLibrary { @Override public void action(ConnectActionClientObject action) throws Exception { - Object rep = action.send(new Object[] { subkey, "GET_COVER", - luid }); + Object rep = action + .send(new Object[] { subkey, "GET_COVER", luid }); result[0] = (Image) rep; } }); @@ -232,8 +240,8 @@ public class RemoteLibrary extends BasicLibrary { pg = new Progress(); } - Object rep = action.send(new Object[] { subkey, "GET_STORY", - luid }); + Object rep = action + .send(new Object[] { subkey, "GET_STORY", luid }); MetaData meta = null; if (rep instanceof MetaData) { @@ -354,7 +362,7 @@ public class RemoteLibrary extends BasicLibrary { // Could work (more slowly) without it public MetaData imprt(final URL url, Progress pg) throws IOException { // Import the file locally if it is actually a file - + if (url == null || url.getProtocol().equalsIgnoreCase("file")) { return super.imprt(url, pg); } @@ -374,8 +382,8 @@ public class RemoteLibrary extends BasicLibrary { throws Exception { Progress pg = pgF; - Object rep = action.send(new Object[] { subkey, "IMPORT", - url.toString() }); + Object rep = action.send( + new Object[] { subkey, "IMPORT", url.toString() }); while (true) { if (!RemoteLibraryServer.updateProgress(pg, rep)) { @@ -426,7 +434,7 @@ public class RemoteLibrary extends BasicLibrary { } @Override - public synchronized File getFile(final String luid, Progress pg) { + public File getFile(final String luid, Progress pg) { throw new java.lang.InternalError( "Operation not supportorted on remote Libraries"); } @@ -435,9 +443,11 @@ public class RemoteLibrary extends BasicLibrary { * Stop the server. * * @throws IOException - * in case of I/O error (including bad key) + * in case of I/O errors + * @throws SSLException + * when the key was not accepted */ - public void exit() throws IOException { + public void exit() throws IOException, SSLException { connectRemoteAction(new RemoteAction() { @Override public void action(ConnectActionClientObject action) @@ -449,7 +459,7 @@ public class RemoteLibrary extends BasicLibrary { } @Override - public synchronized MetaData getInfo(String luid) throws IOException { + public MetaData getInfo(String luid) throws IOException { List metas = getMetasList(luid, null); if (!metas.isEmpty()) { return metas.get(0); @@ -459,7 +469,7 @@ public class RemoteLibrary extends BasicLibrary { } @Override - protected synchronized List getMetas(Progress pg) throws IOException { + protected List getMetas(Progress pg) throws IOException { return getMetasList("*", pg); } @@ -522,8 +532,8 @@ public class RemoteLibrary extends BasicLibrary { pg = new Progress(); } - Object rep = action.send(new Object[] { subkey, "GET_METADATA", - luid }); + Object rep = action + .send(new Object[] { subkey, "GET_METADATA", luid }); while (true) { if (!RemoteLibraryServer.updateProgress(pg, rep)) {