32 #ifndef _NPT_STREAMS_H_    33 #define _NPT_STREAMS_H_    39 #include "NptReferences.h"    40 #include "NptConstants.h"    41 #include "NptResults.h"    42 #include "NptDataBuffer.h"    43 #include "NptStrings.h"    53 const int NPT_ERROR_READ_FAILED  = NPT_ERROR_BASE_IO - 0;
    54 const int NPT_ERROR_WRITE_FAILED = NPT_ERROR_BASE_IO - 1;
    55 const int NPT_ERROR_EOS          = NPT_ERROR_BASE_IO - 2;
    67     virtual NPT_Result Load(
NPT_DataBuffer& buffer, NPT_Size max_read = 0);
    68     virtual NPT_Result Read(
void*     buffer, 
    69                             NPT_Size  bytes_to_read, 
    70                             NPT_Size* bytes_read = NULL) = 0;
    71     virtual NPT_Result ReadFully(
void*     buffer, 
    72                                  NPT_Size  bytes_to_read);
    73     virtual NPT_Result Seek(NPT_Position offset) = 0;
    74     virtual NPT_Result Skip(NPT_Size offset);
    75     virtual NPT_Result Tell(NPT_Position& offset) = 0;
    76     virtual NPT_Result GetSize(NPT_LargeSize& size) = 0;
    77     virtual NPT_Result GetAvailable(NPT_LargeSize& available) = 0;
    80     NPT_Result ReadUI64(NPT_UInt64& value);
    81     NPT_Result ReadUI32(NPT_UInt32& value);
    82     NPT_Result ReadUI24(NPT_UInt32& value);
    83     NPT_Result ReadUI16(NPT_UInt16& value);
    84     NPT_Result ReadUI08(NPT_UInt8&  value);    
    99     virtual NPT_Result Write(
const void* buffer, 
   100                              NPT_Size    bytes_to_write, 
   101                              NPT_Size*   bytes_written = NULL) = 0;
   102     virtual NPT_Result WriteFully(
const void* buffer, 
   103                                   NPT_Size    bytes_to_write);
   104     virtual NPT_Result WriteString(
const char* string_buffer);
   105     virtual NPT_Result WriteLine(
const char* line_buffer);
   106     virtual NPT_Result Seek(NPT_Position offset) = 0;
   107     virtual NPT_Result Tell(NPT_Position& offset) = 0;
   108     virtual NPT_Result Flush() { 
return NPT_SUCCESS; }
   111     NPT_Result WriteUI64(NPT_UInt64 value);
   112     NPT_Result WriteUI32(NPT_UInt32 value);
   113     NPT_Result WriteUI24(NPT_UInt32 value);
   114     NPT_Result WriteUI16(NPT_UInt16 value);
   115     NPT_Result WriteUI08(NPT_UInt8  value);    
   125                                   NPT_Position      offset = 0,
   126                                   NPT_LargeSize     size   = 0, 
   127                                   NPT_LargeSize*    bytes_written = NULL);
   142     NPT_Result Seek(NPT_Position offset)
 override {
   143         return InputSeek(offset);
   145     NPT_Result Tell(NPT_Position& offset)
 override {
   146         return InputTell(offset);
   151     virtual NPT_Result InputSeek(NPT_Position  offset) = 0;
   152     virtual NPT_Result InputTell(NPT_Position& offset) = 0;
   168     NPT_Result Seek(NPT_Position offset)
 override {
   169         return OutputSeek(offset);
   171     NPT_Result Tell(NPT_Position& offset)
 override {
   172         return OutputTell(offset);
   177     virtual NPT_Result OutputSeek(NPT_Position  offset) = 0;
   178     virtual NPT_Result OutputTell(NPT_Position& offset) = 0;
   198     NPT_Result Read(
void*     buffer, 
   199                     NPT_Size  bytes_to_read, 
   200                     NPT_Size* bytes_read = NULL) 
override;
   201     NPT_Result GetSize(NPT_LargeSize& size)
 override  { 
   202         size = m_Buffer.GetDataSize();    
   205     NPT_Result GetAvailable(NPT_LargeSize& available)
 override { 
   206         available = (NPT_LargeSize)m_Buffer.GetDataSize()-m_ReadOffset; 
   211     NPT_Result Write(
const void* buffer, 
   212                      NPT_Size    bytes_to_write, 
   213                      NPT_Size*   bytes_written = NULL) 
override;
   216     const NPT_Byte* GetData()
 const { 
return m_Buffer.GetData(); }
   217     NPT_Byte*       UseData()       { 
return m_Buffer.UseData(); }
   218     NPT_Size        GetDataSize()
 const   { 
return m_Buffer.GetDataSize(); }
   219     NPT_Size        GetBufferSize()
 const { 
return m_Buffer.GetBufferSize();}
   222     NPT_Result SetDataSize(NPT_Size size);
   226     NPT_Result InputSeek(NPT_Position offset) 
override;
   227     NPT_Result InputTell(NPT_Position& offset)
 override { 
   228         offset = m_ReadOffset; 
   233     NPT_Result OutputSeek(NPT_Position offset) 
override;
   234     NPT_Result OutputTell(NPT_Position& offset)
 override {
   235         offset = m_WriteOffset; 
   242     NPT_Size       m_ReadOffset;
   243     NPT_Size       m_WriteOffset;
   259     const NPT_String& GetString()
 const { 
return *m_String; }
   260     NPT_Result Reset() { 
if (m_String) m_String->SetLength(0); 
return NPT_SUCCESS; }
   263     NPT_Result Write(
const void* buffer, NPT_Size bytes_to_write, NPT_Size* bytes_written = NULL) 
override;
   265     NPT_Result Seek(NPT_Position )
 override  { 
return NPT_ERROR_NOT_SUPPORTED;   }
   266     NPT_Result Tell(NPT_Position& offset)
 override { offset = m_String->GetLength(); 
return NPT_SUCCESS; }
   270     bool        m_StringIsOwned;
   287     NPT_Result Read(
void*     buffer, 
   288                             NPT_Size  bytes_to_read, 
   289                             NPT_Size* bytes_read = NULL) 
override;
   290     NPT_Result Seek(NPT_Position offset) 
override;
   291     NPT_Result Tell(NPT_Position& offset) 
override;
   292     NPT_Result GetSize(NPT_LargeSize& size) 
override;
   293     NPT_Result GetAvailable(NPT_LargeSize& available) 
override;
   297     NPT_Position             m_Position;
   298     NPT_Position             m_Start;
   299     NPT_LargeSize            m_Size;
   313     NPT_Result Write(
const void* buffer, NPT_Size bytes_to_write, NPT_Size* bytes_written = NULL) 
override;
   315     NPT_Result Seek(NPT_Position )
 override  { 
return NPT_ERROR_NOT_SUPPORTED;   }
   316     NPT_Result Tell(NPT_Position& )
 override  { 
return NPT_ERROR_NOT_SUPPORTED;   }
   321 #endif // _NPT_STREAMS_H_ 
Definition: NptStreams.h:92
Definition: NptStreams.h:251
Definition: NptDataBuffer.h:44
Definition: NptStreams.h:184
Definition: NptStreams.h:164
Definition: NptStrings.h:57
Definition: NptStreams.h:305