2 * jFCPlib - ClientPutDiskDir.java - Copyright © 2008 David Roden
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
19 package net.pterodactylus.fcp;
22 * The “ClientPutDiskDir” message is used to insert a complete directory from
23 * the disk to a single key.
25 * @author David ‘Bombe’ Roden <bombe@freenetproject.org>
27 public class ClientPutDiskDir extends FcpMessage {
30 * Creates a new “ClientPutDiskDir” message.
33 * The URI to insert the file to
35 * The identifier of the request
37 * The name of the directory to insert
39 public ClientPutDiskDir(String uri, String identifier, String directory) {
40 super("ClientPutDiskDir");
42 setField("Identifier", identifier);
43 setField("Filename", directory);
47 * The verbosity of the request. Depending on this parameter you will
48 * received only the bare minimum of messages for the request (i.e. “it
49 * completed”) or a whole lot more.
53 * The verbosity of the request
55 public void setVerbosity(Verbosity verbosity) {
56 setField("Verbosity", String.valueOf(verbosity));
60 * The number of retries for a request if the initial try failed.
63 * The maximum number of retries after failure, or
64 * <code>-1</code> to retry forever.
66 public void setMaxRetries(int maxRetries) {
67 setField("MaxRetries", String.valueOf(maxRetries));
71 * Sets the priority of the request.
74 * The priority of the request
76 public void setPriority(Priority priority) {
77 setField("PriorityClass", String.valueOf(priority));
81 * Determines whether the node should really insert the data or generate
85 * <code>true</code> to generate the final CHK only,
86 * <code>false</code> to really insert the data
88 public void setGetCHKOnly(boolean getCHKOnly) {
89 setField("GetCHKOnly", String.valueOf(getCHKOnly));
93 * Sets whether an insert request should be forked when it is cached.
95 * @param forkOnCacheable
96 * {@code true} to fork the insert when it is cached,
97 * {@code false} otherwise
99 public void setForkOnCacheable(boolean forkOnCacheable) {
100 setField("ForkOnCacheable", String.valueOf(forkOnCacheable));
104 * Sets the number of additional inserts of single blocks.
106 * @param extraInsertsSingleBlock
107 * The number of additional inserts
109 public void setExtraInsertsSingleBlock(int extraInsertsSingleBlock) {
110 setField("ExtraInsertsSingleBlock", String.valueOf(extraInsertsSingleBlock));
114 * Sets the number of additional inserts of splitfile header blocks.
116 * @param extraInsertsSplitfileHeaderBlock
117 * The number of additional inserts
119 public void setExtraInsertsSplitfileHeaderBlock(int extraInsertsSplitfileHeaderBlock) {
120 setField("ExtraInsertsSplitfileHeaderBlock", String.valueOf(extraInsertsSplitfileHeaderBlock));
124 * Determines whether this request appears on the global queue.
127 * <code>true</code> to put the request on the global queue,
128 * <code>false</code> for the client-local queue.
130 public void setGlobal(boolean global) {
131 setField("Global", String.valueOf(global));
135 * Determines whether the node should skip compression because the file has
136 * already been compressed.
138 * @param dontCompress
139 * <code>true</code> to skip compression of the data in the
140 * node, <code>false</code> to allow compression
142 public void setDontCompress(boolean dontCompress) {
143 setField("DontCompress", String.valueOf(dontCompress));
147 * Sets an optional client token. This client token is mentioned in
148 * progress and other request-related messages and can be used to identify
154 public void setClientToken(String clientToken) {
155 setField("ClientToken", clientToken);
159 * Sets the persistence of this request.
162 * The persistence of this request
164 public void setPersistence(Persistence persistence) {
165 setField("Persistence", String.valueOf(persistence));
169 * Sets the name of the default file. The default file is shown when the
170 * key is requested with an additional name.
173 * The name of the default file
175 public void setDefaultName(String defaultName) {
176 setField("DefaultName", defaultName);
180 * Sets whether unreadable files allow the insert to continue.
182 * @param allowUnreadableFiles
183 * <code>true</code> to just ignore unreadable files,
184 * <code>false</code> to let the insert fail when an unreadable
185 * file is encountered
187 public void setAllowUnreadableFiles(boolean allowUnreadableFiles) {
188 setField("AllowUnreadableFiles", String.valueOf(allowUnreadableFiles));