| 190 | } |
| 191 | |
| 192 | void Postoffice::queue(const MessagePtr& msg) { |
| 193 | if (msg->valid) { |
| 194 | sending_queue_.push(msg); |
| 195 | } else { |
| 196 | // do not send, fake a reply mesage |
| 197 | Task tk; |
| 198 | tk.set_customer(msg->task.customer()); |
| 199 | tk.set_request(false); |
| 200 | tk.set_type(Task::REPLY); |
| 201 | tk.set_time(msg->task.time()); |
| 202 | MessagePtr reply(new Message(tk)); |
| 203 | reply->sender = msg->recver; |
| 204 | reply->recver = msg->sender; |
| 205 | yp().customer(tk.customer())->exec().accept(reply); |
| 206 | } |
| 207 | } |
| 208 | |
| 209 | // TODO fault tolerance, check if node info has been changed |
| 210 | void Postoffice::send() { |
no test coverage detected