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

@@ -31,6 +31,8 @@ class Foundation_API FileStreamBuf: public BufferedBidirectionalStreamBuf
/// This stream buffer handles Fileio
{
public:
using NativeHandle = int;
FileStreamBuf();
/// Creates a FileStreamBuf.
@@ -50,6 +52,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
{
@@ -61,7 +69,7 @@ protected:
private:
std::string _path;
int _fd;
NativeHandle _fd;
std::streamoff _pos;
};