1 /*
2 This file is part of the WebKit open source project.
3 This file has been generated by generate-bindings.pl. DO NOT MODIFY!
4
5 This library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Library General Public
7 License as published by the Free Software Foundation; either
8 version 2 of the License, or (at your option) any later version.
9
10 This library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Library General Public License for more details.
14
15 You should have received a copy of the GNU Library General Public License
16 along with this library; see the file COPYING.LIB. If not, write to
17 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
18 Boston, MA 02111-1307, USA.
19 */
20
21 #include "config.h"
22 #include "V8TestCallback.h"
23
24 #if ENABLE(DATABASE)
25
26 #include "ScriptExecutionContext.h"
27 #include "V8Binding.h"
28 #include "V8Class1.h"
29 #include "V8Class2.h"
30 #include "V8CustomVoidCallback.h"
31 #include "V8DOMStringList.h"
32 #include "V8Proxy.h"
33 #include <wtf/GetPtr.h>
34 #include <wtf/RefCounted.h>
35 #include <wtf/RefPtr.h>
36
37 #include <wtf/Assertions.h>
38
39 namespace WebCore {
40
V8TestCallback(v8::Local<v8::Object> callback,ScriptExecutionContext * context)41 V8TestCallback::V8TestCallback(v8::Local<v8::Object> callback, ScriptExecutionContext* context)
42 : ActiveDOMCallback(context)
43 , m_callback(v8::Persistent<v8::Object>::New(callback))
44 , m_worldContext(UseCurrentWorld)
45 {
46 }
47
~V8TestCallback()48 V8TestCallback::~V8TestCallback()
49 {
50 m_callback.Dispose();
51 }
52
53 // Functions
54
callbackWithNoParam()55 bool V8TestCallback::callbackWithNoParam()
56 {
57 if (!canInvokeCallback())
58 return true;
59
60 v8::HandleScope handleScope;
61
62 v8::Handle<v8::Context> v8Context = toV8Context(scriptExecutionContext(), m_worldContext);
63 if (v8Context.IsEmpty())
64 return true;
65
66 v8::Context::Scope scope(v8Context);
67
68
69 v8::Handle<v8::Value> *argv = 0;
70
71 bool callbackReturnValue = false;
72 return !invokeCallback(m_callback, 0, argv, callbackReturnValue, scriptExecutionContext());
73 }
74
callbackWithClass1Param(Class1 * class1Param)75 bool V8TestCallback::callbackWithClass1Param(Class1* class1Param)
76 {
77 if (!canInvokeCallback())
78 return true;
79
80 v8::HandleScope handleScope;
81
82 v8::Handle<v8::Context> v8Context = toV8Context(scriptExecutionContext(), m_worldContext);
83 if (v8Context.IsEmpty())
84 return true;
85
86 v8::Context::Scope scope(v8Context);
87
88 v8::Handle<v8::Value> class1ParamHandle = toV8(class1Param);
89 if (class1ParamHandle.IsEmpty()) {
90 CRASH();
91 return true;
92 }
93
94 v8::Handle<v8::Value> argv[] = {
95 class1ParamHandle
96 };
97
98 bool callbackReturnValue = false;
99 return !invokeCallback(m_callback, 1, argv, callbackReturnValue, scriptExecutionContext());
100 }
101
callbackWithClass2Param(Class2 * class2Param,const String & strArg)102 bool V8TestCallback::callbackWithClass2Param(Class2* class2Param, const String& strArg)
103 {
104 if (!canInvokeCallback())
105 return true;
106
107 v8::HandleScope handleScope;
108
109 v8::Handle<v8::Context> v8Context = toV8Context(scriptExecutionContext(), m_worldContext);
110 if (v8Context.IsEmpty())
111 return true;
112
113 v8::Context::Scope scope(v8Context);
114
115 v8::Handle<v8::Value> class2ParamHandle = toV8(class2Param);
116 if (class2ParamHandle.IsEmpty()) {
117 CRASH();
118 return true;
119 }
120 v8::Handle<v8::Value> strArgHandle = v8String(strArg);
121 if (strArgHandle.IsEmpty()) {
122 CRASH();
123 return true;
124 }
125
126 v8::Handle<v8::Value> argv[] = {
127 class2ParamHandle,
128 strArgHandle
129 };
130
131 bool callbackReturnValue = false;
132 return !invokeCallback(m_callback, 2, argv, callbackReturnValue, scriptExecutionContext());
133 }
134
callbackWithStringList(PassRefPtr<DOMStringList> listParam)135 bool V8TestCallback::callbackWithStringList(PassRefPtr<DOMStringList> listParam)
136 {
137 if (!canInvokeCallback())
138 return true;
139
140 v8::HandleScope handleScope;
141
142 v8::Handle<v8::Context> v8Context = toV8Context(scriptExecutionContext(), m_worldContext);
143 if (v8Context.IsEmpty())
144 return true;
145
146 v8::Context::Scope scope(v8Context);
147
148 v8::Handle<v8::Value> listParamHandle = toV8(listParam);
149 if (listParamHandle.IsEmpty()) {
150 CRASH();
151 return true;
152 }
153
154 v8::Handle<v8::Value> argv[] = {
155 listParamHandle
156 };
157
158 bool callbackReturnValue = false;
159 return !invokeCallback(m_callback, 1, argv, callbackReturnValue, scriptExecutionContext());
160 }
161
162 } // namespace WebCore
163
164 #endif // ENABLE(DATABASE)
165