I might be going about this the wrong way, but I'm just exploring the
different ways I can do this.

Given a developer's V8 script usage of our embedded implementation
exposing an API to it:

function addMessage(toWhom, subject, text) {
  var msg = {};
  msg.From     = {Name: "Post Master"}
  msg.To         = {Name: toWhom};
  msg.Private   = true;
  msg.Subject  = subject;
  if (!wcAddMessage(msg,text)) {
       alert("! Error wcaddMessage: "+wcGetLastError());
  }
}

I want to the callback to wcAddMessage() to be able to read the msg
json object using Arguments:

static Handle<Value> wcAddMessageCallback(const Arguments& args) {
  if (args.Length() < 1) return v8::Undefined();
  HandleScope scope;

  printf("------------------------------------------------\n");
  printf("- args length: %d\n",args.Length());

  v8::String::AsciiValue text(args[1]);
  printf("- args[1]: [%s]\n",*text);

  ???? How to I access the args[0] as a JSON object ??
/*
  map<string, string> *msg = wcUnwrapMap(args[0]);
  for (map<string, string>::iterator i = msg->begin(); i != msg-
>end(); i++) {
    pair<string, string> entry = *i;
    printf("AddMsg Args: %s: %s\n", entry.first.c_str(),
entry.second.c_str());
  }
*/
  return v8::Undefined();
}

I basically want to extract the fields here so I can map it to the
actual TMsgHeader c-structure which in this case only needs a few
fields filled to satisfy the API wcAddMessage() call.

Maybe this isn't the best approach, but I'm trying to think ahead in
optimizing this, but I am not very familiar with V8 yet.   I mean,
off hand, I appears it would be inefficient for us to create a class
object for all our c-based structures (over 60 of them) and then
instances of these in V8 scripts will be making all the getters and
setters calls.

Thanks for any tips



--~--~---------~--~----~------------~-------~--~----~
v8-users mailing list
[email protected]
http://groups.google.com/group/v8-users
-~----------~----~----~----~------~----~------~--~---

Reply via email to