Use the new client layer from fred.
[Sone.git] / src / main / java / net / pterodactylus / sone / core / FreenetInterface.java
index e92cf8e..7cb8a9a 100644 (file)
@@ -34,12 +34,12 @@ import net.pterodactylus.sone.data.Sone;
 import net.pterodactylus.sone.data.TemporaryImage;
 import net.pterodactylus.util.logging.Logging;
 
-import com.db4o.ObjectContainer;
 import com.google.common.eventbus.EventBus;
 import com.google.inject.Inject;
 
 import freenet.client.ClientMetadata;
 import freenet.client.FetchException;
+import freenet.client.FetchException.FetchExceptionMode;
 import freenet.client.FetchResult;
 import freenet.client.HighLevelSimpleClient;
 import freenet.client.HighLevelSimpleClientImpl;
@@ -55,9 +55,12 @@ import freenet.keys.FreenetURI;
 import freenet.keys.InsertableClientSSK;
 import freenet.keys.USK;
 import freenet.node.Node;
+import freenet.node.RequestClient;
 import freenet.node.RequestStarter;
 import freenet.support.api.Bucket;
+import freenet.support.api.RandomAccessBucket;
 import freenet.support.io.ArrayBucket;
+import freenet.support.io.ResumeFailedException;
 
 /**
  * Contains all necessary functionality for interacting with the Freenet node.
@@ -118,7 +121,7 @@ public class FreenetInterface {
                                fetchResult = client.fetch(currentUri);
                                return new Fetched(currentUri, fetchResult);
                        } catch (FetchException fe1) {
-                               if (fe1.getMode() == FetchException.PERMANENT_REDIRECT) {
+                               if (fe1.getMode() == FetchExceptionMode.PERMANENT_REDIRECT) {
                                        currentUri = fe1.newURI;
                                        continue;
                                }
@@ -157,11 +160,11 @@ public class FreenetInterface {
                InsertableClientSSK key = InsertableClientSSK.createRandom(node.random, "");
                FreenetURI targetUri = key.getInsertURI().setDocName(filenameHint);
                InsertContext insertContext = client.getInsertContext(true);
-               Bucket bucket = new ArrayBucket(temporaryImage.getImageData());
+               RandomAccessBucket bucket = new ArrayBucket(temporaryImage.getImageData());
                ClientMetadata metadata = new ClientMetadata(temporaryImage.getMimeType());
                InsertBlock insertBlock = new InsertBlock(bucket, metadata, targetUri);
                try {
-                       ClientPutter clientPutter = client.insert(insertBlock, false, null, false, insertContext, insertToken, RequestStarter.INTERACTIVE_PRIORITY_CLASS);
+                       ClientPutter clientPutter = client.insert(insertBlock, null, false, insertContext, insertToken, RequestStarter.INTERACTIVE_PRIORITY_CLASS);
                        insertToken.setClientPutter(clientPutter);
                } catch (InsertException ie1) {
                        throw new SoneInsertException("Could not start image insert.", ie1);
@@ -205,7 +208,7 @@ public class FreenetInterface {
 
                                @Override
                                @SuppressWarnings("synthetic-access")
-                               public void onFoundEdition(long edition, USK key, ObjectContainer objectContainer, ClientContext clientContext, boolean metadata, short codec, byte[] data, boolean newKnownGood, boolean newSlotToo) {
+                               public void onFoundEdition(long edition, USK key, ClientContext clientContext, boolean metadata, short codec, byte[] data, boolean newKnownGood, boolean newSlotToo) {
                                        logger.log(Level.FINE, String.format("Found USK update for Sone “%s” at %s, new known good: %s, new slot too: %s.", sone, key, newKnownGood, newSlotToo));
                                        if (edition > sone.getLatestEdition()) {
                                                sone.setLatestEdition(edition);
@@ -269,7 +272,7 @@ public class FreenetInterface {
                USKCallback uskCallback = new USKCallback() {
 
                        @Override
-                       public void onFoundEdition(long edition, USK key, ObjectContainer objectContainer, ClientContext clientContext, boolean metadata, short codec, byte[] data, boolean newKnownGood, boolean newSlotToo) {
+                       public void onFoundEdition(long edition, USK key, ClientContext clientContext, boolean metadata, short codec, byte[] data, boolean newKnownGood, boolean newSlotToo) {
                                callback.editionFound(key.getURI(), edition, newKnownGood, newSlotToo);
                        }
 
@@ -441,7 +444,7 @@ public class FreenetInterface {
                 */
                @SuppressWarnings("synthetic-access")
                public void cancel() {
-                       clientPutter.cancel(null, node.clientCore.clientContext);
+                       clientPutter.cancel(node.clientCore.clientContext);
                        eventBus.post(new ImageInsertAbortedEvent(image));
                }
 
@@ -449,12 +452,14 @@ public class FreenetInterface {
                // INTERFACE ClientPutCallback
                //
 
-               /**
-                * {@inheritDoc}
-                */
                @Override
-               public void onMajorProgress(ObjectContainer objectContainer) {
-                       /* ignore, we don’t care. */
+               public RequestClient getRequestClient() {
+                       return clientPutter.getClient();
+               }
+
+               @Override
+               public void onResume(ClientContext context) throws ResumeFailedException {
+                       /* ignore. */
                }
 
                /**
@@ -462,7 +467,7 @@ public class FreenetInterface {
                 */
                @Override
                @SuppressWarnings("synthetic-access")
-               public void onFailure(InsertException insertException, BaseClientPutter clientPutter, ObjectContainer objectContainer) {
+               public void onFailure(InsertException insertException, BaseClientPutter clientPutter) {
                        if ((insertException != null) && ("Cancelled by user".equals(insertException.getMessage()))) {
                                eventBus.post(new ImageInsertAbortedEvent(image));
                        } else {
@@ -474,7 +479,7 @@ public class FreenetInterface {
                 * {@inheritDoc}
                 */
                @Override
-               public void onFetchable(BaseClientPutter clientPutter, ObjectContainer objectContainer) {
+               public void onFetchable(BaseClientPutter clientPutter) {
                        /* ignore, we don’t care. */
                }
 
@@ -482,7 +487,7 @@ public class FreenetInterface {
                 * {@inheritDoc}
                 */
                @Override
-               public void onGeneratedMetadata(Bucket metadata, BaseClientPutter clientPutter, ObjectContainer objectContainer) {
+               public void onGeneratedMetadata(Bucket metadata, BaseClientPutter clientPutter) {
                        /* ignore, we don’t care. */
                }
 
@@ -490,7 +495,7 @@ public class FreenetInterface {
                 * {@inheritDoc}
                 */
                @Override
-               public void onGeneratedURI(FreenetURI generatedUri, BaseClientPutter clientPutter, ObjectContainer objectContainer) {
+               public void onGeneratedURI(FreenetURI generatedUri, BaseClientPutter clientPutter) {
                        resultingUri = generatedUri;
                }
 
@@ -499,7 +504,7 @@ public class FreenetInterface {
                 */
                @Override
                @SuppressWarnings("synthetic-access")
-               public void onSuccess(BaseClientPutter clientPutter, ObjectContainer objectContainer) {
+               public void onSuccess(BaseClientPutter clientPutter) {
                        eventBus.post(new ImageInsertFinishedEvent(image, resultingUri));
                }