Changeset 419


Ignore:
Timestamp:
05/10/2010 02:30:53 PM (11 years ago)
Author:
pedro.cuba
Message:

Fixed "exit" migrations (know the occupied variable is changed accordingly).

Location:
libs/cmion/cmionMain/src/cmion/level2
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • libs/cmion/cmionMain/src/cmion/level2/competencies/Migration.java

    r391 r419  
    5252 
    5353public class Migration extends Competency { 
     54         
     55        public static final String SUCCESS_TAG = "success"; 
    5456 
    5557        private HashMap<String, Device> deviceList; 
     
    224226                migrationElements = new ArrayList<Element>(); 
    225227                destination = deviceList.get(parameters.get("DeviceName")); 
     228                 
     229                if(destination == null){ 
     230                        System.out.println("Unknown Destination: "+parameters.get("DeviceName")); 
     231                        raise(new SynchronizationFailed()); 
     232                        return false; 
     233                } 
     234                 
    226235                migrationDocument = docBuilder.newDocument(); 
    227236                raise(new MigrationStart(destination, migrationDocument)); 
     
    324333                        if(messageReceived.type.equals("status")){ 
    325334                                //TODO send back message indicating if device is occupied by another agent. 
    326                         } 
    327                          
    328                         if(messageReceived.type.equals("success")){ 
    329                                 raise(new MigrationComplete()); 
    330                         } 
    331                          
    332                         if(messageReceived.type.equals("failure")){ 
    333                                 raise(new MigrationFailed()); 
    334335                        } 
    335336                         
     
    341342                                        sync.schedule(new Reply(replySuccess())); 
    342343                                } else { 
     344                                        System.out.println("Refusing agent because device is occupied."); 
    343345                                        sync.schedule(new Reply(replyFailure())); 
    344346                                } 
     
    387389                public void invoke(IEvent evt) { 
    388390                        MessageDelivered delivered = (MessageDelivered) evt; 
    389                          
    390                         Element root = (Element) delivered.message.getElementsByTagName("success").item(0); 
    391                          
    392                         if(root != null){ 
    393                                 raise(new MessageDelivered(delivered.message)); 
     391                        Element success = (Element) delivered.message; 
     392                         
     393                        if(success.getTagName().equals(SUCCESS_TAG)){ 
     394                                raise(new MigrationComplete()); 
    394395                                occupied = false; 
    395396                                migrationSucceeded(); 
    396397                        } else { 
     398                                raise(new MigrationFailed()); 
    397399                                migrationFailed(); 
    398400                        } 
  • libs/cmion/cmionMain/src/cmion/level2/migration/MessageDelivered.java

    r362 r419  
    11package cmion.level2.migration; 
    22 
    3 import org.w3c.dom.Document; 
     3import org.w3c.dom.Element; 
    44 
    55import ion.Meta.Event; 
     
    77public class MessageDelivered extends Event { 
    88 
    9         public final Document message; 
     9        public final Element message; 
    1010         
    11         public MessageDelivered(Document message) { 
     11        public MessageDelivered(Element message) { 
    1212                this.message = message; 
    1313        } 
  • libs/cmion/cmionMain/src/cmion/level2/migration/Synchronizer.java

    r418 r419  
    186186                                Node node = nodes.item(i); 
    187187                                if(node.getNodeType() == Node.ELEMENT_NODE){ 
    188                                         raise(new MessageReceived((org.w3c.dom.Element)node)); 
     188                                        raise(new MessageDelivered((org.w3c.dom.Element)node)); 
    189189                                        return; 
    190190                                } 
Note: See TracChangeset for help on using the changeset viewer.