Fix calculation of project size.
[jSite.git] / src / de / todesbaum / util / freenet / fcp2 / ClientPut.java
index 1d97ed3..9993173 100644 (file)
@@ -1,6 +1,5 @@
 /*
- * todesbaum-lib - 
- * Copyright (C) 2006 David Roden
+ * jSite - ClientPut.java - Copyright © 2006–2012 David Roden
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -25,15 +24,15 @@ import java.io.Writer;
 /**
  * Abstract base class for all put requests. It contains all parameters that put
  * requests have in common.
- * 
+ *
  * @author David Roden <droden@gmail.com>
- * @version $Id: ClientPut.java 356 2006-03-24 15:13:38Z bombe $
+ * @version $Id$
  */
 public abstract class ClientPut extends Command {
 
        /** The URI of this request. */
        protected final String uri;
-       
+
        /** The client token of this request. */
        protected String clientToken = null;
 
@@ -49,6 +48,9 @@ public abstract class ClientPut extends Command {
        /** The maximum number of retries of this command. */
        protected int maxRetries = 0;
 
+       /** Whether to generate the keys early. */
+       protected boolean earlyEncode = false;
+
        /** The persistence of this request. */
        protected Persistence persistence = Persistence.CONNECTION;
 
@@ -60,7 +62,7 @@ public abstract class ClientPut extends Command {
 
        /**
         * Creates a new put request with the specified name, identifier and URI.
-        * 
+        *
         * @param name
         *            The name of this request
         * @param identifier
@@ -75,7 +77,7 @@ public abstract class ClientPut extends Command {
 
        /**
         * Returns whether the node should not try to compress the data.
-        * 
+        *
         * @return <code>true</code> if the node should <strong>not</strong> try
         *         to compress the data
         */
@@ -90,7 +92,7 @@ public abstract class ClientPut extends Command {
         * archives like ZIP files. Otherwise the node will try to compress the file
         * which -- depending on the size of the data -- might take a lot of time
         * and memory.
-        * 
+        *
         * @param dontCompress
         *            <code>true</code> if the node should <strong>not</strong>
         *            try to compress the data
@@ -151,6 +153,29 @@ public abstract class ClientPut extends Command {
        }
 
        /**
+        * Returns whether the data should be encoded early to generate the final
+        * key as fast as possible.
+        *
+        * @return {@code true} if the key should be generated early, {@code false}
+        *         otherwise
+        */
+       public boolean isEarlyEncode() {
+               return earlyEncode;
+       }
+
+       /**
+        * Sets whether the data should be encoded early to generate the final key
+        * as fast as possible.
+        *
+        * @param earlyEncode
+        *            {@code true} if the key should be generated early, {@code
+        *            false} otherwise
+        */
+       public void setEarlyEncode(boolean earlyEncode) {
+               this.earlyEncode = earlyEncode;
+       }
+
+       /**
         * Returns the priority class of this request.
         * @return The priority class of this request
         */
@@ -203,6 +228,7 @@ public abstract class ClientPut extends Command {
                        writer.write("Verbosity=" + verbosity.getValue() + LINEFEED);
                if (maxRetries != 0)
                        writer.write("MaxRetries=" + maxRetries + LINEFEED);
+               writer.write("EarlyEncode=" + earlyEncode);
                if (priorityClass != null)
                        writer.write("PriorityClass=" + priorityClass.getValue() + LINEFEED);
                writer.write("GetCHKOnly=" + getCHKOnly + LINEFEED);