FileSource::FileSource (Session& session, DataType type, const string& path, const string& origin, Source::Flag flag)
: Source(session, type, path, flag)
, _path (path)
- , _file_is_new (!origin.empty()) // origin empty => new file VS. origin !empty => new file
+ , _file_is_new (!origin.empty()) // if origin is left unspecified (empty string) then file must exist
, _channel (0)
, _origin (origin)
, _open (false)
{
set_within_session_from_path (path);
-
- prevent_deletion ();
}
FileSource::FileSource (Session& session, const XMLNode& node, bool /*must_exist*/)
_path = _name;
_within_session = true;
-
- prevent_deletion ();
}
FileSource::~FileSource()
}
void
-FileSource::prevent_deletion ()
+FileSource::existence_check ()
{
- /* if this file already exists, it cannot be removed, ever
- */
-
if (Glib::file_test (_path, Glib::FILE_TEST_EXISTS)) {
- cerr << " ... " << _path << " already exists, marking immutable\n";
+ prevent_deletion ();
+ }
+}
- if (!(_flags & Destructive)) {
- mark_immutable ();
- } else {
- _flags = Flag (_flags & ~(Removable|RemovableIfEmpty|RemoveAtDestroy));
- }
- }
+void
+FileSource::prevent_deletion ()
+{
+ if (!(_flags & Destructive)) {
+ mark_immutable ();
+ } else {
+ _flags = Flag (_flags & ~(Removable|RemovableIfEmpty|RemoveAtDestroy));
+ }
}
bool