| 96 | } |
| 97 | |
| 98 | @Override |
| 99 | public int size() { |
| 100 | byte[] rep; |
| 101 | try { |
| 102 | MapMessage<K,V> request = new MapMessage<>(); |
| 103 | request.setType(MapRequestType.SIZE); |
| 104 | |
| 105 | rep = serviceProxy.invokeUnordered(MapMessage.toBytes(request)); |
| 106 | } catch (IOException e) { |
| 107 | System.out.println("Failed to send SIZE request " + e.getMessage()); |
| 108 | return -1; |
| 109 | } |
| 110 | if (rep.length == 0) { |
| 111 | return -1; |
| 112 | } |
| 113 | |
| 114 | try { |
| 115 | MapMessage<K,V> response = MapMessage.fromBytes(rep); |
| 116 | return response.getSize(); |
| 117 | } catch (IOException | ClassNotFoundException ex) { |
| 118 | System.out.println("Failed to deserialized response of SIZE request: " + ex.getMessage()); |
| 119 | return -1; |
| 120 | } |
| 121 | } |
| 122 | |
| 123 | @Override |
| 124 | public Set<K> keySet() { |