Fri, 16 Jan 2015 18:13:44 +0100
Integrate suggestion from review to improve consistency with existing code.
1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* vim: set ts=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/. */
7 #ifndef mozilla_dom_workers_filereadersync_h__
8 #define mozilla_dom_workers_filereadersync_h__
10 #include "Workers.h"
12 class nsIInputStream;
13 class nsIDOMBlob;
15 namespace mozilla {
16 class ErrorResult;
18 namespace dom {
19 class GlobalObject;
20 template<typename> class Optional;
21 }
22 }
24 BEGIN_WORKERS_NAMESPACE
26 class FileReaderSync MOZ_FINAL
27 {
28 NS_INLINE_DECL_REFCOUNTING(FileReaderSync)
30 private:
31 // Private destructor, to discourage deletion outside of Release():
32 ~FileReaderSync()
33 {
34 }
36 nsresult ConvertStream(nsIInputStream *aStream, const char *aCharset,
37 nsAString &aResult);
39 public:
40 static already_AddRefed<FileReaderSync>
41 Constructor(const GlobalObject& aGlobal, ErrorResult& aRv);
43 JSObject* WrapObject(JSContext* aCx);
45 void ReadAsArrayBuffer(JSContext* aCx, JS::Handle<JSObject*> aScopeObj,
46 JS::Handle<JSObject*> aBlob,
47 JS::MutableHandle<JSObject*> aRetval,
48 ErrorResult& aRv);
49 void ReadAsBinaryString(JS::Handle<JSObject*> aBlob, nsAString& aResult,
50 ErrorResult& aRv);
51 void ReadAsText(JS::Handle<JSObject*> aBlob,
52 const Optional<nsAString>& aEncoding,
53 nsAString& aResult, ErrorResult& aRv);
54 void ReadAsDataURL(JS::Handle<JSObject*> aBlob, nsAString& aResult,
55 ErrorResult& aRv);
56 };
58 END_WORKERS_NAMESPACE
60 #endif // mozilla_dom_workers_filereadersync_h__