1 |
package appl.parallel.spmd.split; |
2 |
|
3 |
import java.awt.Rectangle; |
4 |
|
5 |
import org.w3c.dom.css.Rect; |
6 |
|
7 |
import appl.data.DataLoader; |
8 |
|
9 |
/** |
10 |
* A resource that is splittable must provide some information to work with {@link SplitMap}s. |
11 |
* Important is the with and the height of the resource to be splitted. |
12 |
* |
13 |
* |
14 |
* @author Dominik Appl |
15 |
*/ |
16 |
public interface SplittableResource extends DataPartition { |
17 |
/** |
18 |
* Should return a unique ID for this resource. Standard implementation |
19 |
* would be returning the {@link Object#hashCode() hashcode} of the object. |
20 |
* |
21 |
* @return a ID which is unique for this client |
22 |
* |
23 |
*/ |
24 |
public int getRootID(); |
25 |
|
26 |
/** |
27 |
* Returns the loader which is responible for loading the data. This loader should be |
28 |
* independet from the current system. This means that, e.g. for a loader which |
29 |
* loads a grid from filesystem, that all paths should be relative (and not |
30 |
* absolute), so that a possibly remote resource can load the data from its local |
31 |
* filesystem, if the data is stored in the same position relative to the home |
32 |
* directory. |
33 |
* |
34 |
* @return a loader for this resource. |
35 |
*/ |
36 |
public DataLoader getLocalLoader(); |
37 |
|
38 |
/** |
39 |
* @return the splittable is splitted according to its splitHeight (example: the height of a raster) |
40 |
* */ |
41 |
public int getSplitHeight(); |
42 |
|
43 |
/** |
44 |
* @return the splittable is splitted according to its splitWidth (example: the width of a raster or the length of an array) |
45 |
* */ |
46 |
public int getSplitWidth(); |
47 |
} |