Line data Source code
1 : /* THIS FILE IS AUTOGENERATED FROM RTCIceCandidate.webidl BY Codegen.py - DO NOT EDIT */
2 :
3 : #ifndef mozilla_dom_RTCIceCandidateBinding_h
4 : #define mozilla_dom_RTCIceCandidateBinding_h
5 :
6 : #include "js/RootingAPI.h"
7 : #include "jspubtd.h"
8 : #include "mozilla/ErrorResult.h"
9 : #include "mozilla/dom/BindingDeclarations.h"
10 : #include "mozilla/dom/CallbackInterface.h"
11 : #include "mozilla/dom/Nullable.h"
12 : #include "mozilla/dom/ToJSValue.h"
13 : #include "nsWeakReference.h"
14 :
15 : namespace mozilla {
16 : namespace dom {
17 :
18 : struct NativePropertyHooks;
19 : class ProtoAndIfaceCache;
20 : class RTCIceCandidate;
21 : struct RTCIceCandidateAtoms;
22 : struct RTCIceCandidateInit;
23 : struct RTCIceCandidateInitAtoms;
24 :
25 : } // namespace dom
26 : } // namespace mozilla
27 :
28 : namespace mozilla {
29 : namespace dom {
30 :
31 0 : struct RTCIceCandidateInit : public DictionaryBase
32 : {
33 : MOZ_INIT_OUTSIDE_CTOR nsString mCandidate;
34 : MOZ_INIT_OUTSIDE_CTOR Nullable<uint16_t> mSdpMLineIndex;
35 : MOZ_INIT_OUTSIDE_CTOR nsString mSdpMid;
36 :
37 : RTCIceCandidateInit();
38 :
39 0 : explicit inline RTCIceCandidateInit(const FastDictionaryInitializer& )
40 0 : {
41 : // Do nothing here; this is used by our "Fast" subclass
42 0 : }
43 :
44 : explicit inline RTCIceCandidateInit(const RTCIceCandidateInit& aOther)
45 : {
46 : *this = aOther;
47 : }
48 :
49 : bool
50 : Init(JSContext* cx, JS::Handle<JS::Value> val, const char* sourceDescription = "Value", bool passedToJSImpl = false);
51 :
52 : bool
53 : Init(const nsAString& aJSON);
54 :
55 : bool
56 : ToObjectInternal(JSContext* cx, JS::MutableHandle<JS::Value> rval) const;
57 :
58 : bool
59 : ToJSON(nsAString& aJSON) const;
60 :
61 : void
62 : TraceDictionary(JSTracer* trc);
63 :
64 : RTCIceCandidateInit&
65 : operator=(const RTCIceCandidateInit& aOther);
66 :
67 : private:
68 : static bool
69 : InitIds(JSContext* cx, RTCIceCandidateInitAtoms* atomsCache);
70 : };
71 :
72 : namespace binding_detail {
73 0 : struct FastRTCIceCandidateInit : public RTCIceCandidateInit
74 : {
75 0 : inline FastRTCIceCandidateInit()
76 0 : : RTCIceCandidateInit(FastDictionaryInitializer())
77 : {
78 : // Doesn't matter what int we pass to the parent constructor
79 0 : }
80 : };
81 : } // namespace binding_detail
82 :
83 :
84 : namespace RTCIceCandidateBinding {
85 :
86 : typedef mozilla::dom::RTCIceCandidate NativeType;
87 :
88 : bool
89 : JsonifyAttributes(JSContext* aCx, JS::Handle<JSObject*> obj, mozilla::dom::RTCIceCandidate* self, JS::Rooted<JSObject*>& aResult);
90 :
91 : bool
92 : ConstructorEnabled(JSContext* aCx, JS::Handle<JSObject*> aObj);
93 :
94 : JSObject*
95 : DefineDOMInterface(JSContext* aCx, JS::Handle<JSObject*> aGlobal, JS::Handle<jsid> id, bool aDefineOnGlobal);
96 :
97 : const JSClass*
98 : GetJSClass();
99 :
100 : bool
101 : Wrap(JSContext* aCx, mozilla::dom::RTCIceCandidate* aObject, nsWrapperCache* aCache, JS::Handle<JSObject*> aGivenProto, JS::MutableHandle<JSObject*> aReflector);
102 :
103 : template <class T>
104 0 : inline JSObject* Wrap(JSContext* aCx, T* aObject, JS::Handle<JSObject*> aGivenProto)
105 : {
106 0 : JS::Rooted<JSObject*> reflector(aCx);
107 0 : return Wrap(aCx, aObject, aObject, aGivenProto, &reflector) ? reflector.get() : nullptr;
108 : }
109 :
110 : // We declare this as an array so that retrieving a pointer to this
111 : // binding's property hooks only requires compile/link-time resolvable
112 : // address arithmetic. Declaring it as a pointer instead would require
113 : // doing a run-time load to fetch a pointer to this binding's property
114 : // hooks. And then structures which embedded a pointer to this structure
115 : // would require a run-time load for proper initialization, which would
116 : // then induce static constructors. Lots of static constructors.
117 : extern const NativePropertyHooks sNativePropertyHooks[];
118 :
119 : void
120 : CreateInterfaceObjects(JSContext* aCx, JS::Handle<JSObject*> aGlobal, ProtoAndIfaceCache& aProtoAndIfaceCache, bool aDefineOnGlobal);
121 :
122 : JS::Handle<JSObject*>
123 : GetProtoObjectHandle(JSContext* aCx);
124 :
125 : JSObject*
126 : GetProtoObject(JSContext* aCx);
127 :
128 : JS::Handle<JSObject*>
129 : GetConstructorObjectHandle(JSContext* aCx, bool aDefineOnGlobal = true);
130 :
131 : JSObject*
132 : GetConstructorObject(JSContext* aCx);
133 :
134 : } // namespace RTCIceCandidateBinding
135 :
136 :
137 :
138 0 : class RTCIceCandidateJSImpl : public CallbackInterface
139 : {
140 : public:
141 0 : explicit inline RTCIceCandidateJSImpl(JSContext* aCx, JS::Handle<JSObject*> aCallback, nsIGlobalObject* aIncumbentGlobal)
142 0 : : CallbackInterface(aCx, aCallback, aIncumbentGlobal)
143 : {
144 0 : }
145 :
146 : explicit inline RTCIceCandidateJSImpl(JS::Handle<JSObject*> aCallback, const FastCallbackConstructor& )
147 : : CallbackInterface(aCallback, FastCallbackConstructor())
148 : {
149 : }
150 :
151 : explicit inline RTCIceCandidateJSImpl(JS::Handle<JSObject*> aCallback, JS::Handle<JSObject*> aAsyncStack, nsIGlobalObject* aIncumbentGlobal)
152 : : CallbackInterface(aCallback, aAsyncStack, aIncumbentGlobal)
153 : {
154 : }
155 :
156 : void __Init(const RTCIceCandidateInit& candidateInitDict, ErrorResult& aRv, JSCompartment* aCompartment = nullptr);
157 :
158 : inline bool
159 : operator==(const RTCIceCandidateJSImpl& aOther) const
160 : {
161 : return CallbackInterface::operator==(aOther);
162 : }
163 :
164 : void GetCandidate(nsString& aRetVal, ErrorResult& aRv, JSCompartment* aCompartment = nullptr);
165 :
166 : void GetSdpMid(nsString& aRetVal, ErrorResult& aRv, JSCompartment* aCompartment = nullptr);
167 :
168 : Nullable<uint16_t> GetSdpMLineIndex(ErrorResult& aRv, JSCompartment* aCompartment = nullptr);
169 :
170 : void SetCandidate(const nsAString& arg, ErrorResult& aRv, JSCompartment* aCompartment = nullptr);
171 :
172 : void SetSdpMid(const nsAString& arg, ErrorResult& aRv, JSCompartment* aCompartment = nullptr);
173 :
174 : void SetSdpMLineIndex(const Nullable<uint16_t>& arg, ErrorResult& aRv, JSCompartment* aCompartment = nullptr);
175 :
176 : private:
177 : static bool
178 : InitIds(JSContext* cx, RTCIceCandidateAtoms* atomsCache);
179 : };
180 :
181 :
182 : class RTCIceCandidate : public nsSupportsWeakReference,
183 : public nsWrapperCache
184 : {
185 : public:
186 : NS_DECL_CYCLE_COLLECTING_ISUPPORTS
187 0 : NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_CLASS(RTCIceCandidate)
188 :
189 : private:
190 : RefPtr<RTCIceCandidateJSImpl> mImpl;
191 : nsCOMPtr<nsISupports> mParent;
192 :
193 : public:
194 : RTCIceCandidate(JS::Handle<JSObject*> aJSImplObject, nsIGlobalObject* aParent);
195 :
196 : protected:
197 : virtual ~RTCIceCandidate();
198 :
199 : public:
200 : nsISupports* GetParentObject() const;
201 :
202 : virtual JSObject* WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto) override;
203 :
204 : static already_AddRefed<RTCIceCandidate> Constructor(const GlobalObject& global, JSContext* cx, const RTCIceCandidateInit& candidateInitDict, ErrorResult& aRv);
205 :
206 : void GetCandidate(nsString& aRetVal, ErrorResult& aRv, JSCompartment* aCompartment = nullptr) const;
207 :
208 : void SetCandidate(const nsAString& arg, ErrorResult& aRv, JSCompartment* aCompartment = nullptr);
209 :
210 : void GetSdpMid(nsString& aRetVal, ErrorResult& aRv, JSCompartment* aCompartment = nullptr) const;
211 :
212 : void SetSdpMid(const nsAString& arg, ErrorResult& aRv, JSCompartment* aCompartment = nullptr);
213 :
214 : Nullable<uint16_t> GetSdpMLineIndex(ErrorResult& aRv, JSCompartment* aCompartment = nullptr) const;
215 :
216 : void SetSdpMLineIndex(const Nullable<uint16_t>& arg, ErrorResult& aRv, JSCompartment* aCompartment = nullptr);
217 :
218 : static bool
219 : _Create(JSContext* cx, unsigned argc, JS::Value* vp);
220 : };
221 :
222 :
223 : } // namespace dom
224 : } // namespace mozilla
225 :
226 : #endif // mozilla_dom_RTCIceCandidateBinding_h
|