]> git.tdb.fi Git - libs/core.git/blobdiff - source/io/file.cpp
Use vectors for storage in Poller
[libs/core.git] / source / io / file.cpp
index 666b1edc784b9fc9d0bc76cf29d77b82ff80b826..74b9f9fde19e49983e35098ea06c0c6c80bcfd0e 100644 (file)
@@ -28,10 +28,16 @@ File::~File()
 
 void File::set_block(bool b)
 {
-       mode = b?(mode&~M_NONBLOCK):(mode|M_NONBLOCK);
+       adjust_mode(mode, M_NONBLOCK, !b);
        sys_set_blocking(handle, b);
 }
 
+void File::set_inherit(bool i)
+{
+       adjust_mode(mode, M_INHERIT, i);
+       sys_set_inherit(handle, i);
+}
+
 unsigned File::do_write(const char *buf, unsigned size)
 {
        check_access(M_WRITE);
@@ -39,7 +45,7 @@ unsigned File::do_write(const char *buf, unsigned size)
        if(size==0)
                return 0;
 
-#ifdef WIN32
+#ifdef _WIN32
        if(mode&M_APPEND)
                seek(0, S_END);
 #endif
@@ -91,6 +97,16 @@ BufferedFile::BufferedFile(const string &fn, Mode m, File::CreateMode cm):
        file.signal_end_of_file.connect(sigc::mem_fun(this, &BufferedFile::set_eof));
 }
 
+void BufferedFile::set_block(bool b)
+{
+       file.set_block(b);
+}
+
+void BufferedFile::set_inherit(bool)
+{
+       throw logic_error("BufferedFile::set_inherit");
+}
+
 unsigned BufferedFile::do_write(const char *buf, unsigned size)
 {
        unsigned ret = buffer.write(buf, size);
@@ -128,6 +144,11 @@ int BufferedFile::get()
        return ret;
 }
 
+const Handle &BufferedFile::get_handle(Mode)
+{
+       throw logic_error("BufferedFile::get_handle");
+}
+
 SeekOffset BufferedFile::seek(SeekOffset offset, SeekType type)
 {
        if(type==S_CUR)