source: xssim/trunk/src/schedframe/resources/ResourceStateDescription.java @ 217

Revision 217, 2.2 KB checked in by wojtekp, 13 years ago (diff)
  • Property svn:mime-type set to text/plain
Line 
1package schedframe.resources;
2
3import java.util.ArrayList;
4import java.util.HashMap;
5import java.util.Iterator;
6import java.util.List;
7import java.util.Map;
8
9import schedframe.resources.units.ResourceUnit;
10import schedframe.scheduling.utils.ResourceParameterName;
11import test.rewolucja.resources.physical.base.ComputingResource;
12
13/**
14 *
15 * @author Marcin Krystek
16 *
17 */
18public class ResourceStateDescription extends ResourceDescription {
19
20        protected ResourceType type;
21       
22        protected Map<String, Integer> queue_size;
23       
24        protected List<ComputingResource> compResources;
25
26        public ResourceStateDescription(ResourceProvider provider){
27                super();
28                this.provider = provider;
29                this.queue_size = new HashMap<String, Integer>();
30                this.compResources = new ArrayList<ComputingResource>();
31        }
32       
33        public ResourceStateDescription(ResourceDescription r){
34                super(r);
35        }
36       
37        public void addResourceUnit(ResourceUnit unit){
38                List<ResourceUnit> list = null;
39               
40                if(this.resUnits.containsKey(unit.getName())){
41                        list = this.resUnits.get(unit.getName());
42                } else {
43                        list = new ArrayList<ResourceUnit>();
44                        this.resUnits.put(unit.getName(), list);
45                }
46                list.add(unit);
47        }
48       
49        public void addResourceUnit(Map<ResourceParameterName, ResourceUnit> allUnits){
50                Iterator<ResourceUnit> itr = allUnits.values().iterator();
51                while(itr.hasNext()){
52                        addResourceUnit(itr.next());
53                }
54        }
55       
56        public void addResourceUnitList(Map<ResourceParameterName, List<ResourceUnit>> allUnits){
57                this.resUnits.putAll(allUnits);
58        }
59       
60        public void setType(ResourceType type){
61                this.type = type;
62        }
63       
64        public ResourceType getType() {
65                return type;
66        }
67       
68        public void setQueuesSize(Map<String, Integer> queue_size){
69                this.queue_size = queue_size;
70        }
71       
72        public long getQueueLoad(String queueName) throws NoSuchFieldException{
73                long load = 0;
74                if(queueName == null){
75                        for(String queue: queue_size.keySet()){
76                                load += queue_size.get(queue);
77                        }
78                        return load;
79                }
80                else if(queue_size.containsKey(queueName))
81                        return queue_size.get(queueName);
82                else
83                        throw new NoSuchFieldException("Queue " + queueName +
84                                                        " is not available in resource " + provider.id);
85        }
86       
87        public void addComputingResources(List<ComputingResource> compRes){
88                compResources.addAll(compRes);
89        }
90}
Note: See TracBrowser for help on using the repository browser.