256
291
string strNewOrigName; // new name for the orig file; if this is empty, the original file wasn't changed; if it's "*", it was erased; if it's something else, it was renamed;
257
292
string strProcName; // name for the proc file; if this is empty, a proc file doesn't exist; if it's something else, it's the file name;
294
bool bErrorInTransform (false);
259
296
FileEraser fileEraser;
261
//bool bChanged (true);
262
if (pNewHndl.get() == pOrigHndl)
265
switch (m_transfConfig.getUnprocOrigAction())
267
case TransfConfig::ORIG_DONT_CHANGE: break;
268
case TransfConfig::ORIG_ERASE: { strNewOrigName = "*"; fileEraser.erase(strOrigName); } break; //ttt2 try ...
269
case TransfConfig::ORIG_MOVE: { m_transfConfig.getUnprocOrigName(strOrigName, strNewOrigName); renameFile(strOrigName, strNewOrigName); } break;
270
default: CB_ASSERT (false);
274
{ // at least a processed file exists
275
CB_ASSERT (!strTempName.empty());
277
// first we have to handle the original file;
279
switch (m_transfConfig.getProcOrigAction())
281
case TransfConfig::ORIG_DONT_CHANGE: break;
282
case TransfConfig::ORIG_ERASE: { strNewOrigName = "*"; fileEraser.erase(strOrigName); } break; //ttt2 try ...
283
case TransfConfig::ORIG_MOVE: { m_transfConfig.getProcOrigName(strOrigName, strNewOrigName); renameFile(strOrigName, strNewOrigName); } break;
284
case TransfConfig::ORIG_MOVE_OR_ERASE:
286
m_transfConfig.getProcOrigName(strOrigName, strNewOrigName);
287
if (fileExists(strNewOrigName))
289
strNewOrigName = "*";
290
fileEraser.erase(strOrigName);
294
renameFile(strOrigName, strNewOrigName);
298
default: CB_ASSERT (false);
301
// the last processed file exists in the "temp" folder, its name is in strTempName, and we have to see what to do with it (erase, rename, or copy);
302
switch (m_transfConfig.getProcessedAction())
304
case TransfConfig::TRANSF_DONT_CREATE: deleteFile(strTempName); break;
305
case TransfConfig::TRANSF_CREATE:
307
m_transfConfig.getProcessedName(strOrigName, strProcName);
308
switch (m_transfConfig.getTempAction())
310
case TransfConfig::TRANSF_DONT_CREATE: renameFile(strTempName, strProcName); break;
311
case TransfConfig::TRANSF_CREATE: copyFile(strTempName, strProcName); break;
312
default: CB_ASSERT (false);
317
default: CB_ASSERT (false);
321
fileEraser.finalize();
300
//bool bChanged (true);
301
if (pNewHndl.get() == pOrigHndl)
304
switch (m_transfConfig.getUnprocOrigAction())
306
case TransfConfig::ORIG_DONT_CHANGE: break;
307
case TransfConfig::ORIG_ERASE: { strNewOrigName = "*"; fileEraser.erase(strOrigName); } break; //ttt2 try ...
308
case TransfConfig::ORIG_MOVE: { m_transfConfig.getUnprocOrigName(strOrigName, strNewOrigName); renameFile(strOrigName, strNewOrigName); } break;
309
default: CB_ASSERT (false);
313
{ // at least a processed file exists
314
CB_ASSERT (!strTempName.empty());
316
// first we have to handle the original file;
318
switch (m_transfConfig.getProcOrigAction())
320
case TransfConfig::ORIG_DONT_CHANGE: break;
321
case TransfConfig::ORIG_ERASE: { strNewOrigName = "*"; fileEraser.erase(strOrigName); } break; //ttt2 try ...
322
case TransfConfig::ORIG_MOVE: { m_transfConfig.getProcOrigName(strOrigName, strNewOrigName); renameFile(strOrigName, strNewOrigName); } break;
323
case TransfConfig::ORIG_MOVE_OR_ERASE:
325
m_transfConfig.getProcOrigName(strOrigName, strNewOrigName);
326
if (fileExists(strNewOrigName))
328
strNewOrigName = "*";
329
fileEraser.erase(strOrigName);
333
renameFile(strOrigName, strNewOrigName);
337
default: CB_ASSERT (false);
340
// the last processed file exists in the "temp" folder, its name is in strTempName, and we have to see what to do with it (erase, rename, or copy);
341
switch (m_transfConfig.getProcessedAction())
343
case TransfConfig::TRANSF_DONT_CREATE: deleteFile(strTempName); break;
344
case TransfConfig::TRANSF_CREATE:
346
m_transfConfig.getProcessedName(strOrigName, strProcName);
347
switch (m_transfConfig.getTempAction())
349
case TransfConfig::TRANSF_DONT_CREATE: renameFile(strTempName, strProcName); break;
350
case TransfConfig::TRANSF_CREATE: copyFile(strTempName, strProcName); break;
351
default: CB_ASSERT (false);
356
default: CB_ASSERT (false);
360
fileEraser.finalize();
362
catch (const CannotDeleteFile&)
364
bErrorInTransform = true;
366
catch (const CannotRenameFile&) //ttt1 perhaps also NameNotFound, AlreadyExists, ...
368
bErrorInTransform = true;
370
catch (const CannotCopyFile&) //ttt1 perhaps also NameNotFound, AlreadyExists, ...
373
//bErrorInTransform = true;
376
if (bErrorInTransform)
378
if (!strProcName.empty())
382
deleteFile(strProcName);
385
{ //ttt0 not sure what to do
388
m_strErrorFile = strOrigName;
389
m_bWriteError = false;
392
//ttt1 perhaps do something similar to strNewOrigName
393
//ttt1 review the whole thing
323
395
if (!strNewOrigName.empty())