/** Archive the selected versions. */ private void doArchive() { DoubleMap<String, VersionID, Long> data = pArchiveTableModel.getData(); MappedSet<String, VersionID> versions = new MappedSet<String, VersionID>(); for (String name : data.keySet()) { for (VersionID vid : data.keySet(name)) versions.put(name, vid); } if (!versions.isEmpty()) { pArchiveParamsDialog.setVisible(true); if (pArchiveParamsDialog.wasConfirmed()) { String prefix = pArchiveParamsDialog.getPrefix(); if ((prefix == null) || (prefix.length() == 0)) prefix = "Archive"; Long minSize = pArchiveParamsDialog.getMinSize(); if (minSize == null) minSize = 0L; String toolset = pArchiveParamsDialog.getToolset(); BaseArchiver archiver = pArchiveParamsDialog.getArchiver(); if ((toolset != null) && (archiver != null)) { AssignVersionsToArchivesTask task = new AssignVersionsToArchivesTask(this, prefix, minSize, versions, toolset, archiver); task.start(); } } } }
@Override public void run() { DoubleMap<String, VersionID, Long> data = pArchiveTableModel.getData(); for (String name : pVersions.keySet()) { for (VersionID vid : pVersions.get(name)) data.remove(name, vid); } pArchiveTableModel.setData(data); }
/** Add the given versions to the archive table. */ private void addArchiveHelper(TreeMap<String, TreeSet<VersionID>> selected) { DoubleMap<String, VersionID, Long> data = pArchiveTableModel.getData(); for (String name : selected.keySet()) { for (VersionID vid : selected.get(name)) data.put(name, vid, null); } pArchiveTableModel.setData(data); updateButtons(); }
/** Calculate the total size of the archived files. */ private void doCalcArchive() { DoubleMap<String, VersionID, Long> data = null; MappedSet<String, VersionID> versions = null; { data = pArchiveTableModel.getData(); versions = new MappedSet<String, VersionID>(); for (String name : data.keySet()) { for (VersionID vid : data.keySet(name)) versions.put(name, vid); } } CalcArchiveSizesTask task = new CalcArchiveSizesTask(data, versions); task.start(); }
@Override public DoubleMap align() { Thread t1, t2; t1 = new Thread( new Runnable() { @Override public void run() { LogInfo.logs("wordToPred STARTED!"); wordToPred = aligner1.align(); } }); t2 = new Thread( new Runnable() { @Override public void run() { LogInfo.logs("predToWord STARTED!"); predToWord = aligner2.align(); } }); LogInfo.begin_threads(); t1.start(); t2.start(); try { t1.join(); t2.join(); } catch (InterruptedException e) { e.printStackTrace(); LogInfo.fail(e); } LogInfo.end_threads(); return DoubleMap.product(wordToPred, predToWord); }
@Override public void run() { UIMaster master = UIMaster.getInstance(); MasterMgrClient client = master.acquireMasterMgrClient(); long monitorID = -1L; try { DoubleMap<String, VersionID, Long> data = null; long opID = master.beginDialogOp("Calculating File Sizes..."); master.setDialogOpCancelClient(opID, client); monitorID = client.addMonitor(new DialogOpMonitor(opID)); try { data = client.getArchivedSizes(pVersions); } catch (PipelineException ex) { showErrorDialog(ex); } finally { master.endDialogOp(opID, "File Sizes Calculated."); } /* merge existing and new sizes */ if (data != null) { for (String name : pData.keySet()) { TreeMap<VersionID, Long> oversions = pData.get(name); TreeMap<VersionID, Long> versions = data.get(name); if (versions == null) { data.put(name, oversions); } else { for (VersionID vid : oversions.keySet()) { if (versions.get(vid) == null) versions.put(vid, oversions.get(vid)); } } } UpdateSizesTask task = new UpdateSizesTask(data); SwingUtilities.invokeLater(task); } } finally { client.removeMonitor(monitorID); master.releaseMasterMgrClient(client); } }
@Override public void run() { UIMaster master = UIMaster.getInstance(); MasterMgrClient client = master.acquireMasterMgrClient(); try { DoubleMap<String, VersionID, Long> versionSizes = null; { long opID = master.beginDialogOp("Assigning Versions to Archives..."); long monitorID = client.addMonitor(new DialogOpMonitor(opID)); try { versionSizes = client.getArchivedSizes(pVersions); } catch (PipelineException ex) { showErrorDialog(ex); } finally { master.endDialogOp(opID, "Versions Assigned."); client.removeMonitor(monitorID); } } /* assign the maximum number of versions to each archive volume without exceeding its capacity */ TreeMap<Integer, MappedSet<String, VersionID>> archives = new TreeMap<Integer, MappedSet<String, VersionID>>(); if (versionSizes != null) { long capacity = pArchiver.getCapacity(); int idx = 0; long total = 0L; boolean done = false; DoubleMap<String, VersionID, Long> skippedVersionSizes = new DoubleMap<String, VersionID, Long>(); while (!done) { for (String name : versionSizes.keySet()) { for (VersionID vid : versionSizes.keySet(name)) { Long size = versionSizes.get(name, vid); if ((total + size) >= capacity) { /* the version is too big to fit by itself in a volume */ if (total == 0L) { showErrorDialog( "Error:", "The version (" + vid + ") of node (" + name + ") was larger than " + "the capacity of an entire archive volume! The capacity of the " + "archive volume must be increased to at least " + "(" + formatLong(size) + ") in order to archive this version."); return; } skippedVersionSizes.put(name, vid, size); } /* the version fits, add it to this volume */ else { MappedSet<String, VersionID> versions = archives.get(idx); if (versions == null) { versions = new MappedSet<String, VersionID>(); archives.put(idx, versions); } versions.put(name, vid); total += size; } } } /* some versions wouldn't fit in the current volume, create a new volume and try again... */ if (!skippedVersionSizes.isEmpty()) { idx++; total = 0L; versionSizes = skippedVersionSizes; skippedVersionSizes = new DoubleMap<String, VersionID, Long>(); } else { if (total < pMinSize) { if (idx == 0) { showErrorDialog( "Error:", "The total size (" + formatLong(total) + ") of all versions selected " + "for archiving was less than the minimum archive volume size " + "(" + formatLong(pMinSize) + ")! Either select enough versions to " + "meet this minimum size or specify a smaller minimum size to create " + "an archive volume."); return; } else { archives.remove(idx); } } break; } } } /* perform the archive operations */ if (!archives.isEmpty()) { if (pArchiver.isManual()) { ManualArchiveConfirmTask task = new ManualArchiveConfirmTask( pParent, null, 0, pPrefix, archives, pToolset, pArchiver); SwingUtilities.invokeLater(task); } else { long opID = master.beginDialogOp(); master.setDialogOpCancelClient(opID, client); long monitorID = client.addMonitor(new DialogOpMonitor(opID)); int lastIdx = 0; try { for (Integer idx : archives.keySet()) { master.updateDialogOp( opID, "Archiving Volume (" + (idx + 1) + " of " + archives.size() + ")..."); lastIdx = idx; client.archive(pPrefix, archives.get(idx), pArchiver, pToolset); } } catch (PipelineException ex) { showErrorDialog( "Error:", ex.getMessage() + "\n\n" + "Archive operation aborted early without creating " + "(" + (archives.size() - lastIdx) + " of " + archives.size() + ") archive " + "volumes!"); return; } finally { master.endDialogOp(opID, "Archived."); client.removeMonitor(monitorID); } RemoveAllTask task = new RemoveAllTask(); SwingUtilities.invokeLater(task); } // else } // if(!archives.isEmpty()) { } finally { master.releaseMasterMgrClient(client); } }