| 90 | } |
| 91 | |
| 92 | void received(queue<Event> events) |
| 93 | { |
| 94 | while (!events.empty()) { |
| 95 | Event event = events.front(); |
| 96 | events.pop(); |
| 97 | |
| 98 | cout << "Received " << event.type() << " event" << endl; |
| 99 | |
| 100 | switch (event.type()) { |
| 101 | case Event::SUBSCRIBED: { |
| 102 | cout << "Subscribed executor on " |
| 103 | << event.subscribed().agent_info().hostname() << endl; |
| 104 | |
| 105 | state = SUBSCRIBED; |
| 106 | break; |
| 107 | } |
| 108 | |
| 109 | case Event::LAUNCH: { |
| 110 | launch(event.launch().task()); |
| 111 | break; |
| 112 | } |
| 113 | |
| 114 | case Event::LAUNCH_GROUP: { |
| 115 | // TODO(vinod): Implement this. |
| 116 | break; |
| 117 | } |
| 118 | |
| 119 | case Event::ACKNOWLEDGED: { |
| 120 | // Remove the corresponding update. |
| 121 | updates.erase(id::UUID::fromBytes(event.acknowledged().uuid()).get()); |
| 122 | |
| 123 | // Remove the corresponding task. |
| 124 | tasks.erase(event.acknowledged().task_id()); |
| 125 | break; |
| 126 | } |
| 127 | |
| 128 | case Event::ERROR: { |
| 129 | cerr << "Error: " << event.error().message() << endl; |
| 130 | break; |
| 131 | } |
| 132 | |
| 133 | case Event::KILL: |
| 134 | case Event::MESSAGE: |
| 135 | case Event::HEARTBEAT: |
| 136 | case Event::SHUTDOWN: { |
| 137 | break; |
| 138 | } |
| 139 | |
| 140 | case Event::UNKNOWN: { |
| 141 | LOG(WARNING) << "Received an UNKNOWN event and ignored"; |
| 142 | break; |
| 143 | } |
| 144 | } |
| 145 | } |
| 146 | } |
| 147 | |
| 148 | void doReliableRegistration() |
| 149 | { |