aboutsummaryrefslogtreecommitdiff
path: root/libbutl/fdstream.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'libbutl/fdstream.hxx')
-rw-r--r--libbutl/fdstream.hxx13
1 files changed, 12 insertions, 1 deletions
diff --git a/libbutl/fdstream.hxx b/libbutl/fdstream.hxx
index 4dc89a3..730d4dd 100644
--- a/libbutl/fdstream.hxx
+++ b/libbutl/fdstream.hxx
@@ -137,6 +137,11 @@ namespace butl
class LIBBUTL_SYMEXPORT fdstreambuf: public bufstreambuf
{
public:
+ // Reasonable (for stack allocation) buffer size that provides decent
+ // performance.
+ //
+ static const std::size_t buffer_size = 8192;
+
fdstreambuf () = default;
// Unless specified, the current read/write position is assumed to
@@ -174,6 +179,9 @@ namespace butl
bool
blocking (bool);
+ bool
+ blocking () const {return !non_blocking_;}
+
public:
using base = bufstreambuf;
@@ -238,7 +246,7 @@ namespace butl
private:
auto_fd fd_;
- char buf_[8192];
+ char buf_[buffer_size];
bool non_blocking_ = false;
};
@@ -311,6 +319,9 @@ namespace butl
int
fd () const {return buf_.fd ();}
+ bool
+ blocking () const {return buf_.blocking ();}
+
protected:
fdstreambuf buf_;
};