/* * Copyright (c) 2005-2011 KOM - Multimedia Communications Lab * * This file is part of PeerfactSim.KOM. * * PeerfactSim.KOM is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * PeerfactSim.KOM is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with PeerfactSim.KOM. If not, see . * */ package de.tud.kom.p2psim.api.storage; import de.tudarmstadt.maki.simonstrator.api.common.UniqueID; /** * All specific documents in the application layer and overlay layer should be a * subtype of this interface. * * @author Sebastian Kaune * @author Konstantin Pussep * @version 1.0, 11/25/2007 * * @deprecated Apps and app-related code is now part of the runner-project. * Documents should be defined by the overlay/Service type */ @Deprecated public interface Document { /** * Documents can have three different stats: empty, partial and complete * * @author Sebastian Kaune * */ public enum State { /** * The document is empty if only its OverlayKey is known. */ EMPTY, /** * The document state becomes partial if some chunks have been * downloaded */ PARTIAL, /** * The document is complete if all chunks are available */ COMPLETE } /** * Assigns the OverlayKey key to a given document * * @param key */ public void setKey(UniqueID key); /** * Returns the OverlayKey of a given document * * @return the appropriate OverlayKey */ public UniqueID getKey(); /** * Sets the size of a given document * * @param newSize * the size in bytes */ public void setSize(long newSize); /** * Returns the size in bytes of a given document * * @return the document size in bytes */ public long getSize(); /** * Returns the popularity of a given document * * @return the popularity of the document */ public int getPopularity(); /** * Assigns a popularity to a given document * * @param popularity * the popularity of the document */ public void setPopularity(int popularity); /** * Changes the state of a given document * * @param state * the new state */ public void setState(State state); /** * Returns the state of a given document * * @return the state of the document */ public State getState(); }