Build JS Message objects with properly set prototypes.
git-svn-id: http://yate.null.ro/svn/yate/trunk@6214 acf43c95-373e-0410-b603-e72c3f656dc1
This commit is contained in:
parent
d8f8bdd5d6
commit
23b9e4a09c
|
@ -297,12 +297,6 @@ public:
|
||||||
m_message(0), m_owned(false), m_trackPrio(true)
|
m_message(0), m_owned(false), m_trackPrio(true)
|
||||||
{
|
{
|
||||||
XDebug(&__plugin,DebugAll,"JsMessage::JsMessage() [%p]",this);
|
XDebug(&__plugin,DebugAll,"JsMessage::JsMessage() [%p]",this);
|
||||||
}
|
|
||||||
inline JsMessage(Message* message, Mutex* mtx, bool owned)
|
|
||||||
: JsObject("Message",mtx),
|
|
||||||
m_message(message), m_owned(owned), m_trackPrio(true)
|
|
||||||
{
|
|
||||||
XDebug(&__plugin,DebugAll,"JsMessage::JsMessage(%p) [%p]",message,this);
|
|
||||||
params().addParam(new ExpFunction("enqueue"));
|
params().addParam(new ExpFunction("enqueue"));
|
||||||
params().addParam(new ExpFunction("dispatch"));
|
params().addParam(new ExpFunction("dispatch"));
|
||||||
params().addParam(new ExpFunction("name"));
|
params().addParam(new ExpFunction("name"));
|
||||||
|
@ -316,6 +310,12 @@ public:
|
||||||
params().addParam(new ExpFunction("getRow"));
|
params().addParam(new ExpFunction("getRow"));
|
||||||
params().addParam(new ExpFunction("getResult"));
|
params().addParam(new ExpFunction("getResult"));
|
||||||
}
|
}
|
||||||
|
inline JsMessage(Message* message, Mutex* mtx, bool owned)
|
||||||
|
: JsObject(mtx,"[object Message]"),
|
||||||
|
m_message(message), m_owned(owned), m_trackPrio(true)
|
||||||
|
{
|
||||||
|
XDebug(&__plugin,DebugAll,"JsMessage::JsMessage(%p) [%p]",message,this);
|
||||||
|
}
|
||||||
virtual ~JsMessage()
|
virtual ~JsMessage()
|
||||||
{
|
{
|
||||||
XDebug(&__plugin,DebugAll,"JsMessage::~JsMessage() [%p]",this);
|
XDebug(&__plugin,DebugAll,"JsMessage::~JsMessage() [%p]",this);
|
||||||
|
@ -2347,6 +2347,7 @@ bool JsHandler::receivedInternal(Message& msg)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
JsMessage* jm = new JsMessage(&msg,runner->context()->mutex(),false);
|
JsMessage* jm = new JsMessage(&msg,runner->context()->mutex(),false);
|
||||||
|
jm->setPrototype(runner->context(),YSTRING("Message"));
|
||||||
jm->ref();
|
jm->ref();
|
||||||
String name = m_function.name();
|
String name = m_function.name();
|
||||||
safeNowInternal(); // Staring from here the handler may be safely uninstalled
|
safeNowInternal(); // Staring from here the handler may be safely uninstalled
|
||||||
|
@ -2385,6 +2386,7 @@ void JsMessageQueue::received(Message& msg)
|
||||||
if (!runner)
|
if (!runner)
|
||||||
return;
|
return;
|
||||||
JsMessage* jm = new JsMessage(&msg,runner->context()->mutex(),false);
|
JsMessage* jm = new JsMessage(&msg,runner->context()->mutex(),false);
|
||||||
|
jm->setPrototype(runner->context(),YSTRING("Message"));
|
||||||
jm->ref();
|
jm->ref();
|
||||||
ObjList args;
|
ObjList args;
|
||||||
args.append(new ExpWrapper(jm,"message"));
|
args.append(new ExpWrapper(jm,"message"));
|
||||||
|
@ -4233,6 +4235,7 @@ bool JsAssist::init()
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (jsm && jsm->ref()) {
|
if (jsm && jsm->ref()) {
|
||||||
|
jsm->setPrototype(ctx,YSTRING("Message"));
|
||||||
JsObject* cc = JsObject::buildCallContext(ctx->mutex(),jsm);
|
JsObject* cc = JsObject::buildCallContext(ctx->mutex(),jsm);
|
||||||
jsm->ref();
|
jsm->ref();
|
||||||
cc->params().setParam(new ExpWrapper(jsm,"message"));
|
cc->params().setParam(new ExpWrapper(jsm,"message"));
|
||||||
|
@ -4372,6 +4375,7 @@ bool JsAssist::runFunction(const String& name, Message& msg, bool* handled)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
JsMessage* jm = new JsMessage(&msg,runner->context()->mutex(),false);
|
JsMessage* jm = new JsMessage(&msg,runner->context()->mutex(),false);
|
||||||
|
jm->setPrototype(runner->context(),YSTRING("Message"));
|
||||||
jm->ref();
|
jm->ref();
|
||||||
ObjList args;
|
ObjList args;
|
||||||
args.append(new ExpWrapper(jm,"message"));
|
args.append(new ExpWrapper(jm,"message"));
|
||||||
|
|
Loading…
Reference in New Issue