![]() |
![]() |
00001 #ifndef CLASSLIB_STORAGE_INPUT_STREAM_H 00002 # define CLASSLIB_STORAGE_INPUT_STREAM_H 00003 00004 //<<<<<< INCLUDES >>>>>> 00005 00006 # include "classlib/iotools/InputStream.h" 00007 00008 namespace lat { 00009 //<<<<<< PUBLIC DEFINES >>>>>> 00010 //<<<<<< PUBLIC CONSTANTS >>>>>> 00011 //<<<<<< PUBLIC TYPES >>>>>> 00012 00013 class Storage; 00014 00015 //<<<<<< PUBLIC VARIABLES >>>>>> 00016 //<<<<<< PUBLIC FUNCTIONS >>>>>> 00017 //<<<<<< CLASS DECLARATIONS >>>>>> 00018 00019 class StorageInputStream : public InputStream 00020 { 00021 public: 00022 StorageInputStream (Storage *input); 00023 ~StorageInputStream (void); 00024 00025 using InputStream::read; 00026 virtual IOSize available (void); 00027 virtual IOSize read (void *into, IOSize n); 00028 virtual IOSize readv (IOBuffer *into, IOSize buffers); 00029 virtual IOSize skip (IOSize n); 00030 virtual void close (void); 00031 virtual void reset (void); 00032 00033 protected: 00034 Storage *m_storage; //< Actual input. 00035 }; 00036 00037 //<<<<<< INLINE PUBLIC FUNCTIONS >>>>>> 00038 //<<<<<< INLINE MEMBER FUNCTIONS >>>>>> 00039 00040 } // namespace lat 00041 #endif // CLASSLIB_STORAGE_INPUT_STREAM_H