~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to plugin/js/js.cc

  • Committer: Henrik Ingo
  • Date: 2011-09-08 11:59:00 UTC
  • mto: This revision was merged to the branch mainline in revision 2439.
  • Revision ID: henrik.ingo@avoinelama.fi-20110908115900-p8db0jy8003myads
Change name from js_eval() to just js(), also change name of plugin itself.

This allows for this to become the general javascript plugin, which may
offer also other javascript services in the future, such as internal C++ api.

Show diffs side-by-side

added added

removed removed

Lines of Context:
41
41
// TODO: So this is a function that returns strings? 
42
42
// What is the class for functions that return mixed types?
43
43
 
44
 
class JsEvalFunction :public Item_str_func
 
44
class JsFunction :public Item_str_func
45
45
{
46
46
public:
47
 
  JsEvalFunction() :Item_str_func() {}
48
 
  ~JsEvalFunction() {}
 
47
  JsFunction() :Item_str_func() {}
 
48
  ~JsFunction() {}
49
49
 
50
50
  String *val_str(String *);
51
51
 
52
52
  const char *func_name() const 
53
53
  { 
54
 
    return "js_eval"; 
 
54
    return "js"; 
55
55
  }
56
56
 
57
57
  void fix_length_and_dec() 
116
116
}
117
117
 
118
118
/**
119
 
 * Implements js_eval(), evaluate JavaScript code
 
119
 * Implements js() - execute JavaScript code
120
120
 * 
121
121
 * @note I only compiled this with -O0 but should work with default O2 also.
122
122
 *
137
137
 * @param res Pointer to the drizzled::String object that will contain the result
138
138
 * @return a drizzled::String containing the value returned by executed JavaScript code (value of last executed statement) 
139
139
 */
140
 
String *JsEvalFunction::val_str( String *str )
 
140
String *JsFunction::val_str( String *str )
141
141
{
142
142
  assert( fixed == 1 );
143
143
  // If we return from any of the error conditions during method, then 
171
171
  v8::Persistent<v8::Context> context = v8::Context::New( NULL, global );
172
172
  if ( context.IsEmpty() ) {
173
173
    char buf[100];
174
 
    sprintf(buf, "Error in js_eval() while creating JavaScript context in %s.", JS_ENGINE);
 
174
    sprintf(buf, "Error in js() while creating JavaScript context in %s.", JS_ENGINE);
175
175
    my_error(ER_SCRIPT, MYF(0), buf);
176
176
    return NULL;
177
177
  }
270
270
 
271
271
 
272
272
 
273
 
plugin::Create_function<JsEvalFunction> *js_eval_function = NULL;
 
273
plugin::Create_function<JsFunction> *js_function = NULL;
274
274
 
275
275
static int initialize( module::Context &context )
276
276
{
277
 
  js_eval_function = new plugin::Create_function<JsEvalFunction>( "js_eval" );
278
 
  context.add( js_eval_function );
 
277
  js_function = new plugin::Create_function<JsFunction>("js");
 
278
  context.add( js_function );
279
279
  // Initialize V8
280
280
  v8::V8::Initialize();
281
281
  return 0;
296
296
DRIZZLE_DECLARE_PLUGIN
297
297
{
298
298
  DRIZZLE_VERSION_ID,
299
 
  "js_eval",
 
299
  "js",
300
300
  "0.1",
301
301
  "Henrik Ingo",
302
302
  "Execute JavaScript code with supplied arguments",