diff options
Diffstat (limited to 'src/system_wrappers/interface/file_wrapper.h')
-rw-r--r-- | src/system_wrappers/interface/file_wrapper.h | 69 |
1 files changed, 38 insertions, 31 deletions
diff --git a/src/system_wrappers/interface/file_wrapper.h b/src/system_wrappers/interface/file_wrapper.h index 8f0cd8c246..4d174383e9 100644 --- a/src/system_wrappers/interface/file_wrapper.h +++ b/src/system_wrappers/interface/file_wrapper.h @@ -11,6 +11,8 @@ #ifndef WEBRTC_SYSTEM_WRAPPERS_INTERFACE_FILE_WRAPPER_H_ #define WEBRTC_SYSTEM_WRAPPERS_INTERFACE_FILE_WRAPPER_H_ +#include <stddef.h> + #include "common_types.h" #include "typedefs.h" @@ -18,11 +20,11 @@ // write from/to a file. namespace webrtc { + class FileWrapper : public InStream, public OutStream { public: - enum { kMaxFileNameSize = 1024}; - enum { kFileMaxTextMessageSize = 1024}; + static const size_t kMaxFileNameSize = 1024; // Factory method. Constructor disabled. static FileWrapper* Create(); @@ -31,42 +33,47 @@ public: virtual bool Open() const = 0; // Opens a file in read or write mode, decided by the readOnly parameter. - virtual WebRtc_Word32 OpenFile(const WebRtc_Word8* fileNameUTF8, - const bool readOnly, - const bool loop = false, - const bool text = false) = 0; + virtual int OpenFile(const char* fileNameUTF8, + bool readOnly, + bool loop = false, + bool text = false) = 0; - virtual WebRtc_Word32 CloseFile() = 0; + virtual int CloseFile() = 0; - // Limits the file size. - virtual WebRtc_Word32 SetMaxFileSize(WebRtc_Word32 bytes) = 0; + // Limits the file size to |bytes|. Writing will fail after the cap + // is hit. Pass zero to use an unlimited size. + virtual int SetMaxFileSize(size_t bytes) = 0; // Flush any pending writes. - virtual WebRtc_Word32 Flush() = 0; - - // Returns the opened file's name in fileNameUTF8. size is the allocated - // size of fileNameUTF8. The name will be truncated if the size of - // fileNameUTF8 is to small. - virtual WebRtc_Word32 FileName(WebRtc_Word8* fileNameUTF8, - WebRtc_UWord32 size) const = 0; - - // Write text to the opened file. The written text can contain plain text - // and text with type specifiers in the same way as sprintf works. - virtual WebRtc_Word32 WriteText(const WebRtc_Word8* text, ...) = 0; - - // Reads len number of bytes from buf to file. - virtual int Read(void* buf, int len) = 0; - - // Writes len number of bytes to buf from file. Please note that the actual - // writing to file may happen some time later. Call flush to force a write - // to take affect - virtual bool Write(const void *buf,int len) = 0; - + virtual int Flush() = 0; + + // Returns the opened file's name in |fileNameUTF8|. Provide the size of + // the buffer in bytes in |size|. The name will be truncated if |size| is + // too small. + virtual int FileName(char* fileNameUTF8, + size_t size) const = 0; + + // Write |format| to the opened file. Arguments are taken in the same manner + // as printf. That is, supply a format string containing text and + // specifiers. Returns the number of characters written or -1 on error. + virtual int WriteText(const char* format, ...) = 0; + + // Inherited from Instream. + // Reads |length| bytes from file to |buf|. Returns the number of bytes read + // or -1 on error. + virtual int Read(void* buf, int length) = 0; + + // Inherited from OutStream. + // Writes |length| bytes from |buf| to file. The actual writing may happen + // some time later. Call Flush() to force a write. + virtual bool Write(const void *buf, int length) = 0; + + // Inherited from both Instream and OutStream. // Rewinds the file to the start. Only available when OpenFile() has been - // called with loop argument set to true. Or readOnly argument has been set - // to false. + // called with |loop| == true or |readOnly| == true. virtual int Rewind() = 0; }; + } // namespace webrtc #endif // WEBRTC_SYSTEM_WRAPPERS_INTERFACE_FILE_WRAPPER_H_ |