michael@0: /* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ michael@0: /* This Source Code Form is subject to the terms of the Mozilla Public michael@0: * License, v. 2.0. If a copy of the MPL was not distributed with this michael@0: * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ michael@0: michael@0: #ifndef nsICharsetDetector_h__ michael@0: #define nsICharsetDetector_h__ michael@0: michael@0: #include "nsISupports.h" michael@0: michael@0: class nsICharsetDetectionObserver; michael@0: michael@0: // {12BB8F14-2389-11d3-B3BF-00805F8A6670} michael@0: #define NS_ICHARSETDETECTOR_IID \ michael@0: { 0x12bb8f14, 0x2389, 0x11d3, { 0xb3, 0xbf, 0x0, 0x80, 0x5f, 0x8a, 0x66, 0x70 } } michael@0: michael@0: #define NS_CHARSET_DETECTOR_CONTRACTID_BASE "@mozilla.org/intl/charsetdetect;1?type=" michael@0: #define NS_CHARSET_DETECTOR_CATEGORY "charset-detectors" michael@0: michael@0: class nsICharsetDetector : public nsISupports { michael@0: public: michael@0: NS_DECLARE_STATIC_IID_ACCESSOR(NS_ICHARSETDETECTOR_IID) michael@0: michael@0: /* michael@0: Setup the observer so it know how to notify the answer michael@0: */ michael@0: NS_IMETHOD Init(nsICharsetDetectionObserver* observer) = 0; michael@0: michael@0: /* michael@0: Feed a block of bytes to the detector. michael@0: It will call the Notify function of the nsICharsetObserver if it find out michael@0: the answer. michael@0: aBytesArray - array of bytes michael@0: aLen - length of aBytesArray michael@0: oDontFeedMe - return true if the detector do not need the following block michael@0: false it need more bytes. michael@0: This is used to enhance performance michael@0: */ michael@0: NS_IMETHOD DoIt(const char* aBytesArray, uint32_t aLen, bool* oDontFeedMe) = 0; michael@0: michael@0: /* michael@0: It also tell the detector the last chance the make a decision michael@0: */ michael@0: NS_IMETHOD Done() = 0; michael@0: michael@0: }; michael@0: michael@0: NS_DEFINE_STATIC_IID_ACCESSOR(nsICharsetDetector, michael@0: NS_ICHARSETDETECTOR_IID) michael@0: michael@0: #endif /* nsICharsetDetector_h__ */