public static Map<String, List<CLDevice>> getDevicesBySignature(List<CLDevice> devices) { Map<String, List<CLDevice>> ret = new HashMap<String, List<CLDevice>>(); for (CLDevice device : devices) { String signature = device.createSignature(); List<CLDevice> list = ret.get(signature); if (list == null) ret.put(signature, list = new ArrayList<CLDevice>()); list.add(device); } return ret; }
public static Map<String, List<CLDevice>> getDevicesBySignature(List<CLDevice> devices) { Map<String, List<CLDevice>> ret = new HashMap<String, List<CLDevice>>(); for (CLDevice device : devices) { String signature = device.createSignature(); List<CLDevice> list = ret.get(signature); if (list == null) ret.put(signature, list = new ArrayList<CLDevice>()); list.add(device); } return ret; }
public static void writeBinaries(Map<CLDevice, byte[]> binaries, String source, String contentSignatureString, OutputStream out) throws IOException { Map<String, byte[]> binaryBySignature = new HashMap<String, byte[]>(); for (Map.Entry<CLDevice, byte[]> e : binaries.entrySet()) binaryBySignature.put(e.getKey().createSignature(), e.getValue()); // Maybe multiple devices will have the same signature : too bad, we don't care and just write one binary per signature. ZipOutputStream zout = new ZipOutputStream(new GZIPOutputStream(new BufferedOutputStream(out))); if (contentSignatureString != null) addStoredEntry(zout, BinariesSignatureZipEntryName, contentSignatureString.getBytes(textEncoding)); if (source != null) addStoredEntry(zout, SourceZipEntryName, source.getBytes(textEncoding)); for (Map.Entry<String, byte[]> e : binaryBySignature.entrySet()) addStoredEntry(zout, e.getKey(), e.getValue()); zout.close(); } public static Pair<Map<CLDevice, byte[]>, String> readBinaries(List<CLDevice> allowedDevices, String expectedContentSignatureString, InputStream in) throws IOException {
public static void writeBinaries(Map<CLDevice, byte[]> binaries, String source, String contentSignatureString, OutputStream out) throws IOException { Map<String, byte[]> binaryBySignature = new HashMap<String, byte[]>(); for (Map.Entry<CLDevice, byte[]> e : binaries.entrySet()) binaryBySignature.put(e.getKey().createSignature(), e.getValue()); // Maybe multiple devices will have the same signature : too bad, we don't care and just write one binary per signature. ZipOutputStream zout = new ZipOutputStream(new GZIPOutputStream(new BufferedOutputStream(out))); if (contentSignatureString != null) addStoredEntry(zout, BinariesSignatureZipEntryName, contentSignatureString.getBytes(textEncoding)); if (source != null) addStoredEntry(zout, SourceZipEntryName, source.getBytes(textEncoding)); for (Map.Entry<String, byte[]> e : binaryBySignature.entrySet()) addStoredEntry(zout, e.getKey(), e.getValue()); zout.close(); } public static Pair<Map<CLDevice, byte[]>, String> readBinaries(List<CLDevice> allowedDevices, String expectedContentSignatureString, InputStream in) throws IOException {