package org.hive2hive.core.api.interfaces;

public interface IFileConfiguration {

	long getMaxFileSize();

	long getMaxNumOfVersions();

	long getMaxSizeAllVersions();

	long getChunkSize();

}

@@ -43,140 +43,2286 @@
 %0D%0A%0D%0A
-public interface IFileConfiguration %7B%0D%0A%0D%0A%09long getMaxFileSize();%0D%0A%0D%0A%09long getMaxNumOfVersions();%0D%0A%0D%0A%09long getMaxSizeAllVersions();%0D%0A
+/**%0D%0A * The file configuration is essential for the performance of the system. Depending on the application, the%0D%0A * developer can adapt the parameters. Hive2Hive automatically changes its behavior for example while cleaning%0D%0A * old versions, depending on the configured version numbers.%0D%0A * %0D%0A * @author Nico%0D%0A * %0D%0A */%0D%0Apublic interface IFileConfiguration %7B%0D%0A%0D%0A%09/**%0D%0A%09 * The maximum size that a file can have. The higher the size here, the heavier the network gets. More%0D%0A%09 * data must be sent around. File size may be large if you only plan to use Hive2Hive in a (local)%0D%0A%09 * High-speed network.%3Cbr/%3E%0D%0A%09 * If you only need to synchronize small (meta) data, lower the file size here.%0D%0A%09 * %0D%0A%09 * @return the number of bytes that a file can have%0D%0A%09 */%0D%0A%09long getMaxFileSize();%0D%0A%0D%0A%09/**%0D%0A%09 * This parameter configures the number of available versions, once a file gets updated. In case the%0D%0A%09 * developer does not want the version feature, just set this value to 1.%0D%0A%09 * The more versions of a file are allowed, the heavier becomes the network.%0D%0A%09 * %0D%0A%09 * @return the number of versions that a file may have%0D%0A%09 */%0D%0A%09long getMaxNumOfVersions();%0D%0A%0D%0A%09/**%0D%0A%09 * Even though this parameter would not be necessary (since %7B@link IFileConfiguration#getMaxFileSize()%7D *%0D%0A%09 * %7B@link IFileConfiguration#getMaxNumOfVersions()%7D would fit here), it allows to configure the system%0D%0A%09 * more detailed. For example uploading a large file (video) should be allowed, but you want to keep the%0D%0A%09 * number of versions small, you could reduce this value. Then, a large file cannot have as many versions%0D%0A%09 * as a small file may have.%0D%0A%09 * %0D%0A%09 * @return the total number of bytes summed up over all versions of a specific file%0D%0A%09 */%0D%0A%09long getMaxSizeAllVersions();%0D%0A%0D%0A%09/**%0D%0A%09 * When uploading a file it gets chunked and distributed over the network. The network load becomes%0D%0A%09 * statistically a more even distribution. Adding a large file to the network without chunking it forces%0D%0A%09 * few peers to work very hard. We recommend to adapt the chunk size to the network performance.%0D%0A%09 * Another aspect of chunking is that the file is more secure. An attacker that cracks (we don't hope he's%0D%0A%09 * able to do so) one chunk may not see the whole file.%0D%0A%09 * %0D%0A%09 * @return the number of bytes a chunk has.%0D%0A%09 */
 %0D%0A%09l

Add the IFileConfiguration documentation (#54) It can also be used for the website