Add changeable server

This commit is contained in:
2025-10-14 23:12:43 -05:00
parent 1a419d9575
commit 931cf49320
13 changed files with 139 additions and 13 deletions

View File

@@ -111,7 +111,7 @@ namespace Tesses::Framework::Streams
if(!f) return;
if(this->owns)
{
fclose(this->f);
fclose(this->f);
f=NULL;
}
}

View File

@@ -53,7 +53,7 @@ namespace Tesses::Framework::Streams {
buffer += read;
len -= read;
} while(read > 0);
} while(read > 0 && !this->EndOfStream());
}
bool Stream::CanRead()
{
@@ -96,6 +96,27 @@ namespace Tesses::Framework::Streams {
{
}
void Stream::CopyToLimit(std::shared_ptr<Stream> strm,uint64_t len, size_t buffSize)
{
size_t read;
uint8_t* buffer = new uint8_t[buffSize];
uint64_t offset = 0;
do {
if(offset >= len) break;
read = (size_t)std::min(len-offset,(uint64_t)buffSize);
read = this->Read(buffer,read);
strm->WriteBlock(buffer, read);
offset += read;
} while(read > 0 && !strm->EndOfStream());
strm->Flush();
delete[] buffer;
}
void Stream::CopyTo(std::shared_ptr<Stream> strm, size_t buffSize)
{
@@ -107,7 +128,7 @@ namespace Tesses::Framework::Streams {
read = this->Read(buffer,buffSize);
strm->WriteBlock(buffer, read);
} while(read > 0);
} while(read > 0 && !strm->EndOfStream());
strm->Flush();
delete[] buffer;