Added memoryfilesystem and working on c wrapper

This commit is contained in:
2025-01-03 05:50:44 -06:00
parent 8e4ec4ee3e
commit 7e6f0f1fca
17 changed files with 1229 additions and 8 deletions

View File

@ -57,16 +57,21 @@ namespace Tesses::Framework::Streams
}
bool FileStream::CanRead()
{
return this->canRead;
return this->canRead && this->f;
}
bool FileStream::CanWrite()
{
return this->canWrite;
return this->canWrite && this->f;
}
bool FileStream::CanSeek()
{
return this->canSeek;
return this->canSeek && this->f;
}
bool FileStream::EndOfStream()
{
return feof(this->f);
}
int64_t FileStream::GetPosition()
{
#if defined(_WIN32)

View File

@ -15,7 +15,7 @@ namespace Tesses::Framework::Streams
{
if(this->offset >= this->buffer.size()) return 0;
size_t toRead = std::min(sz, this->buffer.size()-this->offset);
memcpy(buff, this->buffer.data() + this->offset, sz);
memcpy(buff, this->buffer.data() + this->offset, toRead);
this->offset += toRead;
return toRead;
}

View File

@ -232,6 +232,13 @@ namespace Tesses::Framework::Streams {
memset(&addr, 0, sizeof(addr));
addr.sin_family = AF_INET;
addr.sin_port = htons(port);
int on=1;
#if defined(SO_REUSEPORT)
NETWORK_SETSOCKOPT(this->sock,SOL_SOCKET,SO_REUSEPORT,(const char*)&on, (socklen_t)sizeof(on));
#endif
#if defined(SO_REUSEADDR)
NETWORK_SETSOCKOPT(this->sock,SOL_SOCKET,SO_REUSEADDR,(const char*)&on, (socklen_t)sizeof(on));
#endif
if(NETWORK_BIND(this->sock, (const sockaddr*)&addr, (socklen_t)sizeof(addr)) != 0)
{
this->valid = false;
@ -432,7 +439,13 @@ namespace Tesses::Framework::Streams {
}
SetPort((struct sockaddr*)&addr, port);
int on=1;
#if defined(SO_REUSEPORT)
NETWORK_SETSOCKOPT(this->sock,SOL_SOCKET,SO_REUSEPORT,(const char*)&on, (socklen_t)sizeof(on));
#endif
#if defined(SO_REUSEADDR)
NETWORK_SETSOCKOPT(this->sock,SOL_SOCKET,SO_REUSEADDR,(const char*)&on, (socklen_t)sizeof(on));
#endif
int r = NETWORK_BIND(this->sock, (struct sockaddr*)&addr, sizeof(addr));
if(r != 0)
{

View File

@ -95,7 +95,7 @@ namespace Tesses::Framework::Streams {
void Stream::CopyTo(Stream* strm, size_t buffSize)
{
if(strm != nullptr)
strm->CopyTo(*strm, buffSize);
this->CopyTo(*strm, buffSize);
}
void Stream::CopyTo(Stream& strm, size_t buffSize)
{