// Path: src/main/java/at/ac/ait/archistar/backendserver/fragments/Fragment.java
// public interface Fragment {
// 
//     public enum EncryptionScheme {
//         NONE,
//         SHAMIR
//     };
// 
//     /**
//      * @param data the data that should be stored within the fragment
//      * @return the stored data
//      */
//     byte[] setData(byte[] data);
// 
//     /**
//      * @return the data that we believe to be on the storage server
//      */
//     byte[] getData();
// 
//     /**
//      * @return is this fragment already stored/synced with the backend? storage
//      * server
//      */
//     boolean isSynchronized();
// 
//     /**
//      * @param value set the synchronized state (is the fragment in-sync with the
//      * storage server side representation) to true
//      * @return the new state
//      */
//     boolean setSynchronized(boolean value);
// 
//     /**
//      * @return fragments ID upon the server
//      */
//     String getFragmentId();
// 
//     /**
//      * @return returns the used storage server
//      */
//     StorageServer getStorageServer();
// 
//     /**
//      * sets the fragment id
//      *
//      * @param string the new fragment id
//      * @return the set fragment id
//      */
//     String setFragmentId(String string);
// 
//     /**
//      * which encryption scheme was used for this fragment
//      * @return the used encryption scheme
//      */
//     EncryptionScheme getEncryptionScheme();
// 
//     /**
//      * sets the to-be-used encryption scheme
//      * 
//      * @param scheme the scheme which will be used to encrypt the data
//      */
//     void setEncryptionScheme(EncryptionScheme scheme);
// }


import java.util.Set;
import at.ac.ait.archistar.backendserver.fragments.Fragment;
package at.ac.ait.archistar.engine.distributor;



/**
 * Distributor is responsible of directing the different operations to the
 * different servers. Possible solutions range from simple linear sequential
 * distributions to BFT algorithms
 *
 * Operations always perform on sets (as we seldomly want to access just a
 * single fragment on one server)
 *
 * @author andy
 */
public interface Distributor {

    boolean putFragmentSet(Set<Fragment> fragments);

// Path: src/main/java/at/ac/ait/archistar/backendserver/fragments/Fragment.java
// public interface Fragment {
// 
//     public enum EncryptionScheme {
//         NONE,
//         SHAMIR
//     };
// 
//     /**
//      * @param data the data that should be stored within the fragment
//      * @return the stored data
//      */
//     byte[] setData(byte[] data);
// 
//     /**
//      * @return the data that we believe to be on the storage server
//      */
//     byte[] getData();
// 
//     /**
//      * @return is this fragment already stored/synced with the backend? storage
//      * server
//      */
//     boolean isSynchronized();
// 
//     /**
//      * @param value set the synchronized state (is the fragment in-sync with the
//      * storage server side representation) to true
//      * @return the new state
//      */
//     boolean setSynchronized(boolean value);
// 
//     /**
//      * @return fragments ID upon the server
//      */
//     String getFragmentId();
// 
//     /**
//      * @return returns the used storage server
//      */
//     StorageServer getStorageServer();
// 
//     /**
//      * sets the fragment id
//      *
//      * @param string the new fragment id
//      * @return the set fragment id
//      */
//     String setFragmentId(String string);
// 
//     /**
//      * which encryption scheme was used for this fragment
//      * @return the used encryption scheme
//      */
//     EncryptionScheme getEncryptionScheme();
// 
//     /**
//      * sets the to-be-used encryption scheme
//      * 
//      * @param scheme the scheme which will be used to encrypt the data
//      */
//     void setEncryptionScheme(EncryptionScheme scheme);
// }


// Path: src/main/java/at/ac/ait/archistar/engine/distributor/Distributor.java
import java.util.Set;
import at.ac.ait.archistar.backendserver.fragments.Fragment;

package at.ac.ait.archistar.engine.distributor;



/**
 * Distributor is responsible of directing the different operations to the
 * different servers. Possible solutions range from simple linear sequential
 * distributions to BFT algorithms
 *
 * Operations always perform on sets (as we seldomly want to access just a
 * single fragment on one server)
 *
 * @author andy
 */
public interface Distributor {

    boolean putFragmentSet(Set<Fragment> fragments);

    public boolean getFragmentSet(Set<Fragment> fragments);