Line data Source code
1 : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
2 : *
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 WebBrowserPersistSerializeParent_h__
8 : #define WebBrowserPersistSerializeParent_h__
9 :
10 : #include "mozilla/PWebBrowserPersistSerializeParent.h"
11 :
12 : #include "nsCOMPtr.h"
13 : #include "nsIOutputStream.h"
14 : #include "nsIWebBrowserPersistDocument.h"
15 :
16 : namespace mozilla {
17 :
18 0 : class WebBrowserPersistSerializeParent
19 : : public PWebBrowserPersistSerializeParent
20 : {
21 : public:
22 : WebBrowserPersistSerializeParent(
23 : nsIWebBrowserPersistDocument* aDocument,
24 : nsIOutputStream* aStream,
25 : nsIWebBrowserPersistWriteCompletion* aFinish);
26 : virtual ~WebBrowserPersistSerializeParent();
27 :
28 : virtual mozilla::ipc::IPCResult
29 : RecvWriteData(nsTArray<uint8_t>&& aData) override;
30 :
31 : virtual mozilla::ipc::IPCResult
32 : Recv__delete__(const nsCString& aContentType,
33 : const nsresult& aStatus) override;
34 :
35 : virtual void
36 : ActorDestroy(ActorDestroyReason aWhy) override;
37 :
38 : private:
39 : // See also ...ReadParent::mDocument for the other reason this
40 : // strong reference needs to be here.
41 : nsCOMPtr<nsIWebBrowserPersistDocument> mDocument;
42 : nsCOMPtr<nsIOutputStream> mStream;
43 : nsCOMPtr<nsIWebBrowserPersistWriteCompletion> mFinish;
44 : nsresult mOutputError;
45 : };
46 :
47 : } // namespace mozilla
48 :
49 : #endif // WebBrowserPersistSerializeParent_h__
|