44{
46 if (evts.isEmpty()) {
48 return;
49 }
50
51
52
53 const int nfreshneeded = 3 -
m_availEvts->freshEvents().count();
54 if (evts.count()>
m_availEvts->maxLocalFilesToKeep()+3&&nfreshneeded<=0) {
55
57
58 return;
59 }
60
61 static unsigned ntmpdlcount = 0;
62
63 QList<VP1EventFile> freshEvtsInSource =
m_availEvts->freshEvents(evts.front(), evts);
64
67 bool changestmplocal(false), changesad(false);
68 if (!ad.isEmpty()&&!tmplocal.isEmpty()) {
69 int ncopied(0);
70 for (VP1EventFile evt : freshEvtsInSource) {
71 QString
fn =
evt.fileName();
72 QString basefn = QFileInfo(fn).fileName();
73 QString
target = tmplocal + basefn;
74 if (!QFile::exists(target)) {
75 QString tmptarget = ad+basefn+"_"+QString::number(ntmpdlcount++);
76 if (!QFile::copy(fn,tmptarget)) {
77 m_availEvts->message(
"Problems copying "+fn+
" to "+tmptarget);
78 changesad = true;
79 } else {
80 if (!QFile::rename(tmptarget,target)) {
81 m_availEvts->message(
"Problems moving "+tmptarget+
" to "+target+
" directory");
82 changesad = true;
83 } else {
84 if (!QFile::exists(target)) {
85 m_availEvts->message(
"Inconsistent copy of "+basefn+
" to local tmp directory");
86 } else {
87 ++ncopied;
88 m_availEvts->messageDebug(
"Copied "+basefn+
" to local tmp directory");
89 changestmplocal = true;
90 }
91 }
92 }
93 }
94 if (ncopied>=nfreshneeded) {
95
96 break;
97 }
98 }
99 } else {
100 m_availEvts->message(
"Problems with temporary local directories.");
101 }
102 if (changestmplocal)
104 if (changesad)
107}