michael@0: /* -*- Mode: C++; tab-width: 50; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ 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 _NSUUIDGENERATOR_H_ michael@0: #define _NSUUIDGENERATOR_H_ michael@0: michael@0: #include "mozilla/Attributes.h" michael@0: #include "mozilla/Mutex.h" michael@0: michael@0: #include "nsIUUIDGenerator.h" michael@0: michael@0: class nsUUIDGenerator MOZ_FINAL : public nsIUUIDGenerator { michael@0: public: michael@0: nsUUIDGenerator(); michael@0: michael@0: NS_DECL_THREADSAFE_ISUPPORTS michael@0: michael@0: NS_DECL_NSIUUIDGENERATOR michael@0: michael@0: nsresult Init(); michael@0: michael@0: private: michael@0: ~nsUUIDGenerator(); michael@0: michael@0: protected: michael@0: michael@0: mozilla::Mutex mLock; michael@0: #if !defined(XP_WIN) && !defined(XP_MACOSX) && !defined(ANDROID) michael@0: char mState[128]; michael@0: char *mSavedState; michael@0: uint8_t mRBytes; michael@0: #endif michael@0: }; michael@0: michael@0: #define NS_UUID_GENERATOR_CONTRACTID "@mozilla.org/uuid-generator;1" michael@0: #define NS_UUID_GENERATOR_CID \ michael@0: { 0x706d36bb, 0xbf79, 0x4293, \ michael@0: { 0x81, 0xf2, 0x8f, 0x68, 0x28, 0xc1, 0x8f, 0x9d } } michael@0: michael@0: #endif /* _NSUUIDGENERATOR_H_ */