diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2008-02-28 17:40:47 +0000 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2008-02-28 17:40:47 +0000 |
| commit | 3698b4680592accd47df25d904a5e240a2f43f5d (patch) | |
| tree | 090a1264805576e95077262acdaf5e2bdc1cdb7b /src/MessageDigestHelper.h | |
| parent | a1458a1642b6582c0b316e094e5008a10b4963a8 (diff) | |
2008-02-29 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Create MessageDigestHelper::staticSHA1DigestInit() which uses
statically declared sha1 MessageDigestContext.
* src/BtPieceMessage.cc: Use staticSHA1DigestInit() to avoid
initialization of short-lived MessageDigestContext.
* src/MessageDigestHelper.{h, cc}
* src/main.cc
Now DownloadCommand has a reference to MessageDigestContext to avoid
the initialization of MessageDigestContext every time in validating
chunk checksum.
* src/DownloadCommand.{h, cc}
Diffstat (limited to 'src/MessageDigestHelper.h')
| -rw-r--r-- | src/MessageDigestHelper.h | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/MessageDigestHelper.h b/src/MessageDigestHelper.h index d8c30ffd..54cfa028 100644 --- a/src/MessageDigestHelper.h +++ b/src/MessageDigestHelper.h @@ -37,6 +37,7 @@ #include "common.h" #include "SharedHandle.h" +#include "messageDigest.h" #include <string> namespace aria2 { @@ -44,6 +45,8 @@ namespace aria2 { class BinaryStream; class MessageDigestHelper { +private: + static MessageDigestContext* _sha1Ctx; public: /** * Returns message digest in hexadecimal representation. @@ -59,6 +62,30 @@ public: } /** + * staticSHA1DigestInit(), staticSHA1DigestFree(), staticSHA1Digest() + * use statically declared MessageDigestContext _sha1Ctx. + */ + /** + * Initializes _sha1Ctx + */ + static void staticSHA1DigestInit(); + + /** + * Frees allocated resources for _sha1Ctx + */ + static void staticSHA1DigestFree(); + + static std::string staticSHA1Digest(const SharedHandle<BinaryStream>& bs, + int64_t offset, int64_t length); + + /** + * ctx must be initialized or reseted before calling this function. + */ + static std::string digest(MessageDigestContext* ctx, + const SharedHandle<BinaryStream>& bs, + int64_t offset, int64_t length); + + /** * Calculates message digest of file denoted by filename. * Returns message digest in hexadecimal representation. * Digest algorithm is specified by algo. |
