Added memoryfilesystem and working on c wrapper
This commit is contained in:
@ -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)
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
@ -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)
|
||||
{
|
||||
|
||||
@ -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)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user