add sendfile method for streamsocket (#4007)

* add sendfile method for streamsocket

* add mswsock.lib to the project files and templates

* remove /DPOCO_NO_AUTOMATIC_LIBS for cmake windows build

* merge from upstream

* merge from upstream

* fix code stile
add NotImplemented exception for unsupported platforms
exculude <sys/sendfile.h> for POCO_EMSCRIPTEN, because https://
github.com/emscripten-core/emscripten/pull/16234

* add iostream include for std::cout

* fix compilation for emscripten (wrap sendfile)
This commit is contained in:
Alexander B
2023-12-11 12:47:03 +03:00
committed by GitHub
parent 689a81c4c4
commit 24b7122f43
107 changed files with 350 additions and 99 deletions

View File

@@ -30,6 +30,8 @@ class Foundation_API FileStreamBuf: public BufferedBidirectionalStreamBuf
/// This stream buffer handles Fileio
{
public:
using NativeHandle = HANDLE;
FileStreamBuf();
/// Creates a FileStreamBuf.
@@ -49,6 +51,12 @@ public:
std::streampos seekpos(std::streampos pos, std::ios::openmode mode = std::ios::in | std::ios::out);
/// change to specified position, according to mode
NativeHandle nativeHandle() const;
/// Returns native file descriptor handle
Poco::UInt64 size() const;
/// Returns file size
protected:
enum
{
@@ -60,7 +68,7 @@ protected:
private:
std::string _path;
HANDLE _handle;
NativeHandle _handle;
UInt64 _pos;
};