Refactored message id reset.
This commit is contained in:
		@@ -27,12 +27,8 @@ impl ClientChannel {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    pub fn send(&self, mut msg: Message) -> Receiver<Message> {
 | 
					    pub fn send(&self, mut msg: Message) -> Receiver<Message> {
 | 
				
			||||||
        let mut reg = self.registry.lock().unwrap();
 | 
					        let mut reg = self.registry.lock().unwrap();
 | 
				
			||||||
        if reg.contains_key(&msg.get_id()) {
 | 
					        while reg.contains_key(&msg.get_id()) {
 | 
				
			||||||
            let mut id = Uuid::new_v4();
 | 
					            msg.reset_id();
 | 
				
			||||||
            while reg.contains_key(&id) {
 | 
					 | 
				
			||||||
                id = Uuid::new_v4();
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
            msg.reset_id(id);
 | 
					 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        let (tx, rx) = channel();
 | 
					        let (tx, rx) = channel();
 | 
				
			||||||
        reg.insert(msg.get_id(), tx);
 | 
					        reg.insert(msg.get_id(), tx);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -70,8 +70,8 @@ impl Message {
 | 
				
			|||||||
        self.id.clone()
 | 
					        self.id.clone()
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    pub fn reset_id(&mut self, id: Uuid) {
 | 
					    pub fn reset_id(&mut self) {
 | 
				
			||||||
        self.id = id;
 | 
					        self.id = Uuid::new_v4();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -175,8 +175,9 @@ mod messages {
 | 
				
			|||||||
    #[test]
 | 
					    #[test]
 | 
				
			||||||
    fn reset_msg_id() {
 | 
					    fn reset_msg_id() {
 | 
				
			||||||
        let mut msg = Message::new(MsgType::Time);
 | 
					        let mut msg = Message::new(MsgType::Time);
 | 
				
			||||||
        msg.reset_id(Uuid::nil());
 | 
					        let id = msg.get_id();
 | 
				
			||||||
        assert_eq!(msg.get_id(), Uuid::nil());
 | 
					        msg.reset_id();
 | 
				
			||||||
 | 
					        assert_ne!(msg.get_id(), id);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user