LCOV - code coverage report
Current view: top level - toolkit/components/url-classifier - nsCheckSummedOutputStream.cpp (source / functions) Hit Total Coverage
Test: output.info Lines: 19 19 100.0 %
Date: 2017-07-14 16:53:18 Functions: 6 6 100.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : //* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
       2             : /* This Source Code Form is subject to the terms of the Mozilla Public
       3             :  * License, v. 2.0. If a copy of the MPL was not distributed with this
       4             :  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
       5             : 
       6             : #include "nsILocalFile.h"
       7             : #include "nsCRT.h"
       8             : #include "nsIFile.h"
       9             : #include "nsISupportsImpl.h"
      10             : #include "nsCheckSummedOutputStream.h"
      11             : 
      12             : ////////////////////////////////////////////////////////////////////////////////
      13             : // nsCheckSummedOutputStream
      14             : 
      15          66 : NS_IMPL_ISUPPORTS_INHERITED(nsCheckSummedOutputStream,
      16             :                             nsBufferedOutputStream,
      17             :                             nsISafeOutputStream)
      18             : 
      19             : NS_IMETHODIMP
      20           6 : nsCheckSummedOutputStream::Init(nsIOutputStream* stream, uint32_t bufferSize)
      21             : {
      22             :   nsresult rv;
      23           6 :   mHash = do_CreateInstance(NS_CRYPTO_HASH_CONTRACTID, &rv);
      24           6 :   NS_ENSURE_SUCCESS(rv, rv);
      25             : 
      26           6 :   rv = mHash->Init(nsICryptoHash::MD5);
      27           6 :   NS_ENSURE_SUCCESS(rv, rv);
      28             : 
      29           6 :   return nsBufferedOutputStream::Init(stream, bufferSize);
      30             : }
      31             : 
      32             : NS_IMETHODIMP
      33           6 : nsCheckSummedOutputStream::Finish()
      34             : {
      35           6 :   nsresult rv = mHash->Finish(false, mCheckSum);
      36           6 :   NS_ENSURE_SUCCESS(rv, rv);
      37             : 
      38             :   uint32_t written;
      39           6 :   rv = nsBufferedOutputStream::Write(reinterpret_cast<const char*>(mCheckSum.BeginReading()),
      40           6 :                                      mCheckSum.Length(), &written);
      41           6 :   NS_ASSERTION(written == mCheckSum.Length(), "Error writing stream checksum");
      42           6 :   NS_ENSURE_SUCCESS(rv, rv);
      43             : 
      44           6 :   return nsBufferedOutputStream::Finish();
      45             : }
      46             : 
      47             : NS_IMETHODIMP
      48         198 : nsCheckSummedOutputStream::Write(const char *buf, uint32_t count, uint32_t *result)
      49             : {
      50         198 :   nsresult rv = mHash->Update(reinterpret_cast<const uint8_t*>(buf), count);
      51         198 :   NS_ENSURE_SUCCESS(rv, rv);
      52             : 
      53         198 :   return nsBufferedOutputStream::Write(buf, count, result);
      54             : }
      55             : 
      56             : ////////////////////////////////////////////////////////////////////////////////

Generated by: LCOV version 1.13