diff tango/tango/io/stream/DataFileStream.d @ 132:1700239cab2e trunk

[svn r136] MAJOR UNSTABLE UPDATE!!! Initial commit after moving to Tango instead of Phobos. Lots of bugfixes... This build is not suitable for most things.
author lindquist
date Fri, 11 Jan 2008 17:57:40 +0100
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tango/tango/io/stream/DataFileStream.d	Fri Jan 11 17:57:40 2008 +0100
@@ -0,0 +1,121 @@
+/*******************************************************************************
+
+        copyright:      Copyright (c) 2007 Kris Bell. All rights reserved
+
+        license:        BSD style: $(LICENSE)
+
+        version:        Initial release: Nov 2007
+
+        author:         Kris
+
+*******************************************************************************/
+
+module tango.io.stream.DataFileStream;
+
+private import tango.io.FileConduit;
+
+private import tango.io.stream.DataStream;
+
+/*******************************************************************************
+
+        Composes a seekable file with buffered binary input. A seek causes
+        the input buffer to be cleared
+
+*******************************************************************************/
+
+class DataFileInput : DataInput
+{
+        private FileConduit conduit;
+
+        /***********************************************************************
+
+                Wrap a FileConduit instance
+
+        ***********************************************************************/
+
+        this (FileConduit file, uint buffer=uint.max)
+        {
+                super (conduit = file, buffer);
+        }
+
+        /***********************************************************************
+
+                Set the file seek position to the specified offset, and 
+                clear the input buffer
+        
+        ***********************************************************************/
+
+        final long seek (long offset)
+        {
+                host.clear;
+                return conduit.seek (offset);
+        }
+
+        /***********************************************************************
+
+                Return the underlying conduit
+
+        ***********************************************************************/
+
+        final FileConduit file ()
+        {       
+                return conduit;
+        }
+}
+
+
+/*******************************************************************************
+       
+        Composes a seekable file with buffered binary output. A seek causes
+        the output buffer to be flushed first
+
+*******************************************************************************/
+
+class DataFileOutput : DataOutput
+{
+        private FileConduit conduit;
+
+        /***********************************************************************
+
+                Wrap a FileConduit instance
+
+        ***********************************************************************/
+
+        this (FileConduit file, uint buffer=uint.max)
+        {
+                super (conduit = file, buffer);
+        }
+
+        /***********************************************************************
+
+                Set the file seek position to the specified offset, after 
+                flushing the output buffer
+        
+        ***********************************************************************/
+
+        final long seek (long offset)
+        {
+                host.flush;
+                return conduit.seek (offset);
+        }
+
+        /***********************************************************************
+
+                Return the underlying conduit
+
+        ***********************************************************************/
+
+        final FileConduit file ()
+        {       
+                return conduit;
+        }
+}
+
+
+/*******************************************************************************
+
+*******************************************************************************/
+
+debug (UnitTest)
+{
+}