diff -r 000000000000 -r 6474c204b198 dom/icc/src/IccManager.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/dom/icc/src/IccManager.h Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,61 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this file, + * You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#ifndef mozilla_dom_IccManager_h +#define mozilla_dom_IccManager_h + +#include "mozilla/DOMEventTargetHelper.h" +#include "nsCycleCollectionParticipant.h" +#include "nsIIccProvider.h" +#include "nsTArrayHelpers.h" + +namespace mozilla { +namespace dom { + +class IccListener; + +class IccManager MOZ_FINAL : public DOMEventTargetHelper +{ +public: + NS_DECL_ISUPPORTS_INHERITED + + NS_REALLY_FORWARD_NSIDOMEVENTTARGET(DOMEventTargetHelper) + + NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(IccManager, DOMEventTargetHelper) + + IccManager(nsPIDOMWindow* aWindow); + ~IccManager(); + + void + Shutdown(); + + nsresult + NotifyIccAdd(const nsAString& aIccId); + + nsresult + NotifyIccRemove(const nsAString& aIccId); + + IMPL_EVENT_HANDLER(iccdetected) + IMPL_EVENT_HANDLER(iccundetected) + + void + GetIccIds(nsTArray& aIccIds); + + already_AddRefed + GetIccById(const nsAString& aIccId) const; + + nsPIDOMWindow* + GetParentObject() const { return GetOwner(); } + + virtual JSObject* + WrapObject(JSContext* aCx) MOZ_OVERRIDE; + +private: + nsTArray> mIccListeners; +}; + +} // namespace dom +} // namespace mozilla + +#endif // mozilla_dom_IccManager_h