Add date code
This commit is contained in:
@ -19,25 +19,26 @@ namespace Tesses::Framework::Filesystem
|
||||
pft->dwHighDateTime = time_value.HighPart;
|
||||
}
|
||||
#endif
|
||||
void LocalFilesystem::GetDate(VFSPath path, time_t& lastWrite, time_t& lastAccess)
|
||||
void LocalFilesystem::GetDate(VFSPath path, Date::DateTime& lastWrite, Date::DateTime& lastAccess)
|
||||
{
|
||||
std::string s = VFSPathToSystem(path);
|
||||
struct stat st;
|
||||
if(stat(s.c_str(),&st) == 0)
|
||||
{
|
||||
lastAccess = st.st_atime;
|
||||
lastWrite = st.st_mtime;
|
||||
lastAccess = Date::DateTime((int64_t)st.st_atime);
|
||||
lastWrite = Date::DateTime((int64_t)st.st_mtime);
|
||||
}
|
||||
}
|
||||
void LocalFilesystem::SetDate(VFSPath path, time_t lastWrite, time_t lastAccess)
|
||||
void LocalFilesystem::SetDate(VFSPath path, Date::DateTime lastWrite, Date::DateTime lastAccess)
|
||||
{
|
||||
std::string s = VFSPathToSystem(path);
|
||||
#if defined(TESSESFRAMEWORK_ENABLE_SETDATE)
|
||||
#if defined(_WIN32)
|
||||
FILETIME lastWriteF;
|
||||
FILETIME lastAccessF;
|
||||
TimetToFileTime(lastWrite,&lastWriteF);
|
||||
TimetToFileTime(lastAccess,&lastAccessF);
|
||||
|
||||
TimetToFileTime((time_t)lastWrite.ToEpoch(),&lastWriteF);
|
||||
TimetToFileTime((time_t)lastAccess.ToEpoch(),&lastAccessF);
|
||||
HANDLE hFile = CreateFileA(
|
||||
s.c_str(),
|
||||
FILE_WRITE_ATTRIBUTES,
|
||||
@ -59,8 +60,8 @@ namespace Tesses::Framework::Filesystem
|
||||
}
|
||||
#else
|
||||
struct utimbuf utim;
|
||||
utim.actime = lastAccess;
|
||||
utim.modtime = lastWrite;
|
||||
utim.actime = (time_t)lastAccess.ToEpoch();
|
||||
utim.modtime = (time_t)lastWrite.ToEpoch();
|
||||
utime(s.c_str(),&utim);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@ -202,7 +202,7 @@ namespace Tesses::Framework::Filesystem
|
||||
}
|
||||
file->data->canAccess=false;
|
||||
file->data->readers++;
|
||||
if(truncate) {file->data->file.clear(); file->data->lastWrite=time(NULL);}
|
||||
if(truncate) {file->data->file.clear(); file->data->lastWrite=Date::DateTime::NowUTC();}
|
||||
mtx->Unlock();
|
||||
return new MemoryFilesystemStream(mtx,file->data,canRead,canWrite,canSeek);
|
||||
|
||||
@ -303,7 +303,7 @@ namespace Tesses::Framework::Filesystem
|
||||
}
|
||||
thefile->data->canAccess=false;
|
||||
thefile->data->readers++;
|
||||
if(truncate) {thefile->data->file.clear(); thefile->data->lastWrite=time(NULL);}
|
||||
if(truncate) {thefile->data->file.clear(); thefile->data->lastWrite=Date::DateTime::NowUTC();}
|
||||
mtx->Unlock();
|
||||
return new MemoryFilesystemStream(mtx,thefile->data,canRead,canWrite,canSeek);
|
||||
}
|
||||
@ -350,10 +350,10 @@ namespace Tesses::Framework::Filesystem
|
||||
MemoryDirectory* dir2 = new MemoryDirectory();
|
||||
dir2->name = part;
|
||||
|
||||
dir2->lastWrite=time(NULL);
|
||||
dir2->lastWrite=Date::DateTime::NowUTC();
|
||||
|
||||
dir->entries.push_back(dir2);
|
||||
dir->lastWrite=time(NULL);
|
||||
dir->lastWrite=Date::DateTime::NowUTC();
|
||||
|
||||
dir=dir2;
|
||||
}
|
||||
@ -387,7 +387,7 @@ namespace Tesses::Framework::Filesystem
|
||||
delete item;
|
||||
dir->entries.erase(index);
|
||||
|
||||
dir->lastWrite=time(NULL);
|
||||
dir->lastWrite=Date::DateTime::NowUTC();
|
||||
}
|
||||
break;
|
||||
}
|
||||
@ -450,7 +450,7 @@ namespace Tesses::Framework::Filesystem
|
||||
{
|
||||
delete item;
|
||||
dir->entries.erase(index);
|
||||
dir->lastWrite=time(NULL);
|
||||
dir->lastWrite=Date::DateTime::NowUTC();
|
||||
}
|
||||
break;
|
||||
}
|
||||
@ -482,7 +482,7 @@ namespace Tesses::Framework::Filesystem
|
||||
if(p != nullptr)
|
||||
{
|
||||
p->linkedTo = existingFile;
|
||||
p->lastWrite = time(NULL);
|
||||
p->lastWrite = Date::DateTime::NowUTC();
|
||||
}
|
||||
mtx->Unlock();
|
||||
return;
|
||||
@ -491,9 +491,9 @@ namespace Tesses::Framework::Filesystem
|
||||
MemorySymlink* symlink = new MemorySymlink();
|
||||
symlink->name = fname;
|
||||
symlink->linkedTo = existingFile;
|
||||
symlink->lastWrite = time(NULL);
|
||||
symlink->lastWrite = Date::DateTime::NowUTC();
|
||||
dir->entries.push_back(symlink);
|
||||
dir->lastWrite = time(NULL);
|
||||
dir->lastWrite = Date::DateTime::NowUTC();
|
||||
|
||||
mtx->Unlock();
|
||||
}
|
||||
@ -558,7 +558,7 @@ namespace Tesses::Framework::Filesystem
|
||||
memFile->name = fname;
|
||||
memFile->data = existing->data;
|
||||
dir->entries.push_back(memFile);
|
||||
dir->lastWrite=time(NULL);
|
||||
dir->lastWrite=Date::DateTime::NowUTC();
|
||||
|
||||
mtx->Unlock();
|
||||
}
|
||||
@ -601,7 +601,7 @@ namespace Tesses::Framework::Filesystem
|
||||
{
|
||||
return path;
|
||||
}
|
||||
void MemoryFilesystem::GetDate(VFSPath path, time_t& lastWrite, time_t& lastAccess)
|
||||
void MemoryFilesystem::GetDate(VFSPath path, Date::DateTime& lastWrite, Date::DateTime& lastAccess)
|
||||
{
|
||||
|
||||
mtx->Lock();
|
||||
@ -618,7 +618,7 @@ namespace Tesses::Framework::Filesystem
|
||||
mtx->Unlock();
|
||||
lastAccess = lastWrite;
|
||||
}
|
||||
void MemoryFilesystem::SetDate(VFSPath path, time_t lastWrite, time_t lastAccess)
|
||||
void MemoryFilesystem::SetDate(VFSPath path, Date::DateTime lastWrite, Date::DateTime lastAccess)
|
||||
{
|
||||
mtx->Lock();
|
||||
auto node = GetEntry(path,false);
|
||||
@ -652,7 +652,7 @@ namespace Tesses::Framework::Filesystem
|
||||
}
|
||||
MemoryDirectory::MemoryDirectory()
|
||||
{
|
||||
this->lastWrite = time(NULL);
|
||||
this->lastWrite = Date::DateTime::NowUTC();
|
||||
}
|
||||
MemoryDirectory::~MemoryDirectory()
|
||||
{
|
||||
@ -660,7 +660,7 @@ namespace Tesses::Framework::Filesystem
|
||||
}
|
||||
MemoryFileData::MemoryFileData()
|
||||
{
|
||||
this->lastWrite = time(NULL);
|
||||
this->lastWrite = Date::DateTime::NowUTC();
|
||||
this->canAccess=true;
|
||||
this->readers=0;
|
||||
|
||||
|
||||
@ -288,7 +288,7 @@ namespace Tesses::Framework::Filesystem
|
||||
vfs->DeleteFile(destPath);
|
||||
|
||||
}
|
||||
void MountableFilesystem::GetDate(VFSPath path, time_t& lastWrite, time_t& lastAccess)
|
||||
void MountableFilesystem::GetDate(VFSPath path, Date::DateTime& lastWrite, Date::DateTime& lastAccess)
|
||||
{
|
||||
|
||||
path = path.CollapseRelativeParents();
|
||||
@ -302,7 +302,7 @@ namespace Tesses::Framework::Filesystem
|
||||
if(vfs != nullptr)
|
||||
vfs->GetDate(destPath,lastWrite,lastAccess);
|
||||
}
|
||||
void MountableFilesystem::SetDate(VFSPath path, time_t lastWrite, time_t lastAccess)
|
||||
void MountableFilesystem::SetDate(VFSPath path, Date::DateTime lastWrite, Date::DateTime lastAccess)
|
||||
{
|
||||
|
||||
path = path.CollapseRelativeParents();
|
||||
|
||||
@ -107,11 +107,11 @@ namespace Tesses::Framework::Filesystem
|
||||
delete enumerator;
|
||||
});
|
||||
}
|
||||
void SubdirFilesystem::GetDate(VFSPath path, time_t& lastWrite, time_t& lastAccess)
|
||||
void SubdirFilesystem::GetDate(VFSPath path, Date::DateTime& lastWrite, Date::DateTime& lastAccess)
|
||||
{
|
||||
this->parent->GetDate(ToParent(path),lastWrite,lastAccess);
|
||||
}
|
||||
void SubdirFilesystem::SetDate(VFSPath path, time_t lastWrite, time_t lastAccess)
|
||||
void SubdirFilesystem::SetDate(VFSPath path, Date::DateTime lastWrite, Date::DateTime lastAccess)
|
||||
{
|
||||
this->parent->SetDate(ToParent(path),lastWrite,lastAccess);
|
||||
}
|
||||
|
||||
@ -490,11 +490,11 @@ namespace Tesses::Framework::Filesystem
|
||||
}
|
||||
DeleteDirectory(path);
|
||||
}
|
||||
void VFS::GetDate(VFSPath path, time_t& lastWrite, time_t& lastAccess)
|
||||
void VFS::GetDate(VFSPath path, Date::DateTime& lastWrite, Date::DateTime& lastAccess)
|
||||
{
|
||||
|
||||
}
|
||||
void VFS::SetDate(VFSPath path, time_t lastWrite, time_t lastAccess)
|
||||
void VFS::SetDate(VFSPath path, Date::DateTime lastWrite, Date::DateTime lastAccess)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user