LCOV - code coverage report
Current view: top level - dom/file - MultipartBlobImpl.h (source / functions) Hit Total Coverage
Test: output.info Lines: 0 23 0.0 %
Date: 2017-07-14 16:53:18 Functions: 0 8 0.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             : /* vim: set ts=8 sts=2 et sw=2 tw=80: */
       3             : /* This Source Code Form is subject to the terms of the Mozilla Public
       4             :  * License, v. 2.0. If a copy of the MPL was not distributed with this
       5             :  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
       6             : 
       7             : #ifndef mozilla_dom_MultipartBlobImpl_h
       8             : #define mozilla_dom_MultipartBlobImpl_h
       9             : 
      10             : #include "mozilla/Attributes.h"
      11             : #include "mozilla/ErrorResult.h"
      12             : #include "mozilla/Move.h"
      13             : #include "mozilla/dom/BaseBlobImpl.h"
      14             : 
      15             : namespace mozilla {
      16             : namespace dom {
      17             : 
      18             : class MultipartBlobImpl final : public BaseBlobImpl
      19             : {
      20             : public:
      21             :   NS_DECL_ISUPPORTS_INHERITED
      22             : 
      23             :   // Create as a file
      24             :   static already_AddRefed<MultipartBlobImpl>
      25             :   Create(nsTArray<RefPtr<BlobImpl>>&& aBlobImpls,
      26             :          const nsAString& aName,
      27             :          const nsAString& aContentType,
      28             :          ErrorResult& aRv);
      29             : 
      30             :   // Create as a blob
      31             :   static already_AddRefed<MultipartBlobImpl>
      32             :   Create(nsTArray<RefPtr<BlobImpl>>&& aBlobImpls,
      33             :          const nsAString& aContentType,
      34             :          ErrorResult& aRv);
      35             : 
      36             :   // Create as a file to be later initialized
      37           0 :   explicit MultipartBlobImpl(const nsAString& aName)
      38           0 :     : BaseBlobImpl(aName, EmptyString(), UINT64_MAX),
      39           0 :       mIsFromNsIFile(false)
      40             :   {
      41           0 :   }
      42             : 
      43             :   // Create as a blob to be later initialized
      44           0 :   MultipartBlobImpl()
      45           0 :     : BaseBlobImpl(EmptyString(), UINT64_MAX),
      46           0 :       mIsFromNsIFile(false)
      47             :   {
      48           0 :   }
      49             : 
      50             :   void InitializeBlob(ErrorResult& aRv);
      51             : 
      52             :   void InitializeBlob(const Sequence<Blob::BlobPart>& aData,
      53             :                       const nsAString& aContentType,
      54             :                       bool aNativeEOL,
      55             :                       ErrorResult& aRv);
      56             : 
      57             :   nsresult InitializeChromeFile(nsIFile* aData,
      58             :                                 const nsAString& aType,
      59             :                                 const nsAString& aName,
      60             :                                 bool aLastModifiedPassed,
      61             :                                 int64_t aLastModified,
      62             :                                 bool aIsFromNsIFile);
      63             : 
      64             :   virtual already_AddRefed<BlobImpl>
      65             :   CreateSlice(uint64_t aStart, uint64_t aLength,
      66             :               const nsAString& aContentType,
      67             :               ErrorResult& aRv) override;
      68             : 
      69           0 :   virtual uint64_t GetSize(ErrorResult& aRv) override
      70             :   {
      71           0 :     return mLength;
      72             :   }
      73             : 
      74             :   virtual void GetInternalStream(nsIInputStream** aInputStream,
      75             :                                  ErrorResult& aRv) override;
      76             : 
      77           0 :   virtual const nsTArray<RefPtr<BlobImpl>>* GetSubBlobImpls() const override
      78             :   {
      79           0 :     return mBlobImpls.Length() ? &mBlobImpls : nullptr;
      80             :   }
      81             : 
      82             :   virtual void GetMozFullPathInternal(nsAString& aFullPath,
      83             :                                       ErrorResult& aRv) const override;
      84             : 
      85             :   virtual nsresult
      86             :   SetMutable(bool aMutable) override;
      87             : 
      88             :   void SetName(const nsAString& aName)
      89             :   {
      90             :     mName = aName;
      91             :   }
      92             : 
      93             :   virtual bool MayBeClonedToOtherThreads() const override;
      94             : 
      95             : protected:
      96           0 :   MultipartBlobImpl(nsTArray<RefPtr<BlobImpl>>&& aBlobImpls,
      97             :                     const nsAString& aName,
      98             :                     const nsAString& aContentType)
      99           0 :     : BaseBlobImpl(aName, aContentType, UINT64_MAX),
     100           0 :       mBlobImpls(Move(aBlobImpls)),
     101           0 :       mIsFromNsIFile(false)
     102             :   {
     103           0 :   }
     104             : 
     105           0 :   MultipartBlobImpl(nsTArray<RefPtr<BlobImpl>>&& aBlobImpls,
     106             :                     const nsAString& aContentType)
     107           0 :     : BaseBlobImpl(aContentType, UINT64_MAX),
     108           0 :       mBlobImpls(Move(aBlobImpls)),
     109           0 :       mIsFromNsIFile(false)
     110             :   {
     111           0 :   }
     112             : 
     113           0 :   virtual ~MultipartBlobImpl() {}
     114             : 
     115             :   void SetLengthAndModifiedDate(ErrorResult& aRv);
     116             : 
     117             :   nsTArray<RefPtr<BlobImpl>> mBlobImpls;
     118             :   bool mIsFromNsIFile;
     119             : };
     120             : 
     121             : } // dom namespace
     122             : } // mozilla namespace
     123             : 
     124             : #endif // mozilla_dom_MultipartBlobImpl_h

Generated by: LCOV version 1.13