Audacity 3.2.0
Public Member Functions | Private Attributes | List of all members
audacity::network_manager::anonymous_namespace{RequestPayload.cpp}::FileRequestPayloadStream Class Referencefinal
Inheritance diagram for audacity::network_manager::anonymous_namespace{RequestPayload.cpp}::FileRequestPayloadStream:
[legend]
Collaboration diagram for audacity::network_manager::anonymous_namespace{RequestPayload.cpp}::FileRequestPayloadStream:
[legend]

Public Member Functions

 FileRequestPayloadStream (const std::string &filePath)
 
bool HasData () const override
 return true on if stream is not empty More...
 
int64_t GetDataSize () const override
 May return 0 even if HasData() returns true. More...
 
bool Seek (int64_t offset, SeekDirection direction) override
 returns true on success More...
 
int64_t Read (void *buffer, int64_t size) override
 returns number of bytes read More...
 
- Public Member Functions inherited from audacity::network_manager::RequestPayloadStream
virtual ~RequestPayloadStream ()
 
virtual bool HasData () const =0
 return true on if stream is not empty More...
 
virtual int64_t GetDataSize () const =0
 May return 0 even if HasData() returns true. More...
 
virtual bool Seek (int64_t offset, SeekDirection direction)=0
 returns true on success More...
 
virtual int64_t Read (void *buffer, int64_t size)=0
 returns number of bytes read More...
 

Private Attributes

wxString mFilePath
 
wxFile mFile
 
wxStructStat mFileStat
 

Additional Inherited Members

- Public Types inherited from audacity::network_manager::RequestPayloadStream
enum class  SeekDirection { Start , Current , End }
 

Detailed Description

Definition at line 126 of file RequestPayload.cpp.

Constructor & Destructor Documentation

◆ FileRequestPayloadStream()

audacity::network_manager::anonymous_namespace{RequestPayload.cpp}::FileRequestPayloadStream::FileRequestPayloadStream ( const std::string &  filePath)
inline

Member Function Documentation

◆ GetDataSize()

int64_t audacity::network_manager::anonymous_namespace{RequestPayload.cpp}::FileRequestPayloadStream::GetDataSize ( ) const
inlineoverridevirtual

May return 0 even if HasData() returns true.

Implements audacity::network_manager::RequestPayloadStream.

Definition at line 141 of file RequestPayload.cpp.

142 {
143 return mFileStat.st_size;
144 }

◆ HasData()

bool audacity::network_manager::anonymous_namespace{RequestPayload.cpp}::FileRequestPayloadStream::HasData ( ) const
inlineoverridevirtual

return true on if stream is not empty

Implements audacity::network_manager::RequestPayloadStream.

Definition at line 136 of file RequestPayload.cpp.

137 {
138 return mFile.IsOpened();
139 }

◆ Read()

int64_t audacity::network_manager::anonymous_namespace{RequestPayload.cpp}::FileRequestPayloadStream::Read ( void *  buffer,
int64_t  size 
)
inlineoverridevirtual

returns number of bytes read

Implements audacity::network_manager::RequestPayloadStream.

Definition at line 166 of file RequestPayload.cpp.

167 {
168 return mFile.Read(buffer, size);
169 }

References size.

◆ Seek()

bool audacity::network_manager::anonymous_namespace{RequestPayload.cpp}::FileRequestPayloadStream::Seek ( int64_t  offset,
SeekDirection  direction 
)
inlineoverridevirtual

returns true on success

Implements audacity::network_manager::RequestPayloadStream.

Definition at line 146 of file RequestPayload.cpp.

147 {
148 const auto platformSeekDirection = [&]
149 {
150 switch (direction)
151 {
153 return wxFromStart;
155 return wxFromCurrent;
157 return wxFromEnd;
158 default:
159 return wxFromStart;
160 }
161 }();
162
163 return mFile.Seek(offset, platformSeekDirection) != wxInvalidOffset;
164 }

Member Data Documentation

◆ mFile

wxFile audacity::network_manager::anonymous_namespace{RequestPayload.cpp}::FileRequestPayloadStream::mFile
private

Definition at line 173 of file RequestPayload.cpp.

◆ mFilePath

wxString audacity::network_manager::anonymous_namespace{RequestPayload.cpp}::FileRequestPayloadStream::mFilePath
private

Definition at line 172 of file RequestPayload.cpp.

◆ mFileStat

wxStructStat audacity::network_manager::anonymous_namespace{RequestPayload.cpp}::FileRequestPayloadStream::mFileStat
private

Definition at line 174 of file RequestPayload.cpp.


The documentation for this class was generated from the following file: