Allow you do explicitly close stream, vfs

This commit is contained in:
2025-09-29 03:53:54 -05:00
parent d785508571
commit 234ec372a4
19 changed files with 54 additions and 7 deletions

View File

@@ -3,6 +3,7 @@
namespace Tesses::Framework::Filesystem
{
MemoryFilesystemStream::MemoryFilesystemStream(std::shared_ptr<Tesses::Framework::Threading::Mutex> mtx, std::shared_ptr<MemoryFileData> data,bool canRead, bool canWrite, bool canSeek)
{
this->mtx = mtx;
@@ -635,7 +636,7 @@ namespace Tesses::Framework::Filesystem
}
MemoryFilesystem::~MemoryFilesystem()
{
}
MemoryFilesystem::MemoryFilesystem()
{

View File

@@ -21,6 +21,13 @@ namespace Tesses::Framework::Filesystem
for(auto item : this->directories) delete item;
}
void MountableFilesystem::Close()
{
this->root=nullptr;
for(auto item : this->directories) delete item;
this->directories.clear();
}
void MountableFilesystem::GetFS(VFSPath srcPath, VFSPath& destRoot, VFSPath& destPath, std::shared_ptr<VFS>& vfs)
{

View File

@@ -517,5 +517,7 @@ namespace Tesses::Framework::Filesystem
void VFS::Chmod(VFSPath path, uint32_t mode) {
}
void VFS::Close() {
}
}

View File

@@ -58,4 +58,9 @@ namespace Tesses::Framework::Streams {
{
delete buffer;
}
void BufferedStream::Close()
{
this->strm->Close();
}
}

View File

@@ -104,7 +104,10 @@ namespace Tesses::Framework::Streams
}
FileStream::~FileStream()
{
Close();
}
void FileStream::Close()
{
if(!f) return;
if(this->owns)
fclose(this->f);

View File

@@ -67,4 +67,8 @@ namespace Tesses::Framework::Streams
break;
}
}
void MemoryStream::Close()
{
this->buffer.clear();
}
}

View File

@@ -771,10 +771,15 @@ namespace Tesses::Framework::Streams {
if(sz2 < 0) return 0;
return (size_t)sz2;
}
NetworkStream::~NetworkStream()
void NetworkStream::Close()
{
if(this->owns && this->success)
NETWORK_CLOSE(this->sock);
this->success=0;
}
NetworkStream::~NetworkStream()
{
Close();
}
void NetworkStream::SetNoDelay(bool noDelay)
{
@@ -888,6 +893,10 @@ NetworkStream::~NetworkStream()
void NetworkStream::SetNoDelay(bool noDelay)
{
}
void NetworkStream::Close()
{
}
uint16_t NetworkStream::GetPort()
{

View File

@@ -122,6 +122,11 @@ namespace Tesses::Framework::Streams {
}
PtyStream::~PtyStream()
{
Close();
}
void PtyStream::Close()
{
if(this->eos) return;
this->eos=true;
#if !defined(GEKKO) && !defined(__PS2__) && !defined(_WIN32) && !defined(__SWITCH__) && !defined(__FreeBSD__) && defined(TESSESFRAMEWORK_ENABLE_PROCESS)
close(this->socket);

View File

@@ -91,6 +91,10 @@ namespace Tesses::Framework::Streams {
void Stream::Seek(int64_t pos, SeekOrigin whence)
{
}
void Stream::Close()
{
}
void Stream::CopyTo(std::shared_ptr<Stream> strm, size_t buffSize)