- }
- }
-
- public ArrayList<ArrayList<Execution.DestToPayload>> getThreadsPayloads(final List<Integer> openDevices) {
- final String editContentString;
- try {
- if (stream == null) {
- editContentString = Files.toString(editContent, Charsets.UTF_8);
- } else {
- editContentString = CharStreams.toString(new InputStreamReader(stream, Charsets.UTF_8));
- }
- } catch (final IOException e) {
- throw new IllegalArgumentException("Cannot read content of " + editContent);
- }
-
- int from, to;
- Iterator<Integer> iterator;
-
- final ArrayList<ArrayList<Execution.DestToPayload>> allThreadsPayloads = new ArrayList<>();
- if (generateConfigBatchSize > 1) {
-
- final int batchedRequests = openDevices.size() / generateConfigBatchSize;
- final int batchedRequestsPerThread = batchedRequests / threadAmount;
- final int leftoverBatchedRequests = (batchedRequests) % threadAmount;
- final int leftoverRequests = openDevices.size() - (batchedRequests * generateConfigBatchSize);
-
- final StringBuilder destBuilder = new StringBuilder(dest);
- destBuilder.replace(destBuilder.indexOf(ADDRESS_PORT), destBuilder.indexOf(ADDRESS_PORT) + ADDRESS_PORT.length(), controllerDestination);
-
- for (int l = 0; l < threadAmount; l++) {
- from = l * (batchedRequests * batchedRequestsPerThread);
- to = from + (batchedRequests * batchedRequestsPerThread);
- iterator = openDevices.subList(from, to).iterator();
- allThreadsPayloads.add(createBatchedPayloads(batchedRequestsPerThread, iterator, editContentString, destBuilder.toString()));
- }
- ArrayList<Execution.DestToPayload> payloads = null;
- if (leftoverBatchedRequests > 0) {
- from = threadAmount * (batchedRequests * batchedRequestsPerThread);
- to = from + (batchedRequests * batchedRequestsPerThread);
- iterator = openDevices.subList(from, to).iterator();
- payloads = createBatchedPayloads(leftoverBatchedRequests, iterator, editContentString, destBuilder.toString());
- }
- String payload = "";
-
- for (int j = 0; j < leftoverRequests; j++) {
- from = openDevices.size() - leftoverRequests;
- to = openDevices.size();
- iterator = openDevices.subList(from, to).iterator();
- final StringBuilder payloadBuilder = new StringBuilder(prepareMessage(iterator.next(), editContentString));
- payload += modifyMessage(payloadBuilder, j, leftoverRequests);
- }
- if (leftoverRequests > 0 || leftoverBatchedRequests > 0) {