/* */ #ifndef D_SHA1_IO_FILE_H #define D_SHA1_IO_FILE_H #include "IOFile.h" #include "MessageDigest.h" #include namespace aria2 { // Class to calculate SHA1 hash value for data written into this // object. No file I/O is done in this class. class SHA1IOFile : public IOFile { public: SHA1IOFile(); std::string digest(); protected: // Not implemented virtual size_t onRead(void* ptr, size_t count) CXX11_OVERRIDE; virtual size_t onWrite(const void* ptr, size_t count) CXX11_OVERRIDE; // Not implemented virtual char* onGets(char* s, int size) CXX11_OVERRIDE; virtual int onVprintf(const char* format, va_list va) CXX11_OVERRIDE; virtual int onFlush() CXX11_OVERRIDE; virtual int onClose() CXX11_OVERRIDE; virtual bool onSupportsColor() CXX11_OVERRIDE; virtual bool isError() const CXX11_OVERRIDE; virtual bool isEOF() const CXX11_OVERRIDE; virtual bool isOpen() const CXX11_OVERRIDE; private: std::unique_ptr sha1_; }; } // namespace aria2 #endif // D_SHA1_IO_FILE_H