1 /* vim:set expandtab ts=4 sw=4 sts=4 cin: */ 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 #ifndef NSCONVERTEROUTPUTSTREAM_H_ 7 #define NSCONVERTEROUTPUTSTREAM_H_ 8 9 #include "nsIConverterOutputStream.h" 10 #include "nsCOMPtr.h" 11 #include "mozilla/Attributes.h" 12 #include "mozilla/Encoding.h" 13 14 class nsIOutputStream; 15 16 /* ff8780a5-bbb1-4bc5-8ee7-057e7bc5c925 */ 17 #define NS_CONVERTEROUTPUTSTREAM_CID \ 18 { \ 19 0xff8780a5, 0xbbb1, 0x4bc5, { \ 20 0x8e, 0xe7, 0x05, 0x7e, 0x7b, 0xc5, 0xc9, 0x25 \ 21 } \ 22 } 23 24 class nsConverterOutputStream final : public nsIConverterOutputStream { 25 public: nsConverterOutputStream()26 nsConverterOutputStream() {} 27 28 NS_DECL_ISUPPORTS 29 NS_DECL_NSIUNICHAROUTPUTSTREAM 30 NS_DECL_NSICONVERTEROUTPUTSTREAM 31 32 private: 33 ~nsConverterOutputStream(); 34 35 mozilla::UniquePtr<mozilla::Encoder> mConverter; 36 nsCOMPtr<nsIOutputStream> mOutStream; 37 }; 38 39 #endif 40