1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
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/. */
6 #ifndef mozilla_dom_DataContainerEvent_h_
7 #define mozilla_dom_DataContainerEvent_h_
9 #include "mozilla/dom/DataContainerEventBinding.h"
10 #include "mozilla/dom/Event.h"
11 #include "nsIDOMDataContainerEvent.h"
12 #include "nsInterfaceHashtable.h"
17 class DataContainerEvent
: public Event
,
18 public nsIDOMDataContainerEvent
21 DataContainerEvent(EventTarget
* aOwner
,
22 nsPresContext
* aPresContext
,
25 NS_DECL_ISUPPORTS_INHERITED
27 NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(DataContainerEvent
, Event
)
31 NS_DECL_NSIDOMDATACONTAINEREVENT
34 WrapObject(JSContext
* aCx
) MOZ_OVERRIDE
36 return DataContainerEventBinding::Wrap(aCx
, this);
39 already_AddRefed
<nsIVariant
> GetData(const nsAString
& aKey
)
41 nsCOMPtr
<nsIVariant
> val
;
42 GetData(aKey
, getter_AddRefs(val
));
46 void SetData(JSContext
* aCx
, const nsAString
& aKey
,
47 JS::Handle
<JS::Value
> aVal
, ErrorResult
& aRv
);
50 ~DataContainerEvent() {}
53 static PLDHashOperator
54 TraverseEntry(const nsAString
& aKey
, nsIVariant
* aDataItem
, void* aUserArg
);
56 nsInterfaceHashtable
<nsStringHashKey
, nsIVariant
> mData
;
60 } // namespace mozilla
62 #endif // mozilla_dom_DataContainerEvent_h_